標(biāo)題:
基于51單片機(jī)和Proteus的PWM輸出程序
[打印本頁]
作者:
染落莫a
時(shí)間:
2020-5-14 17:17
標(biāo)題:
基于51單片機(jī)和Proteus的PWM輸出程序
共有10個(gè)級(jí)別的脈沖寬度波形,可以通過觀察LED的亮暗時(shí)間的變化,或者通過虛擬示波器觀察P0.0腳輸出脈沖寬度不斷變化的十個(gè)級(jí)別。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png
(15.42 KB, 下載次數(shù): 65)
下載附件
2020-5-16 04:35 上傳
單片機(jī)源程序如下:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar PWM_T=0; //占空比控制變量
sbit PWM_OUT=P0^0;
void main()
{
bit flag=1; //控制LED燈漸亮漸熄方式
uint n;
TMOD=0x02; //定時(shí)器T0,8位方式2定時(shí)模式
TH0=241; //15μs溢出一次(11.0592M)
TL0=241;
TR0=1;
ET0=1;
EA=1;
PWM_OUT=1;
while(1)
{
for (n=0;n<30000;n++); //延時(shí),將響應(yīng)定時(shí)器T0中斷
if (flag==1)
PWM_T++;
else
PWM_T--;
if (PWM_T>=10)
flag=0;
if (PWM_T==0)
flag=1;
}
}
timer0()interrupt 1 using 2
{
static uchar t; //用t保存當(dāng)前時(shí)間在1s的比例位置
t++; //每15μs增1
if (t==10) //1.5ms的周期
{
t=0;
PWM_OUT=0;
}
if (PWM_T==t)
PWM_OUT=1;
}
復(fù)制代碼
所有資料51hei提供下載:
51PWM.rar
(45.65 KB, 下載次數(shù): 67)
2020-5-14 17:17 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1