


单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,*,单片微型计算机原理及其应用电子教案[1],*,PPT,文档演模板,Office,PPT,单片微型计算机原理及其应用电子教案,2024/12/11,单片微型计算机原理及其应用电子教案[1],第一章,,单片微型计算机概述,本章主要介绍单片机的发展,基本的结构和特点,单片机的应用模式和领域,单片机的供应状态等单片微型计算机就是将CPU、RAM、ROM、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机因此,一块芯片就构成了一台计算机它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机单片微型计算机原理及其应用电子教案[1],1,.,1,单片机的发展概况,综上所述,我们可以把单片机的发展历史划分为四阶段:,,第一阶段(1976~1978年):低性能单片机的探索阶段以Intel公司的MCS-48为代表,采用了单片结构,即在一块芯片内含有8位CPU、定时/计数器、并行I/O口、RAM和ROM等主要用于工业领域第二阶段(1978~1982年):高性能单片机阶段,这一类单片机带有串行I/O口,8位数据线、16位地址线可以寻址的范围达到64K字节、控制总线、较丰富的指令系统等。
这类单片机的应用范围较广,并在不断的改进和发展第三阶段(1982~1990年):16位单片机阶段16位单片机除CPU为16位外,片内RAM和ROM容量进一步增大,实时处理能力更强,体现了微控制器的特征例如Intel公司的MCS-96主振频率为12M,片内RAM为232字节,ROM为8K字节,中断处理能力为8级,片内带有10位A/D转换器和高速输入/输出部件等第四阶段(1990年~):微控制器的全面发展阶段,各公司的产品在尽量兼容的同时,向高速、强运算能力、寻址范围大以及小型廉价方面发展单片微型计算机原理及其应用电子教案[1],1,.,2,单片机的结构特点,,(1)片内的RAM采用寄存器结构形式,这样可以提高存取的速度;,,(2)在存储器结构上,严格的将程序存储器ROM和数据存储器RAM在空间上分开;,,(3)它的引出管脚一般都设计成多功能的;,,(4)增加了一个全双工的串行接口,以扩充I/O口和外接同步输入和输出设备;,,(5)有21个特殊功能寄存器;,,(6) 有丰富的指令系统,内部设置了可以位寻址的位地址空间单片微型计算机原理及其应用电子教案[1],1,.,3,单片机的主要品种及系列,,一、 4位单片机,,二、 8位单片机,,单片微型计算机原理及其应用电子教案[1],表格 1‑1 MCS-51系列型号,,型 号,,,制造技术,,,片内程序存储器,,,片内数据存储器,,,8051AH,,,H MOS,,,ROM (4k),,,128字节,,,8031AH,,,AH MOS,,,无,,,128字节,,,8751H,,,H MOS,,,EPROM(4K),,,128字节,,,80C51,,,CHMOS,,,ROM (4K),,,128字节,,,80C31,,,CHMOS,,,无,,,128字节,,,8051,,,H MOS,,,ROM (8K),,,256字节,,,8031,,,H MOS,,,无,,,256字节,,,,单片微型计算机原理及其应用电子教案[1],1,.,4,单片机的应用,,,一、 单片机在仪器仪表中的应用,,二、 单片机在机电一体化中的应用,,三、 单片机在智能接口和多机系统中的应用,,四、 单片机在生活中的应用,,,,,,,,单片微型计算机原理及其应用电子教案[1],第 二 章,,MCS-51单片机的结构和原理,本章主要介绍MCS-51系列的8051的基本结构、工作原理、存储器结构、P,0,、P,1,、P,2,、P,3,四个I/O口的基本工作原理和操作特点。
单片机的各种工作方式、单片机的时序等单片微型计算机原理及其应用电子教案[1],2.1 MCS-51单片机的结构原理,一、 8051单片机的结构,图 2‑1 MCS-51单片机的基本结构,单片微型计算机原理及其应用电子教案[1],二、 8051单片机的内部结构和工作原理,,8051单片机的内部结构框图如图 2‑2 所示,下面分别进行介绍:,单片微型计算机原理及其应用电子教案[1],,图,2‑2 8051,的内部结构框图,,单片微型计算机原理及其应用电子教案[1],,图,2‑3 8051,存储器组织结构,,单片微型计算机原理及其应用电子教案[1],字节地址,,位 地 址,,,,2FH,,2EH,,2DH,,2CH,,2BH,,2AH,,29H,,28H,,27H,,26H,,25H,,24H,,23H,,22H,,21H,,20H,,,,,,,,,,,,D,7,,,D,6,,,D,5,,,D,4,,,D,3,,,D,2,,,D,1,,,D,0,,,7FH,,,7EH,,,7DH,,,7CH,,,7BH,,,7AH,,,79H,,,78H,,,77H,,,76H,,,75H,,,74H,,,73H,,,72H,,,71H,,,70H,,,6FH,,,6EH,,,6DH,,,6CH,,,6BH,,,6AH,,,69H,,,68H,,,67H,,,66H,,,65H,,,64H,,,63H,,,62H,,,61H,,,60H,,,5FH,,,5EH,,,5DH,,,5CH,,,5BH,,,5AH,,,59H,,,58H,,,57H,,,56H,,,55H,,,54H,,,53H,,,52H,,,51H,,,50H,,,4FH,,,4EH,,,4DH,,,4CH,,,4BH,,,4AH,,,49H,,,48H,,,47H,,,46H,,,45H,,,44H,,,43H,,,42H,,,41H,,,40H,,,3FH,,,3EH,,,3DH,,,3CH,,,3BH,,,3AH,,,39H,,,38H,,,37H,,,36H,,,35H,,,34H,,,33H,,,32H,,,31H,,,30H,,,2FH,,,2EH,,,2DH,,,2CH,,,2BH,,,2AH,,,29H,,,28H,,,27H,,,26H,,,25H,,,24H,,,23H,,,22H,,,21H,,,20H,,,1FH,,,1EH,,,1DH,,,1CH,,,1BH,,,1AH,,,19H,,,18H,,,17H,,,16H,,,15H,,,14H,,,13H,,,12H,,,11H,,,10H,,,0FH,,,0EH,,,0DH,,,0CH,,,0BH,,,0AH,,,09H,,,08H,,,07H,,,06H,,,05H,,,04H,,,03H,,,02H,,,01H,,,00H,,,图,2‑4 8051,内部,RAM,位地址区,,图,2‑4 8051,内部,RAM,位地址区,,单片微型计算机原理及其应用电子教案[1],表格,2‑2,特殊功能寄存器表,,符号,,,单元地址,,,名称,,,位地址,,,符号,,,地址,,,* ACC,,,E0H,,,累加器,,,ACC.7~ACC.0,,,E7H~E0H,,,* B,,,F0H,,,乘法寄存器,,,B.7~B.0,,,F7H~F0H,,,* PSW,,,D0H,,,程序状态字,,,PSW.7~PSW.0,,,D7H~D0H,,,SP,,,81H,,,堆栈指针,,,,,,,,,DPL,,,82H,,,数据存储器指针(低8位),,,,,,,,,DPH,,,83H,,,数据存储器指针(高8位),,,,,,,,,* IE,,,A8H,,,中断允许控制器,,,IE.7~IE.0,,,AFH~A8H,,,* IP,,,B8H,,,中断优先控制器,,,IP.7~IP.0,,,BFH~B8H,,,* P,0,,,80H,,,通道0,,,P,0.7,~P,0.0,,,87H~80H,,,* P,1,,,90H,,,通道1,,,P,1.7,~P,1.0,,,97H~90H,,,* P,2,,,A0H,,,通道2,,,P,2.7,~P,2.0,,,A7H~A0H,,,* P,3,,,B0H,,,通道3,,,P,3.7,~P,3.0,,,B7H~B0H,,,PCON,,,87H,,,电源控制及波特率选择,,,,,,,,,* SCON,,,98H,,,串行口控制,,,SCON.7~SCON.0,,,9FH~98H,,,SBUF,,,99H,,,串行数据缓冲器,,,,,,,,,* TCON,,,88H,,,定时控制,,,TCON.7~TCON.0,,,8FH~88H,,,TMOD,,,89H,,,定时器方式选择,,,,,,,,,TL,0,,,8AH,,,定时器0低8位,,,,,,,,,TL,1,,,8BH,,,定时器1低8位,,,,,,,,,TH,0,,,8CH,,,定时器0高8位,,,,,,,,,TH,1,,,8DH,,,定时器1高8位,,,,,,,,,,*:可位寻址的特殊功能寄存器,,单片微型计算机原理及其应用电子教案[1],,图,2‑5 P,0,口的位结构,,(1) P,0,口位的结构,,单片微型计算机原理及其应用电子教案[1],(2) P,1,口位的结构,,,图,2‑6 P,1,口的位结构,,图,2‑6 P,1,口的位结构,,图,2‑6 P,1,口的位结构,,图,2‑6 P,1,口的位结构,,图,2‑6 P,1,口的位结构,,单片微型计算机原理及其应用电子教案[1],(3) P,2,口的位结构,,,图,2‑7 P,2,口的结构图,,单片微型计算机原理及其应用电子教案[1],(4) P,3,口的位结构,,,图,2‑8 P,3,口的结构图,,单片微型计算机原理及其应用电子教案[1],(4) P,3,口的位结构,,图,2‑8 P,3,口的结构图,,单片微型计算机原理及其应用电子教案[1],表格,2‑3 P,3,口的第二功能表,,I/O口,,,第二功能,,,注 释,,,P,3.0,,,RXD,,,串行口数据接收端,,,P,3.1,,,TXD,,,串行口数据发送端,,,P,3.2,,,INT(————),0,,,外部中断请求0,,,P,3.3,,,INT(————),1,,,外部中断请求1,,,P,3.4,,,T,0,,,定时/计数器0,,,P,3.5,,,T,1,,,定时/计数器1,,,P,3.6,,,WR(———),,,外部RAM写信号,,,P,3.7,,,RD(———),,,外部RAM读信号,,,,,,单片微型计算机原理及其应用电子教案[1],一、 时钟周期、机器周期和指令周期,,图,2-9,基本定时时序关系,,2,.,2 MCS-51,单片机的时序,,单片微型计算机原理及其应用电子教案[1],1.时钟周期,,,图 2‑10 MCS-51的取指/执行时序,2.机器周期,单片微型计算机原理及其应用电子教案[1],,3.指令周期,,二、 MCS-51单片机指令的取指和执行的时序,,三、 访问外部ROM和RAM的时序,,,图,2‑11,访问外部,ROM,的时序,,单片微型计算机原理及其应用电子教案[1],1.访问外部ROM的时序,,2.访问外部RAM的时序,,,图 2‑12 访问外部RAM的时序,单片微型计算机原理及其应用电子教案[1],2.3 MCS-51单片机的时钟和复位电路,,一、 时钟电路,,,图 2‑13 MCS-51时钟接法,单片微型计算机原理及其应用电子教案[1],1.内部振荡器方式,,2.外部时钟方式,,二、 复位电路及复位状态,,1.内部复位电路,,,图 2‑14 8051复位电路结构,,单片微型计算机原理及其应用电子教案[1],2.外部复位电路,,,图,2‑15,复位电路,,单片微型计算机原理及其应用电子教案[1],3.,复位状态,,,,表格,2‑4,各专用寄存器的复位值,,专用寄存器,,,复位值,,,PC,,,0000H,,,ACC,,,00H,,,B,,,00H,,,PSW,,,00H,,,SP,,,07H,,,DPTR,,,0000H,,,P,0,~P,3,,,FFH,,,IP,,,XXX00000B,,,IE,,,0XX00000B,,,TMOD,,,00H,,,TCON,,,00H,,,TH0,,,00H,,,TL0,,,00H,,,TH1,,,00H,,,TL1,,,00H,,,SCON,,,00H,,,SBUF,,,不定,,,PCON(CHMOS),,,0XXX0000B,,,,单片微型计算机原理及其应用电子教案[1],2.4 MCS-51单片机的低功耗工作方式,,一、 电源控制寄存器PCON,,,,,,PCON,,,,,,,,,,,D,7,,,D,6,,,D,5,,,D,4,,,D,3,,,D,2,,,D,1,,,D,0,,,SMOD,,,—,,,—,,,—,,,GF1,,,GF0,,,FD,,,IDL,,,三、 掉电方式,,二、 等待工作方式,,单片微型计算机原理及其应用电子教案[1],第三章 MSC-51 单片机的指令系统,3,.,1,指令系统概述,,一、 机器码指令与汇编语言指令,,机器码指令:,,汇编语言指令:,,二、 指令格式,汇编语言格式为:[标号:] 操作码助记符 [目的操作数,] [源操作数] [;注释],,单片微型计算机原理及其应用电子教案[1],,,,,,,单字节指令,,双字节指令,,三字节指令,,操作码 24H,,,操作数 22H,,,,INC A ADD A,#22H MOV 5EH,4FH,,操作码 04H,,,,操作码 85H,,,源操作数 4FH,,,目的操作数 5EH,,,,,,,,图,3-1,机器码指令格式,,,,单片微型计算机原理及其应用电子教案[1],3.2 寻址方式,,一、 寄存器寻址,,二、 直接寻址,,三、 立即寻址,,四、 寄存器间接寻址,,五、 变址寻址,,六、 相对寻址,,七、 位寻址,,单片微型计算机原理及其应用电子教案[1],,3,.,3 MSC-51,单片机的指令系统,,,,按照指令的功能,可以把MSC-51的111条指令分成五类:,,l,,数据传送类指令(29条),,l,,算术运算类指令(24条),,l,,逻辑操作类指令(24条),,l,,控制转移类指令(17条),,l,,位操作类指令 (17条),,,单片微型计算机原理及其应用电子教案[1],,图 3-2 相对寻址过程,,单片微型计算机原理及其应用电子教案[1],,第四章 MCS-51单片机的应用程序设计,,,图 4-1 基本程序结构,,单片微型计算机原理及其应用电子教案[1],4.1 运算程序,,一、 多字节数加法,,1.,多字节无符号数加法,,CLR C,,MOV R,0,,#40H ;指向加数最低位,,MOV R,1,,#5OH ;指向另一加数最低位,,MOV R,2,,#04H ;字节数作计数初值,,LOOP1:MOV A,@R,0,;取被加数,,ADDC A,@R,1,;两数相加,带进位,,MOV @R,0,,A,,INC R,0,;修改地址,,INC R,1,,DJNZ R,2,,LOOPl ;未加完转LOOP1,,JNC LOOP2 ;无进位转LOOP2,,MOV @R,0,,#01H,,LOOP2:DEC R,0,,RET,,单片微型计算机原理及其应用电子教案[1],2.多字节有符号数加法,MOV A,R,0,;复制保存地址指针,,MOV R,2,,A,,MOV A,R,3,,MOV R,7,,A,,CLR C,,LOOP1:MOV A,@R,0,,ADDC A,@R,1,;相加,,MOV @R,0,,A,,INC R,0,,INC R,1,;地址指针加1,,DJNZ R,7,,LOOP1,,JB OV,ERR ;若溢出,转溢出处理,,DEC R,0,,MOV A,@R,0,,JNB E7H,LOOP2,,SETB 07H ;和值为负,置位标志,,LOOP2:MOV A,R,2,;恢复地址指针,,MOV R,0,,A,,RET,,┇,,ERR:┇ ;溢出处理,,RET,,SDADD:CLR 07H ;标志位清零,,图,4-3,多字节有符号数加法程序流程图,,单片微型计算机原理及其应用电子教案[1],二、 多字节数减法,MOV R,0,,#40H ;指向被减数最低位,,MOV R,1,,#5OH ;指向减数最低位,,MOV R,2,,#04H ;字节数,,CLR C,,LOOP1:MOV A,@R,0,,SUBB A,@R,1,;完成一个字节的减法运算,,MOV @R,0,,A,,INC R,0,,INC R,1,,DJNZ R,2,,LOOP1,,RET,,单片微型计算机原理及其应用电子教案[1],三、 多字节十进制数(BCD码)加法,,,,图,4-4 BCD,码多字节加法程序流程图,,,,,,,,BCDADD:MOV 20H,R,0,,MOV 23H,R,3,,CLR C,,LOOP0: MOV A,@R,0,;取被加数,,ADDC A,@R,1,;两数相加,,DA A ;十进制调整,,MOV @R,0,,A,,INC R,0,;指针加1,,INC R,1,,,DJNZ R,3,,LOOP0 ;作完加法否,,MOV R2. #23H,,JNC RETURN ;有无进位,,MOV@ R,0,,#01H,,INC R,3,,RETURN:MOV R,0,,#20H,,RET,,单片微型计算机原理及其应用电子教案[1],四、 多字节数乘法,,ZHENFA: MOV A,R,0,,MOV B,R,1,,MUL AB ;(R,1,)*(R,0,),,MOV R,3,,A ;积的低位送到R,3,,MOV R,4,,B ;积的高位送到R,4,,MOV A,R,0,,MOV B,R,2,,MUL AB ;(R,2,)*(R,0,),,ADD A,R,4,;(R,1,)*(R,0,)的高位加(R,2,)*(R,0,)的低位,,MOV R,4,,A ;结果送R,4,,进位在CY中,,MOV A,B,,ADDC A,#OOH;(R,2,)*(R,0,)的高位加低位来的进位,,MOV R,5,,A ;结果送R,5,,RET,,单片微型计算机原理及其应用电子教案[1],五、 多字节数除法,,,,DV: MOV R,7,,#08H ;设计数初值,,DVl: CLR C,,MOV A,R,5,,RLC A,,MOV R,5,,A,,MOV A,R,6,,RLC A ;将(R,6,)、(R,5,)左移一位,,MOV 07H,C ;将移出的一位送07H位保存,,CLR C,,图,4-5,除法程序流程图,,SUBB A,R,2,;余数(高位)减除数,,JB O7H,GOU ;若标志位为1,说明够减,,JNC GOU ;无借位也说明够减,,ADD A,R,2,;否则,恢复余数,,AJMP DV2,,GOU:INC R,5,;商上1,,DV2:MOV R,6,,A ;保存余数(高位),,DJNZ R,7,,DVl,,RET,,单片微型计算机原理及其应用电子教案[1],一、,,数据的拼拆,4.2 数据的拼拆和转换,,例4-7 设在30H和31H单元中各有一个8位数据:,,(30H)=x,7,x,6,x,5,x,4,x,3,x,2,x,1,x,0,,(3lH)=y,7,y,6,y,5,y,4,y,3,y,2,y,1,y,0,,现在要从30H单元中取出低5位,并从31H单元中取出低3位完成拼装,,,拼装结果送40H单元保存,并且规定:,,(40H)=y,2,y,1,y,0,x,4,x,3,x,2,x,1,x,0,,解:利用逻辑指令ANL、ORL来完成数据的拼拆,程序清单如下:,,MOV 4OH,3OH ;将x,7,~x,0,传送到40H单元,,ANL 4OH,#000111llB ;将高3位屏蔽掉,,MOV A,31H ;将y,7,~y,0,传送到累加器中,,SWAP A ;将A的内容左移4次,,RL A ;y,2,~y,0,移到高3位,,ANL A,#111000OOB ;将低5位屏蔽掉,,ORL 4OH,A ;完成拼装任务,,单片微型计算机原理及其应用电子教案[1],二、 数据的转换,,1.ASCII码与二进制数的互相转换,,例4-10 编程实现十六进制数表示的ASC1I代码转换成4位二进制数(1位十六进制数)。
解:对于这种转换,只要注意到下述关系便不难编写出转换程序:,,“字符0”~“字符9”的ASCII码值为“30H”~“39H”,它们与30H之差恰好为“00H”~“09H”,,,结果均<0AH字符A”~“字符F”的ASCII码值为“41H”~“46H”,它们各自减去37H后恰好为“0AH”~“0FH”,,,结果>0AH根据这个关系可以编出转换程序如下,程序以R,1,作为入口和出口ASCHIN:MOV A,R,1,;取操作数,,CLR C ;清进位标志位C,,SUBB A,#30H ;ASCII码减去30H,实现0-9的转换,,MOV R,1,,A ;暂存结果,,SUBB A,#0AH ;结果是否>9?,,JC LOOP ;若≤9则转换正确,,XCH A,R,1,,SUBB A,#07H ;若>9则减37H,,MOV R,1,,A,,LOOP: RET,,单片微型计算机原理及其应用电子教案[1],2.BCD码与二进制数的转换,,,图,4-6 BCD,码(十进制)转换成二进制数程序流程图,,单片微型计算机原理及其应用电子教案[1],程序清单如下:,,MAIN:MOV A,R,5,,MOV R,2,,A ;给子程序入口参数,,ACALL BCDBIN ;调用子程序,,MOV B,#64H,,MUL AB,,MOV R,6,,A,,XCH A,B,,MOV R,5,,A,,MOV A,R,4,,MOV R,2,,A,,ACALL BCDBIN ;调用子程序,,ADD A,R,6,,MOV R,4,,A,,MOV A,R,5,,ADDC A,#00H,,MOV R,5,,A,,RET,,子程序如下:,,BCDBIN:MOV A,R,2,,ANL A,#0F0H ;取高位BCD码,屏蔽低4位,,SWAP A,,MOV B,#0AH,,MUL AB,,MOV R,3,,A,,MOV A,R,2,,ANL A,#0FH,,ADD A,R,3,;加低位BCD码,,MOV R,2,,A,,RET,,单片微型计算机原理及其应用电子教案[1],4.3 查表程序,使用MOVC A,@A+DPTR指令来查表,程序清单如下:,,MOV DPTR,#BS ;子程序入口地址表首址,,RL A ;键码值乘以2,,MOV R,2,,A ;暂存A,,MOVC A,@A+DPTR ;取得入口地址低位,,PUSH A ;进栈暂存,,INC A,,MOVC A,@A+DPTR ;取得入口地址高位,,MOV DPH,A,,POP DPL,,CLR A,,JMP @A+DPTR ;转向键处理子程序,,BS: DB RK,0,L ;处理子程序入口地址表,,DB RK,0,H,,DB RK,1,L,,DB RK,1,H,,DB RK,2,L,,DB RK,2,H,,┇ ┇,,单片微型计算机原理及其应用电子教案[1],4.4 散转程序,,一、 采用转移指令表的散转程序,,例4-17 编出要求根据R,3,的内容转向各个操作程序的程序。
即当,,(R,3,)=0,转向OPRO,,(R,3,)=1,转向OPRl,,…,,(R,3,)=n,转向OPRn,,解:程序清单如下:,,MOV A,R,3,,RL A ;分支序号值乘2,,MOV DPTR ,#BRTABL ;转移指令表首址,,JMP @A+DPTR ;转向形成的散转地址,,BRTABL:AJMP OPR0 ;转移指令表,,AJMP OPR1,,…,,AJMP OPRn,,单片微型计算机原理及其应用电子教案[1],二、 采用地址偏移量表的散转程序,,例4-19 编出能按R,6,的内容转向5个操作程序的程序其对应关系如下:,,OPRD0:操作程序0,,OPRD1:操作程序1,,OPRD2:操作程序2,,OPRD3:操作程序3,,OPRD4:操作程序4,,解:程序清单如下:,,MOV A,R,6,,MOV DPTR,#TAB3 ;指向地址偏移量表首址,,MOVC A,@A+DPTR ;散转点入口地址在A中,,JMP @A+DPTR ;转向相应的操作程序入口,,TAB3: DB OPRDO-TAB3 ;地址偏移量表,,DB OPRDl-TAB3,,DB OPRD2-TAB3,,DB OPRD3-TAB3,,DB OPRD4-TAB3,,单片微型计算机原理及其应用电子教案[1],三、 采用转向地址表的散转程序,,例4-20 编程:要求根据R,6,的内容转向相应的操作程序中去。
设备操作程序的转向地址分别为OPRD0,,,OPRDl,… OPRDn解:程序清单如下:,,MOV DPTR,#BRTABL ;指向转向地址表,,MOV A,R,6,,ADD A,R,6,;(A)←(R,6,)*2,,JNC NAND;,,INC DPH ;(R,6,)*2的进位加到DPH,,NAND:MOV R,3,,A ;暂存变址值,,MOVC A,@A+DPTR ;取转向地址高8位,,XCH A,R,3,,INC A,,MOVC A,@A+DPTR ;取转向地址低8位,,MOV DPL,A ;转向地址在DPTR中,,MOV DPH,R,3,,CLR A,,JMP @A+DPTR ;转向相应的操作程序,,BRTABL:DW OPRDO ;转向地址表,,DW OPRD1,,┆,,DW OPRDn,,单片微型计算机原理及其应用电子教案[1],四、 采用“RET”指令的散转程序,,例4-21 编出能根据R,6,的内容转向各个操作程序的程序设该操作程序的转向地址分别为OPRD0,,,OPRDl,… OPRDn。
解:程序清单如下:,,MOV DPTR,#TAB3 ;指向转移地址表,,MOV A,R,6,,ADD A,R,6,,JNC NAND,,INC DPH,,NAND:MOV R,7,,A,,MOVC A,@A+DPTR ;取转向地址高8位,,XCH A,R,7,,INC A,,MOVC A,@A+DPTR ;取转向地址低8位,,PUSH A ;转向地址入栈,,MOV A,R,7,,PUSH A,,RET ;转向操作程序,,TAB3:DW OPRD0 ;转向地址表,,DW OPRDl,,┇,,DW OPRDn,,单片微型计算机原理及其应用电子教案[1],4.5 I/O端口控制程序,,例4-22 试编出能模拟图4-9中电路的程序,ORG 0200H,,D BIT 00H,,E BIT 01H,,G BIT 02H,,LOOP1:ORL P,1,,#08H ;准备P,1.3,输入,,LOOP2:MOV C,P,1.3,;检测K3状态,,JC LOOP2 ;若未准备好(K3断),则LOOP2,,ORL P,1,,#03H ;若准备好,则准备输入P,1.0,和P,1.1,状态,,MOV C,P,1.0,;输入K0状态,,MOV D,C ;送入D,,MOV C,P,1.1,;输入K1状态,,MOV E,C ;送入E,,ANL C,D ;D∧E送C,,MOV G,C ;送入G,,MOV C,E,,ORL C,D ;D∨E送C,,ANL C,/G ;(D∨E)∧(D∧E),,MOV P,1.2,,C ;输出结果,,SJMP LOOP1 ;准备下次模拟,,END,,单片微型计算机原理及其应用电子教案[1],4.6 子程序调用时的参数传递方法,,一、 通过寄存器或片内RAM传递参数,,例4-23 利用通过寄存器或片内RAM传递参数这种方法编出调用SUBRT子程序的主程序。
解:应该是:,,MAIN :MOV R,0,,#30H ;传送RAM数据区的起始地址,,MOV R,7,,#0AH ;传送RAM数据区的长度,,ACALL SUBRT ;调用清零子程序,,SJMP $ ;结束,,SUBRT:MOV A,#00H ;清零子程序,,LOOP:MOV @R,0,,A,,INC R,0,,DJNZ R,7,,LOOP,,RET,,单片微型计算机原理及其应用电子教案[1],二、 通过堆栈传递参数,例4-25 在HEX单元存有两个十六进制数,试编程分别把它们转换成ASCII码存入ASC和ASC+1单元解:本题子程序采用查表方法完成一个十六进制数的ASCII码转换,主程序完成入口参数的传递和子程序的两次调用,以满足题目要求程序清单为:,,ORG 1200H,,PUSH HEX ;入口参数压栈,,ACALL HASC ;求低位十六进制数的ASCII码,,POP ASC ;出口参数存入ASC,,MOV A,HEX ;十六进制数送A,,SWAP A ;高位十六进制数送低4位,,PUSH ACC ;入口参数压栈,,ACALL HASC ;求高位十六进制数的ASCII码,,POP ASC+1 ;出口参数送ASC+1,,SJMP $ ;原地踏步,结束,,HASC:DEC SP,,DEC SP ;入口参数地址送SP,,POP ACC ;入口参数送A,,ANL A,#0FH ;取出入口参数低4位,,ADD A,#07H ;地址调整,,MOVC A,@A+PC ;查相应ASCII码,,PUSH ACC ;出口参数压栈,,INC SP,,INC SP ;SP指向断点地址高8位,,RET ;返回主程序,,ASCTABL:DB ‘0’,‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,,DB ‘8’,‘9’,‘A’,‘B’,‘C’,‘D’,‘E’,‘F’,,END,,单片微型计算机原理及其应用电子教案[1],三、 利用指针寄存器传递参数,,例4-26 编出能实现打印THIS IS AN EXAMPLE的程序。
解:将要打印的字符及代码不是放在调用指令之前,而是紧跟在调用指令之后主程序:,,MAIN: …,,ACALL PRINT ;调用打印子程序,,DB‘THIS IS AN EXAMPLE' ;要打印的字符及代码,,DB OAH,ODH,OOH,,NEXT: …,,子程序:,,PRINT:POP DPH ;把调用指令下面字节的地址弹出,作为数据指针,,POP DPL,,PPPl: MOV A,#OOH,,MOVC A,@A+DPTR ;取出欲打印的字符,,INC DPTR,,JZ PPPEND ;判断是否为结束字符,,PPP2: ;打印程序,,SJMP PPPl ;未完,继续打印,,PPPEND:JMP @A+DPTR ;指向主程序NEXT处,取代返回指令,,单片微型计算机原理及其应用电子教案[1],,第五章 定时/计数器,,,5.1 定时/计数的结构及工作原理,,一、 定时/计数器的结构和原理,,,1.定时/计数器的结构,,,图,5‑1 TMOD,、,TCON,与,T,0,、,T,1,的结构框图,,单片微型计算机原理及其应用电子教案[1],2.定时/计数器的原理,,,图 5‑2 定时/计数器的结构框图,,单片微型计算机原理及其应用电子教案[1],二、 定时/计数器方式寄存器TMOD,,,表格,5‑1,方式选择位意义,,M,1,M,0,,,工作方式,,,功 能 说 明,,,0 0,,,方式0,,,13位计数器,,,0 1,,,方式1,,,16位计数器,,,1 0,,,方式2,,,自动再装入8位计数器,,,1 1,,,方式3,,,定时器0:分成两个8位计数器,,定时器1:停止计数,,,,TMOD格式如下,:,,定时器1,,定时器0,,,,,,,,TMOD,,,,,,,,,,,,,,D,7,,,D,6,,,D,5,,,D,4,,,D,3,,,D,2,,,D,1,,,D,0,,,GATE,,,C/,T(—),,,M,1,,,M,0,,,GATE,,,C/,T(—),,,M,1,,,M,0,,,单片微型计算机原理及其应用电子教案[1],三、 定时控制寄存器TCON,,,定时器控制字TCON的格式如下,:,,,,TCON,,8FH,,,8EH,,,8DH,,,8CH,,,8BH,,,8AH,,,89H,,,88H,,,TF,1,,,TR,1,,,TF,0,,,TR,0,,,IE,1,,,IT,1,,,IE,0,,,IT,0,,,,,单片微型计算机原理及其应用电子教案[1],5.2 定时/计数器的工作方式,,一、 方式0,,,当M,1,M,0,两位为00时,定时/计数器被选为工作方式0,其逻辑结构如图 5‑3 所示。
图,5‑3 T,0,(,或,T,1,),方式,0,结构,,单片微型计算机原理及其应用电子教案[1],二、 方式1,,,图,5‑4 T,0,(,或,T,1,),方式,1,结构,,单片微型计算机原理及其应用电子教案[1],三、 方式2,,,图,5‑5 T,0,(,或,T,1,),方式,1,结构,,单片微型计算机原理及其应用电子教案[1],三、 方式2,,,图 5‑6 T,0,(或T,1,)方式2结构,,单片微型计算机原理及其应用电子教案[1],四、 方式3,,,图,5‑7 T,0,方式,3,下和,T,1,结构,,单片微型计算机原理及其应用电子教案[1],一、 方式0、方式1的应用,,例5-1 选择T,1,方式0用于定时,在P,11,输出周期为1ms的方波,晶振f,osc,=6MHZ根据题意,只要使P,11,每隔500µs取反一次即可得到1ms方波,因而T1的定时时间为,500µs将T,1,设为定时方式0:GATE=0,C/T(—)=0,M,1,M,0,=00;T,0,不用可为任意,只要不使其进入方式3,一般取0即可故TMOD=00H系统复位后TMOD为0,所以不必对TMOD置初值。
下面计算500µs定时T,1,的初值:,,机器周期 T=12/f,osc,=12/6×10,6,=2µs,,设初值为X则: (2,13,-X)×2×10,-6,s =500×10,-6,s,,X=7942D=1111100000110B=1F06H,,因为在作13位计数器用时,TL,1,高3位未用,应写0,X的低5位装入TL,1,的低5位,所以TL,1,=06H;X的高8位应装入TH,1,,所以TH,1,=F8H源程序如下:,,,,,,,,,,,,MOV,,TL,1,,#06H,,;给TL,1,置初值,,,,MOV,,TH,1,,#F8H,,;给TH,1,置初值,,,,SETB,,TR,1,,;启动T,1,,LP1:,,JBC,,TF,1,,LP2,,;查询计数溢出否,,,,AJMP,,LP1,,,,LP2:,,MOV,,TL,1,,06H,,;重装初值,,,,MOV,,TH,1,,F8H,,,,,,CPL,,P,11,,;输出取反,,,,AJMP,,LP1,,;重复循环,,单片微型计算机原理及其应用电子教案[1],二、 方式2的应用,,,例5-2 用定时器1方式2计数,要求每计满100次,将P,1。
0,取反根据题意,外部计数信号由T,1,(P,3.5,)引脚输入,每跳变一次计数器加1,由程序查询TF,1,方式2有自动重装初值的功能,初始化后不必再置初值初值 X=2,8,-100=156D=9CH,,TH,1,=TL,1,=9CH,,TMOD=60H,,源程序如下:,,,,MOV,,TMOD,#60H,,;设置T,1,为方式2,,,,MOV,,TL,1,,#9CH,,;置初值,,,,MOV,,TH,1,,#9CH,,,,,,SETB,,TR,1,,;启动T,1,,DEL:,,JBC,,TF,1,,REP,,;查询计数溢出,,,,AJMP,,DEL,,,,REP:,,CPL,,P,10,,;输出取反,,,,AJMP,,DEL,,,,单片微型计算机原理及其应用电子教案[1],三、 门控位的应用,,,图,5‑8,外部正脉冲宽度测量,,例5-3 利用T,0,门控位测试INT,0,引脚上出现的正脉冲的宽度,并以机器周期数的形式显示在显示器上,根据要求可这样设计程序:将T,0,设定为方式1,GATE设为1,置TR,0,为1一旦INT,0,(P,32,) 引脚上出现高电平即开始计数,直至出现低电平,停止计数,然后读取T,0,的计数值并显示。
测试过程如下:,单片微型计算机原理及其应用电子教案[1],源程序如下:,,BEGIN:,,MOV,,TMOD,# O9H,,;T,0,工作于方式1,GATE置1,,,,MOV,,TL,0,,#00H,,,,,,MOV,,TH,0,;#00H,,,,WAIT1:,,JB,,P,32,,WAIT1,,;等待INT,0,变低,,,,SETB,,TR,0,,;启动T,0,,WAIT2:,,JNB,,P,32,,WAIT2,,;等待正脉冲到,,WAIT3:,,JB,,P,32,,WAIT3,,;等待INT,0,变低,,,,CLR,,TR,0,,;停止T,0,计数,,,,MOV,,R,0,,#DISBUF,,;显示缓冲区首地址送R,0,,,,MOV,,A,TL,0,,;机器周期的存放格式为低位占低地址,高位占高地址,连续4个显示缓冲单元,,,,XCHD,,A,@R,0,,,,,,INC,,R,0,,,,,,SWAP,,A,,,,,,XCHD,,A,@R,0,,,,,,INC,,R,0,,,,,,MOV,,A,TH,0,,,,,,XCHD,,A,@R,0,,,,,,INC,,R,0,,,,,,SWAP,,A,,,,,,XCHD,,A,@R,0,,,,DIS:,,LCALL,,DISUP,,;长调用显示子程序,,,,AJMP,,DIS,,;重复显示机器周期数,,由于定时方式1的16位计数长度有限,被测脉冲高电平宽度只能小于65536个机器周期。
源程序如下,:,,单片微型计算机原理及其应用电子教案[1],第六章 MCS-51单片机的系统扩展,,6,.,1 MCS-51,单片机的引脚定义及最小应用系统,,,一、 8051的引脚定义及功能,,图,6‑1 MCS-51,的引脚图及功能分类图,,单片微型计算机原理及其应用电子教案[1],二、 MCS-51单片机最小应用系统,,,图,6‑2 8051/8751,最小应用系统,,单片微型计算机原理及其应用电子教案[1],6.2 MCS-51单片机外部存储器的扩展,,一、 外部程序存储器的扩展及取指过程,,,图 6‑3 外部程序存储器一般连接方法,单片微型计算机原理及其应用电子教案[1],1.,程序存储器的一般连接方式,,,图,6-4,扩展,8K,字节程序存储器的连线图,,单片微型计算机原理及其应用电子教案[1],2.,典型EPROM扩展电路,,3.,程序存储器E,2,PROM的扩展,,,图,6-5 E,2,PROM,作为程序存储器的扩展图,,单片微型计算机原理及其应用电子教案[1],二、 数据存储器的扩展,,,图,6-6,扩展,2KB,数据存储器的线路图,,单片微型计算机原理及其应用电子教案[1],1,.数据存储器一般的扩展方法,,2.,常用数据存储器的扩展电路,,三、 综合扩展实例,,,图,6-7,扩展,16KB RAM,和,16KB EPROM,,单片微型计算机原理及其应用电子教案[1],,6.3 并行I/O口的扩展,,一、 简单I/O口的扩展,,,图,6-8,简单,I/O,接口扩展电路,,单片微型计算机原理及其应用电子教案[1],二、 可编程I/O口的扩展,,,图,6‑9 8155,的结构和引脚,,单片微型计算机原理及其应用电子教案[1],表格,6‑1 8155,口地址分布,,AD,0,~AD,7,,,选 中 寄 存 器,,,A,7,A,6,A,5,A,4,A,3,,,A,2,,,A,1,,,A,0,,,× × × × ×,,,0,,,0,,,0,,,内部命令寄存器,,,× × × × ×,,,0,,,0,,,1,,,通用I/O口A寄存器,,,× × × × ×,,,0,,,1,,,0,,,通用I/O口B寄存器,,,× × × × ×,,,0,,,1,,,1,,,口C:通用I/O口或控制口,,,× × × × ×,,,1,,,0,,,0,,,定时/计数器的低8位寄存器,,,× × × × ×,,,1,,,0,,,1,,,定时/计数器的高8位寄存器,,,,单片微型计算机原理及其应用电子教案[1],3.,8155与单片机的连接,,,表格,6‑2 8155,的,RAM,和,I/O,口地址分配,,P,2.4,,,P,2.3,,,选择,,,地 址,,,0,,,0,,,RAM,,,E700H~E7FFH (256B),,,0,,,1,,,I/O口,,,EF00H 命令口/状态口,,,EF01H 通用I/O口A,,,EF02H 通用I/O口B,,,EF03H 口C,,,EF04H 计数值低8位,,,EF05H 计数值高8位和计数方式,,,,图,6‑10,扩展一片,8155,的基本方案,,单片微型计算机原理及其应用电子教案[1],4.8155片内RAM的使用,,OK: … ;和为0,读/写正确,,(1)命令寄存器的用法,,表格,6‑3 C,口工作方式,,方式,,位,,,ALTI,,,ALT2,,,ALT3,,,ALT4,,,PC,0,,,输入方式,,,输出方式,,,AINTR(A口中断),,,AINTR(A口中断),,,PC,1,,,ABF(A口缓冲器满),,,ABF(A口缓冲器满),,,PC,2,,,ASTB(A口选通),,,ASTB(A口选通),,,PC,3,,,输出方式,,,BINTR(B口中断),,,PC,4,,,BBF(B口缓冲器满),,,PC,5,,,BSTB(B口选通),,,备注,,,A口B口为基本I/O口,,,A口B口为基本I/O口,,,A口为选通输入方式,,B口为基本I/O口,,,A口、B口为选通,,输入/输出方式,,,,单片微型计算机原理及其应用电子教案[1],,图,6‑12 8155,方式,4,的逻辑结构图,,单片微型计算机原理及其应用电子教案[1],,,,,,,,,,,,,,,,,6.,作定时/计数器用,,,,,,,,,,表,6-4 8155,定时器输出方式,,,,,,,,,M,2,M,1,,,方 式,,,定时器输出方波,,,0 0,,,单个方波,,,,,0 1,,,连续方波,,,,,1 0,,,在终止计数时输出单个脉冲,,,,,1 1,,,连续脉冲,,,,,,单片微型计算机原理及其应用电子教案[1],第七章,,MCS-51系统的串行接口,,7.1 串行通讯概述,,一、 串行通讯的两种基本方式,,1.,异步传送方式,,,,,,,第n个字符(一串行帧),,n+1,,n-1,,,,…,,,P,,,1,,,0,,,D0,,,D1,,,D2,,,D3,,,D4,,,D5,,,D6,,,D7,,,P,,,1,,,0,,,D0,,,…,,,,,,起始位,,,数 据 位,,,校验位 停止位,,,,,,,图,7-2,异步通讯的帧格式,,单片微型计算机原理及其应用电子教案[1],开始,,,,,,,,,,,,结束,,,同步字符,,,同步字符,,,数据段,,,CRC字符,#,1,,,CRC字符,#,2,,,图,7-3,同步传送方式,,二、 波特率,,,图 7-4 串行通讯的制式,单片微型计算机原理及其应用电子教案[1],三、 数据传送的方向,,1.,单工制式,(Simplex),,2.,半双工制式,(Half Duplex),,3.,全双工(Full-duplex)制式,,7.2 MCS-51单片机的串行接口,,一、 MCS-51串行口结构,,,图 7-5 MCS-51串行口组成示意,,单片微型计算机原理及其应用电子教案[1],1.串行口数据缓冲器SBUF,,2.,串行口控制寄存器SCON,,,见表格7-1,,SM0,,位地址,,,9F,,,9E,,,9D,,,9C,,,9B,,,9A,,,99,,,98,,,SCON,,,,,SM1,,,SM2,,,REN,,,TB8,,,RB8,,,TI,,,RI,,,,,,接收中断标志,,,发送中断标志,,,接收数据第9位,,,发送数据第9位,,,接收控制,,,0:禁止接收,,1:允许接收,,,多机通信,,,0:单机对单机,,1:多机通信,,,,,,,,,,,,,,,,,,,,图,7-6,串行口控制寄存器,SCON,,图,7-6,串行口控制寄存器,SCON,,单片微型计算机原理及其应用电子教案[1],3.,特殊功能寄存器PCON,,,PCON主要是为CHMOS型单片机的电源控制设置的专用寄存器,单元地址为87H,不能位寻址。
其格式如,,,图 7-7 所示SMOD,,,—,,,—,,,—,,,GF1,,,GF0,,,PD,,,IDL,,,,,,通用标志位,,空闲控制位,,,0:正常方式,,1:空闲方式,,,掉电控制位,,,0:正常方式,,1:掉电方式,,,波特率选择位,,,SMOD=1时,方式1、2和3的波特率加倍,,,,,,,,,,,,,,,,图,7-7 PCON,各位定义,,单片微型计算机原理及其应用电子教案[1],二、 MCS-51串行的工作方式,,,MCS-51的串行口有四种工作方式,它是由SCON中的SM1和SM0来决定的,如表格 7-1,,表格,7-1,串行口的工作方式,,SM0,,,SMl,,,工作方式,,,方式简单描述,,,波特率,,,0,,,0。