51單片機(jī)+ds1302+ds18b20+1602液晶萬年歷 作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對面交流海量資料庫查詢 收藏 //****************************************************************************************************void delay(uint32 x){while(x--); }//****************************************************************************************************bit check_1602()//***********判斷1602是否處于忙狀態(tài){P0=0xff;RS=0;RW=1;ENLCD=0;delay(50);ENLCD=1;return((bit)(P0&0x80)); }//****************************************************************************************************void write_com(uint8 com)//向1602寫入一命令{while(check_1602());//***首先判斷1602是否在忙 忙則等待RS=0;RW=0;ENLCD=1;P0=com;delay(50);ENLCD=0;}//****************************************************************************************************void write_dat(uint8 dat)//**向1602寫入一字節(jié)數(shù)據(jù){while(check_1602());//**首先判斷1602是否在忙 忙則等待RS=1;RW=0;ENLCD=1;P0=dat;delay(50);ENLCD=0;}//****************************************************************************************************void init_1602()//**********1602初始化{write_com(0x38);delay(1000);write_com(0x38);delay(1000);write_com(0x38);write_com(0x08);write_com(0x01);write_com(0x06);write_com(0x0c);}//****************************************************************************************************void w_string(uint8 string[],uint8 x,uint8 y)//寫入字符型數(shù)組 x代表從第一行的第幾個方格開始顯示{ uint8 i=0; //y 代表在第幾行if(y==1){while(string[i]!=0){write_com(0x80+i+x);write_dat(string[i]);i++;};i=0;}if(y==2){while(string[i]!=0){write_com(0xc0+i+x);write_dat(string[i]);i++;};i=0; } }//****************************************************************************************************void w_char(uint8 c,x,y)//*********向1602寫入一個字符{if(y==1){write_com(0x80+x);write_dat(c);}if(y==2){write_com(0xc0+x);write_dat(c);} }//****************************************************************************************************void H_1602()//********************1602要顯示的內(nèi)容{ w_char(2+48,0,1);w_char(48,1,1);w_char(year/10%10+48,2,1);w_char(year%10+48,3,1);w_char(:,4,1);w_char(month/10+48,5,1);w_char(month%10+48,6,1);w_char(:,7,1);w_char(day/10+48,8,1);w_char(day%10+48,9,1);w_string(D,11,1);w_char(:,14,1);w_char(week%10+48,15,1);w_char(hour/10+48,0,2);w_char(hour%10+48,1,2);w_char(:,2,2);w_char(minute/10+48,3,2);w_char(minute%10+48,4,2);w_char(:,5,2);w_char(second/10+48,6,2);w_char(second%10+48,7,2);w_char((uint8)T/10%10+48,9,2);w_char((uint8)T%10+48,10,2);w_char(.,11,2);w_char((uint16)(T*10)%10+48,12,2);w_char(0xdf,13,2);//顯示圓點(diǎn)w_char(67,14,2);//顯示大寫字母C}void closeLED()//******************關(guān)閉數(shù)碼管函數(shù){shang=0x00;xia=0x00;}//****************************************************************************************************void init(){timer0_init();ds1302_init();init_1602();closeLED();}//****************************************************************************************************main(){init();beginchange();while(1){jishi0();H_1602();}} 上一頁 1 2 3 下一頁
評論