内容发布更新时间 : 2024/12/29 20:33:51星期一 下面是文章的全部内容请认真阅读。
MOV R3,A
30.已知30H,31H中存放一个16位的二进制数,高位在前,低位在后。试编一程序将其乘2,结果存回原处。 方法一 方法二 MOV A,31H CLR C ADD A,31H MOV A,31H MOV 31H,A RL A MOV A,30H MOV 31H,A ADDC A,30H MOV A,30H MOV R3,A RLC A MOV 30H,A 31.
32.编写一个程序,把片外RAM从2000H开始存放的8个数传送到片内30H开始的单元中。 MOV DPTR,#2000H MOV R0,#30H MOV R1,#08H L1: MOV A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R1,L1 33. 34.
35.设(R0)=7EH,(DPTR)=10FEH,片内RAM中7E单元的内容为0FFH,7FH单元的内容为38H。试为下列程序的每条指令注释其执行结果。 INC @R0 (7EH)=00H INC R0 R0=7FH INC @R0 (7FH)=39H INC DPTR (DPTR)=10FFH INC DPTR (DPTR)=1100H INC DPTR (DPTR)=1101H
36.下列程序段经汇编后,从1000H开始的各有关存储单元的内容将是什么? ORG 1000H 1000H “S” 1001H “T” 1002H “A” 1003H “R” 1004H “T” 1005H 12H
1006H 34H 1007H 30H 1008H 00H 1009H 00H 100AH 70H TAB1: EQU 1234H TAB2: EQU 3000H DB “START DW TAB1,TAB2,70H 37. 38.
39.试编写程序,判断30H单元中的数据是奇数还是偶数,是奇数则把31H单元置1,是偶数则把31置0。要求不破坏30H单元的内容。 方法一 MOV A,30H MOV 31H,#00H ORL A,#01H JZ L1 MOV 31H,#01H L1: … 方法二 MOV A,30H ORL A,#01H JZ L1 MOV 31H,#01H SJMP L2
L1: MOV 31H,#00H L2: …
40.试编写程序,使31H单元中二进制数的最高位(符号位)置1。 MOV A,30H ORL A,#80H MOV 30H,A
41.试编写程序,把31H单元中二进制数的最高位(符号位)求反。 MOV A,30H XRL A,#80H MOV 30H,A 思考题与习题
1.什么是中断和中断系统?其主要功能是什么?
2.试编写一段对中断系统初始化的程序,使之允许INT0、INT1、TO、串行口中断,且使T0中断为高优先级中断。
字节操作方式 位操作方式 MOV IP,#00000101B MOV IE,#10010111B SETB ES SETB EX1 SETB EX0 SETB ET0 SETB PX1 SETB PX0 SETB EA
3.在单片机中,中断能实现哪些功能?
答:I/O设备请求服务;硬件故障;实时时钟;为调试程序而设置的中断源。 4.8051共有哪些中断源?对其中断请求如何进行控制? 5.什么是中断优先级?中断优先级处理的原则是什么?
答:中断优先级是CPU相应中断的顺序。其处理原则是:高优先级组的中断优先响应低优先组的中断。同组(级)按外部中断0、定时器0、外中断1、定时器1、串行口的顺序响应。 6.说明外部中断请求的查询和响应过程。 7.8051在什么条件下可响应中断? 答:CPU开中断(EA=1);
中断源发中断请求信号且其中断允许位为1;无同级中断或更高级中断正在被服务;
当前的指令周期已经结束(若是当前指令为RETI或访问IE、IP的指令,则应等CPU再执行完一条指令)。
8.简述8051单片机的中断响应过程。 9.在8051内存中,应如何安排程序区?
答:8051复位后PC=0000H,而0003H~002BH为各中断源的入口地址,故程序段一般从0030H(以后)的地址开始存放。因此编程时应在0000H出写一跳转指令转至0030H(或相应的开始地址)。 10.试述中断的作用及中断的全过程。
11.当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?
12.8051单片机外部中断源有几种触发中断请求的方法?如何实现中断请求?
13.8051单片机有5个中断源,但只能设置两个中断优先级,因此,在中断优先级安排上受到一定的限制。试问以下几种中断优先级顺序的安排(级别由高到低)是否可能?若可能,则应如何设置中断源的中断级别?否则,请简述不可能的理由。
⑴定时器0、定时器1、外中断0、外中断1、串行口。 答:可以。MOV IP,#00001010B。
⑵串行口、外中断0、定时器0、外中断1、定时器1。
答:可以。MOV IP,#00010000B。
⑶外中断0、定时器1、外中断1、定时器0、串行口。
答:不可能。因为把外中断0、定时器1设定为高优先级时,在低优先级中定时器0的优先级高于外中断1。
⑷外中断0、外中断1、串行口、定时器0、定时器1。 答:可以。MOV IP,#00010101B。
⑸串行口、定时器0、外中断0、外中断1、定时器1。
答:不可能。因为若把串行口及定时器0设定为高优先级中断,在同级中断优先级中串行口为最低。而单独把串行口设定为高优先级中断时,低优先级组中的最高优先级应为外中断0。 ⑹外中断0、外中断1、定时器0、串行口、定时器1。 答:不可能。
⑺外中断0、定时器1、定时器0、外中断1、串行口。 答:不可能。
14.以中断方法设计单片机秒、分脉冲发生器。假定P1.0每秒钟产生一个机器周期的正脉冲,P1.1每分钟产生一个机器周期的正脉冲。 思考题与习题
1.定时器模式2有什么特点?使用于什么应用场合? 答:定时器模式2具有自动重装载的8位定时器/计数器。 一般使用于串行口波特率发生器。
2.单片机用内部定时方法产生频率为100KHZ等宽矩形波,假定单片机的晶振频率为12MHZ。请编程实现。
3.8051定时器有哪几种工作模式?有何区别?
4.8051单片机内部设有几个定时器/计数器?它们是由哪些特殊功能寄存器组成?
5.定时器/计数器用作定时器时,其定时时间与哪些因素有关?作为计数器时,对外界计数频率有何限制?
答:用作定时器时定时时间与振荡器的频率、计数器的初值有关。 用作计数器时计数频率为振荡频率/24。 6.简述定时器四种工作模式的特点。如何选择和设定? 7. 8. 9. 10.
11.8051定时器作定时和计数时,其计数脉冲分别由谁提供? 定时:单片机的主频经12分频提供。 计数:Ti引脚提供。
12.8051定时器门控信号GATE设置为1时,定时器如何启动?
答:8051定时器门控信号GATE设置为1时,定时器将由INTi引脚启动。
13.已知8051单片机的fosc=6MHZ,请利用T0和P1.0输出矩形波。矩形波高电平宽度50μs,低电平
宽度300μs。
定时时间为50μs,则时间常数=28-(50*10-6*6*106/12)=28-25=231=0E7H ORG 0000H
RESET: AJMP MAIN ;跳过中断服务程序区 ORG 000BH AJMP ITOP 主程序 ORG 0100H
MAIN: MOV SP,#60H ;设置堆栈指针 PTOMD: MOV TMOD,#02H ;设置T0模式2 MOV TH0,#0E7H ;送初值 MOV TL0,#0E7H MOV R0,#00H ;设置计数器 SETB TR0 ;启动定时 SETB ET0 ;T0开中断 SETB EA ;CPU开中断
HERE: SJMP HERE ;等待时间到,转入中断服务程序(模拟主程序的运行) 中断服务程序 ORG 0120H
ITOP: CJNE R0,#00H,L1 ;若R0不等于0转L1输出低电平 SETB P1.0 ;R0=0输出高电平 SJMP L2
L1: CLR P1.0 ;R0≠0输出低电平 L2: INC R0 ;R0加1
CJNE R0,#07H,L3 ;判断是否已输出6个50μs的低电平 MOV R0,#00H ;是则重置R0=0 L3: SET ET0 ;T0开中断 RETI
14.已知8051单片机的fosc=12MHz,用T1定时。试编程由P1.0和P1.1引脚分别输出周期为2ms和500μs的方波。
定时时间为250μs,则时间常数=28-(250*10-6*6*106/12)=28-125=131=83H ORG 0000H
RESET: AJMP MAIN ;跳过中断服务程序区 ORG 001BH AJMP ITOP 主程序 ORG 0100H
MAIN: MOV SP,#60H ;设置堆栈指针