(微电子学与固体电子学专业论文)基于fpga的8051+ip核的设计.pdf_第1页
(微电子学与固体电子学专业论文)基于fpga的8051+ip核的设计.pdf_第2页
(微电子学与固体电子学专业论文)基于fpga的8051+ip核的设计.pdf_第3页
(微电子学与固体电子学专业论文)基于fpga的8051+ip核的设计.pdf_第4页
(微电子学与固体电子学专业论文)基于fpga的8051+ip核的设计.pdf_第5页
已阅读5页,还剩95页未读 继续免费阅读

(微电子学与固体电子学专业论文)基于fpga的8051+ip核的设计.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 a s i c 设计周期长,花费成本高。f p g a 设计能够兼顾设计速度和灵活性,设 计成本低,能较快投入市场。在中小批量产品的设计中,f p g a 是取代a s i c 实现 所需要功能的一种合适选择。 目前单片机已渗透到生活的各个领域,几乎很难找到哪个领域没有单片机 的足迹。在单片机世界里,八位单片机8 0 c 5 1 系列形成了一道独特的风景线,是 既具有经典性,又不乏生命力的一个单片机系列。然而这种单片机已经是通用产 品,本文的主要目的和工作是探索自主系统c p u 设计方法和经验,同时对8 0 c 5 1 产品进行必要的改进。 本文采用x i l i n x 公司的v i r t e x i ip r o 系列f p g a 芯片,在相关e d a 软件平台 的支持下进行基于f p g a 的8 0 5 1 芯片的设计。在已公开的8 0 5 1 源代码的基础上, 对其中的程序存储器、指令存储器做了较大幅度的修改,增加了定时器、串行收 发器的软件编写, v e r i l o gh d l 语句共6 0 0 0 余行( 见附录光盘) 。 在设计中笔者特别的注意了源代码中组合逻辑循环的去除,时序设计中合 理确定建立时间和保持时间,保证了工作频率的提商( 工作频率由1 2 m h z 提高到 约3 0 m h z ) ,串行收发器的下载实验验证了该模块频率的提高。对设计高频c p u 提供了有益的借鉴。 本文利用m o d e l s i m 进行了功能仿真和后仿真,利用s y n p l i f y 进行了综合,仿 真和综合结果达到了设计的预期要求。并为下载和组成系统作了准备工作( 设计 了外围电路的p c b 板图) 。 按照自己的需求灵活地对8 0 5 1 的某些功能进行取舍,甚至对某些不足方面 进行改进。要做到这一点,需要在清楚地了解8 0 5 1 芯片的结构基础上,熟悉f p g a 的开发流程,并能够解决a s i c 设计中的些关键问题,比如时序和约束等。 关键词f p g a ;建立时间;保持时间 北京工业大学工学硕士学位论文 ! _ _ _ i l _ _ _ j e 目目- 日e l _ i ! ! _ _ - l l ! ! 日目! ! ! _ _ e _ ! ! ! | i _ _ 日! s ! ! ! _ _ 自! ! ! ! a b s t r a c t s i n c ea s i cd e s i g nn e e d sl o n gt i m ea n dal o to fm o n e y ,w ec a n p a y a t t e n t i o nt os p e e da n df l e x i b i l i t yd u r i n gf p g ad e s i g nw h i c hn e e d s1 i t t l e m o n e ya n dc a nb el a u n c h e di n t om a r k e tf a s t e r s oi nl i t t l eb a t c hd e s i g n , w ec a ns e l e c tf p g ai n s t e a do fa s i c m i c r o c o n t r o l l e rh a sp e n e t r a t e de v e r yf i e l do fo u r1 i v e s :i ti s d i f f i c u l tt of i n daf i e l dt h a t d o e sn o tn e e dm i c r o c o n t r o l l e r i n m i c r o c o n t r o l l e rw o r l d ,8b i tm i c r o c o n t r o ll e r8 0 5 1i sc l a s s i c a la n dh a s s t r o n g e r1 i f e s i n c e8 0 5 1i s8u n i v e r s a lp r o d u c t 。t h em a i nd e s t i n a t i o n o ft h i sa r t i c l ei st og e te x p e r i e n c et h r o u g he x p l o r i n gh o wt od e s i g na c p ua n di m p r o v es o m ef u n c tio n so f8 0 5 1 u s i n gaf p g ac h i pp r o d u c e db yx i l i n xc o m p a n ya n ds o m ee d as o f t w a r e s t od e s i g na n8 0 5 1c h i p ,u s i n gt h eo p e n8 0 5 1c o d e im o d i f i e dt h er a mm o d u l e r o ma n di op o r t sa n da d d e dt h es e r i a lt r a n s c e i v e rm o d u l e ,s ot h e r eh a v e 6 0 0 0r o w sv e r i l o gp r o g r a m r e m o v i n gc o m b i n a t i o nl o g i cc y c l ea n dc o n f i r m i n gt h es e t u pt i m ea n d h o l dt i m e 。ig e tah i g h e rf r e q u e n c y u s i n gm o d e l s i mt os i m u l a t ea n ds y n p l i f yt os y n t h e s i z e ,1g e tad e s i r e d r e s u l t ,s oih a v e d o n es o m ep r e p a r a t i v ew o r kf o rd e s i g n i n gas y s t e m t oa c c e p to rr e j e c ts o m ef u n c t i o n so f8 0 5 1a n di m p r o v es o m ef u n c t i o n s a c c o r d i n gt or e q u e s to fm e ,im u s tb ef a m i l i a rw i t ht h ee x p l o i t a t i o nf o w o ff p g aa n dr e s o l v es o m ep r o b l e m so fa s i cd e s i g n ,s u c ha s t i m i n ga n d c o n s t r a i da n ds oo n k e yw o r d f p g as e t u p t i m eh o l d t i m e - i i 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含他人 已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在 论文中作了明确的说明并表示了谢意。 签名:兰熊4日期:型掣 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 第l 章绪论 ! ! ! 目! 目,! ! ! _ _ _ _ | _ l e e e s ! | j s _ _ 口i 目! e l ! 目i _ - _ e ! e 自l ! ! ! 目_ _ e ! ! ! ! ! e _ i _ ! ! 1 1 , 1 课题背景 第1 章绪论 目前单片机已渗透到生活的各个领域,几乎很难找到哪个领域没有单片机 的足迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传 输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能i c 卡,民用豪 华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、 电子宠物等等,这些都离不开单片机。更不用说全自动控制领域的机器人、智能 仪表、医疗器械了。因此,单片机的学习、开发与应用将造就批计算机应用与 智能化控制的工程师和科学家。科技越发达,智能化的东西就越多。看来学习单 片机是社会发展的必然需求。 据统计,我国的单片机年需求量已达1 - 3 亿片,且每年以大约1 6 的速度增 长,但相对于世界市场我国的占有率还不到1 。特别是沿海地区的电子厂,其产 品多数要用到单片机,并不断地向内地辐射。这说明单片机应用在我国才刚刚起 步,有着广阔的前景。培养单片机应用人才,特别是工程技术中普及单片机知识 有着重要的现实意义。 单片机即单片微型计算机,又称为微控制器,它的体积小,功能强,可靠 性好,价格又便宜,成为传统工业技术改造和新产品更新换代的理想品种,具有 广阔的发展前景,其中最具有代表性的就是i n t e l 公司的8 0 5 1 系列单片机,典型 产品为8 0 5 t 。然而在实际的应用中系统的要求是多方面的,如技术的保密性要求、 系统的成本要求、面市进度的要求、系统对器件特性的其它特殊要求等等,特别 是自主知识产权的保护问题,选购市场上通用的8 0 5 1 产品就不一定合适。本科题 旨在综合系统的整体要求,设计自己系统专有核心芯片。基于这种想法,设计中 就不可能照搬8 0 5 1 产品的原设计,而只能在8 0 5 1 产品的原设计的基础上,对其相 关特性的设计进行必要的改进和取舍,以满足自己的需要。 1 2 论文的主要研究内容 鉴于上述描述的8 0 5 1 的某些不足,尝试改进8 0 5 1 芯片的设计进行下改进。 然而,全定制方法设计一个集成电路芯片所需要的资金投入太多,而且开发周期 长,所需成本实在太高。半定制或门阵列和f p g a 相比也有些严重的缺陷。它既 无法及时面市又没用真正可编程器件固有的灵活性。它也缺少f p g a 的动态可重配 置性。而且,虽然这些器件的开发周期可能l l a s i c 短,但是它们仍不具有f p g a 的及时面市和灵活性优势。 f p g a 设计却有自己独特的优势。在灵活性、降低风险、更及时地面市、更 长的应市时间和更低整体成本上具有优势,低成本的f p g a 系列和a s i c 的价格相差 无几,f p g a 又有可重编程性,因此灵活性是f p g a 的主要优势之一,在设计和支持 工具方面也大大地节省了费用。另外,在f p g a 设计中采用了越来越多各种预验证 的i p 会近一步缩短设计周期。 本文将把精力集中在基于f p g a 的8 0 5 1 核的设计上,讨论了集成电路设计过 程中的一些问题,如代码撰写规范,静态时序分析等。设计中考虑到所选用的f p g a 芯片的引脚数较多,把p o p 3 口的第一功能与第二功能分开,这样,实际上增加 了8 0 5 1 的输入输出口。最后对设计进行仿真,综合,布局布线,给出仿真结果。 1 3 本文结构 本文讨论基于f p g a 的8 0 5 1 的设计,但对传统8 0 5 1 芯片结构应有清楚的了解。 因此本文首先介绍8 0 5 1 芯片的结构。第二部分介绍f p g a 的开发流程,包括:( 1 ) 开发流程( 2 ) 基于多种e d a 工具的f p g a 设计( 3 ) 设计的核心问题,包括v e r i l o g 的编写风格,状态机的编写规范,时序问题和其他注意的问题等等。第三部分介 绍8 0 5 1 核的设计,详细说明各模块的编写及作用,并说明8 0 5 1 指令在各模块中的 执行过程。在此基础上,讨论对原8 0 5 1 内部指令读写时序的改进,使8 0 5 1 3 - 作频 率进一步加快,最后给出仿真过程及结果。第四部分说明f p g a 开发板的制作。最 后介绍用c 语言代替汇编语言进行程序设计,并给出用c 语言编写的验证代码。 2 1 单片机结构 第2 章8 0 5 1 单片机简介 8 0 5 1 单片机包含中央处理器、程序存储器( r o m ) 、数据存储器( r a m ) 、定时 计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控 制总线等三大总线,现在分别加以说明: 中央处理器:中央处理器( c p u ) 是整个单片机的核心部件,是8 位数据宽 度的处理器,能处理8 位二进制数据或代码,c p u 负责控制、指挥和调度整个单元 系统协调工作,完成运算和控制输入输出功能等操作。 数据存储器( r a m ) :8 0 5 1 内部有1 2 8 个8 位用户数据存储单元和1 2 8 个专用 寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户 只能访问,而不能用于存放数据,所以,用户能使用的r a m 只有1 2 8 个,可存放读 写的数据,运算的中间结果或用户定义的字型袭。 程序存储器( r o m ) :8 0 5 1 共有4 0 9 6 个8 位掩膜r o m ,用于存放用户程序,原 始数据或表格。 定时计数器( r o m ) :8 0 5 1 有两个1 6 位的可编程定时计数器,以实现定时 或计数产生中断用于控制程序转向。 并行输入输出( i o ) 口:8 0 5 1 共有4 组8 位i 0 ( p o 、p i 、p 2 芹i i p 3 ) ,用于 对外部数据的传输。 全双工串行口:8 0 5 1 内置一个全双工串行通信口,用于与其它设备间的 串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。 中断系统:8 0 5 1 具备较完善的中断功能,有两个外部中断、两个定时中 断,可满足不同的控制要求,并具有2 级的优先级别选择。 时钟电路:8 0 5 1 内置最高频率达1 2 m h z 的时钟电路,用于产生整个单片机 运行的脉冲时序,但8 0 5 1 单片机需外置振荡电容。 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式, 即哈佛( h a r v a r d ) 结构。i n t e l 的8 0 5 1 系列单片机采用的是哈佛结构的形式,而后 北京工业大学工学硕士学位论文 续产品1 6 位的8 0 9 6 系列单片机则采用普林斯顿结构。 2 28 0 5 1 的引脚说明 8 0 5 1 系列单片机中的8 0 3 1 、8 0 5 l 及8 7 5 1 均采用4 0 p j n 封装的双列直插d i p 结 构,4 0 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4 组8 位共 3 2 个i o 口,中断口线与p 3 口线复用。现在对这些b l 脚的功能加以说明: p i n 2 0 :接地脚。 p i n 4 0 :正电源脚,正常工作或对片内e p r o m 烧写程序时,接+ 5 v 电源。 p i n l 9 :时钟x t a l l 脚片内振荡电路的输入端。 p i n l 8 :时钟x t a l 2 脚,片内振荡电路的输出端。 8 0 5 1 的时钟有两种方式,一种是片内时钟振荡方式,但需在1 8 和1 9 脚外接 石英晶体( 2 - 1 2 m h z ) 和振荡电容,振荡电容的值一般取l o p 一3 0 p 。另外一种是外部 时钟方式,即将x t a l l 按地,外部时钟信号从x t a l 2 脚输入。 i o 引脚:p i n 3 9 一p i n 3 2 为p o 0 一p o 7 输入输出脚,p i n l p i n 8 为p 1 o - p 1 7 输入输出脚,p i n 2 1 - p i n 2 8 为p 2 0 一p 2 7 输入输出脚,p i n l o p i n l 7 为p 3 o p 3 7 输入输出脚,这些输入输出脚的功能说明将在以下内容阐述。 p i n 9 :r e s e t v 。复位信号复用脚,当8 0 5 1 通电,时钟电路开始工作,在r e s e t 引脚上出现2 4 个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数 器p c 指向0 0 0 0 h ,p o - p 3 输出口全部为高电平,堆栈指针写入0 7 h ,其它专用寄存 器被清0 。r e s e t 由高电平下降为低电平后,系统即从0 0 0 0 h 地址开始执行程序。 然而,初始复位不改变r a m ( 包括工作寄存器r o r 7 ) 的状态。8 0 5 1 的复位方式 可以是自动复位,也可以是手动复位。此外,r e s e t v 。还是一复用脚,v 。掉电期 间,此脚可接上备用电源,以保证单片机内部r a m 的数据不丢失。 p i n 3 0 :当访问外部程序器时,a l e ( 地址锁存) 的输出用于锁存地址的低位 字节。而访问内部程序存储器时,a l e 端将有一个i 6 时钟频率的正脉冲信号,这 个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个 特点,当访问外部程序存储器,a l e 会跳过一个脉冲。 p i n 2 9 :当访问外部程序存储器时,此脚输出负脉冲选通信号,p c 的1 6 位 地址数据将出现在p 0 和p 2 口上,外部程序存储器则把指令数据放到p o 口上,f h c p u 第2 章单片机简介 读入并执行。 p i n 3 1 :e a v 。程序存储器的内外部选通线,8 0 5 1 和8 7 5 1 单片机内置有4 k b 的程序存储器,当e a 为高电平并且程序地址小于4 k b 时,读取内部程序存储器指 令数据,两超过4 k b 地址则读取外部指令数据。如果e a 为低电平,则不管地址大 小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8 0 3 1 ,e a 端必 须接地。在编程时。e a v ,脚还需加上2 1 v 的编程电压。 2 38 0 5 1 单片机存储器结构 程序存储器 8 0 5 1 具有6 4 k b 程序存储器寻址空间,它用于存放用户程序、数据和表格等 信息。对于内部无r o m 的8 0 3 1 单片机,它的程序存储器必须外接,空间地址为6 4 k b , 此时单片机的e a 端必须接地,强制c p u 从外部程序存储器读取程序。对于内部有 r o m 的8 0 5 1 等单片机正常运行时则需接高电平,使c p u 先从内部的程序存储中读取 程序,当p c 值超过内部r o m 的容量时,才会转向外部的程序存储器读取程序。 8 0 5 1 片内有4 k b 的程序存储单元,其地址为0 0 0 0 h 0 f f f h ,单片机启动复位 后,程序计数器的内容为0 0 0 0 h ,所以系统将从0 0 0 0 h 单元开始执行程序。但在程 序存储中有些特殊的单元,这在使用中应加以注意:其中一组特殊单元是 0 0 0 0 h 0 0 0 2 h 单元,系统复位后,p c 为0 0 0 0 h ,单片机从0 0 0 0 h 单元开始执行程序, 如果程序不是从0 0 0 0 h 单元开始,则应在这三个单元中存放一条无条件转移指令, 让c p u 直接去执行用户指定的程序。另一组特殊单元是0 0 0 3 h - - - 0 0 2 a h ,这4 0 个单 元各有用途,它们被均匀她分为五段,它们的定义如下: 0 0 0 3 h - - o o o a h 外部中断0 中断地址区0 0 0 b h - - 0 0 1 2 h 定时计数器0 中断地址区 0 0 1 3 h - - o o l k h 外部中断1 中断地址区0 0 1 b h 0 0 2 2 h 定时计数器1 中断地址区 0 0 2 3 h 一0 0 2 a h 串行中断地址区 可见以上的4 0 个单元是专门用于存放中断处理程序的地址单元,中断响应 后,按中断的类型自动转到各自的中断区去执行程序。因此以上地址单元不能用 于存放程序的其他内容,只能存放中断服务程序。但是通常情况下,每段只有8 个地址单元是不能存下完整的中断服务程序的,因而一般也在中断响应的地址区 安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间 北京工业大学工学硕士学位论文 去执行,这样中断响应后,c p u 读到这条转移指令,便转向其他地方去继续执行 中断服务程序。 数据存储器 数据存储器也称为随机存取数据存储器。8 0 5 1 单片机的数据存储器在物理 上和逻辑上都分为两个地址空间,一个是内部数据存储区和一个外部数据存储 区。8 0 5 1 内部r a i d ;k 1 2 8 或2 5 5 个字节的用户数据存储,它们是用于存放执行的中 间结果和过程数据的。8 0 5 1 的数据存储器均可读写,部分单元还可以位寻址。 8 0 5 l 内部r a m 共有2 5 6 个单元,这2 5 6 个单元共分为两部分。其一是地址从 o o h - - 7 f h 单元( 共1 2 8 个字节) 为用户数据r a m 。从8 0 h f f h 地址单元( 也是t 2 8 个字节) 为特殊寄存器( s f r ) 单元。 在o o h 一1 f h 共3 2 个单元中被均匀地分为四块,每块包含八个8 位寄存器,均 以r 旺r 7 来命名,常称这些寄存器为通用寄存器。这四块中的寄存器都称为 r o - r 7 ,那么在程序中怎么区分和使用它们昵? 可以用程序状态字寄存器( p s w ) 来管理它们,c p u 只要定义这个寄存的p s w 的第3 和第4 位( r s o 和r s l ) ,即可选中 这四组通用寄存器。 内部r a m 的2 0 h 一2 f h 单元为位寻址区,既可作为一般单元用字节寻址,也可 对它们的位进行寻址。位寻址区共有1 6 个字节,1 2 8 个位,位地址为o o h - - 7 f h 。 位地址分配如表2 一l 所示,c p u 能直接寻址这些位,执行例如置“1 ”、清0 、求“反”、 转移,传送和逻辑等操作。常称8 0 5 1 具有布尔处理功能,布尔处理的存储空间指 的就是这些位寻址区。 表2 1r a j f 位寻址区地址表 t a b l e2 1g i ta d d r e s so fr a m 单元地址 m s b 位地址l s b 2 f h7 f h7 e h7 d h7 c h7 b h7 a h7 9 h7 8 h 2 e h7 7 h7 6 h7 5 h7 4 h7 3 b7 2 h7 1 h7 0 h 2 d h6 f h 6 e h 6 d h6 c h6 b i t 6 a h 6 9 h6 8 h 2 c h6 7 b6 6 h6 5 h6 4 t 16 3 h6 2 h6 1 h6 0 f 1 2 b h5 f h5 e h 5 d h 5 0 h 5 b h 5 a h5 9 h 5 8 h 2 a h5 7 t5 5 t 15 5 1 i5 4 h5 3 h5 2 h5 1 h5 0 1 1 2 9 h4 f h4 e h4 d h4 c h4 b h4 a h4 9 h 4 8 h 2 8 h4 7 f l4 6 h4 5 j4 4 h4 3 h4 2 h4 l h4 0 h 2 7 h3 f h3 e h3 d h3 c h3 b h3 a h3 9 h3 8 h 2 6 h3 7 h3 6 h3 5 h3 4 1 3 3 i3 2 h3 l h3 0 h 2 5 h2 f h2 e h 2 d h 2 c h2 b h2 a h 2 9 h 2 8 h 2 4 h2 7 h2 6 h2 5 1 - 12 4 h2 3 h2 2 1 2 1 h2 0 h 2 3 h1 f h1 e h1 d hi c hi b hl a h1 9 h1 8 h 2 2 h1 7 h1 6 h 1 5 h1 4 h 1 3 h 1 2 h1 1 h l o h 2 1 ho f ho e ho d h o c ho b ho a h0 9 h 0 8 h 2 0 h0 7 h 0 6 h0 5 h0 4 h0 3 h0 2 ho l ho o h 特殊功能寄存器 特殊功能寄存器( s f r ) :也称为专用寄存器,特殊功能寄存器反映了8 0 5 1 单片机的运行状态。很多功能也通过特殊功能寄存器来定义和控制。 8 0 5 1 有2 0 个特殊功能寄存器,它们被离散地分布在内部r a m 的8 0 h - - f f h 地址 中,这些寄存的功能已作了专门的规定,用户不能修改其结构。表2 2 是特殊功 能寄存器分布一览表。 程序计数器p c ( p r o g r a mc o u n t e r ) :它不属于特殊内部数据存储器块。p c 是 一个1 6 位的计数器,用于存放一条要执行的指令地址,寻址范围为6 4 k b 。p c 有自 动加1 5 能,即完成了一条指令的执行后,其内容自动加l 。p c 本身并没有地址, 因而不可寻址,用户无法对它进行读写,但是可以通过转移、调用、返回等指令 改变其内容,以控制程序按要求去执行。 累加器a c c ( a c c u m u l a t o r ) :是一个最常用的专用寄存器,大部分单操作指 令的一个操作数取自累加器,很多双操作数指令中的个操作数也取自累加器。 加、减、乘、除法运算的指令、运算结果都存放于累加器a 或a b 累加器对中。大 部分的数据操作都会通过累加器a 进行。 ,! 一一,! ,。,一当蚕型兰三耋堡圭耋! i :! 奎。, 一,。, 表2 2 特殊功能寄存器 t a b l e 2 - 2t h er e g i s t e ro fs f r 标识符号地址寄存器名称 a c co e o h 累加器 bo f o h b 寄存器 p s wo d o h 程序状态字 s p8 1 h 堆栈指针 d p t r8 2 h 、8 3 h 数据指针( 1 6 位) 含d p l 和d p h i eo a 8 h 中断允许控制寄存器 i po b 8 h中断优先控制寄存器 p o8 0 hi o n o 寄存器 p 19 0 hi o h1 寄存器 p 2o a o hi 0e 3 2 寄存器 p 3o b o h i o d 3 寄存器 p c o n8 7 h 电源控制及波特率选择寄存器 s c o n 9 8 h 串行日控制寄存器 s b u f9 9 h 串行数据缓冲寄存器 t c o n8 8 h定时控制寄存器 t m o d 8 9 t 定时器方式选择寄存器 t l o8 a & 定时器0 低8 位 t h o8 c i 定时器0 高8 位 t l l 8 b h定时器1 低8 位 t h l8 d h 定时器l 高8 位 寄存器b :在乘除法指令中,乘法指令中的两个操作数分别取自累加嚣a 和 寄存器b ,其结果存放于a b 寄存器对中。除法指令中,被除数取自累加器a ,除数 取自寄存器b ,结果商存放于累加器a ,余数存放于寄存器b 中。 程序状态字:程序状态字是一个8 位寄存器,用于存放程序运行的状态信息, 这个寄存器的一些位可由软件设置,有些位则由硬件运行时自动设置。其中p s w 1 第2 章单片机简介 是保留位,未使用。表2 3 是它的功能说明,并对各个位的定义介绍如下: 表2 3 程序状态字 t a b e2 3t h es t a t ew o r do f8 0 5 】 位序 p s w 7p s w 6p s w 5p s w 4p s w 3p s w 2p s w 1p s w 0 位标志 c ya cf or s lr s oo vp p s w 7 ( c y ) :进位标志位,此位有两个功能:一是存放执行某写算数运算 时,存放进位标志,可被硬件或软件置位或清零。二是在位操作中作累加位使用。 p s w 6 ( a c ) :辅助进位标志位,进行加、减运算时当有低4 位向高4 位进位 或借位时,a c 置位,否则被清零。a c 辅助进位位也常用于十进制调整。 p s w 5 ( f o ) :用户标志位,供用户设置的标志位。 p s w 4 、p s w 3 ( r s l 和r s o ) :寄存器组选择位。 p s w 。2 ( o r ) :溢出标志。带符号加减运算中,超出了累加器a 所能表示的符 号数有效范围( 一1 2 8 + 1 2 7 ) 时,即产生溢出,o v = 1 。表明运算结果错误。如果 o v = o ,表明运算结果正确。 执行加法指令a d d 时,当位6 向位7 进位,而位7 不向c 进位时,o v = i 。或者位 6 不向位7 进位,而位7 向c 进位时,同样o v = i :执行乘法指令时,当乘积超过2 5 5 , o v = l 。乘积在a b 寄存器对中。若o v = o ,则说明乘积没有超过2 5 5 ,乘积只在累加 器a 中:执行除法指令时,当o v = l 表示除数为o ,运算不被执行。 p s w 0 ( p ) :奇偶校验位。声明累加器a 的奇偶性,每个指令周期都由硬件 来置位或清零,若值为l 的位数奇数,则p 置位,否则清零。 数据指针( d p t r ) :数据指针为1 6 位寄存器,编程时,既可以按1 6 位寄存器 来使用,也可以按两个8 位寄存器来使用,即高位字节寄存器d p h 和低位字节d p l 。 d p t r 主要是用来保存1 6 位地址,当对6 4 k b 5 b 部数据存储器寻址时,可作为闻址寄 存器使用,此时,使用如下两条指令: m o v xa , d p t r m o v x d p t r ,a 在访问程序存储器时,d p t r 可用作基址寄存器,采用基址+ 变址寻址方式访 问程序存储器,这条指令常用于读取程序存储器内的表格数据。 m o v ea , a + d p t r 北京工业大学工掌硕士学位论文 堆栈指针s p ( s t a c kp o i n t e r ) :堆栈是一种数据结构,它是一个8 位寄存器, 它指示堆栈顶部在内部r a m 中的位置。系统复位后,s p 的初始值为0 7 h ,使得堆栈 实际上是从0 8 h 开始的。但从r a m 的结构分布中可知,0 8 h l f h 隶属1 3 工作寄存 器区+ 若编程时需要用到这些数据单元,必须对堆栈指针s p 进行初始化,原则上 设在任何一个区域均可,但一般设在3 0 h 一1 f h 之间较为适宜。 数据写入堆栈称为入栈( p u s h ,也称作插入运算或压入) ,从堆栈中取出数 据称为出栈( p o p ,也称为删除运算或弹出) ,堆栈的最主要特征是“后进先出” 规则,即最先入栈的数据放在堆栈的最底部,而最后入栈的数据放在栈的顶部, 因此,最后入栈的数据出栈时则是最先的。 堆栈的设立是为中断操作和子程序的调用而用于保存数据的,即常说的断 点保护和现场保护。微处理器无论是在转入子程序和中断服务程序的执行,执行 完后,还是要回到主程序中来,在转入子程序和中断服务程序前,必须先将现场 的数据进行保存,否则返回时,c p u 并不知道原来的程序执行到哪一步,原来的 中间结果如何。所以在转入执行其它子程序前,先将需要保存的数据压入堆栈中 保存,以备返回时再复原当时的数据,供主程序继续执行。 8 0 5 1 的堆栈是在r a m 中开辟的,即堆栈要占据一定的r a m 存储单元。同时8 0 5 1 的堆栈可以由用户设置,s p 的初始值不同,堆栈的位置就不一定,不同的设计人 员,使用的堆栈区不同,不同的应用要求,堆栈要求的容量也有所不同。堆栈的 操作只有两种,即进栈和出栈,但不管是向堆栈写入数据还是从堆栈中读出数据, 都是从栈顶单元进行的,s p 就是即时指示出栈项的位置( 即地址) 。在子程序调 用和中断服务程序响应的开始和结束期间,c p u 都是根据s p 指示的地址与相应的 r a m 存储单元交换数据。 堆栈的操作有两种方法:其一是自动方式,即在中断服务程序响应或子程 序调用时,返回地址自动进栈。当需要返回执行主程序时,返回的地址自动交给 p c ,以保证程序从断点处继续执行,这种方式是不需要编程人员干预的。第二种 方式是人工指令方式,使用专有的堆栈操作指令进行进出栈操作,也只有两条指 令:进栈为p u s h 指令,在中断服务程序或子程序调用时作为现场保护;出栈操作 p o p 指令,用于子程序完成时为主程序恢复现场。 i 0 口专用寄存器( p 0 、p 1 、p 2 、p 3 ) :i o 口寄存器p o 、p l 、p 2 和p 3 分另q 是 8 0 5 1 单片机的四组i 0 口锁存器。8 0 5 1 单片机并没有专门的i 0 1 3 操作指令,而是 第2 覃单片机偷介 把i 0 口也当作一般的寄存器来使用,数据传送都统一使用l d o v 指令来进行,这样 的好处在于四组i o 口还可以当作寄存器直接寻址方式参与其他操作。 定时计数器( t l o 、t h o 、t l l 和t h l ) :8 0 5 1 单片机中有两个1 6 位的定时计 数器t o 和t 1 ,它们由四个8 位寄存器组成的,两个1 6 位定时计数器却是完全独立 的。可以单独对这四个寄存器进行寻址,但不能把t o 和t 1 当作1 6 位寄存来使用。 定时计数器方式选择寄存器( t m o d ) :t m o d 寄存器是一个专用寄存器,用于 控制两个定时计数器的工作方式,t m o d 可以用字节传送指令设置其内容,但不能 位寻址,各位的定义如表2 - 4 所示。 表2 4 定时计数器工作方式控制寄存器删0 d t a b l e2 - 4 t h ed e f i n i t i o no ft m o d 位序d 7 0 6d 5d 4d 3d 2d 1 0 0 位标志 g a t e c t m 1m og 盯e c t m 1m o 定时器定时计数器1定时计数器0 串行数据缓冲器( s b u f ) :用来存放需发送和接收的数据,它由两个独立的 寄存器组成,一个是发送缓冲器,另一个是接收缓冲器,要发送和接收的操作其 实都是通过串行数据缓冲器进行。 其他控制寄存器( t m o d ) 除了以上简述的几个专用寄存外,还有i p 、i e 、t c o n 、 s c o n 和p c o n 等几个寄存器,这几个控制寄存器主要用于中断和定时的,将在8 0 5 1 定时器和中断系统中说明。 2 48 0 5 1 单片机的指令时序 时序是用定时单位来描述的,8 0 5 1 的时序单位有四个,它们分别是节拍、 状态、机器周期和指令周期,接下来分别加以说明。 节拍与状态: 把振荡脉冲的周期定义为节拍( 为方便描述,用p 表示) ,振荡脉冲经过二 分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态 ( 用s 表示) ,这样一个状态就有两个节拍,前半周期相应的节拍定义为1 ( p 。) , 后半周期对应的节拍定义为2 ( p 。) 。 北京工业大学工学硕士学位论文 机器周期: 8 0 5 1 有固定的机器周期,规定一个机器周期有6 个状态,分别表示为s 卜s 6 , 而一个状态包含两个节拍,那么个机器周期就有1 2 个节拍,可以记着s 1 p i 、 s 1 p 2 s 6 p 1 、$ 6 p 2 ,一个机器周期共包含1 2 个振荡脉冲,即机器周期就是振荡 脉冲的1 2 分频,显然,如果使用6 m h z 的时钟频率,一个机器周期就是2 u s ,而如 使用1 2 m i - l z 的时钟频率,一个机器周期就是l u s 。 指令周期: 执行一条指令所需要的时间称为指令周期,8 0 5 1 的指令有单字节、双字节 和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器周期不相 同,可能包括一到四个不等的机器周期。 8 0 5 1 的指令时序: 8 0 5 1 指令系统中,按它们的长度可分为单字节指令、双字节指令和三字节指 令。执行这些指令需要的时间是不同的,也就是它们所需的机器周期是不同的, 有下面几种形式:单字节指令单机器周期;单字节指令双机器周期:双字节指令 单机器周期;双字节指令双机器周期;三字节指令双机器周期;单字节指令四机 器周期( 如单字节的乘除法指令) 。 单字节单周期指令:单字节单周期指令只进行一次读指令操作,当第二 个月脯号有效时,p c 并不加1 ,读出的还是原指令,属于一次无效的读操作。 双字节单周期指令:这类指令两次的脯号都是有效的,只是第一个a l e 信号有效时读的是操作码,第二个爿雅号有效时读的是操作数。 单字节双周期指令:两个机器周期需进行四次读指令操作,但只有次 读操作是有效的,后三次的读操作均为无效操作。 单字节双周期指令有一种特殊的情况,像m o v x 这类指令,执行这类指令时, 先在r o m 中读取指令,然后对外部数据存储器进行读或写操作,头一个机器周期 的第一次读指令的操作码为有效,而第二次读指令操作则为无效的。在第二个指 令周期时,则访问外部数据存储器,这时,月雅号对其操作无影响,即不会再 有读指令操作动作。 外部程序存储器( r o m ) 读时序 a 0 5 1 外部程序存储器读时序图时p 0 口提供低8 位地址,p 2 日提供高8 位地址, s 2 结束前,p o 口上的低8 位地址是有效的,之后出现在p o 口上的就不再是 6 8 位的 第2 章单片机简介 地址信号,而是指令数据信号。当然地址信号与指令数据信号之间有一段缓冲的 过度时间,这就要求在s 2 期间必须把低8 位的地址信号锁存起来,这时是用a l e 选通脉冲去控制锁存器把低8 位地址予以锁存,p 2 口只输出地址信号,而没有指 令数据信号。整个机器周期地址信号都是有效的,因雨无需锁存地址信号。 从外部程序存储器读取指令,必须有两个信号进行控制,除了上述的彳雅 号,还有一个p s e n ( 外部r o m 读选通脉冲) 。尸5 孙从$ 3 p 1 开始有效,直到将地址信 号送出和外部程序存储器的数据读入c p u 后方才失效,接着从$ 4 p 2 开始执行第二 个读指令操作。 外部数据存储器( r a m ) 读时序 从r o m 中读取需执行的指令,而c p u 对外部数据存储的访问是对r a m 进行数据 的读或写操作,属于指令的执行周期,读或写是两个不同的机器周期,但他们的 时序却是相似的,只对r a m 的读时序进行分析。 上一个机器周期是取指阶段,是从r o m 中读取指令数据,接着的下个周期才 开始读取外部数据存储器r a m 中的内容。 在s 4 结束后,先把需读取r a m 中的地址放到总线上,包括p o 口上的低8 位地 址a o a 7 和p 2 口上的高8 位地址a 8 一h 1 5 。当r d 选通脉冲有效时,将r a m 的数据通过 p 0 数据总线读进c p u 。第二个机器周期的舭雅号仍然出现,进行一次外部r o m 的 读操作,但是这一次的读操作属于无效操作。 对外部r a m 进行写操作时,c p u 输出的则是g r ( 写选通信号) ,将数据通过p o 数据总线写入外部存储中。 2 58 0 5 1 单片机输入输出口 8 0 5 1 有4 组8 位i o 口:p o 、1 1 、p 2 n p 3 口,p l 、p 2 和p 3 为准双向口,p 0 口则 为双向三态输入输出口,下面分别介绍这几个口线: - p o ll 和p 2 口:p o l l 和p 2 口电路中包含一个数据输出锁存器和两个三态数 据输入缓冲器,另外还有一个数据输出的驱动和控制电路。这两组口线用来作为 c p u 与外部数据存储器、外部程序存储器和r o 扩展口,而不能像p l 、p 3 直接用作 输出口。它们一起可以作为外部地址总线,p o 口身兼两职,既可作为地址总线, 也可作为数据总线。 北京t 业大学工学硕士学位论文 p 2 口作为外部数据存储器或程序存储器的地址总线的高8 位输出口 a b 8 一a b l 5 ,p o d 由爿础通作为地址总线的低8 位输出e i a b 0 一a b 7 。外部的程序存 储器由一蜴惟i 号选通,数据存储器则由w r 和r d 读写信号选通,因为2 ”= 6 4 k ,所以 8 0 5 1 最大可外接6 4 k b 的程序存储器和数据存储器。 p 1 口:p 1 口为8 位准双向口,每一位均可单独定义为输入或输出口,当作 为输入口时,1 写入锁存器,q ( 非) = o ,内上拉电阻将电位拉至“1 ”,此时该口输 出为1 ,当o 写入锁存器,q ( 非) = l ,输出则为0 。 作为输入口时,锁存器置l ,q ( 非) = 0 ,此时该位既可以把外部电路拉成低 电平,也可由内部上拉电阻拉成高电平,正因为这个原因,p 1 口常称为准双向口。 需要说明的是,作为输入口使用时,有两种情况,其一是:首先是读锁存器的内 容,进行处理后再写到锁存器中,这种操作即读一修改写操作,像j b c ( 逻辑判 断) 、c p l ( 取反) 、i n c ( 递增) 、d e c ( 递减) 、a n l ( 与逻辑) 和o r l ( 逻辑或) 指令均属 于这类操作。其二是:读p l 口线状态时,打开三态f - l g 2 ,将外部状态读入c p u 。 p 3 口:p 3 口为准双向口,为适应引脚的第二功能的需要,增加了第二功 能控制逻辑,在真正的应用电路中,第二功能显得更为重要。由于第二功能信号 有输入输出两种情况,分别加以说明。p 3 口的输入输出及p 3 口锁存器、中断、定 时计数器、串行口和特殊功能寄存器有关,p 3 口的第一功能和p 1 口一样可作为 输入输出端口,同样具有字节操作和位操作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论