|
圖片1.png (284.33 KB, 下載次數(shù): 18)
下載附件
2018-6-21 16:46 上傳
- #include<reg51.h>
- //------兩個常用的宏定義------//
- #define uchar unsigned char
- #define uint unsigned int
- void DelayMS(uint); // 延時函數(shù)的聲明
- void Time0_Init(); // 定時器0初始化
- void K1_scan();
- void Display();
- sbit beep=P1^7; // 蜂鳴器發(fā)出聲報警
- sbit led=P1^0; // 二極管發(fā)出光報警
- sbit K1=P3^7; // 報警裝置觸發(fā)按鈕
- uint num1; // 十秒的計數(shù)變量
- uint num2; // 六秒的計數(shù)變量
- uchar flag; // 報警按鍵檢測的標(biāo)志位
- uchar code Ledchar[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
- uchar LedBuffer[4]={0x00,0x00,0x00,0x00};
- void main()
- {
- Time0_Init();
- led=1;
- beep=1;
- flag=0;
- while(1)
- {
- K1_scan(); //一直檢測按鍵是否按下
- while(flag==1) //flag=1表示按下,執(zhí)行相應(yīng)功能
- {
- led=0; //開led
- beep=0; //開蜂鳴器
- flag=0;
- LedBuffer[0]=0x3f;
- LedBuffer[1]=0x79;
- LedBuffer[2]=0x3f;
- LedBuffer[3]=0x79; //清標(biāo)志位
- }
- while(num1==100) //五秒延時到,關(guān)閉警報
- {
- led=1;
- beep=1;
- LedBuffer[0]=0x00;
- LedBuffer[1]=0x00;
- LedBuffer[2]=0x00;
- LedBuffer[3]=0x00;
- }
- while(num2>100 && num2<300 && flag==1) //關(guān)閉后十秒內(nèi)有鍵按下則重開警報
- {
- led=0;
- beep=0;
- flag=0;
- LedBuffer[0]=0x3f;
- LedBuffer[1]=0x79;
- LedBuffer[2]=0x3f;
- LedBuffer[3]=0x79;
- }
- }
- }
- //------按鍵檢測函數(shù)------//
- void K1_scan()
- {
- while(K1==0)
- {
- DelayMS(10);
- if(K1==1)
- break;
- while(K1==0);
- EA=1;
- flag=1;
- }
- }
- //------定時器0初始化------//
- void Time0_Init()
- {
- TMOD=0x01; //選擇定時器0工作在定時方式1
- TH0=0x3c; //定時50ms,裝初值
- TL0=0xb0;
- ET0=1; //開啟定時中斷
- EA=0; //關(guān)總中斷
- TR0=1; //開啟定時器T0
- }
- //------定時器0中斷------//
- void Timer0() interrupt 1
- {
- TH0=0x3c; //重裝初值
- TL0=0xb0;
- Display();
- num1++; //計時變量+1
- num2++; //
- }
- //------顯示函數(shù)------//
- void Display()
- {
- P2=0xfe; P0=LedBuffer[3]; DelayMS(2);
- P2=0xfd; P0=LedBuffer[2]; DelayMS(2);
- P2=0xfb; P0=LedBuffer[1]; DelayMS(2);
- P2=0xf7; P0=LedBuffer[0]; DelayMS(2);
- }
- //------延時函數(shù)MS級------//
- void DelayMS(uint x)
- {
- uint i,j;
- for(i=x;i>0;i--)
- for(j=124;j>0;j--);
- } }
復(fù)制代碼
|
評分
-
查看全部評分
|