|
手剎提醒電路圖.png (6.85 KB, 下載次數(shù): 122)
下載附件
2021-3-19 07:15 上傳
用STC15F104W+干簧管制作的手剎提醒電路。
手剎拉起時,通電后LED亮,蜂鳴器每隔10S響一次。
程序和電路圖見附件。
單片機源程序如下:
- //手剎拉起時,通電后LED亮,蜂鳴器每隔10S響一次
- //CPU:STC15F104W
- #define CPU_Fosc 12000000uL //定義主時鐘
- #include "STC15.H"
- #include<intrins.h>
- sbit hand = P3^2; //定義手剎開關(guān)接口(任意引腳)
- sbit led = P3^3; //輸出
- sbit be = P3^4; //輸出
- bit f10s;
- float s;
- /****************定時器初始化************************/
- void Init()
- {
- TMOD=0x01;//定時器工作于方式1
- TH0=0x3c; //50ms
- TL0=0xb0;
- EA=1; //CPU開中斷總允許
- ET0=1;//開定時中斷
- TR0=1;//啟動定時
- }
- //********************** 定時器0中斷函數(shù)************************
- void time0() interrupt 1
- {
- TH0=0x3c;
- TL0=0xb0; //12Mhz 50ms
- s=s+.05; //累計秒數(shù)
- if(s>=10)
- {
- f10s=1; //10s標(biāo)志
- s=0;
- }
- }
- //========================================================================
- // 函數(shù): void delayms(unsigned int ms)
- // 描述: 延時函數(shù)。
- // 參數(shù): ms,要延時的ms數(shù), 這里只支持1~65535ms. 自動適應(yīng)主時鐘.
- // 返回: none.
- // 版本: VER1.0
- // 日期: 2013-4-1
- // 備注:
- //========================================================================
- void delayms(unsigned int ms)
- {
- unsigned int i;
- do{
- i = CPU_Fosc/13000;
- while(--i) ; //14T per loop
- }
- while(--ms);
- }
- /****************蜂鳴器**************************/
- void beep()
- {
- be=0;
- delayms(100);
- be=1;
- }
- //****************主函數(shù)*************************/
- void main()
- {
- unsigned char i;
- Init();
- f10s=0;
- for(i=1;i<6;i++)
- {
- beep();
- delayms(500);
- }
- while(1)
- {
- if(!hand)
- {
- led=1;
- }
- else //手剎拉起時,LED亮,蜂鳴器10S響一次
- {
- led=0; //LED亮
- if(f10s==1)
- {
- beep();
- f10s=0;
- }
- }
- }
- }
復(fù)制代碼
以上程序hex文件51hei提供下載:
STC15F104W+干簧管手剎提醒電路.rar
(25.21 KB, 下載次數(shù): 23)
2021-3-19 07:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|