找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3500|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)電子門鈴Proteus仿真程序設(shè)計

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:770355 發(fā)表于 2020-12-3 20:49 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
原程序+仿真


單片機(jī)源程序如下:
  1. /********************************************************
  2. *實例名稱:電子門鈴
  3. *實例功能:當(dāng)按下門鈴按鈕時,產(chǎn)生500hz和750hz的方波來驅(qū)動
  4. 喇叭,產(chǎn)生兩種不同頻率的交替來產(chǎn)生兩種聲音
  5. *作者:kxm
  6. ********************************************************/
  7. #include "doorBell.h"
  8. uchar t5hz;    //500hz頻率計數(shù)
  9. uchar t7hz;    //750hz頻率計數(shù)
  10. uint tcnt;     //定時器0中斷計數(shù)
  11. bit flag;            //500hz和750hz狀態(tài)標(biāo)示
  12. void timer0_init(void)
  13. {
  14.    TMOD=0x02;  //定時器0工作在方式2,八位定時器自動載入
  15.    TH0=0x06;   //12MHZ晶振,中斷周期250*10^(-6)秒
  16.    TL0=0x06;
  17.    ET0=1;           //定時器0中斷使能
  18.    TR0=0;           //定時器0默認(rèn)狀態(tài)停止運行
  19. }
  20. void int0_init(void)
  21. {
  22.   EX0 = 1;         //外部中斷0使能
  23.   IT0 = 1;         //外部中斷0跳變中斷
  24. }
  25. void main()
  26. {
  27.   timer0_init(); //定時器0初始化
  28.   int0_init();         //外部中斷0初始化
  29.   flag=0;
  30.   t5hz=0x00;
  31.   t7hz=0x00;
  32.   tcnt=0x0000;
  33.   sei();            //開總中斷
  34.   while(1)
  35.   {
  36.     if(TR0==0)
  37.       flag=0;  //門鈴響過后轉(zhuǎn)換成500hz狀態(tài)
  38.   }
  39. }
  40. void timer0_overflow(void) interrupt 1  //timer0溢出中斷入口
  41. {
  42.   tcnt++;
  43.   if(tcnt==2000)                        //500hz和750hz方波各維持0.5s
  44.   {
  45.     tcnt=0;
  46.     if(flag==0)  
  47.       flag=~flag;  
  48.     else   
  49.       TR0=0;  
  50.   }
  51.   if(flag==0)  //輸出750hz方波
  52.   {
  53.     t7hz++;
  54.     if(t7hz==3)
  55.     {
  56.       t7hz=0;
  57.       BELL_OUT=~BELL_OUT;         //喇叭信號端口取反
  58.     }
  59.   }
  60.   else        //輸出500hz方波
  61.   {
  62.     t5hz++;
  63.     if(t5hz==4)
  64.     {
  65.       t5hz=0;
  66.       BELL_OUT=~BELL_OUT;
  67.     }
  68.   }
  69. }
  70. void int0(void)        interrupt 0          //外部中斷0中斷入口,按鍵觸發(fā)
  71. {
  72.   TR0=1;                             //開啟定時器0,實現(xiàn)方波的輸出
  73. }
復(fù)制代碼

所有資料51hei提供下載:
電子門鈴.zip (14.79 KB, 下載次數(shù): 34)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:866557 發(fā)表于 2020-12-23 20:59 | 只看該作者
大佬,我下載后,用Proteus畫了個圖,不會響咋回事啊
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表