51单片机脉冲产生程序设计
- 格式:docx
- 大小:12.52 KB
- 文档页数:3
独立键盘控制输出脉冲信号
用51单片机用独立键盘控制输出4种频率:1Hz、2Hz、10Hz、50Hz,占空比为50%的脉冲信号。
#include
#define uint unsigned int
#define uchar unsigned char
sbit d0=P1^0;
sbit d1=P3^2;
uint num=0,counter=0;
void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
d1=1;
d0=1;
d2=1;
num=0;
IT0=1;
EX0=1;
TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
}
}
void Int0() interrupt 0
{
delay(10);
if(d1==0)
{
d1=1;
num++;
if(num==4)
num=0;
counter=0;
}
}
void Timer0(void) interrupt 1 {
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
counter++;
if(num==0)
{
if(counter<=500)
d0=0;
if(counter>500)
d0=1;
if(counter==1000)
counter=0;
}
if(num==1)
{
if(counter<=250)
d0=0;
if(counter>250)
d0=1;
if(counter==500)
counter=0;
}
if(num==2)
{
if(counter<=50)
d0=0;
if(counter>50)
d0=1;
if(counter==100)
counter=0;
}
if(num==3)
{
if(counter<=10)
d0=0;
if(counter>10)
d0=1;
if(counter==20)
counter=0;
}
}