#include<reg51.h> // 用定时器0 控制 PWM
#define ledConPort P2
#define dataPort P0
sbit P1_0 = P1^0; // P1.0 PWM 输出
sbit key10 = P3^2; // 调节 PWM0 占空比 按键
sbit key11 = P3^3;
sbit key12=P3^4;//调节频率的按键
sbit key13=P3^5;
unsigned int fadj,pwma;
unsigned char PWM0 = 2; // 占空比初始值
unsigned int counter = 0; // 计数的
unsigned char code ch[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
bit tt1; // 标志位
bit tt2;
void ledshow(void);
......................
void Timer0(void) interrupt 3 // 定时器0 PWM 控制
{
TH1=(65536-100)/256; // 定 时时间
TL1=(65536-100)%256;
counter++;
pwma=PWM0*fadj/100;
if(counter >= fadj) counter = 0; // PWM 20级
if(counter >= pwma) P1_0 = 0; else P1_0 = 1;
}}
|