首 页 行业热点 新车 试驾评测 养车用车 车型库

...P1.0 输出周期为 400μs,占空比为 1:1 的矩形脉冲.

发布网友

我来回答

2个回答

热心网友

在主函数中给P1.0=1;定时器定时200us,产生中断 在中断函数中 ~P1.0;就行啦

热心网友

// 仿真实例 占空比可调

#include<reg51.h>    // 用定时器0  控制 PWM

sbit P1_0 = P1^0;    // P1.0  PWM  输出

sbit key10 = P3^2;   // 调节 PWM0  占空比 按键

sbit key11 = P3^3;

unsigned char PWM0 = 2;     // 占空比调整

unsigned char counter = 0;  // 计数的

bit  tt1;      // 标志位

void main()    // 主函数

{

 TMOD=0x20;

 TH1=256-30;      // 定时时间  可以修改

 TL1=256-30;     // 12 MHz

 EA=1;                      // 中断启动

 ET1=1;

 TR1=1;

 while(1)

 {                       // 调节 PWM0  占空比

 if(key10==0 && tt1==0) {tt1 = 1; PWM0++;} // K1、K2

 if(key11==0 && tt1==0) {tt1 = 1; PWM0--;} 

 if(key10==1 && key11==1) tt1=0;

 }

}

void Timer0(void) interrupt 3 // 定时器1   PWM 控制

{                            

  counter++;

  if(counter >= 20) counter = 0;   // PWM  32级  可以修改

  if(counter >= PWM0) P1_0 = 0; else P1_0 = 1;

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com