51单片机脉冲产生程序设计

  • 格式:docx
  • 大小:12.52 KB
  • 文档页数:3

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

独立键盘控制输出脉冲信号

用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;

}

}