1。單片機的晶振為12MHz,輸出周期為1s。
2。兩個開關用於控制占空比的增減,占空比分為20級。
針對這壹問題,設計了壹種簡單的實驗電路:
P2口8路輸出PWM波形;
兩個按鈕接/INT1和/INT0,調節占空比;
兩個BCD數字顯示器連接到P0端口,以顯示當前占空比水平。
在實驗過程中,可以用示波器觀察P2端口輸出的波形。
如果增加PWM波形的頻率,也可以用LED觀察到調光的效果。目前只改變閃爍時間。
# include & ltreg52.h & gt
無符號int a,b;
// -
void main()
{
TMOD = 0x 01;//T0定時模式1
TH0 =(65536-50000)/256;//50毫秒@ 12兆赫
TL0 =(65536-50000)% 256;
TR0 = 1;
ET0 = 1;
EX0 = 1;ex 1 = 1;
IT0 = 1;it 1 = 1;
EA = 1;
a = 0;
b = 10;
while(1);
}
// -
無效時間0()中斷1
{
TL0 =(65536-50000)% 256;
TH0 =(65536-50000)/256;//50毫秒@ 12兆赫
a++;
if(a = = 20)a = 0;//在這裏調整周期。
如果(a & ltb)P2 = 0x ff;//在此調整占空比。
否則P2 = 0x 00;
P0 =((b/10)& lt;& lt4)+b % 10;//顯示占空比水平
}
// -
void X0_INT()中斷0
{
b++;
如果(b & gt19)b = 19;//最大占空比等級為19。
}
// -
void X1_INT()中斷2
{
B-;
if(b & lt;1)b = 1;//最小占空比等級為1。
}