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

正文內(nèi)容

基于at89s51單片機(jī)的電子時(shí)鐘帶溫度顯示-資料下載頁(yè)

2025-11-27 02:29本頁(yè)面

【導(dǎo)讀】本文介紹了一款基于AT89S51單片機(jī)控制的帶有溫度顯示的電子鐘的設(shè)計(jì),通過(guò)多功能數(shù)字鐘帶有溫度的設(shè)計(jì)思路,詳細(xì)敘述了系統(tǒng)硬件、軟件的具體實(shí)現(xiàn)過(guò)程。論文重點(diǎn)闡述了數(shù)字鐘硬件中MCU模塊、溫度模塊、時(shí)鐘模塊、顯示模塊和相關(guān)控制模塊等的模塊化設(shè)計(jì)與制作;軟件同樣采用模塊化的設(shè)計(jì),包括中斷模塊、溫度模塊、時(shí)間調(diào)整模塊設(shè)計(jì),并采用簡(jiǎn)單流通性強(qiáng)的C語(yǔ)言編寫實(shí)現(xiàn)。本設(shè)計(jì)實(shí)現(xiàn)了時(shí)間的修改功能和年、月、日和星期的顯示和溫度顯示功能。隨著人們生活水平的日益提高,人們對(duì)生活的要求越來(lái)越高,原有的事物已經(jīng)不能滿足人們的生活需求了,一些帶有新功能的事物已經(jīng)在慢慢的取代舊事物。帶有溫度的的電子鐘可以使人們隨時(shí)都可以了解溫度的變化。DS18B20內(nèi)部的比較器以四舍五入的量化方式確定溫度寄存器的最低有效位。DS18B20測(cè)量溫度時(shí)使用特有的溫度測(cè)量技術(shù)。DS18B20內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號(hào);同樣的,高溫度系數(shù)振蕩器則將被測(cè)溫度轉(zhuǎn)換成頻

  

