找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC15F104W單片機+干簧管手剎提醒電路與源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:343102 發(fā)表于 2021-3-18 22:05 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
用STC15F104W+干簧管制作的手剎提醒電路。
手剎拉起時,通電后LED亮,蜂鳴器每隔10S響一次。
程序和電路圖見附件。



單片機源程序如下:
  1. //手剎拉起時,通電后LED亮,蜂鳴器每隔10S響一次
  2. //CPU:STC15F104W
  3. #define CPU_Fosc 12000000uL    //定義主時鐘
  4. #include    "STC15.H"
  5. #include<intrins.h>

  6. sbit  hand   = P3^2;  //定義手剎開關(guān)接口(任意引腳)
  7. sbit  led  = P3^3;   //輸出
  8. sbit  be  = P3^4;   //輸出
  9. bit f10s;
  10. float s;

  11. /****************定時器初始化************************/
  12. void Init()
  13. {
  14.    TMOD=0x01;//定時器工作于方式1
  15.    TH0=0x3c;  //50ms
  16.    TL0=0xb0;
  17.    EA=1; //CPU開中斷總允許
  18.    ET0=1;//開定時中斷
  19.    TR0=1;//啟動定時

  20. }
  21. //********************** 定時器0中斷函數(shù)************************
  22. void time0() interrupt 1
  23. {
  24.   TH0=0x3c;
  25.   TL0=0xb0;   //12Mhz 50ms
  26.   s=s+.05;      //累計秒數(shù)
  27.   if(s>=10)
  28.    {
  29.     f10s=1;    //10s標(biāo)志
  30.     s=0;
  31.    }
  32. }
  33. //========================================================================
  34. // 函數(shù): void  delayms(unsigned int ms)
  35. // 描述: 延時函數(shù)。
  36. // 參數(shù): ms,要延時的ms數(shù), 這里只支持1~65535ms. 自動適應(yīng)主時鐘.
  37. // 返回: none.
  38. // 版本: VER1.0
  39. // 日期: 2013-4-1
  40. // 備注:
  41. //========================================================================
  42. void  delayms(unsigned int ms)
  43. {
  44. unsigned int i;
  45. do{
  46.     i = CPU_Fosc/13000;
  47.     while(--i)    ;   //14T per loop
  48.    }
  49. while(--ms);
  50. }
  51. /****************蜂鳴器**************************/
  52. void beep()
  53. {
  54. be=0;
  55. delayms(100);
  56. be=1;
  57. }

  58. //****************主函數(shù)*************************/
  59. void main()
  60. {
  61. unsigned char i;
  62. Init();
  63. f10s=0;
  64. for(i=1;i<6;i++)
  65.   {
  66.    beep();
  67.    delayms(500);
  68.   }
  69. while(1)
  70. {
  71.   if(!hand)   
  72.    {
  73.     led=1;
  74.    }
  75.   else           //手剎拉起時,LED亮,蜂鳴器10S響一次
  76.    {
  77.     led=0;       //LED亮
  78.     if(f10s==1)
  79.      {
  80.       beep();
  81.       f10s=0;
  82.      }
  83.    }

  84. }         
  85. }

復(fù)制代碼

以上程序hex文件51hei提供下載:
STC15F104W+干簧管手剎提醒電路.rar (25.21 KB, 下載次數(shù): 23)


評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

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

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