利用T1的中斷控制P1.7引腳輸出頻率為1kHz方波音頻信號,驅動蜂鳴器發聲。系統時鐘為12MHz。方波音頻信號周期1ms,因此T1的定時中斷時間為0.5 ms,進入中斷服務程序后,對P1.7求反。電路見圖。 (聯合Keil C和 Protues,或者只用Protues完成仿真測試,并測試功能是否能實現) 仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei截圖20200620194427.jpg (43.59 KB, 下載次數: 73)
下載附件
仿真
2020-6-20 19:44 上傳
單片機源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- uchar i=500;
- uchar j=0;
- sbit p17=P1^7;
- timer0(void) interrupt 3
- {
- TR1=0;
- p17=~p17;
- TH1=(65536-500)/256;
- TL1=(65536-500)%256;
- j++;
- TR1=1;
-
- }
- void main()
- {
- TMOD=0x10;
- TH1=(65536-500)/256;
- TL1=(65536-500)%256;
- EA=1;
- ET1=1;
- TR1=1;
- while(1)
- {
- i=460;
- while(j<2000);
- j=0;
- i=360;
- while(j<2000);
- j=0;
-
- }
- }
復制代碼
所有資料51hei提供下載:
efdsf.zip
(15.6 KB, 下載次數: 30)
2020-6-20 19:43 上傳
點擊文件名下載附件
仿真和源程序 下載積分: 黑幣 -5
|