找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2432|回复: 0
收起左侧

STC15F104W单片机+干簧管手刹提醒电路与源程序

[复制链接]
ID:343102 发表于 2021-3-18 22:05 | 显示全部楼层 |阅读模式
手刹提醒电路图.png 用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;  //定义手刹开关接口(任意引脚)
  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中断函数************************
  22. void time0() interrupt 1
  23. {
  24.   TH0=0x3c;
  25.   TL0=0xb0;   //12Mhz 50ms
  26.   s=s+.05;      //累计秒数
  27.   if(s>=10)
  28.    {
  29.     f10s=1;    //10s标志
  30.     s=0;
  31.    }
  32. }
  33. //========================================================================
  34. // 函数: void  delayms(unsigned int ms)
  35. // 描述: 延时函数。
  36. // 参数: ms,要延时的ms数, 这里只支持1~65535ms. 自动适应主时钟.
  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. //****************主函数*************************/
  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. }

复制代码

以上程序hex文件51hei提供下载:
STC15F104W+干簧管手刹提醒电路.rar (25.21 KB, 下载次数: 21)

评分

参与人数 1黑币 +80 收起 理由
admin + 80 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表