发布时间 : 星期六 文章单片机原理与应用 试题库(1)更新完毕开始阅读
500ms定时。50ms定时初值=65536-50000*12/12=15536=3CB0H
ORG 0000H
LJMP START ORG 1BH LJMP TS ORG 30H
MOV TMOD,#10H MOV TH1,#3CH MOV TL1,#0B0H SETB ET1 SETB EA MOV R2,#10 CLR P1.0 SETB TR1 SJMP $ TS: CLR TR1
MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 DJNZ R2,TS1 MOV R2,#10 CPL P1.0 TS1: RETI
48.80C51单片机应用系统的晶体振荡器频率为6MHz,请利用定时器T1编程实现在P1.0和P1.1引脚输出互补(互为反相)的、频率为20Hz的方波。要求:采用中断方式,T1工作在方式2下。
参考答案:20Hz方波的半周期为25ms,T1的0.5ms定时初值=256-500*6/12=6
ORG 0000H
LJMP START ORG 1BH LJMP TS ORG 0030H START: MOV TMOD,#20H MOV TH1,#6 MOV TL1,#6
MOV R2,#50 ; 50*0.5ms=25ms CLR P1.0 SETB P1.1 SETB ET1
SETB EA ; (或 MOV IE,#88H) SETB TR1 SJMP $ TS: DJNZ R2,TS1 MOV R2,#50
29
CPL P1.0 CPL P1.1 TS1: RETI
49.AT89S52单片机应用系统的晶体振荡器频率为12MHz,请利用定时器T0编程实现在P1.7引脚输出频率为20Hz的方波。要求:采用中断方式,T0工作在方式1下。
参考答案:20Hz方波的周期是1/20=0.05 (s) =50 ms ,则半周期为25ms,因此只要每隔25ms将P1.7取反即可得到20Hz的方波。T0的定时初值=65536-25000*12/12=40536=9E58H ORG 0000H LJMP START ORG 0BH LJMP TS ORG 30H
START: MOV TMOD,#01H ; 设定T0为定时器,方式1 MOV TH0,#9EH MOV TL0,#58H CLR P1.7 SETB ET0
SETB EA
SETB TR0 ; 启动T0定时 SJMP $
TS: CLR TR0 ; 停止T0定时
MOV TH0,#9EH
MOV TL0,#58H
SETB TR0 ; 启动T0定时 CPL P1.7 RETI
END
50.设80C51单片机应用系统的晶振频率为12MHz,请利用T1在P1.0和P1.1引脚上输出频率为20Hz、互补(两个波形互为反相)的方波。要求:采用中断方式,T1工作在方式1。
参考答案:20Hz方波的周期是1/20=0.05 (s) =50 ms ,则半周期为25ms,因此只要每隔25ms将P1.0和P1.1取反即可得到互补的20Hz方波。T1的定时初值=65536-25000*12/12=40536=9E58H ORG 0 LJMP START ORG 1BH LJMP TS ORG 30H
START: MOV TMOD,#10H ; 设定T1为定时器,方式1 MOV TH1,#9EH MOV TL1,#58H CLR P1.0 SETB P1.1 MOV IE,#88H
30
SETB TR1 ; 启动T1定时 SJMP $
TS: CLR TR1 ; 停止T1定时
MOV TH1,#9EH
MOV TL1,#58H
SETB TR1 ; 启动T1定时 CPL P1.0 CPL P1.1 RETI
51.已知80C51单片机应用系统的晶体振荡频率为12MHz,请利用定时器T0实现在P1.0引脚上输出频率为2kHz的方波。(要求:采用中断方式,T0工作在方式2下)
参考答案:2kHz方波的周期是1/2000=0.5ms =500 μs,则半周期为250 μs,因此只要每隔250 μs将P1.0取反即可得到互补的2kHz方波。T0的定时初值=256-250*12/12=6 ORG 0 LJMP START ORG 0BH LJMP TS ORG 30H
START: MOV TMOD,#02H ; 设定T0为定时器,方式2 MOV TH0,#6 MOV TL0,#6 CLR P1.0 SETB ET0
SETB EA SETB TR0 ; 启动T0定时 SJMP $
TS: CPL P1.0 RETI END
52.设80C51单片机的晶体振荡频率为12MHz,利用定时器T0编程由P1.0输出周期为1秒的方波。(要求:T0工作在方式1下,采用中断方式工作)
参考答案:周期为1秒的方波只需要每隔0.5秒将P1.0取反即可,将T0设定为50ms定时中断,中断10次即是0.5秒,这时将P1.0取反即可。T0的定时初值=65536-50000*12/12=15536=3CB0H ORG 0 LJMP START ORG 0BH LJMP TS ORG 30H
START: MOV TMOD,#01H ; 设定T0为定时器,方式1 MOV TH0,#3CH
MOV TL0,#0B0H ; 50ms定时初值送T0 MOV R2,#10 ; 中断10次
31
SETB ET0
SETB EA
SETB TR0 ; 启动定时 SJMP $ ; 等待中断 TS: CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H ; 50ms定时初值送T0 SETB TR0 DJNZ R2,NEXT MOV R2,#10 CPL P1.0 NEXT: RETI END
53.设80C51单片机的晶体振荡频率为6MHz,利用定时器T0编程由P1.0和P1.1输出周期为1s、互补(互为反相)的方波。(要求:T0工作在方式1下,采用中断方式工作)
参考答案:周期为1s则半周期为500ms,只需要每隔500ms将P1.0和P1.1的输出取反即可,可以利用T0定时100ms中断,对T0中断计5次实现500ms定时。T0的定时初值为65536-100000*6/12=15536=03CB0H
ORG 0000H LJMP START ORG 0BH LJMP TS ORG 30H START: MOV TMOD,#01H MOV TH0,#03CH MOV TL0,#0B0H
MOV R2,#5 ; 中断5次为500ms SETB ET0 SETB TR0 SETB EA CLR P1.0 SETB P1.1 SJMP $
TS: MOV TH0,#03CH MOV TL0,#0B0H DJNZ R2,TS1
MOV R2,#5 ; 恢复中断次数初值 CPL P1.0 CPL P1.1 TS1: RETI END
54.80C51单片机应用系统的晶体振荡器频率为6MHz,请利用定时器T0编程实现在P1.0引脚输出频率为
32