仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
/*****************************************
功能:51單片機做LED呼吸燈效果
*****************************************/
#include<reg52.h>
unsigned char PWM_COUNT; //計數
unsigned int HUXI_COUNT; //占空比更新時間
unsigned char PWM_VLAUE; //占空比比值
bit direc_flag; //占空比更新方向標志位
sbit LED=P2^7;
void timer0_init()
{
TMOD=0x02; //設置模式為定時器0,工作于模式2
TH0=0x47; //設置定時器初值
TL0=0X47;
TR0=1; //開定時器0
ET0=1; //開定時器0中斷
EA=1; //開總中斷
PWM_COUNT =0;
}
void time0() interrupt 1
{
PWM_COUNT++;
HUXI_COUNT++;
if(PWM_COUNT == PWM_VLAUE)
LED = 1; //點亮LED
if(PWM_COUNT == 10) //當前周期結束
{
LED = 0; //熄滅LED
PWM_COUNT = 0; //重新計時
}
if((HUXI_COUNT == 600) && (direc_flag == 0))
{ //占空比增加10%
HUXI_COUNT = 0;
PWM_VLAUE++;
if(PWM_VLAUE == 9) //占空比更改方向
direc_flag = 1;
}
if((HUXI_COUNT == 600) && (direc_flag == 1))
{ //占空比減少10%
HUXI_COUNT = 0;
PWM_VLAUE--;
if(PWM_VLAUE == 1) //占空比更改方向
direc_flag = 0;
}
}
全部資料51hei下載地址:
Proteus8.8版本工程.7z
(25.68 KB, 下載次數: 65)
2021-10-23 17:26 上傳
點擊文件名下載附件
仿真電路和完整源程序
|