1、 ANL P1,#42H ORL P1,#0ECH2、下列程序段执行后,(R0)=47H,(48H)= 0FFH,(47H)=3FH MOV R0,#48H MOV 48H,#0 MOV 47H,#40H DEC R0 DEC R03、已知(SP)=29H,(DPTR)=1234H,在执行下列指令后,(SP)= 2BH,内部RAM(2AH)=34H,(2BH)=12H PUSH DPL PUSH DPH 4、简答题1、简述MCS-51单片机中,振荡周期、机器周期和指令周期的关系。答:(1)振荡周期:振荡周期为单片机提供定时信号的振荡源的周期或外部输入时钟的周期。 (2)时钟周期:又称状态周期或
2、状态时间S,是振荡周期的两倍,分为P1、P2节拍,通常P1完成算术逻辑操作,在P2节拍完成内部寄存器间的数据传送操作。 (3)机器周期:一个机器周期由6个状态(时钟周期)(或12个振荡周期)组成。 (4)指令周期:执行一条指令的全部时间,是机器周期的倍数,MCS-51单片机中指令周期通常由1、2、4个机器周期组成。2、DAC0832作为数模转换器,其连接方式有几种?3种。单缓冲方式、双缓冲方式和直通方式。 (1)直通方式常用于不带微机的控制系统。 (2)单缓冲方式是值DAC0832内部的两个数据缓冲器有一个处于直通方式,另一个处于受8051控制的锁存方式。 (3)对于多路D-A转换,要求同步进
3、行D-A转换输出时,必须采用双缓冲同步方式。3、8051单片机作定时和计数时,其计数脉冲分别由谁提供?8051单片机定时计数器共有几种工作模式?分别是什么?当用作定时器时,是在内部对CPU的时钟脉冲计数。当用作计数器时,是对相应输入引脚输入的脉冲信号计数。工作模式:(1)工作模式0:使用低字节的5位和高字节的8位组成13位的计数器,低5位计数溢出后向高位进位计数,高8位计数器计满后置位溢出标志位。(2)工作模式1:使用低字节和高字节的16位组成16位计数器。与0模式的区别仅在计数器长度,定时长度和计数容量不同。(3)工作模式2:使用低字节的8位做计数器、高字节的8位作为预置常数的寄存器。(4)
4、工作模式3:只适用于定时器/计数器T0,T0分别为两个独立的8位计数器TH0和TL0.4、MCS-51单片机系统共有几种寻址方式?有7种寻址方式:(1)寄存器寻址(2)直接寻址(3)立即寻址(4)寄存器间接寻址(5)相对寻址 (6)位寻址 (7)基址加变址寄存器间接寻址5、试说明特殊功能寄存器TCON中TF1、TR1、IE1、IT1位的含义是什么?这些位什么情况下被置位或清除?TF1 T1计数溢出标志位,当计数器T1计数计满溢出时,该位由硬件置1,转到中断服务程序时,再由硬件自动清0.TR1 T1计数运行控制位,由软件置1或清0.为1时允许计数器T1计数,为0时禁止计数器T1计数。TF0 T0
5、计数溢出标志位,当计数器T0计数计满溢出时,由硬件置1,申请中断。进入中断服务程序后由硬件自动清0.TR0 T0计数运行控制位,由软件置1或清0,为1时允许计数器T0计数,为0时禁止计数器T0计数。IE0 外部中断0(INT0)请求标志位,当CPU采样到INT0引脚出现中断请求后,此位由硬件置1.在中断响应完成后转向中断服务程序时,再由硬件自动清0.IE1 外中断1(INT0)请求标志位,功能同上。IT0 外中断0请求信号方式控制位,当IT0=1,后沿负跳变有效;IT0=0,低电平有效。此位可由软件置1或清0.IT1 外中断1请求信号方式控制位,IT1=1,后沿负跳变有效;IT1=0,低电平有
6、效。5、应用题1、将存于外部RAM 8000H开始的50H个数据传送到内部0010H开始的区域,请编程实现。 ORG 0100H MOV DPR,#8000H MOV R0,#10H MOV R2,#50H MOVX A,DPTR MOV R0,A INC DPTR INC R0 END知识点: 1、各P口功能:P0口:8位双向三态I/O口,或分时复用为地址总线(低8位)及数据总线,或作为普通I/O口使用。P1口:8位准双向I/O口,常用作普通I/O口使用,个别引脚有第二功能P2口:8位准双向I/O口,或用作地址总线(高8位),或作为普通I/O口使用P3口:8位准双向I/O口,或作为普通I/O
7、口使用;或作为第二功能口使用。P3.0串行输入端口(RXD) P3.1串行输出端口(TXD)P3.2外部中断0(INT0)P3.3外部中断1(INT1) P3.4 T0 P3.5 T1P3.6外部数据存储器写选通(WR) P3.7外部数据存储器读选通(RD) 2、引脚EA 当EA=1时,访问内部程序存储器,EA=0时,访问外部程序存储器引脚PSEN外部程序存储器的读选通信号,读取时有效低电平引脚PROG/ALE 当访问外部存储器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端扔以不变的频率周期性地出现正脉冲信号,次频率为振荡器频率的1/6,可用作对外输出的
8、时钟,或用于定时,每当访问外部数据存储器的时候,将跳过一个ALE脉冲。3、PSW中各个位的功能:PSW.7 (CY)进位标志位PSW.6 (AC)辅助进位标志位PSW.5 (F0)标志位PSW.4 PSW.3 (RS1RS0)四组工作寄存器区选择控制位1和位0 00 工作0区(00H) 01 1区(08H) 10 2区(10H) 11 3区(18H)PSW.2 (OV)溢出标志位PSW.1 保留位,未用4、8051单片机的时序定时单位:节拍、状态、机器周期和指令周期5、复位:RST引脚处至少保持24个振荡周期的高电平就可复位寄存器内容PC0000HTCON00HACCT2CONBTH0PSWT
9、L0SP07HTH1DPTRTL1P0P30FFHTH2IP(8051)XXX00000BTL2IP(8052)XX000000BRLDHIE(8051)0XX00000BRLDLIE(8052)0X000000BSCONTMODSBUF不定PCON(HMOS)0XXXXXXXBPCON(CHMOS)0XXX0000B6、寻址方式(1)寄存器寻址方式是对选中寄存器中的数据进行处理,适用于数据放置在寄存器之中的情况。MOV R1,B ; 将寄存器B中的数值送入到寄存器R1中INC R2 ; 将寄存器R2中的数值加1MOV A,R7 ;将寄存器R7中的数值送入累加 器A寄存器寻址范围: 寄存器区中
10、8个工作寄存器R0R7中的一个(由指令操作码的低三位数值确定)、特殊寄存器A, B, DPTR, Cy(进位位,也是位处理机的累加器)也可作为寄存器寻址的对象。(2)直接寻址方式是对直接指定地址的存储器单元中的数据进行处理,适用于数据放置在可以直接寻址的存储单元之中的情况。MOV 40H,B ;将寄存器B中的数值送入到内部RAM的40H单元中INC 30H ;将内部RAM的30H单元中的数值加1 MOV TL0 , R7 ;将寄存器R7中的数值送入到特殊功能寄存器TL0中直接寻址范围: 片内RAM,包括SFR,且SFR只能直接寻址(3)立即寻址是对指令操作码后的数据进行处理,适用于在程序中直接
11、处理的数据的情况。 MOV 38H,05H ;将数值05H送入到内部RAM的38H单元中 ADD A,30H ;将A寄存器中的数值加上30H MOV TH0,0F2H ;将定时器0高8位设置为数值0F2H(4)位寻址MOV C,40H ;把位40H的值送进位位C 位寻址的寻址范围包括:内部RAM中的位寻址区 单元地址为20H-2FH,共16个单元,128个位,位地址是00H-7FH。特殊功能寄存器中的可寻址位 可供位寻址的特殊功能寄存器共有11个,实际有寻址位83个。 注意: 位寻址只能直接寻址。(5)寄存器间接寻址是将要处理数据的地址放在寄存器中,即用寄存器中的数据作为存储单元的地址数值。
12、MOV R1,#05H ;将数值05H送入到以R1内数值为地址的内部RAM单元中 ADD A,R1; 将累加器A中的数值加上以R1内数值为地址的内部RAM单元中的 数据结果存放于A MOVX A,DPTR ;将以DPTR内数值为地址的外部数据存储器的内容送给累加器A 注意: 寄存器间接寻址范围包括内部RAM和外部RAM,且外部RAM只能寄存器间接寻址,访问外部数据存储器的指令助记符与访问内部RAM的助记符不同。(6) 相对寻址方式 目的地址=转移指令所在的地址+转移指令字节数+relJC rel JNC rel JB bit, rel JNB bit, rel JBC bit, rel SJM
13、P rel (7) 基址加变址寄存器间接寻址专用16位寄存器(DPTR或PC)存放基地址,寄存器A做变址寄存器,仅两条指令: MOVC A,APC MOVC A,ADPTR 只能读取程序存储器。 7、指令(1)一般传输指令 MOV A, Rn (2)累加器传输指令XCH A, Rn (n为0-7之一,将工作寄存器Rn的内容和A的内容交换)SWAP A ;A的高4位和低4位互换XCHD A,Ri ;Ri为R0或R1,将Ri所指单元的低4位与A的低4位互换,高4位不变。(3)查表指令MOVC A,A+DPTR;将DPTR中的16位地址和A中内容相加得新地址,把此地址内容送AMOVC A ,A+PC
14、;将PC值和A的内容相加所得值作为新地址,将此地址单元内容送A(4)堆栈指令PUSH direct ;先将SP加1,再将direct所指单元内容推入SP+1所指的堆栈单元POP direct;先将SP单元的内容弹出到direct单元,再将SP减1(5)算术运算指令ADD A, Rn ;将A的内容和Rn的内容相加,结果在A中ADDC A, Rn;(A)(A)+(Rn)+CY,Rn为R0R7之一(带进位)SUBB A, Rn ;A中内容减去进位位CY ,再减去Rn中内容, 结果在A中(带借位)MUL 乘法DIV 除法ANL (逻辑与,例如,ANL P1, A)ORL (逻辑或,例如,ORL P2,
15、 A)XRL (逻辑异或,例如,XRL P3, A)JBC (若目标位置位则跳转并将目标位清零,例如,JBC P1.1, LABEL) CPL (求补, 例如, CPL P3.0)INC (增量指令, 例如, INC P2)DEC (减量指令, 例如, DEC P2)DJNZ (目标寄存器减1后不为零则跳转, 例如, DJNZ P3, LABEL)MOV PX.Y, C (将进位位送入端口位)DA A十进制调整指令,对A中的BCD码加法结果进调整 CLR PX.Y (清除端口位)SETB PX.Y (置位端口位)SETB bit ;某位置1CLR A ;A清0,不影响标志位CPL A ;A中内
16、容逐位取反 RR A ;A中内容循环右移一位, ; 最低位D0移到D7RL A ;A中内容循环左移一位,; 即D7移到D0,D0移到D1等RRC A ; CY进入A的最高位, A的最低位进入CY,D2进入D1等RLC A ; A的最高位进入CY,原CY进入A的最低位D0,D0进入D1等8、中断分类中断源名称中断申请标志触发方式中断入口地址外部中断外部中断0IE0(TCON.1)INT0(P3.2)引脚上的低电平/下降沿引起的中断0003H内部中断定时器/计数器T0中断IF0(TCON.5)T0定时器/计数器溢出后引起的中断000BH外部中断1IE1(TCON.3)INT1(P3.3)引脚上的低
17、电平/下降沿引起的中断0013H定时器/计数器T1中断IF1(TCON.7)T1定时器/计数器溢出后引起的中断001BH串口中断RI(SCON.0)TI(SCON.1)串行口接收完成或发送完一帧数据后引起的中断0023H中断的功能 (1)可实现高速CPU与慢速外设之间的配合 (2)可实现实时处理 (3)实现故障的紧急处理 (4)便于人机联系 中断的处理过程主要包括:中断请求、中断响应、中断服务、中断返回4个过程。EA中断允许的总控制位。当EA=0时,中断总禁止,相当于关中断,即禁止所有中断;当EA=1时,中断总允许,相当于开中断。此时,每个中断源是否开放由各中断控制位决定。所以只有当EA=1时
18、,各中断控制位才有意义。ES串行口中断允许控制位,当ES=0,禁止该中断;ES=1,允许串行中断。ET1定时器1中断允许控制位,当ET1=0,禁止该中断;ET1=1,允许定时器1中断EX1外部中断1允许控制位,当EX1=0,禁止外部 中断1;当EX1=1,允许外部中断1。ET0定时器0中断允许控制位,当ET0=0,禁止该中断;ET0=1,允许定时器0中断。EX0外部中断0允许控制位,当EX0=0,禁止外部中断0;当EX0=1,允许外部中断0。定时器控制寄存器(TCON) 该寄存器的字节地址为88H,位地址为88H-8FH,也可以用TCON.0-TCON.7表示在开放中断的条件下,用下述四个原则
19、使用中断优先级结构:(1)非中断服务子程序可以被任何一个中断申请所 中断,而与优先级结构无关。 (2)如果若干中断同时提出申请,则CPU将选择优先级、优先权最高者予以响应。 (3)低优先级可以被高优先级的中断申请所中断。换句话说,同级不能形成嵌套、高优先级不能被低优先级嵌套,当禁止嵌套时,必须执行完当前中断服务子程序之后才考虑是否响应另一个中断申请。 (4)同一个优先级里,优先权的顺序是由硬件决定而不能改变的。但是用户可以通过改变优先级的方法改变中断响应的顺序。例如,8051单片机中串行口的优先权最低,但是可以在中断优先级寄存器IP中写入10H,则只有串行口是最高优先级。若同时有若干中断提出申
20、请,则一定会优先响应串行口的申请。串行口控制寄存器(SCON) SCON寄存器的字节地址为98H,位地址为98H9FH,其中的低两位RI和TI锁存串行口的接收中断和发送中断的请求标志位中断响应的条件:中断源有中断请求;此中断源的中断允许位为1;CPU开中断(即EA=1)。9、定时器概念:在 8051单片机中,定时器/计数器就是一个固定长度的二进制计数器,当对输入脉冲信号的数量进行计数时,我们称其为计数器,当对单片机的系统时钟或其它标准时钟进行计数时,由于这类时钟信号本身就表示时间,计数值对应着时间值,所以从这个角度上将其称为定时器。组成:在8051单片机中,内部定时器都是可编程控制的定时器/计
21、数器,至少由两部分组成:脉冲计数电路和控制字寄存器及译码控制电路。10、串行接口的四种工作方式(1)模式0(MODE0): 同步移位寄存器方式。8位数据(先为LSB)从引脚RXD接收/移出,引脚TXD输出移位时钟,波特率固定为晶振频率的1/12。模式0通常用来扩展输入输出口。(2)模式1(MODE1):10位数据被发送(从引脚TXD)或接收(从引脚RXD):1个启动位,8个数据位,1个停止位。在接收时,停止位被送入特殊功能寄存器的SCON的RB8位。波特率是可变的。(3)模式2(MODE2):11位数据被发送(从引脚TXD)或接收(从引脚RXD):1个启动位,8个数据位,可编程的第9个数据位,
22、1个停止位。发送时,第9位(SCON 的TB8位)可被赋予0或1。例如,可将奇偶校验位送至TB8位。在接收时,停止位被送入特殊功能寄存器SCON的RB8位。模式2的波特率可为1/32或1/64晶振频率。(4)模式3(MODE3): 实际上,除了波特率之外,模式2和模式3是相同的。模式3的波特率是可变的。8255A的工作方式0,A口作为输入,B、C口作为输出取端口A:0FF7CH B:0FF7DH C:0FF7EH 控制寄存器地址:0FF7FH根据题意写入控制字为10010000=90H.MOV A,#90H(根据题意计算而变化)MOV DPTR,#0FF7FH 控制寄存器地址DPTRMOVX
23、DPTR,A 方式控制字控制寄存器MOV DPTR,#0FF7CH A口地址DPTRMOVX A,DPTR 从A口读数据MOV DPTR,#0FF7DH B口地址DPTRMOV A,#DATA1 要输入的数据DATA1AMOVX DPTR,A 将DATA1送B口输出MOV DPTR,#0FF7EH C口地址DPTRMOV A,#DATA2 DATA2AMOVX DPTR,A 将DATA2送C口输出DAC0832启动转换程序ORG 0000HMOV R1,#data1MOV A,R1MOVX DPTR,AMOV DPTR,#0BFFFHMOV R1,#data2MOV DPTR,#7FFFH例:
24、用定时器0,方式2计数,要求每计满100次,将P1.0 端取反。 分析:TMOD=00000110B 计数初值:TH0=TL0=28-100=156=9CH 程序如下: ORG 1000H START:MOV TMOD,#06H MOV TL0,#9CH MOV TH0,#9CH SETB TR0 LOOP:JBC TF0,DONE ; 判计满100次否?若计满则清零TF0且转DONE SJMP LOOP DONE:CPL P1.0例7.3 已知单片机晶振频率为12MHz,要求使用T0定时0.5ms,使单片机P1.0引脚上连续输出周期为1ms的方波。分析:首先算出机器周期=12/(12MHz)=1us,所以0.5ms需要T0计数M次 M=0.5ms/1us=500 2565008192,所以选择方式0 初值N=213-500=7692=1E0CH 因为选用方式0,低8位TL0只使用低5位,其 余的均计入高8位TH0的初值。 TL0=0CH, TH0=0F0HRESET: AJMP START ORG 000BH AJMP T0INTSTART: MOV SP,#60H MOV TH0,#0F0H MOV TL0,#0CH SETB TR0 SETB ET0 SETB EAMAIN: AJMP MAINT0中断服务程序T0INT: CPL P1.0 MOV TL0,#0C
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1