標(biāo)題:
幫幫唄 怎么寫(xiě)實(shí)現(xiàn)一鍵切換功能;我寫(xiě)的主函數(shù)沒(méi)效果,其他函數(shù)正常
[打印本頁(yè)]
作者:
xiaojun
時(shí)間:
2015-9-4 09:18
標(biāo)題:
幫幫唄 怎么寫(xiě)實(shí)現(xiàn)一鍵切換功能;我寫(xiě)的主函數(shù)沒(méi)效果,其他函數(shù)正常
#include<reg51.h>
#include"LCD.h"
#include"ds1302.h"
#include"temp.h"
sbit check=P1^0;
void timeLcdDisplay();
void tempLcdDisplay(int temp);
void time_transfer();
void temp_transfer();
void main()
{check=1;
while(1) //想在溫度和時(shí)間之間一鍵切換
{
if(check==0)
{
Delay1ms(10);
while(check==0)
{temp_transfer();}
}
else{
time_transfer();
}
}}
void time_transfer()
{ uint a;
LcdInit();
Ds1302Init();
for(a=0;a<60;a++)
{
Ds1302ReadTime();
timeLcdDisplay();
}}
void temp_transfer()
{uint a,b;
LcdInit(); //3êˉLCD1602
LcdWriteCom(0x88); //D′μ· 80±íê3êμ·
LcdWriteData('C');
for(a=0;a<200;a++)
{
tempLcdDisplay(Ds18b20ReadTemp());
Delay1ms(200);
}}
void timeLcdDisplay()
{
LcdWriteCom(0x80+0X40);
LcdWriteData('0'+TIME[2]/16); //ê±
LcdWriteData('0'+(TIME[2]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[1]/16); //·
LcdWriteData('0'+(TIME[1]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[0]/16); //
LcdWriteData('0'+(TIME[0]&0x0f));
LcdWriteCom(0x80);
LcdWriteData('2');
LcdWriteData('0');
LcdWriteData('0'+TIME[6]/16); //ê
LcdWriteData('0'+(TIME[6]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[4]/16); //
LcdWriteData('0'+(TIME[4]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[3]/16); //è
LcdWriteData('0'+(TIME[3]&0x0f));
LcdWriteCom(0x8D);
LcdWriteData('0'+(TIME[5]&0x07)); //Dú
}
void tempLcdDisplay(int temp)
{
unsigned char datas[] = {0, 0, 0, 0, 0}; //¨òêy×é
float tp;
if(temp< 0) //μ±èμaoêy
{
LcdWriteCom(0x80); //D′μ· 80±íê3êμ·
LcdWriteData('-'); //êo
//òòaáèμèêêμêèμ21£ùò1£ùè·′ó3-
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
//ááDêyμí*100£+0.5êéáè£òòaCóμêy×aaDíμê±oò°Dêyμ
//oóμêy×ˉè¥μ£21üê·′óóú0.5£+0.5oó′óóú0.5μíê1á£Dóú0.5μí
//óé0.5£1êúDêyμoó£
}
else
{
LcdWriteCom(0x80); //D′μ· 80±íê3êμ·
LcdWriteData('+'); //êy
tp=temp;//òòaêyY′|àíóDDêyμùòè3òμDí±á
//è1èêyμ′£′yêyμ-íê21ü±éí
temp=tp*0.0625*100+0.5;
//ááDêyμí*100£+0.5êéáè£òòaCóμêy×aaDíμê±oò°Dêyμ
//oóμêy×ˉè¥μ£21üê·′óóú0.5£+0.5oó′óóú0.5μíê1á£Dóú0.5μí
//óé0.5£1êúDêyμoó£
}
datas[0] = temp / 10000;
datas[1] = temp % 10000 / 1000;
datas[2] = temp % 1000 / 100;
datas[3] = temp % 100 / 10;
datas[4] = temp % 10;
LcdWriteCom(0x82); //D′μ· 80±íê3êμ·
LcdWriteData('0'+datas[0]); //°ù
LcdWriteCom(0x83); //D′μ· 80±íê3êμ·
LcdWriteData('0'+datas[1]); //ê
LcdWriteCom(0x84); //D′μ· 80±íê3êμ·
LcdWriteData('0'+datas[2]); //
LcdWriteCom(0x85); //D′μ· 80±íê3êμ·
LcdWriteData('.'); //ê .ˉ
LcdWriteCom(0x86); //D′μ· 80±íê3êμ·
LcdWriteData('0'+datas[3]); //êDêyμ
LcdWriteCom(0x87); //D′μ· 80±íê3êμ·
LcdWriteData('0'+datas[4]); //êDêyμ
}
作者:
lxa0
時(shí)間:
2015-9-4 10:50
你想別人怎么幫你???
作者:
xiaojun
時(shí)間:
2015-9-4 10:59
怎么寫(xiě)實(shí)現(xiàn)一鍵切換功能;我寫(xiě)的主函數(shù)沒(méi)效果,其他函數(shù)正常
void main()
{
uchar System_Mode;
while(1)
{
if(key0==0)
System_Mode=1;
if(key0==1)
System_Mode=2;
switch(System_Mode)
{ case 1:
temp_transfer();
break;
case 2:
time_transfer();
break;
default:
break;}
}
}
void time_transfer()
{
LcdInit();
Ds1302Init();
while(1)
{
Ds1302ReadTime();
timeLcdDisplay();
if(key0==0) break;
}}
void temp_transfer()
{LcdInit();
LcdWriteCom(0x88);
LcdWriteData('C');
while(1)
{
tempLcdDisplay(Ds18b20ReadTemp());
Delay1ms(100);
if(key0==1) break;
}}
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1