LJMP START ORG 1BH LJMP TS ORG 30H
START: MOV TMOD,#20H MOV TH1,#6 MOV TL1,#6 SETB ET1 SETB EA SETB TR0 CLR P1.0 SETB P1.1 MOV R2,#4 SJMP $ TS: DJNZ R2,TS1 MOV R2,#4 CPL P1.0 CPL P1.1 TS1: RETI END
评分办法:写对定时器方式字和初值各给1分,设计思路正确给4分,程序编制正确
第36页 共58页
可得满分。若仅写出少量指令,可酌情给1-3分。
47、设8031单片机应用系统的晶振频率为12MHz,请利用T1在P1.0引脚上输出频率为1Hz的方波。要求:采用中断方式,T1工作在方式1。
解:1Hz方波的周期为1s,半周期为500ms。可采用T1定时50ms,并对中断计数10次来实现500ms定时。
50ms定时初值=65536-50000*12/12=15536=3CB0H
ORG 0
LJMP START ORG 1BH LJMP TS ORG 30H MOV TMOD,#10H MOV TH1,#3CH MOV TL1,#0B0H SETB ET1
SETB EA (或 MOV IE,#88H) MOV R2,#10 CLR P1.0 SETB TR1 SJMP $
第37页 共58页
TS: CLR TR1 MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 DJNZ R2,TS1 MOV R2,#10 CPL P1.0 TS1: RETI
评分办法:写对定时器方式字和初值各给1分,设计思路正确给4分,程序编制正确可得满分。若仅写出少量指令,可酌情给1-3分。
48、8051单片机应用系统的晶体振荡器频率为6MHz,请利用定时器T1编程实现在P1.0和P1.1引脚输出互补(互为反相)的、频率为20Hz的方波。要求:采用中断方式,T1工作在方式2下。
解:20Hz方波的半周期为25ms,
T1的0.5ms定时初值=256-500*6/12=6
ORG 0
LJMP START ORG 1BH LJMP TS
第38页 共58页
ORG 30H 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 CPL P1.0 CPL P1.1 TS1: RETI
评分办法:写对定时器方式字和初值各给1分,设计思路正确给4分,程序编制正确可得满分。若仅写出少量指令,可酌情给1-3分。
49、8751单片机应用系统的晶体振荡器频率为12MHz,请利用定时器T0编程实现在
第39页 共58页
P1.7引脚输出频率为20Hz的方波。要求:采用中断方式,T0工作在方式1下。
解:20Hz方波的周期是1/20=0.05s =50 ms ,则半周期为25ms。
因此只要每隔25ms将P1.7取反即可得到20Hz的方波。 T0的定时初值=65536-25000*12/12=40536=9E58H ORG 0 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 (或两条指令合并为MOV IE,#82H) SETB TR0 ; 启动T0定时 SJMP $
TS: CLR TR0 ; 停止T0定时
MOV TH0,#9EH
MOV TL0,#58H
SETB TR0 ; 启动T0定时 CPL P1.7 RETI
END
评分办法:T0的方式字和定时初值写对可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。在中断服务程序中可以省略T0的停止与启动指令。若少量指令写错可酌情扣1-2分;若仅写出少量指令可酌情给1-2分。
50、设8051单片机应用系统的晶振频率为12MHz,请利用T1在P1.0和P1.1引脚上输出频率为20Hz、互补(两个波形互为反相)的方波。要求:采用中断方式,T1工作在方式1。
解:20Hz方波的周期是1/20=0.05s =50 ms ,则半周期为25ms。因此只要每隔25ms将P1.0和P1.1取反即可得到互补的20Hz方波。
T1的定时初值=65536-25000*12/12=40536=9E58H
第40页 共58页