单片机。。哪位高手帮我把这个程序每句解释一下,谢谢了。

单片机。。哪位高手帮我把这个程序每句解释一下,谢谢了。设单片机fosc=6MHZ,要求在p2.0引脚输出周期为10ms,占空为45%。
#include <reg51.h>
Sbit p2.0=p2^0
unsigned char i;
void TIMERD_IRS(void) interupt1
{
TH0=(65536-250)/256;
TL0=(65536-250)%250;
i++
if (i==9) {p2.0=0;}
if(i==20){p2.0=1;i=0;}
void main(void)
{
TMOD=ox01;
TH0=(65536-250)/256;
TL0=(65536-250)%256;
ET0=1;
EA=1;
TR0=1;
i=0;
p2.0=1;
while(1)
}
}

#include <reg51.h> //头文件
Sbit p2.0=p2^0 //位定义,此处编译应该通不过,改为sbit P2.0 = P2^0;
unsigned char i; //定义字符点亮i,通过i实现占空比电平时间控制
void TIMERD_IRS(void) interupt1 //定时中断
{
TH0=(65536-250)/256; //计数器高字节重载值
TL0=(65536-250)%250; //计数器高字节重载值
i++;
if (i==9) {p2.0=0;} //4.5ms高电平时间到,转换为低电平
if(i==20){p2.0=1;i=0;} //5.5ms低电平时间到,转换为高电平
void main(void)
{
TMOD=ox01; //模式控制寄存器,计数器工作模式1,
TH0=(65536-250)/256; //定时器赋初值高字节 定时为0.5ms
TL0=(65536-250)%256;//定时器赋初值低字节
ET0=1; //启动定时中断
EA=1; //开启总中断
TR0=1; //启动定时器
i=0; //赋初值
p2.0=1; //P2^0输出高电平,为4.5ms
while(1)
}
}
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网