51单片机的某个I/O口 输出一组脉冲,求例子程序,谢谢了

如题所述

第1个回答  2013-03-01

#include<reg51.h>   // 
sbit P1_0 = P1^0;   // PWM  脉冲输出
sbit key10 = P3^2;
sbit key11 = P3^3;
unsigned char Set_PWM0 = 2; // 占空比调整
unsigned char counter = 0;  // 计数的
bit bdata tt1;      // 标志位
void main()
{
 TMOD=0x01;
 TH0=(65536-2000)/256;      // 定时时间  可以修改
 TL0=(65536-2000)%256; 
 EA=1;
 ET0=1;
 TR0=1;
 while(1)
 {                          // 开关调整 PWM  占空比
 if(key10==0 && tt1==0) {tt1 = 1; Set_PWM0++;} // K1、K2
 if(key11==0 && tt1==0) {tt1 = 1; Set_PWM0--;} 
 if(key10==1 && key11==1) tt1=0;
 }
}
void Timer0(void) interrupt 1 // 定时器0   PWM 控制
{                           
  TH0=(65536-2000)/256;       // 定时时间  可以修改
  TL0=(65536-2000)%256;
  counter++;
  if(counter >= 16) counter = 0;   // PWM  16级  可以修改
  if(counter >= Set_PWM0) P1_0 = 0; else P1_0 = 1;
}

本回答被提问者和网友采纳
第2个回答  2013-03-01
你要 输出 也宽 的 买脉冲 。。。。。
#include <reg51.h>
delay_ms(unsigned int )
{
……
}
void main()
{
P1=~P1;
delay_ms(1);
}
第3个回答  2013-03-01
#include<reg52.h>
void main()
{
while(1)
{
P0=0x00;
P0=0xff;
}
}
相似回答