久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2299|回復: 1
打印 上一主題 下一主題
收起左側

利用單片機T1控制發出1kHz的音頻信號程序

[復制鏈接]
跳轉到指定樓層
樓主



利用T1的中斷控制P1.7引腳輸出頻率為1kHz方波音頻信號,驅動蜂鳴器發聲。系統時鐘為12MHz。方波音頻信號周期1ms,因此T1的定時中斷時間為0.5 ms,進入中斷服務程序后,對P1.7求反。電路見圖7-18。
     先計算T1初值,系統時鐘為12MHz,則機器周期為1μs。1kHz音頻信號周期為1ms,要定時計數的脈沖數為a。則T1初值:      
          TH1=(65 536 −a) /256;        
          TL1=(65 536 −a) %256

單片機源程序如下:
  1. #include<reg51.h>                          //包含頭文件
  2. sbit sound=P1^7;                          //將sound位定義為P1.7腳
  3. #define f1(a) (65536-a)/256                //定義裝入定時器高8位時間常數
  4. #define f2(a) (65536-a)%256                    //定義裝入定時器低8位時間常數
  5. unsigned int i=500;
  6. unsigned int j=0;

  7. void main(void)
  8. {
  9.         EA=1;                                  //開總中斷.
  10.           ET1=1;                                //允許定時器T1中斷         .
  11.            TMOD=0x10;                         //TMOD=0001 000B,使用T1的方式1定時    TH1=f1(i);                      //給T1高8位賦初值.
  12.            TL1=f2(i);                      //給T1低8位賦初值.
  13.            TR1=1;                                 //啟動T1
  14.            while(1)  
  15. {                                              //循環等待
  16.              i=460;
  17.               while(j<2000);
  18.               j=0;
  19.               i=360;
  20.               while(j<2000);
  21.               j=0;
  22.     }
  23. }

  24. void T1(void) interrupt 3 using 0        //定時器T1中斷函數
  25. {
  26.             TR1= 0;                         //關閉T1
  27.            sound=~sound;                         //P1.7輸出求反
  28.             TH1=f1(i);                           //T1的高8位重新賦初值.
  29.             TL1=f2(i);                           //T1的低8位重新賦初值.
  30.         j++;                                
  31.             TR1=1;                         //啟動定時器T1
  32. }
復制代碼

Keil代碼與Proteus8.13仿真下載(注意只能用Proteus8.13打開):
利用T1控制發出1KHz音頻.zip (54.22 KB, 下載次數: 12)

評分

參與人數 1黑幣 +40 收起 理由
admin + 40 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:57657 發表于 2022-10-4 21:10 | 只看該作者
方式2沒用過嗎? 中斷內不需要重新賦初值,這種寫法誤差較大。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产中文字幕在线观看 | 日韩中文字幕 | 一级片在线观看 | 欧美精品二区 | 天天干免费视频 | 久久久久久久av | 7777精品伊人久久精品影视 | 一区二区视屏 | 中文字幕高清av | 国产精品天堂 | 久久精品亚洲欧美日韩精品中文字幕 | 欧美成人性生活 | 天堂亚洲 | 国产视频久久 | 天天操妹子 | 国产欧美在线视频 | 嫩草视频在线 | 97国产成人 | 一级做a| 国产在线精品一区 | 国产乱码精品一品二品 | 日日操夜夜操天天操 | 天堂一区二区三区四区 | 999热在线视频 | 99久热在线精品视频观看 | 国产成人一区二区三区 | 成人在线免费观看 | 国产精品视频在线免费观看 | 999热精品视频 | 成人免费视频一区 | 欧美 日韩 亚洲91麻豆精品 | 中文字幕av第一页 | 欧美视频区 | 成人一区二区三区在线观看 | 99久视频| 午夜影视 | 91久久| 国产在线观看一区 | 欧美一区精品 | 盗摄精品av一区二区三区 | 中文字幕精品视频在线观看 |