51系列单片机晶振频率12MHz,要从p2.0引脚输出一个连续的10Hz方波信号,试编写相应的程序.我自己解答:Fosc=12MHz,机器周期为1µs,方波周期为0.1s.半个周期用时0.05s.方波半周期=0.05/1µ= 5×10^4
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/28 13:46:57
51系列单片机晶振频率12MHz,要从p2.0引脚输出一个连续的10Hz方波信号,试编写相应的程序.我自己解答:Fosc=12MHz,机器周期为1µs,方波周期为0.1s.半个周期用时0.05s.方波半周期=0.05/1µ= 5×10^4
51系列单片机晶振频率12MHz,要从p2.0引脚输出一个连续的10Hz方波信号,试编写相应的程序.
我自己解答:
Fosc=12MHz,机器周期为1µs,方波周期为0.1s.半个周期用时0.05s.
方波半周期=0.05/1µ= 5×10^4 个机械周期
初值X=65536-50000=15536=3CB0H
实际X’=3CB0H-06H=3C05H
程序如下:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:MOV TMOD,#01H
SETB P2.0
MOV A,#01H ;
MOV A,#01H ;拖两个周期
LOOP:CPL P2.0 ;一个周期
MOV THO,#3CH ;一个周期
MOV TL0,#05H ;一个周期
SETB TR0 ;一个周期
JB TF0,LOOP ;2个周期
END
现在我想问这程序对不?TF0为1溢出中断时,要不要重设TMOD?TR0是否会变回0?
解答最好给出正确程序.
请回答全部的问题,本人小白.
拜谢,
51系列单片机晶振频率12MHz,要从p2.0引脚输出一个连续的10Hz方波信号,试编写相应的程序.我自己解答:Fosc=12MHz,机器周期为1µs,方波周期为0.1s.半个周期用时0.05s.方波半周期=0.05/1µ= 5×10^4
程序如下:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#3CH
SETB TR0
LOOP:
JNB TF0,LOOP ;2个周期.
MOV TL0,#0B3H ;一个周期.
MOV TH0,#3CH
CPL P2.0
CLR TF0
SJMP LOOP
END
----------
上述程序,经过KEIL软件调试,是符合要求的.
指令:CPL P2.0 ,确实是每隔50000机器周期,执行一遍.