单片机编写程序,要求使用 T0,采用方式 2 定时,在 P1.0 输出周期为 400μs,占空比为 1:1 的矩形脉冲.

2025-05-06 12:09:01
推荐回答(2个)
回答1:

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

回答2:

// 仿真实例 占空比可调

#include    // 用定时器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;

}