




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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位单片机表格 1 1 MCS-51系列型号型 号制造技术片内程序存
4、储器片内数据存储器8051AHH MOSROM (4k)128字节8031AHAH MOS无128字节8751HH MOSEPROM(4K)128字节80C51CHMOSROM (4K)128字节80C31CHMOS无128字节8051H MOSROM (8K)256字节8031H MOS无256字节 14 单片机的应用单片机的应用一、单片机在仪器仪表中的应用二、单片机在机电一体化中的应用三、单片机在智能接口和多机系统中的应用四、单片机在生活中的应用 第二章MCS-51单片机的结构和原理本章主要介绍MCS-51系列的8051的基本结构、工作原理、存储器结构、P0、P1、P2、P3四个I/O口的
5、基本工作原理和操作特点。单片机的各种工作方式、单片机的时序等。21MCS-51单片机的结构原理一、8051单片机的结构内部总线时钟电路CPUINT0T1T0并行接口串行接口P0 P1 P2 P3TXD RXD中断系统ROMRAM定时/计数器INT1图 2 1 MCS-51单片机的基本结构二、8051单片机的内部结构和工作原理8051单片机的内部结构框图如图2 2所示,下面分别进行介绍:图 2 2 8051的内部结构框图FFFFH1000H外部ROM0FFFH0000H内部ROMEA = 1外部ROMEA = 0工作寄存器03组位寻址区RAMSFR00H20H30H80HFFH外部RAM0000
6、HFFFFH图 2 3 8051存储器组织结构字节地址位 地 址 2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20HD7D6D5D4D3D2D1D07FH7EH7DH7CH7BH7AH79H78H77H76H75H74H73H72H71H70H6FH6EH6DH6CH6BH6AH69H68H67H66H65H64H63H62H61H60H5FH5EH5DH5CH5BH5AH59H58H57H56H55H54H53H52H51H50H4FH4EH4DH4CH4BH4AH49H48H47H46H45H44H43H42H41H40H3FH3EH3DH3C
7、H3BH3AH39H38H37H36H35H34H33H32H31H30H2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H1FH1EH1DH1CH1BH1AH19H18H17H16H15H14H13H12H11H10H0FH0EH0DH0CH0BH0AH09H08H07H06H05H04H03H02H01H00H图 2 4 8051内部RAM位地址区符号单元地址名称位地址符号地址* ACCE0H累加器ACC.7ACC.0E7HE0H* BF0H乘法寄存器B.7B.0F7HF0H* PSWD0H程序状态字PSW.7PSW.0D7HD0H SP81H
8、堆栈指针 DPL82H数据存储器指针(低8位) DPH83H数据存储器指针(高8位) * IEA8H中断允许控制器IE.7IE.0AFHA8H* IPB8H中断优先控制器IP.7IP.0BFHB8H* P080H通道0P0.7P0.087H80H* P190H通道1P1.7P1.097H90H* P2A0H通道2P2.7P2.0A7HA0H* P3B0H通道3P3.7P3.0B7HB0H PCON87H电源控制及波特率选择 * SCON98H串行口控制SCON.7SCON.09FH98H SBUF99H串行数据缓冲器 * TCON88H定时控制TCON.7TCON.08FH88H TMOD89
9、H定时器方式选择 TL08AH定时器0低8位 TL18BH定时器1低8位 TH08CH定时器0高8位 TH18DH定时器1高8位 P0.n锁存器P0.nQQD读锁存器写锁存器内部总线读引脚T1T2VCCMUX地址/数据控制图 2 5 P0口的位结构(1) P0口位的结构(2) P1口位的结构P1.n锁存器P1.nQQD读锁存器写锁存器内部总线读引脚内部上拉电阻TVCC图 2 6 P1口的位结构图 2 6 P1口的位结构图 2 6 P1口的位结构图 2 6 P1口的位结构图 2 6 P1口的位结构(3) P2口的位结构P2.n锁存器P2.nQQD读锁存器写锁存器内部总线读引脚TVCC地址控制内部
10、上拉电阻MUX图 2 7 P2口的结构图(4) P3口的位结构P3.n锁存器P3.nQQD读锁存器写锁存器内部总线读引脚TVCC第二输入功能第二输出功能内部上拉电阻图 2 8 P3口的结构图(4) P3口的位结构 P3.n锁存器P3.nQQD读锁存器写锁存器内部总线读引脚TVCC第二输入功能第二输出功能内部上拉电阻图 2 8 P3口的结构图表格 2 3 P3口的第二功能表I/O口第二功能注 释P3.0RXD串行口数据接收端P3.1TXD串行口数据发送端P3.2INT()0外部中断请求0P3.3INT()1外部中断请求1P3.4T0定时/计数器0P3.5T1定时/计数器1P3.6WR()外部RA
11、M写信号P3.7RD()外部RAM读信号 一、 时钟周期、机器周期和指令周期 S机器周期1取指令、译码指令周期机器周期2取操作数、执行图 2-9 基本定时时序关系22 MCS-51单片机的时序单片机的时序1时钟周期 ALE时钟S1S4S6S5S3S2读操作码读操作码(无效)(a) 1字节1周期指令读下一指令S1S4S6S5S3S2读操作码读第二字节(b) 2字节1周期指令读下一指令S1S4S6S5S3S2读操作码读操作码(无效)(c) 1字节2周期指令读下一指令S1S4S6S5S3S2图 2 10 MCS-51的取指/执行时序 2机器周期3指令周期 二、 MCS-51单片机指令的取指和执行的时
12、序三、 访问外部ROM和RAM的时序 ALE时钟S1S4S6S5S3S2PSENA15 A8A15 A8P2P0A7A0A7A0指令指令图 2 11 访问外部ROM的时序1访问外部ROM的时序 2访问外部RAM的时序 ALES1S4S6S5S3S2PSENPCH 输出P2P0PCL输出地址输出指令输入数据输入S1S4S6S5S3S2RDPCH 输出PCH 输出DPH 输出或 P2 输出PCL输出指令输入图 2 12 访问外部RAM的时序 23 MCS-51单片机的时钟和复位电路 一、 时钟电路 TTL(a) 内部振荡器方式XTAL1R外部振荡器XTAL2VCCXTAL2XTAL1VSS(b)
13、8051外时钟源接法8051NC外部振荡器XTAL1XTAL2VSS(c) 80C51外时钟源接法80C51C1C2图 2 13 MCS-51时钟接法 1内部振荡器方式 2外部时钟方式 二、 复位电路及复位状态 1内部复位电路 D1D2RST/VPDVCCVSSRAM斯密特触发器复位电路图 2 14 8051复位电路结构 2外部复位电路 VCC8051VCCRST/VPDVSSR1kC22FVCC8051VCCRST/VPDVSSR11kC122FR21kC2 22FRESET(a) 上电复位(b) 按键脉冲复位VCC8051VCCRST/VPDVSSR1 200C22FR21kRESET(c
14、) 按键电平复位图 2 15 复位电路3复位状态专用寄存器复位值PC0000HACC00HB00HPSW00HSP07HDPTR0000HP0P3FFHIPXXX00000BIE0XX00000BTMOD00HTCON00HTH000HTL000HTH100HTL100HSCON00HSBUF不定PCON(CHMOS)0XXX0000B第3章 MCS-51单片机指令系统3.1MCS-51指令系统的分类、格式及一般说明3.2寻址方式3.3分类指令MCS-51单片机指令系统有如下特点:(1)指令执行时间快。(2)指令短,约有一半的指令为单字节指令。(3)用一条指令即可实现2个一字节的相乘或相除。(
15、4)具有丰富的位操作指令。(5)可直接用传送指令实现端口的输入输出操作。3.1MCS-51指令系统的分类、格式及一般说明3.1.1指令分类3.1.2指令格式3.1.3指令描述符号介绍返回本章首页3.1.1指令分类按指令功能,MCS-51指令系统分为数据传递与交换、算术运算、逻辑运算、程序转移、布尔处理操作、CPU控制等6类。布尔处理操作类指令又称位操作指令。返回本节3.1.2指令格式在MCS-51指令中,一般指令主要由操作码、操作数组成。指令应具有以下功能:(1)操作码指明执行什么性质和类型的操作。例如,数的传送、加法、减法等。(2)操作数指明操作的数本身或者是操作数所在的地址。(3)指定操作
16、结果存放的地址。返回本节3.1.3指令描述符号介绍Rn当前选中的寄存器区中的8个工作寄存器R0R7(n=07)。Ri当前选中的寄存器区中的2个工作寄存器R0、R1(i=0,1)。direct8位的内部数据存储器单元中的地址。#data包含在指令中的8位常数。#data16包含在指令中的16位常数。addr1616位目的地址。addr1111位目的地址。rel8位带符号的偏移字节,简称偏移量。DPTR数据指针,可用作16位地址寄存器。bit内部RAM或专用寄存器中的直接寻址位。A累加器。B专用寄存器,用于乘法和除法指令中。C进位标志或进位位,或布尔处理机中的累加器。间址寄存器或基址寄存器的前缀,
17、如Ri,DPTR。/位操作数的前缀,表示对该位操作数取反,如/bit。片内RAM的直接地址或寄存器。()由寻址的单元中的内容。箭头左边的内容被箭头右边的内容所代替。返回本节3.2寻址方式3.2.1立即寻址3.2.2直接寻址3.2.3寄存器寻址3.2.4寄存器间接寻址3.2.5变址寻址3.2.6相对寻址3.2.7位寻址返回本章首页3.2.1立即寻址指令中直接给出操作数的寻址方式。立即操作数用前面加有#号的8位或16位数来表示。例如:MOVA,#60H ;A#60HMOV DPTR,#3400H ;DPTR#3400HMOV 30H,#40H;30H单元#40H上述三条指令执行完后,累加器A中数据
18、为立即数据60H,DPTR寄存器中数据为3400H,30H单元中数据为立即数40H。返回本节3.2.2直接寻址指令中直接给出操作数地址的寻址方式,能进行直接寻址的存储空间有SFR寄存器和内部数据RAM。例如:MOVPSW,#20H;PSW#20HPSW为直接寻址寄存器的符号地址。MOVA,30H;A30H内部RAM单元中的内容30H为直接给出的内部RAM的地址。返回本节3.2.3寄存器寻址以通用寄存器的内容为操作数的寻址方式。通用寄存器指A、B、DPTR以及R0R7。例如:CLR A;A0INCDPTR;DPTRDPTR+1A D DR 5 , # 2 0 H;R5#20H+R5返回本节3.2
19、.4寄存器间接寻址以寄存器中内容为地址,以该地址中内容为操作数的寻址方式。间接寻址的存储器空间包括内部数据RAM和外部数据RAM。能用于寄存器间接寻址的寄存器有R0,R1,DPTR,SP。其中R0、R1必须是工作寄存器组中的寄存器。SP仅用于堆栈操作。例如:MOVR0,A;内部RAM(R0)A其指令操作过程示意图如图3-1所示。又如:MOVXA,R1;A外部RAM(P2R1)其指令操作过程示意图如图3-2所示。再如:MOVXDPTR,A;外部RAM(DPTR)A其指令操作过程示意图如图3-3所示。片内RAM30HR034HA30H34H图3-1 MOV R0,A间接寻址示意图片外RAM34HP
20、245HA3410H45H10HR1片外RAM2000HDPTR30HA2000H30H图3-2 MOVX A,R1间接寻址示意图 图3-3 MOVX DPTR,A间接寻址示意图返回本节3.2.5变址寻址变址寻址只能对程序存储器中数据进行操作。由于程序存储器是只读的,因此变址寻址只有读操作而无写操作,在指令符号上采用MOVC的形式(如图3-4所示)。例如:MOVCA,A+DPTR;A(A+DPTR)又如,MOVCA,A+PC;A(A+PC)这条指令与上条指令不同的是,基址寄存器是PC。图3-4 变址寻址示意图程序存储器2000HDPTR64H(10H)A2010H64H10H2000H返回本节
21、3.2.6相对寻址以当前程序计数器PC的内容为基础,加上指令给出的一字节补码数(偏移量)形成新的PC值的寻址方式。相对寻址用于修改PC值,主要用于实现程序的分支转移。例 如 , S J M P 0 8 H ;PCPC+2+08H指令操作示意图如图3-5所示。程序存储器(2000H)200AHSJMP200AH08H2000H+208HPC2000H图3-5 相对寻址示意图返回本节3.2.7位寻址位寻址只能对有位地址的单元作位寻址操作。位寻址其实是一种直接寻址方式,不过其地址是位地址。例如:SETB10H;将10H位置1若22H单元中存放着数据40H,22H单元的D0位的位地址为10H,执行上述
22、指令后(22H)=41H。又如:MOV32H,C;32H进位位CORLC,32H;CC32H返回本节3.3分类指令3.3.1数据传送类指令3.3.2算术运算类指令3.3.3逻辑运算与循环类指令3.3.4程序转移类指令3.3.5调用子程序及返回指令3.3.6位操作指令3.3.7空操作指令返回本章首页3.3.1数据传送类指令数据传送类指令共28条,是将源操作数送到目的操作数。指令执行后,源操作数不变,目的操作数被源操作数取代。数据传送类指令用到的助记符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP8种。源操作数可采用寄存器、寄存器间接、直接、立即、变址5种寻址方式寻址,
23、目的操作数可以采用寄存器、寄存器间接、直接寻址3种寻址方式。MCS-51单片机片内数据传送途径如图3-6所示。直接地址direct累加器A直接地址direct间接地址Ri寄存器Rn立即数#data寄存器DPTR图3-6 MCS-51单片机片内数据传送图1以A为目的操作数MOVA,Rn;ARnMOVA,direct;A(direct)MOVA,Ri ;A(Ri)MOVA,#data;A#data2以以Rn为目的操作数为目的操作数MOVRn,A;RnAMOVRn,direct;Rn(direct)MOVRn,#data;Rn#data3以直接地址为目的操作数MOVRi,A ;(Ri)AMOVRi,
24、direct;(Ri)(direct)MOVRi,#data;(Ri)#data4以间接地址为目的操作数以间接地址为目的操作数MOVRi,A ;(Ri)AMOVRi,direct;(Ri)(direct)MOVRi,#data;(Ri)#data例如:设(30H)=6FH,R1=40H,执行MOVR1,30H后,30H单元中数据取出送入R1间接寻址的40H单元,(40H)=6FH。5以DPTR为目的操作数MOVDPTR,#data16;DPTR#data16例如执行MOVDPTR,#2000H后,(DPTR)=2000H。6访问外部数据RAMMOVXA,DPTR ;A(DPTR)MOVXDPT
25、R,A ;(DPTR)AMOVXA,Ri;A(P2Ri)MOVXRi,A;(P2Ri)A7读程序存储器MOVCA,A+DPTR ;A(A+DPTR)MOVCA,A+PC;A(A+PC)例如已知A=30H,DPTR=3000H,程序存储器单元(3030H)=50H,执行MOVCA,A+DPTR后,A=50H。8数据交换l字节交换XCHA,Rn;ARnXCHA,direct;A(direct)XCHA,Ri;A(Ri)l半字节交换XCHDA,Ri ;A03(Ri)03SWAPA ;A03A479堆栈操作堆栈操作所谓堆栈是在片内RAM中按“先进后出,后进先出”原则设置的专用存储区。数据的进栈出栈由指
26、针SP统一管理。堆栈的操作有如下两条专用指令:PUSHdirect;SP(SP+1),(SP)(direct)POP direct ;(direct)(SP),SPSP-1PUSH是进栈(或称为压入操作)指令。指令执行过程如图3-7所示。片内RAM30H11H10HSP片内RAM50H40H11H10HSP40H30H片内RAM50H40H11H10H50HSP30H片内RAM40H11H10H34HSP30H34H34H执行前执行前执行前PUSH指令后执行POP指令后图3-7 指令PUSH操作示意图图3-8 指令POP操作示意图【例3.1】将片内RAM30H单元与40H单元中的内容互换。方法
27、1(直接地址传送法):MOV31H,30HMOV30H,40HMOV40H,31HSJMP$方法2(间接地址传送法):MOVR0,#40HMOVR1,#30HMOVA,R0MOVB,R1MOVR1,AMOVR0,BSJMP$方法3(字节交换传送法):MOVA,30HXCHA,40HMOV30H,ASJMP$方法4(堆栈传送法):PUSH30HPUSH40HPOP30HPOP40HSJMP$返回本节3.3.2算术运算类指令1加法指令ADDA,Rn;AA+RnADDA,direct;AA+(direct)ADDA,Ri;AA+(Ri)ADDA,#data;AA+#data2带进位加指令ADDCA,
28、Rn;AA+Rn+CADDCA,direct ;AA+(direct)+CADDCA,Ri;AA+(Ri)+CADDCA,#data ;AA+#data+CC为来自PSW状态寄存器中的进位位C。例如,设A=20H,R0=21H,C=1,执行指令ADDC,R0后,A=42H。3带借位减指令SUBBA,Rn;AA-Rn-CSUBBA,direct ;AA-(direct)-CSUBBA,Ri;AA-(Ri)-CSUBBA,#data ;AA-#dataC例如,设A=39H,R0=20H,(20H)=32H,C=1,执行指令SUBB,R0后,A=06H。4乘法指令MULAB ;BAABA和B中各存放
29、一个8位无符号数,指令执行后,16位乘积的高8位在B中,低8位存A中。例如,A=30H,B=60H,执行MULAB后,A=00H,B=12H。5除法指令DIVAB;AB商在A中,余数在B中A和B中各存放一个8位无符号数,A放被除数,B放除数。指令执行后,A中存放商,B中存入余数。若B=00H,则指令执行后OV=1,A与B不变。例如,A=30H,B=07H,执行DIVAB后,A=06H,B=06H。6加1指令INCA;AA+1INCRn;RnRn+1INCdirect ;(direct)(direct)+1INCRi;(Ri)(Ri)+1INCDPTR ;DPTRDPTR+1例如,(30H)=2
30、2H,执行INC30H后,(30H)=23H。7减1指令DECA;AA-1DECRn;RnRn-1DECdirect;direct(direct)-1DECRi ;(Ri)(Ri)-1例如,R0=30H,(30H)=22H,执行DECR0后,(30H)=21H。8十进制调整指令DAA;把A中按二进制相加的结果调整成按BCD码相加的结果例如,A=65BCD,B=78BCD,C=0,执行下列语句ADD A,BDAA后,A=43BCD,C=1。【例3.2】试把存放在R1R2和R3R4中的两个16位数相加,结果存于R5R6中。解:参考程序如下:MOVA,R2;取第一个数的低8位ADDA,R4;两数的低
31、8位相加MOVR6,A;保存和的低8位MOVA,R1;取第一个数的高8位ADDCA,R3;两数的高8位相加,并把低8位相加时的进位位加进来MOVR5,A;把相加的高8位存入R5寄存器中SJMP$返回本节3.3.3逻辑运算与循环类指令1“与”操作指令2“或”操作指令3“异或”操作指令4求反与清除指令5循环指令返回本节3.3.4程序转移类指令1无条件转移指令l绝对(短)转移指令AJMP addr11;PC100addr11l长转移指令LJMP addr16;PCaddr16l短(相对)转移指令SJMP rel;PCPC+2+rell间接转移指令JMPA+DPTR ;PCA+DPTR2条件转移指令l
32、累加器为零(非零)转移指令l减1非零转移指令l两数不等转移指令l相对偏移量rel的求法0000H07FFH0800H0FFFH1000H17FFH1800H1FFFH2000H27FFH2800H2FFFH3000H37FFH3800H3FFFH4000H47FFH4800H4FFFH5000H57FFH5800H5FFFH6000H67FFH6800H6FFFH7000H77FFH7800H7FFFH8000H87FFH8800H8FFFH9000H97FFH9800H9FFFHA000HA7FFHA800HAFFFHB000HB7FFHB800HBFFFHC000HC7FFHC800HCF
33、FFHD000HD7FFHD800HDFFFHE000HE7FFHE800HEFFFHF000HF7FFHF800HFFFFH表3-1 程序存储器空间32个2K地址范围返回本节3.3.5调用子程序及返回指令1调用子程序指令LCALLaddr16;PCPC+3,SPSP+1,(SP)PC710;SPSP+1,(SP)PC158,PCaddr16ACALLaddr11;PCPC+2,SPSP+1,(SP)PC70;SPSP+1,(SP)PC158,PC100addr112返回指令RET;PC158(SP),SPSP-1 ;PC70(SP),SPSP-1RETI;PC158(SP),SPSP-1 ;
34、PC70(SP),SPSP-1返回本节3.3.6位操作指令1位数据传送指令MOV C,bit;C(bit)MOVbit,C;bitC2位状态修改指令CLRC;C0CLRbit;(bit)0CPLC;CCPLbit;(bit)(bit)SETB C;C1SETB bit;(bit)13位逻辑运算指令ANL C,bit;CC(bit)ANL C,/bit;CC(bit)ORL C,bit;CC(bit)ORL C,/bit;CC(bit)4位转移指令JCrel;若C=1,则转移(PCPC+2+rel);否则程序顺序执行JNCrel;若C=0,则转移(PCPC+2+rel);否则程序顺序执JBbit
35、,rel;若(bit)=1,则转移(PCPC+3+rel);否则程序顺序执行JNBbit,rel;若(bit)=0,则转移(PCPC+3+rel);否则程序顺序执行JBCbit,rel;若(bit)=1,则PCPC+3+rel,(bit)0;否则程序顺序执行功能:分别检测指定位是1还是0,若条件符合,则CPU转向指定的目标地址去执行程序;否则,顺序执行下条指令。返回本节3.3.7空操作指令NOP;PCPC+1这是一条单字节指令。执行时,不作任何操作(即空操作),仅将程序计数器PC的内容加1,使CPU指向下一条指令继续执行程序。这条指令常用来产生一个机器周期的时间延迟。返回本节本章到此结束,谢谢
36、您的光临!结束放映返回本章首页THANKYOUVERYMUCH!第4章 汇编语言程序设计4.1汇编语言基本概念4.2汇编语言程序设计4.1汇编语言基本概念4.1.1程序设计语言4.1.2汇编语言的语句结构4.1.3伪指令返回本章首页4.1.1程序设计语言按照语言的结构及其功能可以分为三种:1机器语言:机器语言是用二进制代码0和1表示指令和数据的最原始的程序设计语言。2汇编语言:在汇编语言中,指令用助记符表示,地址、操作数可用标号、符号地址及字符等形式来描述。3高级语言:高级语言是接近于人的自然语言,面向过程而独立于机器的通用语言。返回本节4.1.2汇编语言的语句结构1汇编语言的指令类型MCS-
37、51单片机汇编语言,包含两类不同性质的指令。(1)基本指令:即指令系统中的指令。它们都是机器能够执行的指令,每一条指令都有对应的机器码。(2)伪指令:汇编时用于控制汇编的指令。它们都是机器不执行的指令,无机器码。2汇编语言的语句格式汇编语言源程序是由汇编语句(即指令)组成的。汇编语言一般由四部分组成。其典型的汇编语句格式如下:标号:操作码操作数;注释START:MOV A,30H;A(30H)返回本节4.1.3伪指令1ORG:汇编起始地址用来说明以下程序段在存储器中存放的起始地址。例如程序:ORG 1000HSTART:MOV A,#20HMOV B,#30H2EQU:赋值给变量标号赋予一个确
38、定的数值。3DB:定义数据字节把数据以字节数的形式存放在存储器单元中。4DW:定义数据字按字的形式把数据存放在存储单元中。5DS:定义存储区从指定的地址单元开始,保留一定数量存储单元。6BIT:位定义确定字符名为确定的位地址值。7END:汇编结束返回本节4.2汇编语言程序设计4.2.1汇编语方程序设计步骤4.2.2顺序程序4.2.3分支程序4.2.4循环程序4.2.5子程序4.2.6位操作程序返回本章首页4.2.1汇编语方程序设计步骤1分析问题2确定算法3设计程序流程图4分配内存单元5编写汇编语言源程序6调试程序返回本节4.2.2顺序程序顺序程序是一种最简单,最基本的程序。特点:程序按编写的顺
39、序依次往下执行每一条指令,直到最后一条。【例4.1】将30H单元内的两位BCD码拆开并转换成ASCII码,存入RAM两个单元中。程序流程如图4-1所示。参考程序如下:ORG 2000HMOVA,30H;取值ANLA,#0FH;取低4位ADDA,#30H;转换成ASCII码MOV32H,A;保存结果MOVA,30H;取值SWAPA;高4位与低4位互换ANLA,#0FH;取低4位(原来的高4位)ADDA,#30H;转换成ASCII码MOV31H,A;保存结果SJMP$END结束取数据低4位转换成ASCII码存ASCII码取数据高4位转换成ASCII码存ASCII码开始图4-1 拆字程序流程图结束取
40、数据X求X2暂存X2取数据Y求Y2求X2+Y2开始保存平方和图4-2 例4.2程序流程图【例4.2】设X、Y两个小于10的整数分别存于片内30H、31H单元,试求两数的平方和并将结果存于32H单元。解:两数均小于10,故两数的平方和小于100,可利用乘法指令求平方。程序流程如图4-2所示。参考程序如下:ORG 2000HMOVA,30H;取30H单元数据MOVB,A ;将X送入B寄存器MULAB;求X2,结果在累加器中MOVR1,A;将结果暂存于R1寄存器中MOVA,31H;取31H单元数据MOVB,A ;将Y送入B寄存器MULAB;求Y2,结果在累加器中ADDA,R1;求X2+Y2MOV32
41、H,A;保存数据SJMP$;暂停END结束取数据X求X2暂存X2取数据Y求Y2求X2+Y2开始保存平方和图4-2 例4.2程序流程图返回本节4.2.3分支程序1分支程序的基本形式分支程序有三种基本形式,如图4-3所示。分支程序的设计要点如下:(1)先建立可供条件转移指令测试的条件。(2)选用合适的条件转移指令。(3)在转移的目的地址处设定标号。条件满足?AYN(a)条件满足?ABNY(b)(c)A0A1AnK=0 K=1 K=nK=?图4-3 分支程序结构流程图2双向分支程序设计举例【例4.3】设X存在30H单元中,根据下式X+2X0Y= 100X=0求出Y值,将Y值存入31H单元。 XX0解
42、:根据数据的符号位判别该数的正负,若最高位为0,再判别该数是否为0。程序流程如图4-4所示。参考程序如下:ORG 1000HMOVA,30H;取数JB ACC.7,NEG;负数,转NEGJZ ZER0;为零,转ZER0ADDA,#02H;为正数,求X+2AJMPSAVE;转到SAVE,保存数据ZER0:MOVA,#64H;数据为零,Y=100AJMPSAVE;转到SAVE,保存数据NEG:DECA;CPLA;求 XSAVE:MOV 31H,A;保存数据SJMP;暂停A为负数?取数,A(30H)开始结束A=0?YNNA|X|A64HAX+2存数,(31H)A(30H)图4-4 例4.3程序流程图
43、3多向分支程序设计举例【例4.4】根据R0的值转向7个分支程序。R010,转向SUB0;R020,转向SUB1;R00Y=100X=0求出Y值,并将Y值放回原处。 X X末地址?写入一个字节P1.0=0?源地址加1目标地址加1传送结束图6-10 RAM与EEPROM数据传送流程图 22864A EEPROM 扩展扩展 图6-11 2864A管脚配置 2864A有四种工作方式:(1)维持方式(2)读出方式(3)写入方式(4)数据查询方式2864A与8031单片机的硬件连接如图6-12所示。图6-12 2864A EEPROM扩展电路返回本节6.3数据存储器扩展6.3.1静态RAM扩展电路6.3.
44、2动态RAM扩展电路返回本章首页6.3.1静态RAM扩展电路常用的静态RAM芯片有6116,6264,62256等,其管脚配置如图6-13所示。16264静态RAM扩展表6-1给出了6264的操作方式,图6-14为6264静态RAM扩展电路。262256静态RAM扩展62256是32K8位静态随机存储器芯片,CMOS工艺制作,单一+5V供电。28脚双列直插式封装。图6-13 常用静态RAM芯片管脚配置表6-1 6264的操作方式图6-14 6264静态RAM扩展电路返回本节6.3.2动态RAM扩展电12164A动态RAM扩展l 行列地址选通信号l 刷新方法l 地址信息延时的实现图6-15 21
45、64A芯片图6-16 64K动态RAM扩展电路(a)8051(b)2164A图6-17 8051和2164A总线定时波形22186集成动态RAM扩展2186是片内具有8K8位动态RAM系统的集成RAM。单一+5V供电,工作电流70mA,维持电流20mA,存取时间为250ns。28脚双列直插式封装,管脚与6264静态RAM完全兼容,其管脚配置如图6-18所示。 图6-19给出了8051/8751扩展2186集成动态RAM的硬件电路图。图6-18 2817A管脚配置 图6-19 2186集成动态RAM扩展电路返回本节6.4输入/输出口扩展技术6.4.1简单I/O口扩展6.4.2可编程I/O口扩展返
46、回本章首页6.4.1简单I/O口扩展1用并行口扩展I/O口 只要根据“输入三态,输出锁存”与总线相连的原则,选择74LS系列的TTL电路或MOS电路即能组成简单的扩展I/O口。例如采用8位三态缓冲器74LS244组成输入口,采用8D锁存器74LS273,74LS373,74LS377等组成输出口。 图6-20给出了一种简单的输入、输出口扩展电路。当要扩展多个输入/输出口时,可采用图6-21所示连接方法。图6-20 简单I/O扩展接口图6-20 简单I/O扩展接口2用串行口扩展I/O口 当MCS-51单片机串行口工作在方式0时,使用移位寄存器芯片可以扩展一个或多个8位并行I/O口。这种方法不会占
47、用片外RAM地址,而且可节省单片机的硬件开销。缺点是操作速度较慢,扩展芯片越多,速度越慢。 图6-22和图6-23分别给出了利用串行口扩展2个8位并行输入口(使用74LS165)和扩展2个8位并行输出口(使用74LS164)的接口电路。图6-22 利用串行口扩展并行输入口图6-23 利用串行口扩展并行输出口返回本节6.4.2可编程I/O口扩展表6-2 常用Intel 系列可编程接口芯片型号名称说明8155并行接口带256字节的RAM和14位定时/计数器8255通用并行接口 8251同步/异步通讯接口 8253定时/计数器 8279键盘/显示接口 18155的结构和技术性能图6-24是8155的
48、结构框图。在8155内部具有:(1)256字节的静态RAM,存取时间为400ns。(2)三个通用的输入/输出口。(3)一个14位的可编程定时/计数器。(4)地址锁存器及多路转换的地址和数据总线。(5)单一+5V电源,40脚双列直插式封装。 (a)逻辑结构(b)引脚图图6-24 8155的逻辑结构及引脚28155的RAM和I/O地址编码表6-3 8155口地址分布38155的工作方式与基本操作(1)作片外256字节RAM使用。(2)作扩展I/O口使用。命令控制字的格式如图6-25所示。其中C口工作方式如表6-4所示。状态字格式如图6-26所示。(3)作定时器使用。其格式如图6-27所示。图6-2
49、5 8155命令控制字格式表6-4 C口工作方式及控制信号分布图6-26 8155状态字格式图6-27 8155定时器格式及输出方式 4MCS-51单片机与8155的接口与操作 MCS-51单片机可直接和8155连接而不需要任何外加逻辑,可以直接为系统增加256字节外部RAM、22根I/O线及一个14位定时器。其基本硬件连接方法如图6-28所示。图6-28 8155和8031的连接方法返回本节THANKYOUVERYMUCH!本章到此结束,谢谢您的光临!结束放映返回本章首页第7章 MCS-51单片机的接口技术7.1键盘及其接口7.2显示器接口7.3打印机接口7.1键盘及其接口7.1.1独立式键
50、盘接口7.1.2行列式键盘返回本章首页在设计键盘接口时,解决以下几个问题:开关状态的可靠输入可设计硬件去抖动电路或设计去抖动软件。键盘状态的监测方法中断方式还是查询方式。键盘编码方法。键盘控制程序的编制。7.1.1独立式键盘接口1独立式按键结构独立式按键是指直接用I/O口线构成的单个按键电路。每根I/O口线上按键的工作状态不会影响其他I/O口线的工作状态。独立式按键电路如图7-1所示。2独立式按键的软件结构包括按键查询、键功能程序转移。FP0FP7为功能程序入口地址标号,PROM0PROM7分别为每个按键的功能程序。图7-2为使用扩展I/O的独立式按键电路,按键数量可多可少。8031INT0I
51、/O8031图 8-1-1 独立式按键电路()()查询方式I/O中断方式+5VINT1图7-1 独立式按键电路 8031P2.7ALEP0WRRD74LS3730AA1D7D0CSPAPA568255RESETGNDPA0PA1PA2PA3PA4PA7WRRD+5V+5V1K10F 7123456088图7-2 使用8255扩展I/O的独立式键盘返回本节7.1.2行列式键盘1键盘工作原理行列式键盘电路原理如图7-3所示。按键设置在行列式交点上,行列线分别连接到按键开关的两端。当行线通过上拉电阻接+5伏时,被钳位在高电平状态。键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的。键盘
52、中哪一个键按下可由列线逐列置低电平后,检查行输入状态来判断。图7-3 行列式键盘原理电路2键盘工作方式(如图7-47-7所示)键盘的工作方式:编程扫描方式、定时扫描方式、中断扫描方式三种。在键盘扫描子程序中完成下述几个功能。(1)判断键盘上有无键按下(2)去键的机械抖动影响。(3)求按下键的键号。(4)键闭合一次仅进行一次键功能操作。图7-4 8155扩展I/O口组成的行列式键盘图7-5 键扫描子程序框图调用子程序延时6ms调用子程序延时12ms开始有键闭合否?有键闭合否?判断闭合键键号栈闭合键释放否?输入键号A返回YNNYNY图7-6 定时扫描方式程序框图图7-7 中断方式键盘接口3键盘扫描
53、方式扫描法:在判定有键按下后逐列(或逐行)置低电平,同时读入行(或列)的状态,如果行(或列)的状态出现非全1状态,这时0状态的行、列交点的键就是所按下的键。特点是逐列(或逐行)扫描查询。这时相应行(或列)应有上拉电阻接高电平。反转法:只要经过两个步骤就可获得键值。反转法原理如图7-8所示。 (a)线反转法第一步 (b)线反转法第二步图7-8 线反转法原理4行列式键盘接口(如图7-9所示)通用并行扩展I/O口键盘接口8031串行I/O口扩展的键盘接口图7-9 8031串行I/O口扩展的行列式键盘接口 返回本节7.2显示器接口7.2.1LED显示器接口7.2.2LCD显示器接口7.2.3典型键盘/
54、显示器接口实例返回本章首页7.2.1LED显示器接口1LED显示器结构与原理LED显示块是由发光二极管显示字段的显示器件。在微机应用系统中通常使用的是七段LED。这种显示块有共阴极与共阳极两种,如图7-10所示。七段显示块与微机接口非常容易。如表7-1所示。 (a)共阴极 (b)共阳极 (c)管脚配置图7-10 七段LED显示块表7-1 七段LED的段选码 2LED显示器与显示方式在微机应用系统中使用LED显示块构成N位LED显示器。图7-11是N位显示器的构成原理。LED显示器有两种方式:(1)LED静态显示方式(如图7-12所示)(2)LED动态显示方式(如图7-13所示)a b c d
55、e f Rdpa b c d e f Rdpa b c d e f Rdpa b c d e f Rdpa b c d e f Rdp3.83.83.83.83.8 I/O口位选控制 I/O口段选控制图7-11 N位LED显示器 GND/+5VGND/+5VGND/+5VGND/+5VGND/+5VI/O(1)I/O(2)I/O(3)I/O(4)图7-12 四位静态LED显示器电路图7-13 八位LED动态显示器电路 I/O(1)DDDDDDDDI/O(2)756432103LED显示器接口实例从LED显示器的原理可知,为了显示字母与数字,必须最终转换成相应的段选码。这种转换可以通过硬件译码器
56、或软件进行译码。l 硬件译码器LED显示器接口(如图7-14所示)l 软件译码LED显示器接口(如图7-157-16所示)图7-14 利用硬件译码器的七段LED接口电路 图7-15 通过8155扩展I/O口控制的8位LED动态显示接口图7-16 动态显示子程序流程图返回本节7.2.2LCD显示器接口1LCD的基本结构及工作原理图7-17 液晶显示器基本结构2LCD的驱动方式静态驱动方式:静态驱动回路及波形如图7-18所示,图中LCD表示某个液晶显示段。时分割驱动电压平均化:当显示字段增多时,为减少引出线和驱动回路数,需要采用时分割驱动法。时分割驱动方式通常采用电压平均化法,其占空比有1/2,1
57、/8,1/11,1/16,1/32,1/64等,偏比有1/2,1/3,1/4,1/5,1/7,1/9等。(a)驱动回路;(b)真值表;(c)驱动波形图7-18 静态驱动回路及波形3LCD接口实例硬件接口电路:图7-19为六位液晶静态显示电路。典型显示子程序:设显示缓冲区为8031片内RAM的22H27H六个单元依次放置六位分离的BCD码。图7-19 六位LED静态显示电路 返回本节7.2.3典型键盘/显示器接口实例18155扩展I/O口的键盘/显示器接口接口电路:LED显示器采用共阴极如图7-20所示;LED采用动态显示软件译码,键盘采用逐行扫描查询方式;LED的驱动采用北京集成电路设计中心生
58、产的集电极开路输出八位驱动器8718。软件设计:由于键盘与显示做成一个接口电路,因此在软件设计中合并考虑键盘查询与动态显示,键盘消颤的延时子程序用显示程序代替。图7-20 8155扩展I/O口的键盘/显示器接口电路PBPBPBPBPBPBPBPB01234567PAPAPAPAPAPAPAPA01234567abcdefdp1AAAAAAAA26345781AAAAAAAA26345786134578YYYYYYYY26134578YYYYYYYY2g+5V+5VRESETCEIO/MWRRDALEPALERDWRPPBIC87185.1K 4+5V+5V100 8+5VVCCVCCGGNDG
59、815502.72.0020F1K80311BIC87188023PCPCPCPCDD70123456789101112131415161718192021222324252627282930312串行口扩展的键盘/显示器接口接口电路:图中使用一片74LS164和2根行线扩展16键键盘。电路原理如图7-21所示。软件设计:在图7-21中,设显示器位数存于R7,显示缓冲区首址存于R0,显示字符以BCD码形式存放,8031RAM中20H为键码缓冲区,无键输入时,20H中为80H。PPINTRXDTXDP5.1K5.1K+5V+5VQQAB8031+5VABQQQQCPAB+5V2.7k 8+5V7
60、4LS16474LS164abce3.43.503.30123456789 10 1112131415CP74LS16470VCCVCCVCCCrCr+5VCrCP7070dfgdp2.7k 8&图7-21 串行口扩展的键盘/显示器接口38279键盘/显示器接口8279是专用键盘/显示器控制芯片,能对显示器自动扫描,能识别键盘上按下键的键号;可充分提高CPU的工作效率。8279与MCS-51接口方便,由它构成的标准键盘/显示器接口在微机应用系统中使用越来越广泛。48279接口和编程的一般方法接口电路的一般连接方法8279的键盘/显示器电路与8031接口的一般连接方法如图7-22所示。ALE可直
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 伊能静签下器官协议书
- 邻里房屋间隔协议书
- 酒店经营转让协议书
- 体教联办训练点协议书
- 边界联防联控协议书
- 购货解除合同协议书
- 金婚佟志手术协议书
- 营销广告合同协议书
- 酒店接机服务协议书
- 迅雷支持旋风协议书
- 2024年江西省公安机关警务辅助人员条例训练题库321题及答案
- 鱼类卵子受精机制与精子激活
- 植物营养学智慧树知到期末考试答案章节答案2024年黑龙江八一农垦大学
- MOOC 市场调查与研究-南京邮电大学 中国大学慕课答案
- 小学数学项目化设计教学案例
- 燃气工程项目全生命周期管理与维保策略
- 下肢感染护理查房
- 2023年4月自考02333软件工程试题及答案含解析
- 简易呼吸器课件9
- 凉水井煤矿矿山地质环境与土地复垦方案
- 《口腔医学技术》课件-暂时冠制作
评论
0/150
提交评论