|
很有意思,按一下就響,不按就不響
單片機(jī)源程序如下:
- /* 下載程序后按鍵K1按下就會(huì)觸發(fā)蜂鳴器門鈴“叮咚”響 */
- #include<reg52.h>
- typedef unsigned char u8;
- typedef unsigned int u16;
- sbit beep=P1^5;
- sbit k1=P3^1;
- u8 ding,dong,flag,stop;
- u16 n;
- void delay(u16 i)
- {
- while(i--);
- }
- void time0init() //定時(shí)器0初始化
- {
- TMOD=0X01; //定時(shí)器0 方式1
- TH0=0Xff;
- TL0=0X06; //定時(shí)250us
- // TR0=1;
- EA=1;
- ET0=1;
- }
- void biaohaoinit() //各個(gè)標(biāo)號(hào)初始化
- {
- ding=0; //叮聲音 計(jì)數(shù)標(biāo)志
- dong=0; //咚聲音 計(jì)數(shù)標(biāo)志
- n=0; //定時(shí)0.5s標(biāo)志
- flag=0;
- stop=0; //結(jié)束標(biāo)志
- }
- void main()
- {
- time0init();
- biaohaoinit();
- while(1)
- {
- if(k1==0) //判斷按鍵是否按下
- {
- delay(1000); //消抖
- if(k1==0)
- {
- TR0=1; //打開定時(shí)器0
- while(!stop);
- }
- }
- }
- }
- void time0() interrupt 1
- {
- n++;
- TH0=0Xff;
- TL0=0X06; //250us
- if(n==2000) //定時(shí)0.5s 叮響0.5秒,咚響0.5秒
- {
- n=0;
- if(flag==0)
- {
- flag=~flag;
- }
- else
- {
- flag=0;
- stop=1;
- TR0=0; //關(guān)閉定時(shí)器0
- }
- }
- if(flag==0)
- { //通過改變定時(shí)計(jì)數(shù)時(shí)間可以改變門鈴的聲音
- ding++; //叮
- if(ding==1)
- {
- ding=0;
- beep=~beep;
- }
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
門鈴設(shè)計(jì).rar
(7.5 KB, 下載次數(shù): 24)
2017-6-8 14:51 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|