微处理器结构与嵌入式系统设计第二讲讲稿.ppt
《微处理器结构与嵌入式系统设计第二讲讲稿.ppt》由会员分享,可在线阅读,更多相关《微处理器结构与嵌入式系统设计第二讲讲稿.ppt(44页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、微处理器结构与嵌入式系统设计第二讲第一页,讲稿共四十四页哦单片机架构剖析 AT89S51内部架构第二页,讲稿共四十四页哦从IO口到内部结构比较一下图(a)和(b),前者显示出4根数据线:读锁存器、内部总线、写锁存器、读管脚。这4根数据线与单片机内部结构中的总线相连。而后者则用一个双向箭头来表示这4根数据线,说明锁存器与总线之间的关系。第三页,讲稿共四十四页哦可把整个P1口都抽象出一个结构框图,如图示,其中把8位I/O口的独立结构抽象到了P1口锁存器和P1口驱动两个方框中,这与图7-1所示的P0、P1、P2、P3口结构是一致的。由于I/O口都是双向的,所有的数据线都使用双向箭头。第四页,讲稿共四
2、十四页哦内部交换的数据举例:RAM是单片机的随机访问存储器,用于存储运行过程中的数据。假设RAM中地址30H上存储了数据“3CH”,现在单片机执行指令“MOV A,30H”,之后,RAM中地址30H上的数据3CH“跑”到总线上,而累加器A根据指令要求,从总线上接收这个数据,执行完毕后,A=3CH。第五页,讲稿共四十四页哦算术逻辑单元ALUALU为“进行算术运算和逻辑运算的处理单元”。它能进行加、减法等算术运算,也能做与、或、异或等逻辑运算。ALU就是单片机的“CPU”,ALU的输入端A和B,它们的数据都来自总线,经过ALU运算后,结果通过R又输出到总线上。在运算过程中,ALU通过输出D向程序状
3、态字PSW输出状态,PSW会随着ALU的运算发生相应的变化。如执行加法指令ADD时,当最高位有进位时,PSW的进位标志C就被置1,这都归功于ALU通过D向PSW的C位输出高电平。第六页,讲稿共四十四页哦单片机的程序存储器 整体结构第七页,讲稿共四十四页哦程序下载以.HEX为后缀的执行代码文件可通过下载线下载到单片机中。如果用记事本打开执行代码文件会得到一串十六进制数,其中包含了每条指令的执行代码。比如指令“MOV A,#88H”执行代码为“74”、“88”,其他指令都可以找到相应的执行代码。执行代码通过下载线下载到了单片机的片内ROM中。因为片内ROM中下载的是程序,所以也称这个片内ROM为片
4、内程序存储器。第八页,讲稿共四十四页哦片内程序存储器AT89S51单片机的片内程序存储器容量为4K bytes,即41024=4096 bytes。这4096 bytes片内程序存储器可用地址0000H0FFFH来指向。在我们通过下载线往单片机下载程序时,执行代码将从0000H开始,被依次存储到单片机中。如图示的执行代码,存储到0000H里的是74H,即“0111 0100”;0001H里的是88H,即“1000 1000”。按照这种方法直到程序全部下载完毕,根据程序的长短不同,程序存储器被占用的空间多少也就不同。第九页,讲稿共四十四页哦程序计数器(PC)程序计数器PC,它用于指示单片机下一条
5、将要执行的代码的地址。当单片机上电复位时,PC=0000H,即指向程序存储器中的0000H,单片机就把0000H上的代码取出执行。之后PC自动增加1,变成0001H,如图示,接着单片机就执行0001H地址上的代码。第十页,讲稿共四十四页哦由于程序计数器PC是个两个字节(16位)的寄存器,于是受PC的制约,AT89S51单片机最大的寻址范围是0000HFFFFH,共64K bytes。也就是说,除了AT89S51单片机片内的4K bytes程序存储器(地址0000H0FFFH)外,单片机能寻址的外部扩展的程序存储器空间最大为64 K bytes-4 K bytes=60K bytes,即地址10
6、00HFFFFH。第十一页,讲稿共四十四页哦当EA接高电平时,单片机复位时读取片内程序存储器中的程序,即从PC=0000H开始,依次读取0000H0FFFH上的程序。当PC增加到0FFFH时,PC再增加1等于1000H,单片机将自动转到片外程序存储器上执行其中的程序。而当EA接低电平时,单片机则完全读取片外程序存储器中的程序,即从片外程序存储器中的0000H开始,依次读取程序来执行。由于受到程序计数器PC的位数限制,读取片内或片外程序存储器的最大地址范围为0000HFFFFH。第十二页,讲稿共四十四页哦单片机的数据存储器 片内数据存储器单片机的数据存储器也有片内和片外之分。片内数据存储器就是单
7、片机中原有的数据存储器,即片内RAM。片内数据存储器可分成三个部分:工作寄存器区、位寻址区、开放区。这三个区都可用来保存单片机运行过程所产生的数据。但片内数据存储器是一个RAM,即随机访问存储器,在掉电后其中的数据将会丢失。第十三页,讲稿共四十四页哦单片机的1288-bit的片内数据存储器只有其中的20H7FH共96个字节(开放区+位寻址区)给我们使用的,而00H1FH则是工作寄存器区,一般通过工作寄存器R0R7来使用。AT89S51单片机最大的数据存储器(片内片外)寻址范围也为0000HFFFFH,共64K bytes的空间。第十四页,讲稿共四十四页哦 工作寄存器区(00H1FH)工作寄存器
8、共有8个,分别为R0、R1、R2、R3、R4、R5、R6、R7,前面有许多程序已经涉及工作寄存器。这8个工作寄存器可以用来装载1个字节长度的数据,在程序中可视为一个变量来使用,常常用来作为计数值、显示值等。指令“MOV R0,#24H”,把立即数24H装载到工作寄存器R0中。第十五页,讲稿共四十四页哦工作寄存器R0R7指向片内数据存储器中的地址,当单片机上电复位时,R0R7映射片内数据存储器的00H07H,即第0组。执行指令“MOV R0,#24H”,立即数24H装载到R0,实际上被装载到00H地址空间上。执行“MOV R5,#3FH”,那R5映射的片内数据存储器05H地址上即被装载3FH。第
9、十六页,讲稿共四十四页哦工作寄存器R0R7除了映射片内数据存储器的地址00H07H外,还可以映射向其余的地址08H1FH。工作寄存器可用不同组别来称呼。第十七页,讲稿共四十四页哦AT89551单片机上电复位时工作寄存器默认的组别是第0组,即R0R7映射00H07H。如果想改变当前程序使用的工作寄存器组别,可以通过更改程序状态字PSW中的第3位(RS0)和第4位(RS1)。第十八页,讲稿共四十四页哦位寻址区(20H2FH)片内数据存储器的20H2FH(共16个字节)为位寻址区,这16个字节共有168=128位的空间可进行位寻址。位寻址的意思是可对某一位单独进行操作,比如指令SETB可让位寻址区的
10、任何一位置1,指令CLR可清0位寻址区的任何一位。第十九页,讲稿共四十四页哦在使用位寻址区时,并不是直接操作20H2FH这16个地址,而是用图示的映射地址来完成。假如程序中需要把20H上的B0位清0,就需要操作20H上的B0位所映射的地址00H,于是指令可设计为:“CLR 00H”。再如想把2AH上的B4位置1,指令则为“SETB54H”。第二十页,讲稿共四十四页哦开放区(30H7FH)片内数据存储器的地址30H7FH是开放给用户使用的空间,用户可以在这段空间里存储单片机运行时产生的数据,也可以读取存储的数据到工作寄存器、累加器等中。例如以下指令实现将累加器A的数据载入33H上,执行过后(33
11、H)=8FH。第二十一页,讲稿共四十四页哦单片机的特殊功能寄存器 单片机特殊功能寄存器分布AT89S51单片机共有26个特殊功能寄存器,位于地址80H0FFH上。其中有前面使用过的累加器A、程序状态字PSW、P0P3口等。第二十二页,讲稿共四十四页哦 特殊功能寄存器的字节操作操作特殊功能寄存器寄存器的过程,实际就是控制单片机充分发挥自身功能的过程。例如指令“MOV P1,#00H”,这条指令把立即数00H从P1口送出去。P1也是特殊功能寄存器的一份子,它的地址为90H。所以指令“MOV P1,#00H”就是对特殊功能寄存器的操作,会让特殊功能寄存器区的(90H)=00H。以上这种操作我们称为字
12、节操作,因为在执行“MOV P1,#00H”时,P1就像一个符号,实际上立即数是送到P1对应的特殊功能寄存器地址空间上,也就是90H。所以,这和我们往片内数据存储器的开放区某一个地址装载1个字节的数据的过程是一样的。第二十三页,讲稿共四十四页哦实验程序讲解 程序设计程序操作流程如图所示:一开始,令 P0.4=0、P2.0=1,这样,发光二极管D1点亮而D2熄灭。延时500ms使得这个状态保持500ms,接着P0.4=1、P2.0=0,发光二极管D1熄灭而D2点亮,再保持这个状态500ms后回到一开始的D1点亮而D2熄灭。以此循环,发光二极管D1、D2就在不断的交替发光。第二十四页,讲稿共四十四
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微处理器 结构 嵌入式 系统 设计 第二 讲稿
限制150内