利用定时器0工作方式1,实现一个发光管以1s亮灭闪烁。参考这个实现发脉冲
程序代码如下:
#include
#define uchar unsigned char
#define uint unsigned int
***it led1=P1^0;
uchar num;
void main()
{
TMOD=0x01; //设置定时器0位工作模式1(M1,M0位0,1)
TH0=(65536-45872)/256; //装初值11.0592M晶振定时50ms数为45872
TL0=(65536-45872)%256;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //启动定时器0
while(1)
{
if(num==20) //如果到了20次,说明1秒时间
{
led1=~led1; //让发光管状态取反, 此处可以调用你的发脉冲函数,200个脉冲怎么放,是一秒放完,还是一秒一个放200个
num=0;
}
}
}
void T0_time()interrupt 1
{
TH0=(65536-45872)/256; //重新装载初值
TL0=(65536-45872)%256;
num++;
}
利用定时器0工作方式1,实现一个发光管以1s亮灭闪烁。参考这个实现发脉冲
程序代码如下:
#include
#define uchar unsigned char
#define uint unsigned int
***it led1=P1^0;
uchar num;
void main()
{
TMOD=0x01; //设置定时器0位工作模式1(M1,M0位0,1)
TH0=(65536-45872)/256; //装初值11.0592M晶振定时50ms数为45872
TL0=(65536-45872)%256;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //启动定时器0
while(1)
{
if(num==20) //如果到了20次,说明1秒时间
{
led1=~led1; //让发光管状态取反, 此处可以调用你的发脉冲函数,200个脉冲怎么放,是一秒放完,还是一秒一个放200个
num=0;
}
}
}
void T0_time()interrupt 1
{
TH0=(65536-45872)/256; //重新装载初值
TL0=(65536-45872)%256;
num++;
}
举报