单片微型计算机原理及其应用电子教案课件.ppt
《单片微型计算机原理及其应用电子教案课件.ppt》由会员分享,可在线阅读,更多相关《单片微型计算机原理及其应用电子教案课件.ppt(172页珍藏版)》请在三一办公上搜索。
1、第一章单片微型计算机概述,本章主要介绍单片机的发展,基本的结构和特点,单片机的应用模式和领域,单片机的供应状态等。单片微型计算机就是将CPU、RAM、ROM、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。因此,一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。,11 单片机的发展概况,综上所述,我们可以把单片机的发展历史划分为四阶段:第一阶段(19761978年):低性能单片机的探索阶段。以Intel公司的MCS-48为代表,采用了单片结构,即在一块芯片内含有8位CPU、定时/计数器、并行I/O口、RAM和ROM等。主要用于
2、工业领域。第二阶段(19781982年):高性能单片机阶段,这一类单片机带有串行I/O口,8位数据线、16位地址线可以寻址的范围达到64K字节、控制总线、较丰富的指令系统等。这类单片机的应用范围较广,并在不断的改进和发展。第三阶段(19821990年):16位单片机阶段。16位单片机除CPU为16位外,片内RAM和ROM容量进一步增大,实时处理能力更强,体现了微控制器的特征。例如Intel公司的MCS-96主振频率为12M,片内RAM为232字节,ROM为8K字节,中断处理能力为8级,片内带有10位A/D转换器和高速输入/输出部件等。第四阶段(1990年):微控制器的全面发展阶段,各公司的产品
3、在尽量兼容的同时,向高速、强运算能力、寻址范围大以及小型廉价方面发展。,12 单片机的结构特点,(1)片内的RAM采用寄存器结构形式,这样可以提高存取的速度;(2)在存储器结构上,严格的将程序存储器ROM和数据存储器RAM在空间上分开;(3)它的引出管脚一般都设计成多功能的;(4)增加了一个全双工的串行接口,以扩充I/O口和外接同步输入和输出设备;(5)有21个特殊功能寄存器; (6) 有丰富的指令系统,内部设置了可以位寻址的位地址空间。,13 单片机的主要品种及系列,一、 4位单片机二、 8位单片机,表格 11 MCS-51系列型号,14 单片机的应用,一、 单片机在仪器仪表中的应用二、 单
4、片机在机电一体化中的应用三、 单片机在智能接口和多机系统中的应用四、 单片机在生活中的应用,第 二 章 MCS-51单片机的结构和原理,本章主要介绍MCS-51系列的8051的基本结构、工作原理、存储器结构、P0、P1、P2、P3四个I/O口的基本工作原理和操作特点。单片机的各种工作方式、单片机的时序等。,21 MCS-51单片机的结构原理,一、 8051单片机的结构,图 21 MCS-51单片机的基本结构,二、 8051单片机的内部结构和工作原理,8051单片机的内部结构框图如图 22 所示,下面分别进行介绍:,图 22 8051的内部结构框图,图 23 8051存储器组织结构,图 24 8
5、051内部RAM位地址区,图 24 8051内部RAM位地址区,表格 22 特殊功能寄存器表,*:可位寻址的特殊功能寄存器,图 25 P0口的位结构,(1) P0口位的结构,(2) P1口位的结构,图 26 P1口的位结构,图 26 P1口的位结构,图 26 P1口的位结构,图 26 P1口的位结构,图 26 P1口的位结构,(3) P2口的位结构,图 27 P2口的结构图,(4) P3口的位结构,图 28 P3口的结构图,(4) P3口的位结构,图 28 P3口的结构图,表格 23 P3口的第二功能表,一、 时钟周期、机器周期和指令周期,图 2-9 基本定时时序关系,22 MCS-51单片机
6、的时序,1时钟周期,图 210 MCS-51的取指/执行时序,2机器周期,3指令周期,二、 MCS-51单片机指令的取指和执行的时序,三、 访问外部ROM和RAM的时序,图 211 访问外部ROM的时序,1访问外部ROM的时序,2访问外部RAM的时序,图 212 访问外部RAM的时序,23 MCS-51单片机的时钟和复位电路,一、 时钟电路,图 213 MCS-51时钟接法,1内部振荡器方式,2外部时钟方式,二、 复位电路及复位状态,1内部复位电路,图 214 8051复位电路结构,2外部复位电路,图 215 复位电路,3复位状态,表格 24 各专用寄存器的复位值,24 MCS-51单片机的低
7、功耗工作方式,一、 电源控制寄存器PCON,三、 掉电方式,二、 等待工作方式,第三章 MSC-51 单片机的指令系统,31 指令系统概述,一、 机器码指令与汇编语言指令,机器码指令:,汇编语言指令:,二、 指令格式,汇编语言格式为:标号: 操作码助记符 目的操作数, 源操作数 ;注释,单字节指令 双字节指令 三字节指令,INC A ADD A,#22H MOV 5EH,4FH,图 3-1 机器码指令格式,32 寻址方式,一、 寄存器寻址,二、 直接寻址,三、 立即寻址,四、 寄存器间接寻址,五、 变址寻址,六、 相对寻址,七、 位寻址,33 MSC-51单片机的指令系统按照指令的功能,可以把
8、MSC-51的111条指令分成五类:l 数据传送类指令(29条)l 算术运算类指令(24条)l 逻辑操作类指令(24条)l 控制转移类指令(17条)l 位操作类指令 (17条),图 3-2 相对寻址过程,第四章 MCS-51单片机的应用程序设计,图 4-1 基本程序结构,41 运算程序,一、 多字节数加法,1多字节无符号数加法,CLR CMOV R0,#40H ;指向加数最低位MOV R1,#5OH ;指向另一加数最低位MOV R2,#04H ;字节数作计数初值LOOP1:MOV A,R0 ;取被加数ADDC A,R1 ;两数相加,带进位MOV R0,AINC R0 ;修改地址INC R1DJ
9、NZ R2,LOOPl ;未加完转LOOP1JNC LOOP2 ;无进位转LOOP2MOV R0,#01HLOOP2:DEC R0RET,2多字节有符号数加法,MOV A,R0 ;复制保存地址指针MOV R2,AMOV A,RMOV R7,ACLR CLOOP1:MOV A,R0ADDC A,R1 ;相加 MOV R0 ,AINC R0INC R1 ;地址指针加1DJNZ R7,LOOP1JB OV,ERR ;若溢出,转溢出处理DEC R0MOV A,R0JNB E7H,LOOP2SETB 07H ;和值为负,置位标志LOOP2:MOV A,R2 ;恢复地址指针MOV R0,ARETERR:
10、;溢出处理RET,SDADD:CLR 07H ;标志位清零,图 4-3 多字节有符号数加法程序流程图,二、 多字节数减法,MOV R0,#40H ;指向被减数最低位MOV R1,#5OH ;指向减数最低位MOV R2,#04H ;字节数CLR CLOOP1:MOV A,R0SUBB A,R1 ;完成一个字节的减法运算MOV R0,AINC R0INC R1DJNZ R2,LOOP1RET,三、 多字节十进制数(BCD码)加法,图 4-4 BCD码多字节加法程序流程图,BCDADD:MOV 20H,R0 MOV 23H,R CLR C LOOP0: MOV A,R0 ;取被加数 ADDC A,R
11、1 ;两数相加 DA A ;十进制调整 MOV R0,A INC R0 ;指针加1 INC R1 DJNZ R,LOOP0 ;作完加法否 MOV R2. #23H JNC RETURN ;有无进位,MOV R0,#01H INC RRETURN:MOV R0,#20H RET,四、 多字节数乘法,ZHENFA: MOV A,R0 MOV B,R1 MUL AB ;(R1)*(R0) MOV R,A ;积的低位送到R MOV R4,B ;积的高位送到R4 MOV A,R0 MOV B,R2 MUL AB ;(R2)*(R0) ADD A,R4 ;(R1)*(R0)的高位加(R2)*(R0)的低位
12、 MOV R4,A ;结果送R4,进位在CY中 MOV A,B ADDC A,#OOH;(R2)*(R0)的高位加低位来的进位 MOV R,A ;结果送R RET,五、 多字节数除法,DV: MOV R7,#08H ;设计数初值DVl: CLR C MOV A,R RLC A MOV R,A MOV A,R6 RLC A ;将(R6)、(R)左移一位 MOV 07H,C ;将移出的一位送07H位保存 CLR C,图 4-5 除法程序流程图,SUBB A,R2 ;余数(高位)减除数 JB O7H,GOU ;若标志位为1,说明够减,JNC GOU ;无借位也说明够减 ADD A,R2 ;否则,恢复
13、余数 AJMP DV2 GOU:INC R ;商上1 DV2:MOV R6,A ;保存余数(高位) DJNZ R7,DVl RET,一、 数据的拼拆,42 数据的拼拆和转换,例4-7 设在30H和31H单元中各有一个8位数据:(30H)=x7x6xx4xx2x1x0(3lH)=y7y6yy4yy2y1y0现在要从30H单元中取出低5位,并从31H单元中取出低3位完成拼装,拼装结果送40H单元保存,并且规定:(40H)=y2y1y0 x4xx2x1x0解:利用逻辑指令ANL、ORL来完成数据的拼拆,程序清单如下:MOV 4OH,3OH ;将x7x0传送到40H单元ANL 4OH,#000111l
14、lB ;将高3位屏蔽掉MOV A,31H ;将y7y0传送到累加器中SWAP A ;将A的内容左移4次RL A ;y2y0移到高3位ANL A,#111000OOB ;将低5位屏蔽掉ORL 4OH,A ;完成拼装任务,二、 数据的转换,1ASCII码与二进制数的互相转换,例4-10 编程实现十六进制数表示的ASC1I代码转换成4位二进制数(1位十六进制数)。解:对于这种转换,只要注意到下述关系便不难编写出转换程序:“字符0”“字符9”的ASCII码值为“30H”“39H”,它们与30H之差恰好为“00H”“09H”,结果均0AH。“字符A”“字符F”的ASCII码值为“41H”“46H”,它们
15、各自减去37H后恰好为“0AH”“0FH”,结果0AH。根据这个关系可以编出转换程序如下,程序以R1作为入口和出口。ASCHIN:MOV A,R1 ;取操作数CLR C ;清进位标志位CSUBB A,#30H ;ASCII码减去30H,实现0-9的转换MOV R1,A ;暂存结果SUBB A,#0AH ;结果是否9?JC LOOP ;若9则转换正确XCH A,R1SUBB A,#07H ;若9则减37HMOV R1,ALOOP: RET,2BCD码与二进制数的转换,图 4-6 BCD码(十进制)转换成二进制数程序流程图,程序清单如下:MAIN:MOV A,R MOV R2,A ;给子程序入口参
16、数 ACALL BCDBIN ;调用子程序 MOV B,#64H MUL AB MOV R6,A XCH A,B MOV R,A MOV A,R4 MOV R2,A ACALL BCDBIN ;调用子程序 ADD A,R6 MOV R4,A MOV A,R ADDC A,#00H MOV R,A RET子程序如下:BCDBIN:MOV A,R2 ANL A,#0F0H ;取高位BCD码,屏蔽低4位 SWAP A MOV B,#0AH MUL AB MOV R,A MOV A,R2 ANL A,#0FH ADD A,R3 ;加低位BCD码 MOV R2,A RET,43 查表程序,使用MOVC
17、A,A+DPTR指令来查表,程序清单如下: MOV DPTR,#BS ;子程序入口地址表首址 RL A ;键码值乘以,MOV R2,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 RK0L ;处理子程序入口地址表 DB RK0H DB RK1L DB RK1H DB RK2L DB RK2H ,44 散转程序,一、 采用转移指令表的散转程序,例4-17 编出要求根据R的内容转向各个操作程序的程序。
18、即当(R)=0,转向OPRO(R)=1,转向OPRl(R)=n,转向OPRn解:程序清单如下:MOV A,RRL A ;分支序号值乘2MOV DPTR ,#BRTABL ;转移指令表首址JMP A+DPTR ;转向形成的散转地址BRTABL:AJMP OPR0 ;转移指令表AJMP OPR1AJMP OPRn,二、 采用地址偏移量表的散转程序,例4-19 编出能按R的内容转向5个操作程序的程序。其对应关系如下:OPRD0:操作程序0OPRD1:操作程序1OPRD2:操作程序2OPRD3:操作程序3OPRD4:操作程序4解:程序清单如下: MOV A,R MOV DPTR,#TAB3 ;指向地址
19、偏移量表首址 MOVC A,A+DPTR ;散转点入口地址在A中 JMP A+DPTR ;转向相应的操作程序入口TAB3: DB OPRDO-TAB3 ;地址偏移量表 DB OPRDl-TAB3,DB OPRD2-TAB3 DB OPRD3-TAB3 DB OPRD4-TAB3,三、 采用转向地址表的散转程序,例4-20 编程:要求根据R的内容转向相应的操作程序中去。设备操作程序的转向地址分别为OPRD0,OPRDl, OPRDn。解:程序清单如下: MOV DPTR,#BRTABL ;指向转向地址表 MOV A,R ADD A,R ;(A)(R)*2 JNC NAND; INC DPH ;(
20、R)*2的进位加到DPHNAND:MOV R,A ;暂存变址值 MOVC A,A+DPTR ;取转向地址高8位 XCH A,R INC A MOVC A,A+DPTR ;取转向地址低8位 MOV DPL,A ;转向地址在DPTR中 MOV DPH,R,CLR A JMP A+DPTR ;转向相应的操作程序BRTABL:DW OPRDO ;转向地址表 DW OPRD1 DW OPRDn,四、 采用“RET”指令的散转程序,例4-21 编出能根据R的内容转向各个操作程序的程序。设该操作程序的转向地址分别为OPRD0,OPRDl, OPRDn。解:程序清单如下: MOV DPTR,#TAB3 ;指向
21、转移地址表 MOV A,R ADD A,R JNC NAND INC DPHNAND:MOV R,A MOVC A,A+DPTR ;取转向地址高8位 XCH A,R INC A MOVC A,A+DPTR ;取转向地址低8位 PUSH A ;转向地址入栈 MOV A,R PUSH A RET ;转向操作程序TAB3:DW OPRD0 ;转向地址表 DW OPRDl DW OPRDn,45 I/O端口控制程序,例4-22 试编出能模拟图4-9中电路的程序。,ORG 0200H D BIT 00H E BIT 01H G BIT 02HLOOP1:ORL P1,#08H ;准备P1.3输入LOOP
22、2:MOV C,P1.3 ;检测K3状态 JC LOOP2 ;若未准备好(K3断),则LOOP2 ORL P1,#03H ;若准备好,则准备输入P1.0和P1.1状态 MOV C,P1.0 ;输入K0状态 MOV D,C ;送入D,MOV C,P1.1 ;输入K1状态 MOV E,C ;送入E ANL C,D ;DE送C MOV G,C ;送入G MOV C,E ORL C,D ;DE送C ANL C,/G ;(DE)(DE) MOV P1.2,C ;输出结果 SJMP LOOP1 ;准备下次模拟 END,46 子程序调用时的参数传递方法,一、 通过寄存器或片内RAM传递参数,例4-23 利用
23、通过寄存器或片内RAM传递参数这种方法编出调用SUBRT子程序的主程序。解:应该是:MAIN :MOV R0,#30H ;传送RAM数据区的起始地址 MOV R7,#0AH ;传送RAM数据区的长度 ACALL SUBRT ;调用清零子程序 SJMP $ ;结束 SUBRT:MOV A,#00H ;清零子程序LOOP:MOV R0,A INC R0 DJNZ R7,LOOP RET,二、 通过堆栈传递参数,例4-25 在HEX单元存有两个十六进制数,试编程分别把它们转换成ASCII码存入ASC和ASC+1单元。解:本题子程序采用查表方法完成一个十六进制数的ASCII码转换,主程序完成入口参数的
24、传递和子程序的两次调用,以满足题目要求。程序清单为: ORG 1200HPUSH HEX ;入口参数压栈ACALL HASC ;求低位十六进制数的ASCII码POP ASC ;出口参数存入ASCMOV A,HEX ;十六进制数送ASWAP A ;高位十六进制数送低4位PUSH ACC ;入口参数压栈ACALL HASC ;求高位十六进制数的ASCII码POP ASC+1 ;出口参数送ASC+1SJMP $ ;原地踏步,结束HASC:DEC SPDEC SP ;入口参数地址送SPPOP ACC ;入口参数送AANL A,#0FH ;取出入口参数低4位ADD A,#07H ;地址调整MOVC A,
25、A+PC ;查相应ASCII码PUSH ACC ;出口参数压栈INC SPINC SP ;SP指向断点地址高8位RET ;返回主程序ASCTABL:DB 0,1,2,3,4,5,6,7DB 8,9,A,B,C,D,E,FEND,三、 利用指针寄存器传递参数,例4-26 编出能实现打印THIS IS AN EXAMPLE的程序。解:将要打印的字符及代码不是放在调用指令之前,而是紧跟在调用指令之后。主程序:MAIN: ACALL PRINT ;调用打印子程序 DBTHIS IS AN EXAMPLE ;要打印的字符及代码 DB OAH,ODH,OOHNEXT: 子程序:PRINT:POP DPH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片 微型计算机 原理 及其 应用 电子 教案 课件
链接地址:https://www.31ppt.com/p-1554471.html