找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
用STC15F104W+干簧管制作的手剎提醒電路。
手剎拉起時(shí),通電后LED亮,蜂鳴器每隔10S響一次。
程序和電路圖見(jiàn)附件。



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

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

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

  20. }
  21. //********************** 定時(shí)器0中斷函數(shù)************************
  22. void time0() interrupt 1
  23. {
  24.   TH0=0x3c;
  25.   TL0=0xb0;   //12Mhz 50ms
  26.   s=s+.05;      //累計(jì)秒數(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í)函數(shù)。
  36. // 參數(shù): ms,要延時(shí)的ms數(shù), 這里只支持1~65535ms. 自動(dòng)適應(yīng)主時(shí)鐘.
  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           //手剎拉起時(shí),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)


評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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