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

正文內(nèi)容

電氣工程學(xué)院畢業(yè)設(shè)計(jì)-基于單片機(jī)的數(shù)字式溫濕度儀系統(tǒng)設(shè)計(jì)(編輯修改稿)

2025-02-13 00:42 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 AT24C04讀寫程序5 結(jié)論本次設(shè)計(jì)以AT89C52的為核心;整個(gè)系統(tǒng)采用模塊化設(shè)計(jì)??梢苑譃榘藗€(gè)模塊,分別為:?jiǎn)纹瑱C(jī)AT89C52的實(shí)時(shí)控制模塊、LCD的實(shí)時(shí)顯示模塊、報(bào)警電路、串口通訊接口電路模塊、按鍵復(fù)位電路模塊、5路單鍵盤輸入控制模塊、AT24C04數(shù)據(jù)存儲(chǔ)模塊,時(shí)鐘電路及SHT10傳感器數(shù)據(jù)采集部分。繪制了各模塊硬件電路圖及軟件流程圖,并根據(jù)設(shè)計(jì)要求編寫各功能模塊程序。使用SHT10溫濕度傳感器和DS1302時(shí)鐘芯片完成實(shí)時(shí)數(shù)據(jù)采集;通過(guò)AT89C52的引腳與LCD引腳的結(jié)合,實(shí)現(xiàn)了LCD的數(shù)據(jù)實(shí)時(shí)顯示功能;串口通訊的實(shí)現(xiàn)依賴于MAX232芯片的功能可以實(shí)現(xiàn)下載程序和數(shù)據(jù);使用5路單鍵鍵盤實(shí)現(xiàn)參數(shù)修改??傮w系統(tǒng)設(shè)計(jì)能實(shí)現(xiàn)對(duì)環(huán)境溫度濕度實(shí)時(shí)檢測(cè),數(shù)字顯示及參數(shù)修改,報(bào)警。相對(duì)濕度在0%~100%之間,溫度量程范圍在10~100度之間,%。通過(guò)本設(shè)計(jì),進(jìn)一步加深了對(duì)單片機(jī)功能和單片機(jī)最小系統(tǒng)的認(rèn)識(shí),熟悉傳感器原理,對(duì)模電數(shù)電只是加深理解。學(xué)會(huì)熟練操作Proteus軟件。在硬件電路模塊化設(shè)計(jì)和軟件流程圖設(shè)計(jì)中遇到很多問(wèn)題:如硬件模塊的原理及各芯片的功能等。在設(shè)計(jì)過(guò)程中參考了大量技術(shù)資料,加深自身資料收集整理轉(zhuǎn)化能力。謝辭參考文獻(xiàn)[1] [M].北京:清華大學(xué)出版社,2009[2] 張毅,[M].北京:化學(xué)工業(yè)出版社,2008[3] [M].北京:化學(xué)工業(yè)出版社,2008[4] [M].武漢:武漢理工出版社,2009[5] [M].北京:科學(xué)出版社,2007[6] [M].北京:清華大學(xué)出版社,2008 [7] [M].北京:電子工業(yè)出版社,2006 [8] [M].北京:北京航空航天大學(xué)出版社,2006 [9] Basic串口通信技術(shù)與典型實(shí)例[M].北京:清華大學(xué)出版社,.[10] 周興華,手把手教你學(xué)單片機(jī)C程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2007 [11] [M]. 上海:上海交通大學(xué)出版社2008,24(91) [12] [M].北京:化學(xué)工業(yè)出版社2008[13] 于華麗, 趙曉順, 劉淑霞 ,[J]..[14]孟臣,[J].世界電子元器件, [15]黃繼雄, [J].控制工程,[17](6)[M].北京:北京航空航天大學(xué)出版社,[18][M].北京:化學(xué)工業(yè)出版社,[19]、應(yīng)用與實(shí)驗(yàn)[M].上海:復(fù)旦大學(xué)出版社,[20][M].北京:航空航天大學(xué)出版社, [21] Zadeh L Sets[J].Information and Control. 1965(8):338353[22] ANALOG DEVICES Reference Manual[M],1994附錄1系統(tǒng)軟件源程序void show_time()。 //液晶顯示程序/***********1602液晶顯示部分子程序****************///Port Definitions**********************************************************sbit LcdRs= P2^5。sbit LcdRw= P2^6。sbit LcdEn = P2^7。sfr DBPort = 0x80。//P0=0x80,P1=0x90,P2=0xA0,P3=//內(nèi)部等待函數(shù)**************************************************************************unsigned char LCD_Wait(void){LcdRs=0。LcdRw=1。_nop_()。LcdEn=1。_nop_()。 LcdEn=0。return DBPort。}//向LCD寫入命令或數(shù)據(jù)************************************************************define LCD_COMMAND0 // Commanddefine LCD_DATA1 // Datadefine LCD_CLEAR_SCREEN0x01 // 清屏define LCD_HOMING 0x02 // 光標(biāo)返回原點(diǎn)void LCD_Write(bit style, unsigned char input){LcdEn=0。LcdRs=style。LcdRw=0。_nop_()。DBPort=input。_nop_()。//注意順序LcdEn=1。_nop_()。//注意順序LcdEn=0。_nop_()。LCD_Wait()。}//初始化LCD************************************************************void LCD_Initial(){LcdEn=0。LCD_Write(LCD_COMMAND,0x38)。 //8位數(shù)據(jù)端口,2行顯示,5*7點(diǎn)陣LCD_Write(LCD_COMMAND,0x38)。LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR)。 //開(kāi)啟顯示, 無(wú)光標(biāo)LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN)。 //清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE)。 //AC遞增, 畫面不動(dòng)}//液晶字符輸入的位置************************void GotoXY(unsigned char x, unsigned char y){if(y==0)LCD_Write(LCD_COMMAND,0x80|x)。if(y==1)LCD_Write(LCD_COMMAND,0x80|(x0x40))。}//將字符輸出到液晶顯示void Print(unsigned char *str){while(*str!=39。\039。){LCD_Write(LCD_DATA,*str)。str++。}}/***********DS1302時(shí)鐘部分子程序******************/typedef struct __SYSTEMTIME__{unsigned char Second。unsigned char Minute。unsigned char Hour。unsigned char Welunsigned char Day。unsigned char Month。unsigned char Year。unsigned char DateString[11]。unsigned char TimeString[9]。}SYSTEMTIME。//定義的時(shí)間類型SYSTEMTIME CurrentTime。define AM(X)Xdefine PM(X)(X+12) // 轉(zhuǎn)成24小時(shí)制define DS1302_SECOND0x80 //時(shí)鐘芯片的寄存器位置,存放時(shí)間define DS1302_MINUTE0x82define DS1302_HOUR0x84 define DS1302_WEEK0x8Adefine DS1302_DAY0x86define DS1302_MONTH0x88define DS1302_YEAR0x8C void DS1302InputByte(unsigned char d) //實(shí)時(shí)時(shí)鐘寫入一字節(jié)(內(nèi)部函數(shù)){ unsigned char i。 ACC = d。 for(i=8。 i0。 i) { DS1302_IO = ACC0。 //相當(dāng)于匯編中的 RRC DS1302_CLK = 1。 DS1302_CLK = 0。 ACC = ACC 1。 } }unsigned char DS1302OutputByte(void) //實(shí)時(shí)時(shí)鐘讀取一字節(jié)(內(nèi)部函數(shù)){ unsigned char i。 for(i=8。 i0。 i) { ACC = ACC 1。 //相當(dāng)于匯編中的 RRC ACC7 = DS1302_IO。 DS1302_CLK = 1。 DS1302_CLK = 0。 } return(ACC)。 }void Write1302(unsigned char ucAddr, unsigned char ucDa)//ucAddr: DS1302地址, ucData: 要寫的數(shù)據(jù){ DS1302_RST = 0。 DS1302_CLK = 0。 DS1302_RST = 1。 DS1302InputByte(ucAddr)。 // 地址,命令 DS1302InputByte(ucDa)。 // 寫1Byte數(shù)據(jù) DS1302_CLK = 1。 DS1302_RST = 0。} unsigned char Read1302(unsigned char ucAddr)//讀取DS1302某地址的數(shù)據(jù){ unsigned char ucData。 DS1302_RST = 0。 DS1302_CLK = 0。 DS1302_RST = 1。 DS1302InputByte(ucAddr|0x01)。 // 地址,命令 ucData = DS1302OutputByte()。 // 讀1Byte數(shù)據(jù) DS1302_CLK = 1。 DS1302_RST = 0。 return(ucData)。}void DS1302_GetTime(SYSTEMTIME *Time) //獲取時(shí)鐘芯片的時(shí)鐘數(shù)據(jù)到自定義的結(jié)構(gòu)型數(shù)組void Initial_DS1302(void) //時(shí)鐘芯片初始化{ unsigned char Second=Read1302(DS1302_SECOND)。if(Secondamp。0x80) //判斷時(shí)鐘芯片是否關(guān)閉 {Write1302(0x8e,0x00)。 //寫入允許Write1302(0x8c,0x07)。 //以下寫入初始化時(shí)間Write1302(0x88,0x07)。Write1302(0x86,0x25)。Write1302(0x8a,0x07)。Write1302(0x84,0x23)。Write1302(0x82,0x59)。Write1302(0x80,0x55)。Write1302(0x8e,0x80)。 //禁止寫入}}/**********SHT10子程序*************************//***********SHT10延遲子函數(shù)(
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1