1 / 36

实例解读 51 单片机完全学习与应用 All you need to know about the 8051 microcontroller

实例解读 51 单片机完全学习与应用 All you need to know about the 8051 microcontroller. 杨欣 Yang X 张延强 Zhang Y 编著 莱 · 诺克斯 Nokes L 王玉凤 Wang Y 刘湘黔 Liu X 主审 电子工业出版社 2011.2. 第 7 章 解剖单片机. www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《 实例解读 51 单片机完全学习与应用 》 All you need to know about the 8051 microcontroller

arnav
Download Presentation

实例解读 51 单片机完全学习与应用 All you need to know about the 8051 microcontroller

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 实例解读51单片机完全学习与应用All you need to know about the 8051 microcontroller 杨欣Yang X 张延强Zhang Y 编著 莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X 主审 电子工业出版社 2011.2

  2. 第7章 解剖单片机 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  3. 第7章 解剖单片机 AT89S51单片机的内部结构 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  4. 第7章 解剖单片机 7.1 ■单片机的功耗 7.1.1 运行功耗 在时钟频率较高时,如表中的4.0MHz,单片机运算速度较快,相应的1.25mA工作电流比在时钟频率为1.0MHz时的550µA工作电流要高。 12MHz下的运行功耗达25mA。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  5. 第7章 解剖单片机 7.1.2 I/O口驱动功耗 I/O口都会使能驱动电路去控制功率较大的外设,如蜂鸣器、电机等。根据AT89S51单片机的技术手册,其I/O口的输出电流不能超过15mA。所以在谈I/O口驱动功耗时,我们更多关注的是外设通过驱动电路所消耗的功率。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  6. 第7章 解剖单片机 7.2 ■单片机内部结构 7.2.1从I/O口到内部结构 比较一下图(a)和(b),前者显示出4根数据线:读锁存器、内部总线、写锁存器、读管脚。这4根数据线与单片机内部结构中的总线相连。而后者则用一个双向箭头()来表示这4根数据线,说明锁存器与总线之间的关系。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  7. 第7章 解剖单片机 7.2.1从I/O口到内部结构 可把整个P1口都抽象出一个结构框图,如图示,其中把8位I/O口的独立结构抽象到了P1口锁存器和P1口驱动两个方框中,这与图7-1所示的P0、P1、P2、P3口结构是一致的。由于I/O口都是双向的,所有的数据线都使用双向箭头。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  8. 第7章 解剖单片机 7.2.2数据在内部交换 举例:RAM是单片机的随机访问存储器,用于存储运行过程中的数据。假设RAM中地址30H上存储了数据“3CH”,现在单片机执行指令“MOV A,30H”,之后,RAM中地址30H上的数据3CH“跑”到总线上,而累加器A根据指令要求,从总线上接收这个数据,执行完毕后,A=3CH。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  9. 第7章 解剖单片机 7.2.3算术逻辑单元(ALU) ALU为“进行算术运算和逻辑运算的处理单元”。它能进行加、减法等算术运算,也能做与、或、异或等逻辑运算。ALU就是单片机的“CPU”,ALU的输入端A和B,它们的数据都来自总线,经过ALU运算后,结果通过R又输出到总线上。在运算过程中,ALU通过输出D向程序状态字PSW输出状态,PSW会随着ALU的运算发生相应的变化。 如执行加法指令ADD时,当最高位有进位时,PSW的进位标志C就被置1,这都归功于ALU通过D向PSW的C位输出高电平。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  10. 第7章 解剖单片机 7.3 ■单片机的程序存储器 7.3.1整体结构 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  11. 第7章 解剖单片机 7.3.2程序下载到哪里? 以.HEX为后缀的执行代码文件可通过下载线下载到单片机中(4.4节)。如果用记事本打开执行代码文件会得到一串十六进制数,其中包含了每条指令的执行代码。比如指令“MOV A,#88H”执行代码为“74”、“88”,其他指令都可从附录C中找到相应的执行代码。 执行代码通过下载线下载到了单片机的片内ROM中。因为片内ROM中下载的是程序,所以也称这个片内ROM为片内程序存储器。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  12. 第7章 解剖单片机 7.3.3片内程序存储器 AT89S51单片机的片内程序存储器容量为4K bytes,即4×1024=4096 bytes。这4096 bytes片内程序存储器可用地址0000H~0FFFH来指向。在我们通过下载线往单片机下载程序时,执行代码将从0000H开始,被依次存储到单片机中。如图示的执行代码,存储到0000H里的是74H,即“0111 0100”;0001H里的是88H,即“1000 1000”。按照这种方法直到程序全部下载完毕,根据程序的长短不同,程序存储器被占用的空间多少也就不同。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  13. 第7章 解剖单片机 7.3.4程序计数器PC 程序计数器PC,它用于指示单片机下一条将要执行的代码的地址。当单片机上电复位时,PC=0000H,即指向程序存储器中的0000H,单片机就把0000H上的代码取出执行。之后PC自动增加1,变成0001H,如图示,接着单片机就执行0001H地址上的代码。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  14. 第7章 解剖单片机 7.3.4程序计数器PC 由于程序计数器PC是个两个字节(16位)的寄存器,于是受PC的制约,AT89S51单片机最大的寻址范围是0000H~FFFFH,共64K bytes。也就是说,除了AT89S51单片机片内的4K bytes程序存储器(地址0000H~0FFFH)外,单片机能寻址的外部扩展的程序存储器空间最大为64 K bytes -4 K bytes =60K bytes,即地址1000H~FFFFH。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  15. 第7章 解剖单片机 7.3.5是片内还是片外程序存储器? 当接高电平时,单片机复位时读取片内程序存储器中的程序,即从PC=0000H开始,依次读取0000H~0FFFH上的程序。当PC增加到0FFFH时,PC再增加1等于1000H,单片机将自动转到片外程序存储器上执行其中的程序。而当接低电平时,单片机则完全读取片外程序存储器中的程序,即从片外程序存储器中的0000H开始,依次读取程序来执行。由于受到程序计数器PC的位数限制,读取片内或片外程序存储器的最大地址范围为0000H~FFFFH。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  16. 第7章 解剖单片机 7.4 ■单片机的数据存储器 7.4.1片内数据存储器 单片机的数据存储器也有片内和片外之分。片内数据存储器就是单片机中原有的数据存储器,即片内RAM。片内数据存储器可分成三个部分:工作寄存器区、位寻址区、开放区。这三个区都可用来保存单片机运行过程所产生的数据。但片内数据存储器是一个RAM,即随机访问存储器,在掉电后其中的数据将会丢失。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  17. 第7章 解剖单片机 7.4.1片内数据存储器 单片机的128×8-bit的片内数据存储器只有其中的20H~7FH共96个字节(开放区+位寻址区)给我们使用的,而00H~1FH则是工作寄存器区,一般通过工作寄存器R0~R7来使用。AT89S51单片机最大的数据存储器(片内+片外)寻址范围也为0000H~FFFFH,共64K bytes的空间。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  18. 第7章 解剖单片机 7.4.2工作寄存器区(00H ~1FH) 工作寄存器共有8个,分别为R0、R1、R2、R3、R4、R5、R6、R7,前面有许多程序已经涉及工作寄存器。这8个工作寄存器可以用来装载1个字节长度的数据,在程序中可视为一个变量来使用,常常用来作为计数值、显示值等。指令“MOV R0,#24H”,把立即数24H装载到工作寄存器R0中。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  19. 第7章 解剖单片机 7.4.2工作寄存器区(00H ~1FH) 工作寄存器R0~R7指向片内数据存储器中的地址,当单片机上电复位时,R0~R7映射片内数据存储器的00H~07H,即第0组。执行指令“MOV R0,#24H” ,立即数24H装载到R0,实际上被装载到00H地址空间上。执行“MOV R5,#3FH”,那R5映射的片内数据存储器05H地址上即被装载3FH。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  20. 第7章 解剖单片机 7.4.2工作寄存器区(00H ~1FH) 工作寄存器R0~R7除了映射片内数据存储器的地址00H~07H外,还可以映射向其余的地址08H~1FH。工作寄存器可用不同组别来称呼。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  21. 第7章 解剖单片机 7.4.2工作寄存器区(00H ~1FH) AT89551单片机上电复位时工作寄存器默认的组别是第0组,即R0~R7映射00H~07H。如果想改变当前程序使用的工作寄存器组别,可以通过更改程序状态字PSW中的第3位(RS0)和第4位(RS1)。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  22. 第7章 解剖单片机 7.4.3位寻址区(20H~2FH) 片内数据存储器的20H~2FH(共16个字节)为位寻址区,这16个字节共有16×8=128位的空间可进行位寻址。位寻址的意思是可对某一位单独进行操作,比如指令SETB可让位寻址区的任何一位置1,指令CLR可清0位寻址区的任何一位。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  23. 第7章 解剖单片机 7.4.3位寻址区(20H~2FH) 在使用位寻址区时,并不是直接操作20H~2FH这16个地址,而是用图示的映射地址来完成。假如程序中需要把20H上的B0位清0,就需要操作20H上的B0位所映射的地址——00H,于是指令可设计为:“CLR 00H”。再如想把2AH上的B4位置1,指令则为 “SETB 54H”。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  24. 第7章 解剖单片机 7.4.4开放区(30H~7FH) 片内数据存储器的地址30H~7FH是开放给用户使用的空间,用户可以在这段空间里存储单片机运行时产生的数据,也可以读取存储的数据到工作寄存器、累加器等中。例如以下指令实现将累加器A的数据载入33H上,执行过后(33H)=8FH。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  25. 第7章 解剖单片机 7.5 ■单片机的特殊功能寄存器 7.5.1特殊功能寄存器分布图 AT89S51单片机共有26个特殊功能寄存器,位于地址80H~0FFH上。其中有前面使用过的累加器A、程序状态字PSW、P0~P3口等。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  26. 第7章 解剖单片机 7.5.2特殊功能寄存器的功能 AT89S51单片机多个内部功能模块如中断控制、Timer0/1、串行口等都由特殊功能寄存器控制。每个特殊功能寄存器的长度都是1个字节,它们的详细介绍将在随后的章节中详细展开。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  27. 第7章 解剖单片机 7.5.3特殊功能寄存器的字节操作 操作特殊功能寄存器寄存器的过程,实际就是控制单片机充分发挥自身功能的过程。例如指令“MOV P1,#00H”,这条指令把立即数00H从P1口送出去。P1也是特殊功能寄存器的一份子,它的地址为90H。所以指令“MOV P1,#00H”就是对特殊功能寄存器的操作,会让特殊功能寄存器区的(90H)=00H。 以上这种操作我们称为字节操作,因为在执行“MOV P1,#00H”时,P1就像一个符号,实际上立即数是送到P1对应的特殊功能寄存器地址空间上,也就是90H。所以,这和我们往片内数据存储器的开放区某一个地址装载1个字节的数据的过程是一样的。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  28. 第7章 解剖单片机 7.5.4特殊功能寄存器的位操作 某些特殊功能寄存器还支持位操作,比较常用的是置1指令“SETB”和清0指令“CLR”。例如指令“CLR P2.0”将P2.0清0。执行这条指令后,只有P2.0 =0,之相连的发光二极管点亮。而P2.1~P2.7仍然保持原来的状态。 支持位操作的特殊功能寄存器: P0(P0口锁存器) P1(P1口锁存器) P2(P2口锁存器) P3(P3口锁存器) ACC(累加器) B(B寄存器) PSW(程序状态字寄存器) TCON(定时/计数器控制寄存器) SCON(串行口控制寄存器) IE(中断使能寄存器) IP(中断优先控制寄存器) www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  29. 第7章 解剖单片机 7.6 ■应用体验——用取表方式实现流水灯 7.6.1 取表法 要实现流水灯需要在P2口按图示依次输出每一行数据,如果用十六进制表示每一行数据为:FEH、FDH、FBH、F7H、EFH、DFH、BFH、7FH。取表法的思路就是把这些数据预先放在一个数据表中,作为程序的一部分。单片机执行时每次取一个数据从P2口送出,延时后再取下一个数据送出,这样就可以从发光二极管上看到流水灯的效果了。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  30. 第7章 解剖单片机 7.6.1 取表法 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  31. 第7章 解剖单片机 7.6.1 取表法 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  32. 第7章 解剖单片机 7.6.3 体验流水灯 见本书光盘中的视频演示 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  33. 第7章 解剖单片机 7.7 ■ 实例解读——直接驱动七段数码管 7.7.1 需求分析 7.7.2 电路设计 单片机直接驱动七段数码管以200ms为间隔,依次显示0、1、2、3、4、5、6、7、8、9这10个数字。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  34. 第7章 解剖单片机 7.7.3 软件设计 根据表的亮段组合与显示数字的关系,可得到对应I/O口状态与显示数字的关系,比如要显示“5”,显示数据为12H。 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  35. 第7章 解剖单片机 7.7.3 软件设计 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

  36. 第7章 解剖单片机 7.7.3 软件设计 www.circuitfly.com 欢迎访问“电路飞翔网”获取更多信息 《实例解读51单片机完全学习与应用》All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱·诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X

More Related