|
油箱油量指示報警
捕獲.PNG (42.68 KB, 下載次數(shù): 72)
下載附件
2017-5-19 19:47 上傳
程序清單:
- #include<reg52.h>
- #include<intrins.h>
- typedef unsigned int uint;
- typedef unsigned char uchar;
- sbit Dula=P2^0; //數(shù)碼管段選使能
- sbit Wela=P2^1; //數(shù)碼管位選使能
- sbit ADC_CS=P2^5; //ADC0804的片選端
- sbit ADC_RD=P2^6; //ADC0804的讀控制
- sbit ADC_WR=P2^7; //ADC0804的開始控制
- sbit BUZZER=P2^3; //蜂鳴器io口
- uchar num=0;
- bit flag=0; //第一次轉(zhuǎn)換成功過標(biāo)志
- uchar code table[]={ //無小數(shù)點共陰數(shù)碼管編碼
- 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
- void delay_tms(uint t); //t毫秒延時函數(shù)
- void Display(); //顯示函數(shù),以及報警
- void ADC0804(); //ADC0804轉(zhuǎn)換函數(shù)
- void TMOD_Init(); //定時器初始化函數(shù)
- void main()
- {
- TMOD_Init(); //初始化定時器
- BUZZER=1;
- while(1)
- {
- ADC0804(); //不斷地進(jìn)行數(shù)模轉(zhuǎn)化
- }
- }
- void delay_tms(uint t)
- {
- uint x,y;
- for(x=t;x>0;x--)
- for(y=110;y>0;y--);
- }
- void TMOD_Init()
- {
- TMOD=0X01;
- TH0=0xfc;
- TL0=0x18;
- EA=1;
- ET0=1;
- TR0=0;
- }
- void Display()
- {
- uchar i,buf[4];
- uint temp;
- temp=num;
- temp=temp*200/51;
- if(temp<100)
- {
- P3=0XBF;
- TR0=1;
- }
- else if((temp>=100)&&(temp<900))
- {
- P3=0xc1;
- TR0=0;
- }
- else
- {
- P3=0XFE;
- TR0=0;
- }
- buf[0]=table[temp/1000]; //分離數(shù)據(jù)的百位
- buf[1]=table[temp%1000/100]; //分離數(shù)據(jù)的十位
- buf[2]=table[temp%100/10]|0x80; //分離數(shù)據(jù)的各位,并|0x80,使顯示小數(shù)點
- buf[3]=table[temp%10]; //分離數(shù)據(jù)的小數(shù)點后一位
- for(i=0;i<4;i++)
- {
- Wela=1;
- P0=~(0x01<<i) ; //送位選數(shù)據(jù)
- Wela=0;
-
- Dula=1;
- P0=buf[i]; //送段選數(shù)據(jù)
- Dula=0;
- delay_tms(5);
- P0=0XFF; //數(shù)碼管消隱
- }
- }
- void ADC0804()
- {
- uchar i;
- ADC_CS=0;
- ADC_WR=0;
- _nop_();
- _nop_();
- ADC_WR=1; //啟動ADC0804的轉(zhuǎn)化
- if(flag!=0) //如果轉(zhuǎn)化成功
- {
- flag=1;
- for(i=0;i<8;i++)
- Display();
- }
- ADC_RD=0;
- _nop_();
- _nop_();
- num=P1; //讀取ADC0804的轉(zhuǎn)化后的數(shù)值
- _nop_();
- ADC_RD=1;
- ADC_CS=1;
- flag=1;
- Display();
- }
- void timer() interrupt 1 //中斷函數(shù)。產(chǎn)生蜂鳴器所需震蕩
- {
- TH0=0xfc;
- TL0=0x18;
- BUZZER=~BUZZER;
- }
復(fù)制代碼 |
評分
-
查看全部評分
|