【正文】 2(0x8e,0x00)。 //允許寫,禁止寫保護(hù) Write1302(DS1302_SECOND,temp/10*16+temp%10)。 Write1302(0x8e,0x80)。 //打開(kāi)寫保護(hù) write_(0x80+0x40+7)。 } if(keynum==2) { temp=BCD_DEC(Read1302(DS1302_MINUTE))。 temp。 if(temp=1) temp=59。 Write1302(0x8e,0x00)。 //允許寫,禁止寫保護(hù) Write1302(DS1302_MINUTE,temp/10*16+temp%10)。 Write1302(0x8e,0x80)。 //打開(kāi)寫保護(hù) write_(0x80+0x40+5)。 } if(keynum==3) { temp=BCD_DEC(Read1302(DS1302_HOUR))。 temp。 if(temp=1) temp=23。 Write1302(0x8e,0x00)。 //允許寫,禁止寫保護(hù) Write1302(DS1302_HOUR,temp/10*16+temp%10)。 Write1302(0x8e,0x80)。 //打開(kāi)寫保護(hù) write_(0x80+0x40+3)。 } if(keynum==4) { temp=BCD_DEC(Read1302(DS1302_DAY))。 temp。 if(temp=0) temp=31。 Write1302(0x8e,0x00)。 //允許寫,禁止寫保護(hù) Write1302(DS1302_DAY,temp/10*16+temp%10)。 Write1302(0x8e,0x80)。 //打開(kāi)寫保護(hù) write_(0x80+9)。 } if(keynum==5) { temp=BCD_DEC(Read1302(DS1302_MONTH))。 temp。 if(temp=0) temp=12。 Write1302(0x8e,0x00)。 //允許寫,禁止寫保護(hù) Write1302(DS1302_MONTH,temp/10*16+temp%10)。 Write1302(0x8e,0x80)。 //打開(kāi)寫保護(hù) write_(0x80+7)。 } if(keynum==6) { temp=BCD_DEC(Read1302(DS1302_YEAR))。 temp。 if(temp=0) temp=99。 Write1302(0x8e,0x00)。 //允許寫,禁止寫保護(hù) Write1302(DS1302_YEAR,temp/10*16+temp%10)。 Write1302(0x8e,0x80)。 //打開(kāi)寫保護(hù) write_(0x80+5)。 } } } }} sbit DQ = P3^6 。 //定義DS18B20端口DQbit presence 。//uchar code cdis2[ ] = { C} 。uchar code cdis[ ] = {ERR0R} 。unsigned char data temp_data[2] = {0x00,0x00} 。unsigned char display[5]。unsigned char code ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09} 。///*小數(shù)位表,四舍五入*//*us級(jí)延時(shí)函數(shù) *//*******************************************************************/void Delay(unsigned int num){ while( num ) 。}/*初始化ds1820 *//*******************************************************************/Init_DS18B20(void){ DQ = 1 。 //DQ復(fù)位 Delay(8) 。 //稍做延時(shí) DQ = 0 。 //單片機(jī)將DQ拉低 Delay(90) 。 //精確延時(shí) 大于 480us DQ = 1 。 //拉高總線 Delay(8) 。 presence = DQ 。 //如果=0則初始化成功 =1則初始化失敗 Delay(100) 。 DQ = 1 。 return(presence) 。 //返回信號(hào),0=presence,1= no presence}/* 讀一個(gè)字節(jié) *//*******************************************************************/ ReadOneChar(void){uchar i = 0 。uchar dat = 0 。for (i = 8 。 i 0 。 i) { DQ = 0 。 // 給脈沖信號(hào) dat = 1 。 DQ = 1 。 // 給脈沖信號(hào) if(DQ) dat |= 0x80 。 Delay(4) 。 } return (dat) 。}/* 寫一個(gè)字節(jié) *//*******************************************************************/WriteOneChar(unsigned char dat){ unsigned char i = 0 。 for (i = 8 。 i 0 。 i) { DQ = 0 。 DQ = datamp。0x01 。 Delay(5) 。 DQ = 1 。 dat=1 。 }}/* 讀取溫度 *//*******************************************************************/ Read_Temperature(void){ Init_DS18B20() 。 WriteOneChar(0xCC) 。 // 跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0x44) 。 // 啟動(dòng)溫度轉(zhuǎn)換 Init_DS18B20() 。 WriteOneChar(0xCC) 。 //跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0xBE) 。 //讀取溫度寄存器 temp_data[0] = ReadOneChar() 。 //溫度低8位 temp_data[1] = ReadOneChar() 。 //溫度高8位}/* 數(shù)據(jù)轉(zhuǎn)換與溫度顯示 *//*******************************************************************/ Disp_Temperature(){ display[4]=temp_data[0]amp。0x0f 。 display[0]=ditab[display[4]]+0x30 。 //查表得小數(shù)位的值 display[4]=((temp_data[0]amp。0xf0)4)|((temp_data[1]amp。0x0f)4) 。 display[3]=display[4]/100+0x30 。 display[1]=display[4]%100 。 display[2]=display[1]/10+0x30 。 display[1]=display[1]%10+0x30 。 if(display[3]==0x30) //高位為0,不顯示 { display[3]=0x20 。 if(display[2]==0x30) //次高位為0,不顯示 display[2]=0x20 。 } display_char(9,1,display[3])。 //百位數(shù)顯示 display_char(10,1,display[2])。 //十位數(shù)顯示 display_char(11,1,display[1])。 //個(gè)位數(shù)顯示 display_char(12,1,39。.39。)。 //小數(shù)點(diǎn)顯示 display_char(13,1,display[0])。 //小數(shù)位數(shù)顯示 display_char(14,1,0xdf)。 display_char(15,1,39。C39。)。 }/* DS18B20 ERROR 顯示菜單 *//*******************************************************************/void Error_Menu (){ lcd_init() 。 //初始化LCD display_string(10,1,cdis)。}include include include include include main(){ lcd_init()。 Initial_DS1302()。 Init_DS18B20()。 while(1) { key_scan()。 DS1302_GetTime()。 DateToStr()。 TimeToStr()。 display_xy(1,0)。 display_string(3,0,DateString)。 display_xy(1,1)。 display_string(1,1,TimeString)。 /*display_char(3,1,0x3a)。 display_char(6,1,0x3a)。 delayms(500)。 display_char(3,1,0x20)。 display_char(6,1,0x20)。 delayms(500)。*/ Read_Temperature()。 Disp_Temperature()。 }}
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1