freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于lcd1602電子時鐘課程設(shè)計報告-資料下載頁

2025-08-18 15:25本頁面

【導(dǎo)讀】隨著微電子技術(shù)的高速發(fā)展,單片機(jī)在國民經(jīng)濟(jì)的個人領(lǐng)域得到了廣泛的運用。通信、自動化、機(jī)電一體化等專業(yè)技術(shù)人員必須掌握的技術(shù)。因為它有很好的開放性和可發(fā)揮性,因此對作者的要求比較高,不僅考察了對。單片機(jī)的掌握能力更加強(qiáng)調(diào)了對單片機(jī)擴(kuò)展的應(yīng)用。而且在操作的設(shè)計上要力求簡潔,功。能上盡量齊全,顯示界面也要出色。通過DS1302能夠準(zhǔn)確的計時,時間可調(diào)并在液晶屏上顯示出來。通過DS18B20能夠?qū)崟r、準(zhǔn)確的檢測當(dāng)前環(huán)境溫度。利用程序控制單片機(jī)實現(xiàn)鬧鐘功能。LCD液晶每行刷新顯示。時間是24小時制;年限2020年~2099年。測量溫度范圍為0℃~+60℃,誤差為±°C。

  

【正文】 while(ADD==0)。 } } if(RED==0) { delay1ms(10)。 if(RED==0) { month。 delay1ms(300)。 if(month==0) month=12。 while(RED==0)。 } } datevalue=((month/10)4|(month%10))。 WriteSet1302(0x88,datevalue)。 delay1ms(1)。 display_Month(month)。 Write_Address(0x0c)。 delay1ms(5)。 30 if(CANL==0) { mode=0。 Write_(0x0c)。 break。 } } WriteSet1302(0x8e,0x80)。 } void dayset(void) //調(diào)日 { unsigned char datevalue,day。 delay1ms(500)。 WriteSet1302(0x8e,0x00)。 datevalue=ReadSet1302(0x87)。 day=(((datevalueamp。0x70)4)*10+(datevalueamp。0x0f))。 while(1) { if(ADD==0) { delay1ms(10)。 if(ADD==0) { day++。 if(day31) day=1。 while(ADD==0)。 } } if(RED==0) { delay1ms(10)。 if(RED==0) { day。 delay1ms(300)。 if(day==0) day=31。 while(RED==0)。 } } datevalue=((day/10)4|(day%10))。 WriteSet1302(0x86,datevalue)。 delay1ms(1)。 display_Day(day)。 Write_Address(0x0f)。 delay1ms(5)。 31 if(CANL==0) { mode=0。 Write_(0x0c)。 break。 } } WriteSet1302(0x8e,0x80)。 } void alarmhourset(void) //鬧鐘小時調(diào)整 { unsigned char value。 value=houra。 while(1) { if(ADD==0) { delay1ms(20)。 if(ADD==0) { Write_(0x0c)。 delay1ms(5)。 value++。 if(value23) value=0。 while(ADD==0)。 } } if(RED==0) { delay1ms(20)。 if(RED==0) { value。 if(value==0) value=23。 while(RED==0)。 } } houra=value。 display_houra(houra)。 gbdisplay(0x45)。 if(CANL==0) { delay1ms(500)。 break。 } } 32 } void alarmminuteset(void) //鬧鐘分鐘調(diào)整 { while(1) { if(ADD==0) { delay1ms(20)。 if(ADD==0) { minutea++。 if(minutea59) minutea=0。 while(ADD==0) 。 } } if(RED==0) { delay1ms(20)。 if(RED==0) { minutea。 if(minutea==0) minutea=59。 while(RED==0) 。 } } display_minutea(minutea)。 gbdisplay(0x48)。 if(CANL==0) { delay1ms(500)。 break。 } } } void TimeSet(void) //時間調(diào)整函數(shù) { display_Time()。 if(SET==0) { delay1ms(10)。 if(SET==0) { mode++。 33 delay1ms(20)。 switch(mode) { case(1):{gbdisplay(0x48)。 hourset()。 delay1ms(500)。} case(2):{gbdisplay(0x4c)。minuteset()。delay1ms(500)。} case(3):{gbdisplay(0x4f)。secondset()。delay1ms(500)。} case(4):{gbdisplay(0x09)。yearset()。delay1ms(500)。} case(5):{gbdisplay(0x0c)。monthset()。delay1ms(500)。} case(6):{gbdisplay(0x0f)。dayset()。delay1ms(500)。} default:{break。} } } } } /***************顯示溫度模塊 ********************/ unsigned char code displayexplain[]={Digit thermometer}。 unsigned char code displayerror[]={DS18B20 ERROR}。 unsigned char code displayerror1[]={PLEASE CHECK }。 unsigned char code displaypart1[]={WenDu:}。 unsigned char code displaypart2[]={Cent}。 unsigned char flag。 /**********************操作 DS18B20模塊 ***************************/ sbit DQ=P3^3。 unsigned char time。 /**********************DS18B20初始化 ****************************/ bit IntDS18B20(void) { bit temp。 DQ=1。 for(time=0。time2。time++)。 DQ=0。 for(time=0。time200。time++)。 DQ=1。 for(time=0。time10。time++)。 temp=DQ。 for(time=0。time200。time++)。 return temp。 } /**************************讀 DS18B20**********************/ unsigned char ReadDS18B20(void) { unsigned char i。 unsigned char dat。 34 for(i=0。i8。i++) { DQ=1。 _nop_()。 DQ=0。 _nop_()。 DQ=1。 for(time=0。time2。time++)。 dat=1。 if(DQ==1) dat=dat|0x80。 else dat=dat|0x00。 for(time=0。time10。time++)。 } return dat。 } /*********************向 DS18B20寫數(shù)據(jù) **************************/ void WriteDS18B20(unsigned char date) { unsigned char i。 for(i=0。i8。i++) { DQ=1。 _nop_()。 DQ=0。 DQ=dateamp。0x01。 for(time=0。time10。time++)。 DQ=1。 for(time=0。time1。time++)。 date=1。 } for(time=0。time4。time++)。 } /*******************為讀取溫度做好準(zhǔn)備 ************************/ void ReadyreadDS18B20(void) { IntDS18B20()。 WriteDS18B20(0XCC)。 WriteDS18B20(0X44)。 delay1ms(200)。 IntDS18B20()。 WriteDS18B20(0XCC)。 WriteDS18B20(0XBE)。 35 } /*************在 1602液晶上顯示相關(guān)信息模塊 **********************/ /****************當(dāng)未檢測到 DS18B20時顯示信息模塊 ****************/ void Display_Error(void) { unsigned char i=0。 Write_Address(0x00)。 while(displayerror[i]!=39。\039。) { Write_Date(displayerror[i])。 i++。 delay1ms(100)。 } delay1ms(5)。 i=0。 Write_Address(0x40)。 while(displayerror1[i]!=39。\039。) { Write_Date(displayerror1[i])。 i++。 delay1ms(100)。 } delay1ms(3000) 。 } /*************溫度顯示模塊 ****************/ void Display_Explain(void) { unsigned char i=0。 Write_Address(0x00)。 delay1ms(5)。 while(displayexplain[i]!=39。\039。) { Write_Date(displayexplain[i])。 i++。 delay1ms(5)。 } i=0。 Write_Address(0x40)。 while(displaypart1[i]!=39。\039。) { Write_Date(displaypart1[i])。 i++。 delay1ms(5)。 } 36 i=0。 Write_Address(0x4C)。 while(displaypart2[i]!=39。\039。) { Write_Date(displaypart2[i])。 i++。 delay1ms(5)。 } Write_Address(0x49)。 Write_Date(39。.39。)。 delay1ms(5)。 } /*********************顯示溫度整數(shù)部分 *************************/ void Display_Integer(unsigned char x) { unsigned char i,j,k。 i=x/100。 j=x%100/10。 k=x%10。 if(i!=0) {
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1