




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用教程经典第一页,共一百六十七页,编辑于2023年,星期五第一章
单片微型计算机概述本章主要介绍单片机的发展,基本的结构和特点,单片机的应用模式和领域,单片机的供应状态等。单片微型计算机就是将CPU、RAM、ROM、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。因此,一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。第二页,共一百六十七页,编辑于2023年,星期五
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年~):微控制器的全面发展阶段,各公司的产品在尽量兼容的同时,向高速、强运算能力、寻址范围大以及小型廉价方面发展。第三页,共一百六十七页,编辑于2023年,星期五1.2单片机的结构特点
(1)片内的RAM采用寄存器结构形式,这样可以提高存取的速度;(2)在存储器结构上,严格的将程序存储器ROM和数据存储器RAM在空间上分开;(3)它的引出管脚一般都设计成多功能的;(4)增加了一个全双工的串行接口,以扩充I/O口和外接同步输入和输出设备;(5)有21个特殊功能寄存器;(6)有丰富的指令系统,内部设置了可以位寻址的位地址空间。第四页,共一百六十七页,编辑于2023年,星期五1.3单片机的主要品种及系列
一、4位单片机二、8位单片机第五页,共一百六十七页,编辑于2023年,星期五表格1‑1MCS-51系列型号型号制造技术片内程序存储器片内数据存储器8051AHHMOSROM(4k)128字节8031AHAHMOS无128字节8751HHMOSEPROM(4K)128字节80C51CHMOSROM(4K)128字节80C31CHMOS无128字节8051HMOSROM(8K)256字节8031HMOS无256字节第六页,共一百六十七页,编辑于2023年,星期五1.4单片机的应用
一、单片机在仪器仪表中的应用二、单片机在机电一体化中的应用三、单片机在智能接口和多机系统中的应用四、单片机在生活中的应用
第七页,共一百六十七页,编辑于2023年,星期五第二章
MCS-51单片机的结构和原理本章主要介绍MCS-51系列的8051的基本结构、工作原理、存储器结构、P0、P1、P2、P3四个I/O口的基本工作原理和操作特点。单片机的各种工作方式、单片机的时序等。第八页,共一百六十七页,编辑于2023年,星期五2.1MCS-51单片机的结构原理一、8051单片机的结构图2‑1MCS-51单片机的基本结构第九页,共一百六十七页,编辑于2023年,星期五二、8051单片机的内部结构和工作原理
8051单片机的内部结构框图如图2‑2所示,下面分别进行介绍:第十页,共一百六十七页,编辑于2023年,星期五图2‑28051的内部结构框图第十一页,共一百六十七页,编辑于2023年,星期五图2‑38051存储器组织结构第十二页,共一百六十七页,编辑于2023年,星期五字节地址位地址
2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20HD7D6D5D4D3D2D1D07FH7EH7DH7CH7BH7AH79H78H77H76H75H74H73H72H71H70H6FH6EH6DH6CH6BH6AH69H68H67H66H65H64H63H62H61H60H5FH5EH5DH5CH5BH5AH59H58H57H56H55H54H53H52H51H50H4FH4EH4DH4CH4BH4AH49H48H47H46H45H44H43H42H41H40H3FH3EH3DH3CH3BH3AH39H38H37H36H35H34H33H32H31H30H2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H1FH1EH1DH1CH1BH1AH19H18H17H16H15H14H13H12H11H10H0FH0EH0DH0CH0BH0AH09H08H07H06H05H04H03H02H01H00H图2‑48051内部RAM位地址区图2‑48051内部RAM位地址区第十三页,共一百六十七页,编辑于2023年,星期五表格2‑2特殊功能寄存器表符号单元地址名称位地址符号地址*ACCE0H累加器ACC.7~ACC.0E7H~E0H*BF0H乘法寄存器B.7~B.0F7H~F0H*PSWD0H程序状态字PSW.7~PSW.0D7H~D0H
SP81H堆栈指针
DPL82H数据存储器指针(低8位)
DPH83H数据存储器指针(高8位)
*IEA8H中断允许控制器IE.7~IE.0AFH~A8H*IPB8H中断优先控制器IP.7~IP.0BFH~B8H*P080H通道0P0.7~P0.087H~80H*P190H通道1P1.7~P1.097H~90H*P2A0H通道2P2.7~P2.0A7H~A0H*P3B0H通道3P3.7~P3.0B7H~B0H
PCON87H电源控制及波特率选择
*SCON98H串行口控制SCON.7~SCON.09FH~98H
SBUF99H串行数据缓冲器
*TCON88H定时控制TCON.7~TCON.08FH~88H
TMOD89H定时器方式选择
TL08AH定时器0低8位
TL18BH定时器1低8位
TH08CH定时器0高8位
TH18DH定时器1高8位
*:可位寻址的特殊功能寄存器第十四页,共一百六十七页,编辑于2023年,星期五图2‑5P0口的位结构(1)P0口位的结构第十五页,共一百六十七页,编辑于2023年,星期五(2)P1口位的结构图2‑6P1口的位结构图2‑6P1口的位结构图2‑6P1口的位结构图2‑6P1口的位结构图2‑6P1口的位结构第十六页,共一百六十七页,编辑于2023年,星期五(3)P2口的位结构图2‑7P2口的结构图第十七页,共一百六十七页,编辑于2023年,星期五(4)P3口的位结构图2‑8P3口的结构图第十八页,共一百六十七页,编辑于2023年,星期五(4)P3口的位结构图2‑8P3口的结构图第十九页,共一百六十七页,编辑于2023年,星期五表格2‑3P3口的第二功能表I/O口第二功能注释P3.0RXD串行口数据接收端P3.1TXD串行口数据发送端P3.2INT(————)0外部中断请求0P3.3INT(————)1外部中断请求1P3.4T0定时/计数器0P3.5T1定时/计数器1P3.6WR(———)外部RAM写信号P3.7RD(———)外部RAM读信号
第二十页,共一百六十七页,编辑于2023年,星期五一、时钟周期、机器周期和指令周期图2-9基本定时时序关系2.2MCS-51单片机的时序第二十一页,共一百六十七页,编辑于2023年,星期五1.时钟周期
图2‑10MCS-51的取指/执行时序2.机器周期第二十二页,共一百六十七页,编辑于2023年,星期五3.指令周期
二、MCS-51单片机指令的取指和执行的时序三、访问外部ROM和RAM的时序
图2‑11访问外部ROM的时序第二十三页,共一百六十七页,编辑于2023年,星期五1.访问外部ROM的时序
2.访问外部RAM的时序
图2‑12访问外部RAM的时序第二十四页,共一百六十七页,编辑于2023年,星期五2.3MCS-51单片机的时钟和复位电路
一、时钟电路
图2‑13MCS-51时钟接法第二十五页,共一百六十七页,编辑于2023年,星期五1.内部振荡器方式
2.外部时钟方式
二、复位电路及复位状态
1.内部复位电路
图2‑148051复位电路结构
第二十六页,共一百六十七页,编辑于2023年,星期五2.外部复位电路
图2‑15复位电路第二十七页,共一百六十七页,编辑于2023年,星期五3.复位状态
表格2‑4各专用寄存器的复位值专用寄存器复位值PC0000HACC00HB00HPSW00HSP07HDPTR0000HP0~P3FFHIPXXX00000BIE0XX00000BTMOD00HTCON00HTH000HTL000HTH100HTL100HSCON00HSBUF不定PCON(CHMOS)0XXX0000B第二十八页,共一百六十七页,编辑于2023年,星期五2.4MCS-51单片机的低功耗工作方式
一、电源控制寄存器PCON
PCOND7D6D5D4D3D2D1D0SMOD———GF1GF0FDIDL三、掉电方式
二、等待工作方式
第二十九页,共一百六十七页,编辑于2023年,星期五
第三章MSC-51单片机的指令系统3.1指令系统概述一、机器码指令与汇编语言指令机器码指令:
汇编语言指令:
二、指令格式汇编语言格式为:[标号:]操作码助记符[目的操作数,][源操作数][;注释]
第三十页,共一百六十七页,编辑于2023年,星期五
单字节指令
双字节指令
三字节指令操作码24H操作数22HINCAADDA,#22HMOV5EH,4FH操作码04H操作码85H源操作数4FH目的操作数5EH
图3-1机器码指令格式
第三十一页,共一百六十七页,编辑于2023年,星期五3.2寻址方式
一、寄存器寻址二、直接寻址三、立即寻址四、寄存器间接寻址五、变址寻址
六、相对寻址
七、位寻址
第三十二页,共一百六十七页,编辑于2023年,星期五3.3MSC-51单片机的指令系统按照指令的功能,可以把MSC-51的111条指令分成五类:l
数据传送类指令(29条)l
算术运算类指令(24条)l
逻辑操作类指令(24条)l
控制转移类指令(17条)l
位操作类指令(17条)
第三十三页,共一百六十七页,编辑于2023年,星期五图3-2相对寻址过程
第三十四页,共一百六十七页,编辑于2023年,星期五
第四章MCS-51单片机的应用程序设计
图4-1基本程序结构
第三十五页,共一百六十七页,编辑于2023年,星期五4.1运算程序一、多字节数加法1.多字节无符号数加法CLRCMOVR0,#40H;指向加数最低位MOVR1,#5OH;指向另一加数最低位MOVR2,#04H;字节数作计数初值LOOP1:MOVA,@R0;取被加数ADDCA,@R1;两数相加,带进位MOV@R0,AINCR0;修改地址INCR1DJNZR2,LOOPl;未加完转LOOP1JNCLOOP2;无进位转LOOP2MOV@R0,#01HLOOP2:DECR0RET第三十六页,共一百六十七页,编辑于2023年,星期五2.多字节有符号数加法MOVA,R0;复制保存地址指针MOVR2,AMOVA,R3MOVR7,ACLRCLOOP1:MOVA,@R0ADDCA,@R1;相加MOV@R0,AINCR0INCR1;地址指针加1DJNZR7,LOOP1JBOV,ERR;若溢出,转溢出处理DECR0MOVA,@R0JNBE7H,LOOP2SETB07H;和值为负,置位标志LOOP2:MOVA,R2;恢复地址指针MOVR0,ARET┇ERR:┇;溢出处理RETSDADD:CLR07H;标志位清零图4-3多字节有符号数加法程序流程图第三十七页,共一百六十七页,编辑于2023年,星期五二、多字节数减法MOVR0,#40H;指向被减数最低位MOVR1,#5OH;指向减数最低位MOVR2,#04H;字节数CLRCLOOP1:MOVA,@R0SUBBA,@R1;完成一个字节的减法运算MOV@R0,AINCR0INCR1DJNZR2,LOOP1RET第三十八页,共一百六十七页,编辑于2023年,星期五三、多字节十进制数(BCD码)加法
图4-4BCD码多字节加法程序流程图BCDADD:MOV20H,R0MOV23H,R3CLRCLOOP0:MOVA,@R0;取被加数ADDCA,@R1;两数相加DAA;十进制调整MOV@R0,AINCR0;指针加1INCR1
DJNZR3,LOOP0;作完加法否MOVR2.#23HJNCRETURN;有无进位MOV@R0,#01HINCR3RETURN:MOVR0,#20HRET第三十九页,共一百六十七页,编辑于2023年,星期五四、多字节数乘法ZHENFA:MOVA,R0MOVB,R1MULAB;(R1)*(R0)MOVR3,A;积的低位送到R3MOVR4,B;积的高位送到R4MOVA,R0MOVB,R2MULAB;(R2)*(R0)ADDA,R4;(R1)*(R0)的高位加(R2)*(R0)的低位MOVR4,A;结果送R4,进位在CY中MOVA,BADDCA,#OOH;(R2)*(R0)的高位加低位来的进位MOVR5,A;结果送R5RET第四十页,共一百六十七页,编辑于2023年,星期五五、多字节数除法DV:MOVR7,#08H;设计数初值DVl:CLRCMOVA,R5RLCAMOVR5,AMOVA,R6RLCA;将(R6)、(R5)左移一位MOV07H,C;将移出的一位送07H位保存CLRC图4-5除法程序流程图SUBBA,R2;余数(高位)减除数JBO7H,GOU;若标志位为1,说明够减
JNCGOU;无借位也说明够减ADDA,R2;否则,恢复余数AJMPDV2GOU:INCR5;商上1DV2:MOVR6,A;保存余数(高位)DJNZR7,DVlRET第四十一页,共一百六十七页,编辑于2023年,星期五一、
数据的拼拆4.2数据的拼拆和转换例4-7设在30H和31H单元中各有一个8位数据:(30H)=x7x6x5x4x3x2x1x0(3lH)=y7y6y5y4y3y2y1y0现在要从30H单元中取出低5位,并从31H单元中取出低3位完成拼装,拼装结果送40H单元保存,并且规定:(40H)=y2y1y0x4x3x2x1x0解:利用逻辑指令ANL、ORL来完成数据的拼拆,程序清单如下:MOV4OH,3OH;将x7~x0传送到40H单元ANL4OH,#000111llB;将高3位屏蔽掉MOVA,31H;将y7~y0传送到累加器中SWAPA;将A的内容左移4次RLA;y2~y0移到高3位ANLA,#111000OOB;将低5位屏蔽掉ORL4OH,A;完成拼装任务第四十二页,共一百六十七页,编辑于2023年,星期五二、数据的转换
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。根据这个关系可以编出转换程序如下,程序以R1作为入口和出口。ASCHIN:MOVA,R1;取操作数CLRC;清进位标志位CSUBBA,#30H;ASCII码减去30H,实现0-9的转换MOVR1,A;暂存结果SUBBA,#0AH;结果是否>9?JCLOOP;若≤9则转换正确XCHA,R1SUBBA,#07H;若>9则减37HMOVR1,ALOOP:RET第四十三页,共一百六十七页,编辑于2023年,星期五2.BCD码与二进制数的转换
图4-6BCD码(十进制)转换成二进制数程序流程图第四十四页,共一百六十七页,编辑于2023年,星期五程序清单如下:MAIN:MOVA,R5MOVR2,A;给子程序入口参数ACALLBCDBIN;调用子程序MOVB,#64HMULABMOVR6,AXCHA,BMOVR5,AMOVA,R4MOVR2,AACALLBCDBIN;调用子程序ADDA,R6MOVR4,AMOVA,R5ADDCA,#00HMOVR5,ARET子程序如下:BCDBIN:MOVA,R2ANLA,#0F0H;取高位BCD码,屏蔽低4位SWAPAMOVB,#0AHMULABMOVR3,AMOVA,R2ANLA,#0FHADDA,R3;加低位BCD码MOVR2,ARET第四十五页,共一百六十七页,编辑于2023年,星期五4.3查表程序使用MOVCA,@A+DPTR指令来查表,程序清单如下:MOVDPTR,#BS;子程序入口地址表首址RLA;键码值乘以2MOVR2,A;暂存AMOVCA,@A+DPTR;取得入口地址低位PUSHA;进栈暂存INCAMOVCA,@A+DPTR;取得入口地址高位MOVDPH,APOPDPLCLRAJMP@A+DPTR;转向键处理子程序BS:DBRK0L;处理子程序入口地址表DBRK0HDBRK1LDBRK1HDBRK2LDBRK2H┇┇第四十六页,共一百六十七页,编辑于2023年,星期五4.4散转程序一、采用转移指令表的散转程序
例4-17编出要求根据R3的内容转向各个操作程序的程序。即当(R3)=0,转向OPRO(R3)=1,转向OPRl…(R3)=n,转向OPRn解:程序清单如下:MOVA,R3RLA;分支序号值乘2MOVDPTR,#BRTABL;转移指令表首址JMP@A+DPTR;转向形成的散转地址BRTABL:AJMPOPR0;转移指令表AJMPOPR1…AJMPOPRn第四十七页,共一百六十七页,编辑于2023年,星期五二、采用地址偏移量表的散转程序例4-19编出能按R6的内容转向5个操作程序的程序。其对应关系如下:OPRD0:操作程序0OPRD1:操作程序1OPRD2:操作程序2OPRD3:操作程序3OPRD4:操作程序4解:程序清单如下:MOVA,R6MOVDPTR,#TAB3;指向地址偏移量表首址MOVCA,@A+DPTR;散转点入口地址在A中JMP@A+DPTR;转向相应的操作程序入口TAB3:DBOPRDO-TAB3;地址偏移量表DBOPRDl-TAB3DBOPRD2-TAB3DBOPRD3-TAB3DBOPRD4-TAB3第四十八页,共一百六十七页,编辑于2023年,星期五三、采用转向地址表的散转程序例4-20编程:要求根据R6的内容转向相应的操作程序中去。设备操作程序的转向地址分别为OPRD0,OPRDl,…OPRDn。解:程序清单如下:MOVDPTR,#BRTABL;指向转向地址表MOVA,R6ADDA,R6;(A)←(R6)*2JNCNAND;INCDPH;(R6)*2的进位加到DPHNAND:MOVR3,A;暂存变址值MOVCA,@A+DPTR;取转向地址高8位XCHA,R3INCAMOVCA,@A+DPTR;取转向地址低8位MOVDPL,A;转向地址在DPTR中MOVDPH,R3CLRAJMP@A+DPTR;转向相应的操作程序BRTABL:DWOPRDO;转向地址表DWOPRD1┆DWOPRDn第四十九页,共一百六十七页,编辑于2023年,星期五四、采用“RET”指令的散转程序
例4-21编出能根据R6的内容转向各个操作程序的程序。设该操作程序的转向地址分别为OPRD0,OPRDl,…OPRDn。解:程序清单如下:MOVDPTR,#TAB3;指向转移地址表MOVA,R6ADDA,R6JNCNANDINCDPHNAND:MOVR7,AMOVCA,@A+DPTR;取转向地址高8位XCHA,R7INCAMOVCA,@A+DPTR;取转向地址低8位PUSHA;转向地址入栈MOVA,R7PUSHARET;转向操作程序TAB3:DWOPRD0;转向地址表DWOPRDl┇DWOPRDn第五十页,共一百六十七页,编辑于2023年,星期五4.5I/O端口控制程序
例4-22试编出能模拟图4-9中电路的程序。ORG0200HDBIT00HEBIT01HGBIT02HLOOP1:ORLP1,#08H;准备P1.3输入LOOP2:MOVC,P1.3;检测K3状态JCLOOP2;若未准备好(K3断),则LOOP2ORLP1,#03H;若准备好,则准备输入P1.0和P1.1状态MOVC,P1.0;输入K0状态MOVD,C;送入DMOVC,P1.1;输入K1状态MOVE,C;送入EANLC,D;D∧E送CMOVG,C;送入GMOVC,EORLC,D;D∨E送CANLC,/G;(D∨E)∧(D∧E)MOVP1.2,C;输出结果SJMPLOOP1;准备下次模拟END第五十一页,共一百六十七页,编辑于2023年,星期五4.6子程序调用时的参数传递方法一、通过寄存器或片内RAM传递参数例4-23利用通过寄存器或片内RAM传递参数这种方法编出调用SUBRT子程序的主程序。解:应该是:MAIN:MOVR0,#30H;传送RAM数据区的起始地址MOVR7,#0AH;传送RAM数据区的长度ACALLSUBRT;调用清零子程序SJMP$;结束SUBRT:MOVA,#00H;清零子程序LOOP:MOV@R0,AINCR0DJNZR7,LOOPRET第五十二页,共一百六十七页,编辑于2023年,星期五二、通过堆栈传递参数例4-25在HEX单元存有两个十六进制数,试编程分别把它们转换成ASCII码存入ASC和ASC+1单元。解:本题子程序采用查表方法完成一个十六进制数的ASCII码转换,主程序完成入口参数的传递和子程序的两次调用,以满足题目要求。程序清单为:ORG1200HPUSHHEX;入口参数压栈ACALLHASC;求低位十六进制数的ASCII码POPASC;出口参数存入ASCMOVA,HEX;十六进制数送ASWAPA;高位十六进制数送低4位PUSHACC;入口参数压栈ACALLHASC;求高位十六进制数的ASCII码POPASC+1;出口参数送ASC+1SJMP$;原地踏步,结束HASC:DECSPDECSP;入口参数地址送SPPOPACC;入口参数送AANLA,#0FH;取出入口参数低4位ADDA,#07H;地址调整MOVCA,@A+PC;查相应ASCII码PUSHACC;出口参数压栈INCSPINCSP;SP指向断点地址高8位RET;返回主程序ASCTABL:DB‘0’,‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’DB‘8’,‘9’,‘A’,‘B’,‘C’,‘D’,‘E’,‘F’END第五十三页,共一百六十七页,编辑于2023年,星期五三、利用指针寄存器传递参数
例4-26编出能实现打印THISISANEXAMPLE的程序。解:将要打印的字符及代码不是放在调用指令之前,而是紧跟在调用指令之后。主程序:MAIN:…ACALLPRINT;调用打印子程序DB‘THISISANEXAMPLE';要打印的字符及代码DBOAH,ODH,OOHNEXT:…子程序:PRINT:POPDPH;把调用指令下面字节的地址弹出,作为数据指针POPDPLPPPl:MOVA,#OOHMOVCA,@A+DPTR;取出欲打印的字符INCDPTRJZPPPEND;判断是否为结束字符PPP2:;打印程序SJMPPPPl;未完,继续打印PPPEND:JMP@A+DPTR;指向主程序NEXT处,取代返回指令第五十四页,共一百六十七页,编辑于2023年,星期五
第五章定时/计数器
5.1定时/计数的结构及工作原理
一、定时/计数器的结构和原理1.定时/计数器的结构图5‑1TMOD、TCON与T0、T1的结构框图第五十五页,共一百六十七页,编辑于2023年,星期五2.定时/计数器的原理图5‑2定时/计数器的结构框图
第五十六页,共一百六十七页,编辑于2023年,星期五二、定时/计数器方式寄存器TMOD表格5‑1方式选择位意义M1M0工作方式功能说明00方式013位计数器01方式116位计数器10方式2自动再装入8位计数器11方式3定时器0:分成两个8位计数器定时器1:停止计数TMOD格式如下:定时器1定时器0
TMOD
D7D6D5D4D3D2D1D0GATEC/T(—)M1M0GATEC/T(—)M1M0第五十七页,共一百六十七页,编辑于2023年,星期五三、定时控制寄存器TCON定时器控制字TCON的格式如下:
TCON8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT0
第五十八页,共一百六十七页,编辑于2023年,星期五5.2定时/计数器的工作方式一、方式0当M1M0两位为00时,定时/计数器被选为工作方式0,其逻辑结构如图5‑3所示。图5‑3T0(或T1)方式0结构第五十九页,共一百六十七页,编辑于2023年,星期五二、方式1图5‑4T0(或T1)方式1结构第六十页,共一百六十七页,编辑于2023年,星期五三、方式2图5‑5T0(或T1)方式1结构第六十一页,共一百六十七页,编辑于2023年,星期五三、方式2图5‑6T0(或T1)方式2结构
第六十二页,共一百六十七页,编辑于2023年,星期五四、方式3图5‑7T0方式3下和T1结构第六十三页,共一百六十七页,编辑于2023年,星期五一、方式0、方式1的应用例5-1选择T1方式0用于定时,在P1。1输出周期为1ms的方波,晶振fosc=6MHZ。根据题意,只要使P1。1每隔500µs取反一次即可得到1ms方波,因而T1的定时时间为500µs。将T1设为定时方式0:GATE=0,C/T(—)=0,M1M0=00;T0不用可为任意,只要不使其进入方式3,一般取0即可。故TMOD=00H。系统复位后TMOD为0,所以不必对TMOD置初值。下面计算500µs定时T1的初值:机器周期T=12/fosc=12/6×106=2µs设初值为X则:(213-X)×2×10-6s=500×10-6sX=7942D=1111100000110B=1F06H因为在作13位计数器用时,TL1高3位未用,应写0,X的低5位装入TL1的低5位,所以TL1=06H;X的高8位应装入TH1,所以TH1=F8H。源程序如下:
MOVTL1,#06H;给TL1置初值
MOVTH1,#F8H;给TH1置初值
SETBTR1;启动T1LP1:JBCTF1,LP2;查询计数溢出否
AJMPLP1
LP2:MOVTL1,06H;重装初值
MOVTH1,F8H
CPLP1。1;输出取反
AJMPLP1;重复循环第六十四页,共一百六十七页,编辑于2023年,星期五二、方式2的应用例5-2用定时器1方式2计数,要求每计满100次,将P1。0取反。根据题意,外部计数信号由T1(P3.5)引脚输入,每跳变一次计数器加1,由程序查询TF1。方式2有自动重装初值的功能,初始化后不必再置初值。初值X=28-100=156D=9CHTH1=TL1=9CHTMOD=60H源程序如下:
MOVTMOD,#60H;设置T1为方式2
MOVTL1,#9CH;置初值
MOVTH1,#9CH
SETBTR1;启动T1DEL:JBCTF1,REP;查询计数溢出
AJMPDEL
REP:CPLP1。0;输出取反
AJMPDEL
第六十五页,共一百六十七页,编辑于2023年,星期五三、门控位的应用图5‑8外部正脉冲宽度测量例5-3利用T0门控位测试INT0引脚上出现的正脉冲的宽度,并以机器周期数的形式显示在显示器上。根据要求可这样设计程序:将T0设定为方式1,GATE设为1,置TR0为1。一旦INT0(P3。2)引脚上出现高电平即开始计数,直至出现低电平,停止计数,然后读取T0的计数值并显示。测试过程如下:第六十六页,共一百六十七页,编辑于2023年,星期五源程序如下:BEGIN:MOVTMOD,#O9H;T0工作于方式1,GATE置1
MOVTL0,#00H
MOVTH0;#00H
WAIT1:JBP3。2,WAIT1;等待INT0变低
SETBTR0;启动T0WAIT2:JNBP3。2,WAIT2;等待正脉冲到WAIT3:JBP3。2,WAIT3;等待INT0变低
CLRTR0;停止T0计数
MOVR0,#DISBUF;显示缓冲区首地址送R0
MOVA,TL0;机器周期的存放格式为低位占低地址,高位占高地址,连续4个显示缓冲单元
XCHDA,@R0
INCR0
SWAPA
XCHDA,@R0
INCR0
MOVA,TH0
XCHDA,@R0
INCR0
SWAPA
XCHDA,@R0
DIS:LCALLDISUP;长调用显示子程序
AJMPDIS;重复显示机器周期数由于定时方式1的16位计数长度有限,被测脉冲高电平宽度只能小于65536个机器周期。源程序如下:
第六十七页,共一百六十七页,编辑于2023年,星期五第六章
MCS-51单片机的系统扩展6.1MCS-51单片机的引脚定义及最小应用系统一、8051的引脚定义及功能图6‑1MCS-51的引脚图及功能分类图第六十八页,共一百六十七页,编辑于2023年,星期五二、MCS-51单片机最小应用系统
图6‑28051/8751最小应用系统第六十九页,共一百六十七页,编辑于2023年,星期五6.2MCS-51单片机外部存储器的扩展一、外部程序存储器的扩展及取指过程图6‑3外部程序存储器一般连接方法第七十页,共一百六十七页,编辑于2023年,星期五1.程序存储器的一般连接方式图6-4扩展8K字节程序存储器的连线图第七十一页,共一百六十七页,编辑于2023年,星期五2.典型EPROM扩展电路3.程序存储器E2PROM的扩展图6-5E2PROM作为程序存储器的扩展图第七十二页,共一百六十七页,编辑于2023年,星期五二、数据存储器的扩展图6-6扩展2KB数据存储器的线路图第七十三页,共一百六十七页,编辑于2023年,星期五1.数据存储器一般的扩展方法
2.常用数据存储器的扩展电路三、综合扩展实例图6-7扩展16KBRAM和16KBEPROM第七十四页,共一百六十七页,编辑于2023年,星期五
6.3并行I/O口的扩展一、简单I/O口的扩展图6-8简单I/O接口扩展电路第七十五页,共一百六十七页,编辑于2023年,星期五二、可编程I/O口的扩展图6‑98155的结构和引脚第七十六页,共一百六十七页,编辑于2023年,星期五表格6‑18155口地址分布AD0~AD7选中寄存器A7A6A5A4A3A2A1A0×××××000内部命令寄存器×××××001通用I/O口A寄存器×××××010通用I/O口B寄存器×××××011口C:通用I/O口或控制口×××××100定时/计数器的低8位寄存器×××××101定时/计数器的高8位寄存器第七十七页,共一百六十七页,编辑于2023年,星期五3.8155与单片机的连接表格6‑28155的RAM和I/O口地址分配P2.4P2.3选择地址00RAME700H~E7FFH(256B)01I/O口EF00H命令口/状态口EF01H通用I/O口AEF02H通用I/O口BEF03H口CEF04H计数值低8位EF05H计数值高8位和计数方式图6‑10扩展一片8155的基本方案第七十八页,共一百六十七页,编辑于2023年,星期五4.8155片内RAM的使用OK:…;和为0,读/写正确(1)命令寄存器的用法
表格6‑3C口工作方式方式位ALTIALT2ALT3ALT4PC0输入方式输出方式AINTR(A口中断)AINTR(A口中断)PC1ABF(A口缓冲器满)ABF(A口缓冲器满)PC2ASTB(A口选通)ASTB(A口选通)PC3输出方式BINTR(B口中断)PC4BBF(B口缓冲器满)PC5BSTB(B口选通)备注A口B口为基本I/O口A口B口为基本I/O口A口为选通输入方式B口为基本I/O口A口、B口为选通输入/输出方式第七十九页,共一百六十七页,编辑于2023年,星期五图6‑128155方式4的逻辑结构图第八十页,共一百六十七页,编辑于2023年,星期五
6.作定时/计数器用表6-48155定时器输出方式M2M1方式定时器输出方波00单个方波01连续方波10在终止计数时输出单个脉冲11连续脉冲第八十一页,共一百六十七页,编辑于2023年,星期五第七章
MCS-51系统的串行接口7.1串行通讯概述一、串行通讯的两种基本方式1.异步传送方式
第n个字符(一串行帧)n+1n-1
…P10D0D1D2D3D4D5D6D7P10D0…
起始位数据位校验位停止位
图7-2异步通讯的帧格式第八十二页,共一百六十七页,编辑于2023年,星期五开始
结束同步字符同步字符数据段CRC字符#1CRC字符#2图7-3同步传送方式二、波特率图7-4串行通讯的制式第八十三页,共一百六十七页,编辑于2023年,星期五三、数据传送的方向1.单工制式(Simplex)2.半双工制式(HalfDuplex)3.全双工(Full-duplex)制式7.2MCS-51单片机的串行接口一、MCS-51串行口结构图7-5MCS-51串行口组成示意第八十四页,共一百六十七页,编辑于2023年,星期五1.串行口数据缓冲器SBUF
2.串行口控制寄存器SCON见表格7-1SM0位地址9F9E9D9C9B9A9998SCONSM1SM2RENTB8RB8TIRI
接收中断标志发送中断标志接收数据第9位发送数据第9位接收控制0:禁止接收1:允许接收多机通信0:单机对单机1:多机通信
图7-6串行口控制寄存器SCON图7-6串行口控制寄存器SCON第八十五页,共一百六十七页,编辑于2023年,星期五3.特殊功能寄存器PCONPCON主要是为CHMOS型单片机的电源控制设置的专用寄存器,单元地址为87H,不能位寻址。其格式如图7-7所示。SMOD———GF1GF0PDIDL通用标志位空闲控制位0:正常方式1:空闲方式掉电控制位0:正常方式1:掉电方式波特率选择位SMOD=1时,方式1、2和3的波特率加倍
图7-7PCON各位定义第八十六页,共一百六十七页,编辑于2023年,星期五二、MCS-51串行的工作方式MCS-51的串行口有四种工作方式,它是由SCON中的SM1和SM0来决定的,如表格7-1
表格7-1串行口的工作方式SM0SMl工作方式方式简单描述波特率000移位寄存器I/O主振频率/120118位UART可变1029位UART主振频率/32或主振频率/641139位UART可变第八十七页,共一百六十七页,编辑于2023年,星期五1.方式0图7-8串行口方式0的时序第八十八页,共一百六十七页,编辑于2023年,星期五2.方式1在方式1时,串行口被设置为波特率可变的8位异步通信接口。其时序如图7-9所示。图7-9串行口方式1的时序第八十九页,共一百六十七页,编辑于2023年,星期五3.方式2串行口工作为方式2时,被定义为9位异步通信接口。其时序如图7-10所示。4.方式3图7-10串行口方式2、3的时序第九十页,共一百六十七页,编辑于2023年,星期五三、MCS-51串行通信的波特率1.方式0的波特率2.方式2的波特率3.方式1或方式3的波特率表格7-2常用波特率和定时器T1初值关系表第九十一页,共一百六十七页,编辑于2023年,星期五波特率(方式1、3)fosc=6Mfosc=12Mfosc=11.059MSMODT1方式初值SMODT1方式初值SMODT1方式初值62.5k
12FFH
19.2k
12FDH9.6k
02FDH4.8k
12F3H02FAH2.4k12F3H12F3H02F4H1.2k12E6H02E6H02E8H60012CCH02CCH02D0H30002CCH0298H02A0H137.5121DH021DH022EH1100272H01FEEBH01FEFFH表格7-2常用波特率和定时器T1初值关系表第九十二页,共一百六十七页,编辑于2023年,星期五7.3MCS-51单片机串行口的应用一、串行口方式0用作扩展并行I/O口图7-11串行口方式0扩展并行输出口第九十三页,共一百六十七页,编辑于2023年,星期五
MOVSCON,#00H;串行口方式0初始化
MOVA,#80H;最左一位发光二极管先亮
CLRP1.0;关闭并行输出START1:MOVSBUF,A;开始串行输出LOOP:JNBTI,LOOP;查询TI
SETBP1.0;启动并行输出
ACALLDELAY;显示延时
CLRTI;清发送中断标志
RRA;准备右边一位显示
CLRP1.0;关闭并行输出
SJMPSTART1;再一次串行输出第九十四页,共一百六十七页,编辑于2023年,星期五二、方式1与点对点的异步通讯在下面给出的实现指定功能的通讯程序中,发送和接收都通过调用子程序来完成,并设发送数据区的首地址为20H,接收数据区的首地址为40H。主程序:
MOVTMOD,#20H;定时器1设为方式2
MOVTL,#0F3H;定时器初值
MOVTH1,#0F3H;8位重装值
SETBTR1;启动定时器1
MOVSCON,#50H;串行口设为方式1,REN=1
MOVR0,#20H;发送数据区首址
MOVR1,#40H;接收数据区首址
ACALLSOUT;输出一个字符$:SJMP$;等待中断中断服务程序:
ORG0023H;串行口中断入口
AJMPSBRl;转至中断服务程序SBRl:JNBRI,SEND;TI=1,为发送中断
ACALLSIN;RI=1,为接收中断
SJMPNEXT;转至统一的出口第九十五页,共一百六十七页,编辑于2023年,星期五SEND:ACALLSOUT;调用发送子程序NEXT:RETI;中断返回发送子程序:SOUT:MOVA,@Ro;取发送数据到A
MOVC,P;加上奇校验位
CPLC
MOVACC.7,C
INCR0;修改发送数据指针
MOVSBUF,A;发送ASCII码
CLRTI;清发送中断标志
RET
第九十六页,共一百六十七页,编辑于2023年,星期五接收子程序:SIN:MOVA,SBUF;读出接收缓冲区内容
MOVC,P;取出校验位
CPLC;奇校验
ANLA,#7FH;删除校验位
MOV@R1,A;读入接收缓冲区
INCR1;修改接收数据指针
CLRRI;清接收中断标志
RET
第九十七页,共一百六十七页,编辑于2023年,星期五三、方式2、方式3与多机通讯图7-12多机通讯连接示意图第九十八页,共一百六十七页,编辑于2023年,星期五1.多机通信原理2.多机通信实现四、微机与单片机之间的通讯图7-13微机与单片机串行通信接口
第九十九页,共一百六十七页,编辑于2023年,星期五7.4相互通道接口标准及其选择一、相互通道的典型结构二、关于RS-232C、RS-449、RS-422、RS-423和RS-485接口第一百页,共一百六十七页,编辑于2023年,星期五图7-14多机系统的相互通道第一百零一页,共一百六十七页,编辑于2023年,星期五2.抗干扰能力1.RS-232C接口
图7-15通过电话网实现远程连接第一百零二页,共一百六十七页,编辑于2023年,星期五表格7-3微机中常用的RS-232C接口信号引脚号符号名称说明1PGND保护地为了安全和大地相连,有时可不接2TXD发送数据从DTE到DCE的数据线3RXD接收数据从DCE到DTE的数据线4RTS请求发送当DTE希望在数据线上传递数据时由DTE发出,DCE通过所得到的控制信号决定是否响应5CTS允许发送允许计算机发送数据时,则由DCE发出6DSR数字置位就绪当数据线已被接好后由DCE发出7SGND信号地作为信号地的公共回路8DCD数据载波检测当DCE已经从数据线上接收到信号时发出此信号20DTR数字终端就绪当DTE已准备好和调制解调器交换数据时,由DTE发出,使用公共通信网时才需要22RI振铃指示当正在进行通信时,由DCE发出,使用公共通信网时才需要表格7-3微机中常用的RS-232C接口信号
第一百零三页,共一百六十七页,编辑于2023年,星期五图7-16简单的RS-232C数据通讯第一百零四页,共一百六十七页,编辑于2023年,星期五2.RS-449、RS-422、RS-423和RS-485接口表格7-4几种串行接口标准的比较特性参数RS-232CRS-423RS-422RS-485工作模式单端发单端收单端发双端收双端发双端收双端发双端收在传输线上允许的驱动器和接收器数目1个驱动器1个接收器1个驱动器10个接收器1个驱动器10个接收器32个驱动器32个接收器最大电缆长度15m1200m(1kb/s)1200m(90kb/s)1200m(100kb/s)最大速率20kb/s100kb/s(12m)10Mb/s(12m)10Mb/s(15m)驱动器输出(最大电压)±25V±6V±6V-7V~+12V驱动器输出(信号电平)±5V(带负载)±15V(未带负载)±3.6V(带负载)±6V(未带负载)±2V(带负载)±6V(未带负载)±1.5V(带负载)±5V(末带负载)驱动器负载阻抗3kΩ~7kΩ450Ω100Ω54Ω驱动器电源开路电流(高阻抗态)Vmax/300Ω(开路)±100μA(开路)±100μA(开路)±100μA(开路)接收器输入电压范围±15V±10V±12V-7V~+12V接收器输入灵敏度±3V±200mV±200mV±200mV接收器输入阻抗2kΩ~7kΩ4kΩmin4kΩmin12kΩmin
第一百零五页,共一百六十七页,编辑于2023年,星期五第八章
MCS-51单片机的中断系统图8-18051的中断系统第一百零六页,共一百六十七页,编辑于2023年,星期五8.1中断系统及其管理一、中断源及中断入口
中断源入口地址外部中断00003H定时器T0中断000BH外部中断10013H定时器T1中断001BH串行口中断0023H第一百零七页,共一百六十七页,编辑于2023年,星期五二、外部中断请求标志2.SCON的中断标志
1.TCON中的中断标志三、中断允许控制四、中断源优先级的设定五、中断响应处理过程2.中断处理1.中断响应的过程
3.中断返回
4.外部中断响应时间第一百零八页,共一百六十七页,编辑于2023年,星期五8.2扩充外部中断源一、利用定时器进行扩充图8-2多外部中断源连接方法第一百零九页,共一百六十七页,编辑于2023年,星期五二、采用中断和查询相结合的方法扩充外部中断源
EXINT:PUSHPSWPUSHACCJBP10,SAV1JBP11,SAV2JBP12,SAV3JBP13,SAV4DISUB:POPACCPOPPSW
RETISAV1:…;XI1中断服务程序
AJMPDISUBSAV2:…;XI2中断服务程序
AJMPDISUBSAV3:…
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CFPA 023-2023低压用电安全监控系统技术规范
- T/CFDCC 0204-2018家居电商送货与安装服务规范
- T/CECS 10279-2023纤维增强聚合物基管廊
- T/CECS 10017-2019现制水性橡胶高分子复合防水卷材
- T/CCT 015-2024气流床水煤浆气化用煤
- T/CCSAS 039-2023储存单元操作机械化、自动化设计方案指南
- T/CCS 070-2023井工煤矿智能化巡检机器人运维管理规范
- T/CCS 036-2023煤矿带式输送机巡检机器人
- T/CCMA 0172-2023移动式升降工作平台施工现场管理规程
- T/CCMA 0147-2023异型吊篮安装、使用和拆卸安全技术规程
- 2021年高考地理真题试卷(广东卷)含答案
- 新生入学报到证明(新生)
- XMT温度控制仪说明书
- 19QAKE质量保证关键要素(Quality Assurance Key Elements)稽核手册
- 下土地岭滑坡稳定性分析及风险计算
- 【小升初】北师大版2022-2023学年安徽省安庆市怀宁县六年级下册数学期末试卷(一)含解析
- 人教版英语(一年级起点)1-3年级单词表【完整版】
- 水文专业有偿服务收费管理试行办法(附收费标准)(共42页)
- 篮球--------原地单手肩上投篮 课件(19张幻灯片)
- 肺癌患者护理查房--ppt课件
- 《北京市房屋建筑和市政基础设施工程竣工验收管理办法》(2015年4月1日起实施)
评论
0/150
提交评论