1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可酌情扣1-2分;若仅写出少量指令可酌情给1-2分。
39、设8031单片机应用系统的晶振频率为12MHz,请利用T0在P1.0和P1.1引脚上输出频率为20Hz、互补(两个波形互为反相)的方波。要求:采用中断方式,T0工作在方式1。
解:输出频率为20Hz,则周期为1/20=50mS,半周期为50/2=25mS,
T0的定时初值为:65536-25000/1=40536=9E58H
ORG 0H LJMP START ORG 000BH LJMP TS ORG 30H
START:MOV TMOD,#01H ;T0设定为定时器,工作方式1 MOV TH0,#9EH MOV TL0,#58H SETB ET0 SETB EA SETB TR0 CLR P1.0 SETB P1.1
第26页 共58页
SJMP $ TS: CLR TR0 MOV TH0,#9EH MOV TL0,#58H SETB TR0 CPL P1.0 CPL P1.1 RETI END
评分办法:不要求写出程序的注释。T0的方式控制字写对和定时初值计算正确可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可酌情扣1-2分;若仅写出少量指令可酌情给1-2分。
40、8031单片机应用系统的晶体振荡器频率为12MHz,请利用定时器T0编程实现在P1.7引脚输出频率为20Hz的方波。要求:采用中断方式,T0工作在方式1下。
20Hz方波的周期是1/20=50mS,则其半周期为50/2=25mS T0的定时初值为:65536-25000*12/12=40536=9E58H ORG 0H LJMP START ORG 000BH LJMP TS
第27页 共58页
ORG 30H
START: MOV TMOD,#01H ;T0设定为定时器,工作方式1 MOV TH0,#9EH MOV TL0,#58H SETB ET0 SETB EA SETB TR0 SJMP $ TS: CLR TR0 MOV TH0,#9EH MOV TL0,#58H SETB TR0 RETI END
评分办法:不要求写出程序的注释。T0的方式控制字写对和定时初值计算正确可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可酌情扣1-2分;若仅写出少量指令可酌情给1-2分。
41、设单片机的晶体振荡频率为12MHz,利用定时器T0编程由P1.0和P1.1输出周期为10ms、互补(互为反相)的方波。(要求:T0工作在方式1下,采用中断方式工作) 解:周期为10ms则半周期为5ms,因此T0的定时初值为65536-5000*12/12=
第28页 共58页
60536=0EC78H
ORG 0 LJMP START ORG 000BH START: TS: LJMP ORG MOV MOV MOV SETB SETB SETB CLR SETB SJMP CLR MOV MOV SETB CPL CPL TS 30H
TMOD,#01H TH0,#0ECH TL0,#78H ET0 TR0 EA P1.0 P1.1 $ TR0 TH0,#0ECH TL0,#78H TR0 P1.0 P1.1
第29页 共58页
RETI END
评分办法:不要求写出程序的注释。T0的方式控制字写对和定时初值计算正确可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可酌情扣1-2分;若仅写出少量指令可酌情给1-2分。
42、已知8051单片机应用系统的晶体振荡频率为12MHz,请利用定时器T1实现在P1.0和P1.1引脚上输出互补(互为反相)的周期为100mS的方波。(要求:采用中断方式,T1工作在方式1下)
解:输出方波周期为100mS,故半周期为50mS,因此T1的定时初值是
65536-50000*12/12=15536=3CB0H
ORG 0H LJMP START ORG 001BH LJMP TS ORG 30H
START: MOV TMOD,#10H (或#1XH) MOV TH1,#3CH MOV TL1,#0B0H SETB ET1 SETB TR1
第30页 共58页