|
各位大神,誰(shuí)能幫我解答一下,為什么我的仿真達(dá)不到預(yù)期的效果,原代碼和圖像請(qǐng)參考
附
pwm.rar
(80.14 KB, 下載次數(shù): 50)
2018-3-13 16:55 上傳
點(diǎn)擊文件名下載附件
,
我所參考的鏈接:http://blog.163.com/asm_c/blog/static/2482031132012716860918/
我的結(jié)果截圖:
微信截圖_20180313161228.png (498.98 KB, 下載次數(shù): 59)
下載附件
仿真狀態(tài)
2018-3-13 16:12 上傳
單片機(jī)源程序如下:
- #include<reg52.h>
- unsigned char a, b;
- sbit K1 = P3^2; //定義兩個(gè)調(diào)整占空比的按鍵
- sbit K2 = P3^3;
- //------------------------------------------
- void delay(unsigned int i)
- {
- unsigned char j;
- while(i--)
- for(j = 0; j < 60; j++);
- }
- //------------------------------------------
- void main()
- {
- TMOD = 0x01; //T0定時(shí)方式1
- TH0 = (65536 - 500) / 256; //500us@12MHz
- TL0 = (65536 - 500) % 256;
- EA = 1;
- TR0 = 1;
- ET0 = 1;
- a = 0;
- b = 10;
- P3^2=0;
- while(1) {
- if(!K1)
- {
- delay(20);
- if(!K1)
- {
- b++;
- if(b > 19)
- b = 19;
- while(!K1);
- }
- }
- if(!K2)
- {
- delay(20);
- if(!K2)
- {
- b--;
- if(b < 1)
- b = 1;
- while(!K2);
- }
- }
- //以上兩行是檢查按鍵、延時(shí)消抖、修改占空比、等待按鍵釋放,b = 1~19
- P0 = ((b / 10) << 4) + b % 10; //顯示占空比等級(jí)
- }
- }
- //------------------------------------------
- void time0() interrupt 1
- {
- TL0 = (65536 - 493) % 256; //補(bǔ)償中斷進(jìn)入時(shí)間
- TH0 = (65536 - 493) / 256; //500us@12MHz
- a--; //a = 1~20
- if(a == 0)
- {
- a = 20;
- P2 = 0;
- } //周期=20*500us
- if(a <= b)
- P2 = 255; //輸出到示波器
- P1 = ~P2; //輸出到LED,低電平發(fā)光
- }
- //------------------------------------------
復(fù)制代碼
|
|