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

正文內(nèi)容

基于單片機(jī)的數(shù)字溫度計(jì)和數(shù)字鐘的設(shè)計(jì)與研究(文件)

 

【正文】 示電路 。 另一種是寄生電源供電方式,如圖10 所示 , 單片機(jī)端口接單線總線,為保證在有效的 DS18B20 時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè) MOSFET 管完成對(duì)總線的上拉。 在外部電源供電方式下, DS18B20 工作電源由 VDD 引腳接入,此時(shí) I/O線不需要強(qiáng)上拉,不存在電源電流不足的問(wèn)題,可以保證 轉(zhuǎn)換精度,同時(shí)在總線上理論可以掛接任意多個(gè) DS18B20 傳感器,組成多點(diǎn)測(cè)溫系統(tǒng)。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。顯示電路如圖 13。 圖 14 系統(tǒng) 整體硬件電路 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 2 第四章 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序, 延時(shí)程序,時(shí)間調(diào)節(jié)按鍵子程序, DS1302 時(shí)鐘芯片寫(xiě)入一字節(jié)子程序,讀 DS1302時(shí)鐘芯片子程序, LCD1602 液晶顯示子程序 等。其程序流程圖如 上 圖 圖 11 所示。 圖 17 計(jì)算溫度流程圖 顯示數(shù)據(jù)刷新子程序 顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為 0 時(shí)將符號(hào)顯示位移入下一位??傮w上講,符合設(shè)計(jì)要求。 經(jīng)反復(fù)測(cè)試,本系統(tǒng)很好的完成了各項(xiàng) 功能,完全符合系統(tǒng) 設(shè)計(jì)要求。尤其重要的是讓我們養(yǎng)成了科學(xué)的習(xí)慣,在設(shè)計(jì)過(guò)程中一定要注意掌握設(shè)計(jì)進(jìn)度,按預(yù)定計(jì)劃完成階段性的目標(biāo),在底圖設(shè)計(jì)階段,注意設(shè)計(jì)計(jì)算與結(jié)構(gòu)設(shè)計(jì)畫(huà)圖交替進(jìn)行,采用正確的設(shè)計(jì)方法。本次單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì)及液晶顯示,不僅需要巧妙的程序算法,而且需要一些單片機(jī)編程經(jīng)驗(yàn)。只有把所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,所學(xué)的知識(shí)才會(huì)有價(jià)值,學(xué)習(xí)單機(jī)片機(jī)更是如此,軟件編程能力只有在經(jīng)常的寫(xiě)與讀的過(guò)程中才能得到提高,這是我在這次課程設(shè)計(jì)中的最大收獲。 他們 為人隨和熱情,治學(xué)嚴(yán)謹(jǐn)細(xì)心。 最后感謝四年里陪伴我的同學(xué)、朋友們,有了他們我的人生才豐富,有了他們我在奮斗的路上才不孤獨(dú),謝謝他們。 //實(shí)時(shí)時(shí)鐘復(fù)位線引腳 sbit wireless_1 = P3^0。 sbit ACC0 = ACC^0。 //模式切換鍵 sbit Up = P2^1。 //溫度傳送數(shù)據(jù) IO 口 char done,count,temp,flag,up_flag,down_flag。 //液晶顯示程序 /***********1602 液晶顯示部分子程序 ****************/ //Port Definitions********************************************************** sbit LcdRs= P2^5。 //P0=0x80,P1=0x90,P2=0xA0,P3= // 內(nèi) 部 等 待 函 數(shù)************************************************************************** unsigned char LCD_Wait(void) { LcdRs=0。 _nop_()。 LcdRs=style。 _nop_()。 _nop_()。 } //初始化 LCD************************************************************ void LCD_Initial() { LcdEn=0。 //開(kāi)啟顯示 , 無(wú)光標(biāo) LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN)。 } 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 12 //將字符輸出 到液晶顯示 void Print(unsigned char *str) { while(*str!=39。 } } /***********DS1302 時(shí)鐘部分子程序 ******************/ typedef struct __SYSTEMTIME__ { unsigned char Second。 unsigned char Day。 unsigned char TimeString[9]。 ACC = d。 //相當(dāng)于匯編中的 RRC DS1302_CLK = 1。 for(i=8。 DS1302_CLK = 1。 DS1302_CLK = 0。 // 寫(xiě) 1Byte 數(shù)據(jù) DS1302_CLK = 1。 DS1302_CLK = 0。 // 讀 1Byte 數(shù)據(jù) DS1302_CLK = 1。 DS1302InputByte(ucAddr|0x01)。 } 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 14 unsigned char Read1302(unsigned char ucAddr) //讀取 DS1302 某地址的數(shù)據(jù) { unsigned char ucData。 DS1302InputByte(ucAddr)。 } return(ACC)。 i) { ACC = ACC 1。 ACC = ACC 1。 i0。 //定義的時(shí)間類型 SYSTEMTIME CurrentTime。 unsigned char Year。 unsigned char Hour。) { LCD_Write(LCD_DATA,*str)。 //AC 遞增 , 畫(huà)面不動(dòng) } //液晶字符輸入的位置 ************************ void GotoXY(unsigned char x, unsigned char y) { if(y==0) LCD_Write(LCD_COMMAND,0x80|x)。 //8 位數(shù)據(jù)端口 ,2 行顯示 ,5*7 點(diǎn)陣 LCD_Write(LCD_COMMAND,0x38)。 } //設(shè)置顯示模式 ************************************************************ define LCD_SHOW 0x04 //顯示開(kāi) define LCD_HIDE 0x00 //顯示關(guān) define LCD_CURSOR 0x02 //顯示光標(biāo) define LCD_NO_CURSOR 0x00 //無(wú)光標(biāo) define LCD_FLASH 0x01 //光標(biāo)閃動(dòng) define LCD_NO_FLASH 0x00 //光標(biāo)不閃動(dòng) 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 11 void LCD_SetDisplay(unsigned char DisplayMode) { LCD_Write(LCD_COMMAND, 0x08|DisplayMode)。 _nop_()。 _nop_()。 return DBPort。 _nop_()。 sbit LcdEn = P2^7。 //溫度值 uchar TempBuffer[5],week_value[2]。 //減法按鈕 sbit out = P2^3。 char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year。 sbit wireless_3 = P3^2。 //實(shí)時(shí)時(shí)鐘時(shí)鐘線引腳 sbit DS1302_IO = P1^6。正是 有了 老師 們 的無(wú)私幫助與熱忱鼓勵(lì),我的畢業(yè)論文才得以 順利完成 。如今,伴隨著這篇畢業(yè)論文的最終成稿,復(fù)雜的心情煙消云散,自己甚至還有一點(diǎn)成就感。 通過(guò)對(duì)通用 89C52 單片機(jī)機(jī)處理器鐵電存儲(chǔ)器芯片、常用元器件的設(shè)計(jì),掌握了一般單片機(jī)設(shè)計(jì)的程序和方法,讓我對(duì)整個(gè)單片機(jī)程序的設(shè)計(jì), C 語(yǔ)言有了一個(gè)比較深的理解。在課程設(shè)計(jì)的實(shí)踐中進(jìn)行了設(shè)計(jì)基本技能的訓(xùn)練,掌握了查閱和使用標(biāo)準(zhǔn)、規(guī)范、手冊(cè)、圖冊(cè)、及相關(guān)技術(shù)資料的基本技能以及計(jì)算、數(shù)據(jù)處理等方面的能力。在這2 周的課程設(shè)計(jì)中,有很多的心得體會(huì),有關(guān)于單片機(jī)方面的,更多的是關(guān)于 與 人 合作方面的。 時(shí)間測(cè)試 本系統(tǒng)上電后,會(huì)以前一次 的 時(shí)間為基礎(chǔ)顯示同步時(shí)間,將此時(shí)間與北京時(shí)間相比,誤差小于 1 秒鐘,數(shù)字鐘計(jì)時(shí)準(zhǔn)確 。 圖 18 顯示數(shù)據(jù)刷新流程圖 開(kāi)始 溫度零下 ? 溫度值取補(bǔ)碼置“ — ”標(biāo)志 計(jì)算小數(shù)位溫度 BCD值 計(jì)算整數(shù)位溫度 BCD值 結(jié)束 置“ +”標(biāo)志 N Y 溫度數(shù)據(jù)移入顯示寄存器 十位數(shù) 0? 百位數(shù) 0? 十位數(shù)顯示符號(hào)百位數(shù)不顯示 百位數(shù)顯示數(shù)據(jù)(不顯示符號(hào)) 結(jié)束 N N Y Y 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 5 第五章 功能測(cè)試 溫度測(cè)試 用一只精度為 ℃ 的水銀溫度計(jì)作對(duì)照標(biāo)準(zhǔn),把它和溫度傳感器 DS18B20 一起放入 同 一杯冷水中,水銀溫度計(jì)讀數(shù)為 ℃ ,調(diào)節(jié)數(shù)字溫度計(jì)電位器,使其顯示值也為 ℃ ,然后逐次向燒杯加熱水改變水溫,記下每次兩 只 溫度計(jì)的讀數(shù) θ1(標(biāo)準(zhǔn)值)與 θ2(測(cè)試值), 其數(shù)據(jù)表格如表 3 所示。溫度轉(zhuǎn)換命令子程序 流程圖如上圖,圖 12 所示。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見(jiàn)圖 10 所示。 DS18B20采用外部電源供電方式。 DS1302 實(shí)時(shí)時(shí)鐘電路 如圖 11和圖 12 所示。 獨(dú)特的寄生電源方式有三個(gè)好處: ( 1)進(jìn)行遠(yuǎn)距離測(cè)溫時(shí),無(wú)需本地電源 ( 2)可以在沒(méi)有常規(guī)電源的條件下讀取 ROM ( 3)電路更加簡(jiǎn)潔,僅用一根 I/O 口實(shí)現(xiàn)測(cè)溫 當(dāng) DS18B20 處于寫(xiě)存儲(chǔ)器操作和溫度 A/D 轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為 10us。開(kāi)發(fā)中使用外部電源供電方式,畢竟比寄生電源方式只多接一根 VCC 引線。單片機(jī)主板電路 中的按健復(fù)位電路是上電復(fù)位加手動(dòng)復(fù)位,使用比較方便,在程序跑 飛時(shí),可以手動(dòng)復(fù)位 ,這樣就不用在重起單片機(jī)電源,就可以實(shí)現(xiàn)復(fù)位 。其中 RST 從低電平變成高電平啟動(dòng)一次數(shù)據(jù)傳輸過(guò)程, SCLK 是時(shí)鐘線, I/O 是數(shù)據(jù)線。 DS1302 內(nèi)部寄存器列表如表 2 所示: 表 8 DS1302 內(nèi)部主要寄存器分布表 寄存器名稱 命令字 取值范圍 各位內(nèi)容 寫(xiě) 讀 7 6 5 4 3 2 1 0 秒寄存器 80H 81H 0059 CH 10SEC SEC 分寄存器 82H 83H 0059 0 10MIN MIN 小時(shí)寄存器 84H 85H 0112 或 0023 12/24 0 A HR HR 日期寄存器 86H 87H 0128,29,30,31 0 0 10DATE DATE 月份寄存器 88H 89H 0112 0 0 0 10M MONTH 周寄存器 8AH 8BH 0107 0 0 0 0 0 DAY 年份寄存器 8CH 8DH 0099 10YEAR YEAR DS1302 內(nèi)部的 RAM 分為兩類,一類是單個(gè) RAM 單元,共 31 個(gè),每個(gè)單元為一個(gè)8 位的字節(jié),其命令控制字為 COH~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;再一類為突發(fā)方式下的 RAM,此方式下可一次性讀寫(xiě)所有的 RAM 的 31 個(gè)字節(jié),命令控制字為 FEH(寫(xiě))、 FFH(讀)。 DS1302 的寄存器和控制命令 對(duì) DS1302 的操作就是對(duì)其內(nèi)部寄存器的操作, DS1302 內(nèi)部共有 12 個(gè)寄存器,其中有 7 個(gè) 寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為 BCD 碼形式。 I/O 為串行數(shù)據(jù)輸入輸出端 (雙向 ), SCLK 始終是輸入 端。當(dāng) RST 為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì) DS1302 進(jìn)行操作。當(dāng) Vcc2 小于 Vcc1 時(shí), DS1302 由 Vcc1 供電。 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 5 圖 6 DS1302 內(nèi)部結(jié)構(gòu) 引腳功能及結(jié)構(gòu) DS1302 的引腳排列 ,其中 Vcc1 為后備電源, VCC2 為主電源。 DS1302 時(shí)鐘芯片 傳統(tǒng)的數(shù)據(jù)記錄方式是隔時(shí)采樣或定時(shí)采樣,沒(méi)有具體的時(shí)間記錄,因此只能記錄數(shù)據(jù)而無(wú)法準(zhǔn)確記錄其出現(xiàn)的時(shí)間。因此,在用 DS1820 進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考 慮總線分布電容和阻抗匹配問(wèn)題。
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1