用c语言编程实现C8051F300单片机1s定时,50Hz的方波输出

请高手帮忙编程用c语言实现C8051F300单片机1s定时,50Hz的方波输出,最好在关键程序处用中文注释,非常感谢!

#include <REG51.H>

sbit wave=P1^0;

void SetupTimer0()
{
    TMOD &= 0XF0; //仅保留T1信息
    TMOD |= 0X02; //设置T0: 定时功能,方式2,自动重载8位定时器/计数器
    TH0 = 256-250;//定时每0.25ms中断一次
    TL0 = 256-250;
    TR0 = 1;      //开启定时器
    ET0 = 1;      //定时器0中断打开
}
 
data unsigned char us250;
data unsigned int ms;
bit WAVE;    //用以记住当前wave的状态

void Timer0_ISR() interrupt 1 //定时中断服务程序,为按键消抖服务
{
if (++us250<4) return; 
us250=0; ++ms;
if (ms<10) return;
//每10ms波形变化一次,20ms完成一个波形,所以波形是50Hz的
ms=0;
    WAVE=~WAVE; wave=WAVE;  //方波输出
}

void main()

us250=ms=0;
wave=WAVE=0;
  SetupTimer0();
    EA = 1;      //全局中断打开
while(1);    //在中断函数中实现方波输出
}

追问

刚接触这方面的东西,请问,头文件是通用的吗?你用的是keil3还是keil4编的,keil4好像有c8051f300的头文件,谢谢回答

温馨提示:答案为网友推荐,仅供参考
相似回答