单片机原理与应用 试题库(1) 联系客服

发布时间 : 星期六 文章单片机原理与应用 试题库(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