含原理圖。程序
51hei.png (57.91 KB, 下載次數(shù): 52)
下載附件
2019-12-30 01:04 上傳
51hei.png (37.71 KB, 下載次數(shù): 49)
下載附件
2019-12-30 01:04 上傳
51hei.png (8.77 KB, 下載次數(shù): 45)
下載附件
2019-12-30 01:04 上傳
單片機源程序如下:
- #include "all.h"
- extern unsigned char Arrow[],Arrow_Up[];
- extern bit Find(uchar *a);
- extern uint Set_hour,Set_min,Set_sec;
- extern int year_r,month_r,hour_r,min_r,sec_r,day_r,date_r;
- extern uint init_flag,Select_flag,TS_flag,Testing_flag;
- extern bit Change_flag,Sure_flag,Sure_change_flag,SIM_flag;
- extern int Butane_density,Alcohol_density,Natural_density,Coal_density;
- bit Set_flag,Alarm_flag,beep_flag;
- int over_flag=0,frq;
- sbit in=P3^2;
- void Delay20000ms();
- void Delay2000ms(); //@11.0592MHz
- void Delay1ms(); //@11.0592MHz
- uint over[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //初始化
- void main()
- {
- uchar i;
- uint j;
- I2C_init();
- LCD_init();
- Clean();
- Timer0_init();
- Timer1_init();
- DS3231_init();
- ADC_init();
- uart_init();
- in=1;
- EA=1;
- EX0=1;
- PX0=1;
- IT0=0;
- ET1=1;
- ET0=1;
- ES=1;
- PS=1;
- Show_CN(3,17,"可燃氣體檢測");
- Delay2000ms();
- Clean();
- Show_CN(3,33,"預(yù)熱20秒");
- Show_5x8(5,33," . . . . . . ");
- Delay20000ms();
- Clean();
- Set_Time(20,18,11,5,12,7,19);
- read_time();
- write_byte(0x0f,0x00);
- Alarm_Set_Time(0,2,0);
- TR1=1;
- TR0=0;
- do
- {
- ES=0;
- TI=1;
- printf("AT+CPIN?\n");
- while(!TI);
- TI=0;
- ES=1;
- SIM_flag=Find("READY");
- i--;
- }while(i&&!SIM_flag);
- while(1)
- {
- if(!(Change_flag==1&&Select_flag==0&&Sure_flag==1))
- read_time();
- LCD_dispaly();
- keyscan();
- if(((Butane_density>=1900)||(Natural_density>=4800)||(Coal_density>=4800))&&beep_flag==1)
- {
- j=5000;
- beep_flag=0;
- ES=0;
- TI=1;
- printf("ATD15551279102\n");
- while(!TI);
- TI=0;
- ES=1;
- TR0=1;
- do
- {
- Delay1ms(); //延時1ms,累加頻率值
- frq++;
- j--;
- }while(j>0);
- TR0=0;
- beep=1;
- read_time();
- over[6*over_flag]=date_r;
- over[1+6*over_flag]=hour_r;
- over[2+6*over_flag]=min_r;
- over[3+6*over_flag]=sec_r;
- over_flag++;
- LCD_dispaly();
- }
- if(Set_flag==1)
- {
- Alarm_Set_Time(Set_hour,Set_min,Set_sec);
- Set_flag=0;
- }
- if(Change_flag==1&&Sure_flag==0)
- Dis_16x16((2*(Select_flag%3+1))+1,1,Arrow);
- if(Change_flag==1&&Select_flag==0&&Sure_flag==1)
- Dis_8x16((TS_flag/9)*4+3,42+((TS_flag%9)/3)*21+(TS_flag%3-1)*8-(TS_flag/9)*8,Arrow_Up);
- if(Change_flag==1&&Select_flag==1&&Sure_flag==1)
- Dis_8x16(7,16+8*((Testing_flag-1)%3)+(Testing_flag/3)*36,Arrow_Up);
- }
- }
- void Delay20000ms() //@11.0592MHz
- {
- unsigned char i, j, k;
- _nop_();
- _nop_();
- i = 73;
- j = 117;
- k = 62;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while (--i);
- }
- void Delay2000ms() //@11.0592MHz
- {
- unsigned char i, j, k;
- _nop_();
- _nop_();
- i = 85;
- j = 12;
- k = 155;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while (--i);
- }
- void Delay1ms() //@11.0592MHz
- {
- unsigned char i, j;
- _nop_();
- _nop_();
- _nop_();
- i = 11;
- j = 190;
- do
- {
- while (--j);
- } while (--i);
- }
- void inte0()interrupt 0 using 1
- {
- beep_flag=1;
- write_byte(0x0f,0x00);
- Set_flag=1;
- }
復(fù)制代碼
所有資料51hei提供下載:
可燃氣體檢測.7z
(2.15 MB, 下載次數(shù): 63)
2019-12-29 19:57 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|