51单片机晶振频率为12MHz,利用定时器在P1.0口线上产生周期为500毫秒,占空比为2:5

51单片机晶振频率为12MHz,利用定时器在P1.0口线上产生周期为500毫秒,占空比为2:5的连续矩形波,写出程序并且画出程序流程框图

第1个回答  2014-01-09
流程图就不画了,自己搞定吧,给你编个程序。
#include<reg51.h>
#define uchar unsigned char
uchar tcnt=0,num=0;
sbit p10=P1^0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tcnt++;
if(tcnt>=20)
{
tcnt=0;
num++;
if(num==2)p10=0;
if(num==5)
{
num=0;
p10=1;
}
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
EA=1;
p10=1;
while(1);
}本回答被提问者和网友采纳
第2个回答  2014-01-08
那就是延时200ms和延时300ms呀,自己画一下流程图和写写代码还不行?
定时时间就是计时器溢出值减去计数时间追问

就是不会才提问的呢

追答

那你还这要用单片机小精灵,生成一个100ms的定时中断程序,在中断里做个静态变量,循环5次加1,第2和第5次要对IO口进行取反。你自己动手弄比别人给你现成的好

第3个回答  2014-01-08
我告诉你一个非常简单的方法,你有串口调试助手这个软件吗?它可以自动生产,不会的话,在问我!
相似回答