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

正文內(nèi)容

智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì)畢業(yè)論文及程序(編輯修改稿)

2024-10-03 12:27 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 和 MSSP 模塊等其他 模塊。其常用的 PDIP40 引腳排列如圖 [5]。 圖 腳的 PIC16F877 引腳全功能圖 設(shè)計(jì)中的應(yīng)用 本次設(shè)計(jì)主要用到 PIC16F877 芯片外圍功能模塊有 RA、 RB、 RC 和 RD 端口, RA 和RD 端口用于與 液晶顯示器相連, RB 端口作為按鍵輸入端, RC端口用于與報(bào)警模塊、溫度模塊和時(shí)鐘模塊相連。最小系統(tǒng)的仿真電路的復(fù)位方式使用的是人工復(fù)位, PIC16F877的工作電壓為 到 。時(shí)鐘電路本應(yīng)該使用的是 XT 模式下用震蕩頻率為 4MHz 的XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 10 石英晶體和兩個(gè)電容構(gòu)成,但因?yàn)槭欠抡骐娐罚钥梢圆挥卯嫵?,可直接在加載程序時(shí)設(shè)定時(shí)鐘頻率。 因此本設(shè)計(jì)中的最小系統(tǒng)模塊的仿真電路如下圖 。 圖 最小系統(tǒng)模塊的仿真電路 液晶顯示模塊仿真電路 LCD1602 簡(jiǎn)介 LCD1602 液晶顯示器是一種功耗低、體積小以及具有數(shù)字式接口等優(yōu)點(diǎn)工業(yè)字符型液晶,他能夠顯示出 160 個(gè)不同的字符圖形包括字母、數(shù)字、符號(hào)等 [6]。 LCD1602 液晶顯示器分為兩行顯示,每一行能夠顯示 16個(gè)字符圖形,一共能顯示 32個(gè)字符。它共有16 個(gè)引腳,其第 15和第 16引腳為空腳不需要鏈接,第 7到第 14 引腳為雙向數(shù)據(jù)引腳。 LCD1602 在設(shè)計(jì)中的應(yīng)用 在仿真電路中 LCD1602 液晶顯示器的第 1腳接地,第 2腳接 5V 正電源,第 3 腳空置,第 4 腳、第 5腳和第 6腳分別與 PIC16F877 的 RA RA2 和 RA3 引腳相連。第 7到第 14 引腳分別與 PIC16F877 的 RD 端口引腳按順序相連。其連接圖如圖 。 第三章 仿真電路設(shè)計(jì) 11 溫度采集模塊仿真電路 本設(shè)計(jì)采用的是半導(dǎo)體數(shù)字式溫度傳感器 DS18B20,它屬于接觸式溫度傳感器能測(cè)量的溫度范圍 為 55℃~ +125℃。其內(nèi)部就能完成 A/D 轉(zhuǎn)換,可根據(jù)用戶自己定義轉(zhuǎn)為9 位到 12 位的精度,所以不需要利用 PIC16F877 的 ACD 功能,可直接接收溫度傳感器DS18B20采集轉(zhuǎn)換的數(shù)據(jù),再經(jīng)過程序轉(zhuǎn)為十進(jìn)制數(shù)在 LCD1602液晶顯示器上輸出顯示。溫度傳感器 DS18B20 的數(shù)據(jù)輸入和輸出都是通過其數(shù)據(jù)總線 (DQ)引腳傳輸,所以在本設(shè)計(jì)中 DQ 引腳是與 PIC16F877 的 RC4 引腳相連。 VCC 接入的是寄生電源,其具體的仿真電路設(shè)計(jì)如下圖 所示。 圖 DS18B20 仿真電路連接圖 時(shí)鐘模塊仿真電路 DS1302 時(shí)鐘芯片 能夠提供 年月日、時(shí)分秒和星期 BCD 碼數(shù)據(jù) , 而且它的時(shí)間能夠自動(dòng)計(jì)時(shí)增加,能實(shí)現(xiàn)自動(dòng)判斷潤(rùn)平年同時(shí) 可自動(dòng)調(diào)整 年月日 。 對(duì)于年 DS1302 時(shí)鐘芯片 只能從 00 年到 99 年,存儲(chǔ)年的寄存器只是一個(gè) 8位的字節(jié),所以它保存的 BCD 碼只能表示兩位數(shù)。月、日、時(shí)、分、秒和星期也只有一個(gè)與自己對(duì)應(yīng)的數(shù)據(jù)寄存器,都是以 BCD 碼的形式來保存數(shù)據(jù)。 DS1302 時(shí)鐘芯片 除了這些寄存器之外還有其他 5 個(gè)寄存器。 本次設(shè)計(jì)是利用 DS1302 時(shí)鐘芯片 的簡(jiǎn)單串行接口跟 PIC16F877 單片機(jī)進(jìn)行數(shù)據(jù)通信,實(shí)現(xiàn)課題中增加的實(shí)時(shí)時(shí)鐘內(nèi)容。在設(shè)計(jì)仿真電路中為 DS1302 時(shí)鐘芯片 供電的主電源和后備電源都使用同一個(gè)電源供電,其工作電壓為 到 。芯片的振蕩源使用 的是外接一個(gè) 的晶振 [7]。實(shí)時(shí)時(shí)鐘模塊的仿真電路的具體連接如下圖圖 所示。 圖 XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 12 圖 時(shí)鐘模塊仿真電路連接圖 按鍵控制模塊仿真電路 按鍵模塊的設(shè)計(jì)主要是用 PIC16F877 單片機(jī) RB口的弱上拉功能來判斷按鍵是否有下。在設(shè)計(jì)中采用了 5個(gè)按鍵開關(guān)來實(shí)現(xiàn)設(shè)計(jì)的控制模塊功能,每個(gè)開關(guān)所控制的功能分別是:進(jìn)入 /退出修改功能、選擇所修改參數(shù)功能、加的功能、減的功能和屏幕切換功能。具體的仿真電路如圖 所示。 圖 按鍵控制模塊仿真電路 報(bào)警模塊仿真電路 本設(shè)計(jì)的報(bào)警模塊采用的是蜂鳴器和發(fā)光二極管共同構(gòu)成,當(dāng)系統(tǒng)判斷出溫度傳感器所采集的溫度超過上下限溫度時(shí),蜂鳴器就能發(fā)出嘀嘀地警報(bào)聲音,之后發(fā)光二極管發(fā)出閃爍的紅色 [8]。通過這種形式的循環(huán)報(bào)警,來提醒周圍的人溫度超過了限定,需要采取降溫措施來降低溫度。直到溫度降低到警戒線內(nèi),報(bào)警信號(hào)才會(huì)停止。報(bào)警模塊的仿真電路連接圖如圖 所示。 第三章 仿真電路設(shè)計(jì) 13 圖 報(bào)警模塊的仿真電路 總體仿真電路 設(shè)計(jì)圖 圖 總體仿真電路連接圖 XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 14 第四章 系統(tǒng)軟件設(shè)計(jì) 15 第四章 系統(tǒng)軟件設(shè)計(jì) 編程前的準(zhǔn)備 在開始編寫代碼之前,我們要先確定編程所需的數(shù)據(jù)類型和各個(gè)數(shù)據(jù)類型所占用的字節(jié)長(zhǎng)度以及它們的值域是多少。因?yàn)楸驹O(shè)計(jì)所用的主控芯片是 PIC16F877,它是一款8 位的單片機(jī),所以在編寫程序時(shí)所用的數(shù)據(jù)類型、數(shù)據(jù)長(zhǎng)度和值域如表 所示。 表 設(shè)計(jì)所需的數(shù)據(jù)類型表 數(shù)據(jù)類型 數(shù)據(jù)長(zhǎng)度(位 數(shù)) 值域 char 8 128~127 int 16 32768~32767 long int 32 2147483648~2147483647 unsigned char 8 0~255 unsigned int 16 0~65535 unsigned long int 32 0~4294967295 系統(tǒng)主程序設(shè)計(jì) 在本設(shè)計(jì)的軟件系統(tǒng)主函數(shù)除了對(duì) PIC16F877 單片機(jī)中所要用到的端口,以及 LCD液晶顯示器進(jìn)行初始化外,還包括需要調(diào)用的 8 個(gè)相應(yīng)的子程序。這些子程序分別是:溫度采集和轉(zhuǎn)化子程序、 DS1302 初始化子程序、判斷 溫度報(bào)警子程序、切屏控制功能子程序、修改設(shè)定功能子程序、實(shí)時(shí)溫度顯示子程序、上下限溫度顯示子程序、實(shí)時(shí)時(shí)鐘顯示子程序。 對(duì)單片機(jī)中所要用到端口的具體初始化內(nèi)容為:設(shè)置 RA 口全部為普通數(shù)字 IO 端口且 A口的方向?yàn)檩敵觯糜诳刂埔壕э@示器的讀寫功能;設(shè)置 RB 端口為弱上拉功能,用于實(shí)現(xiàn)按鍵控制模塊與單片機(jī)的功能聯(lián)系;定義 RC 口的 RC4 引腳作輸入口,其它作為為輸出口,用于實(shí)現(xiàn)單片機(jī)與溫度采集模塊、實(shí)時(shí)時(shí)鐘模塊和報(bào)警模塊的功能聯(lián)系。 對(duì)于用到的子程序:溫度采集和轉(zhuǎn)化子程序用于啟動(dòng)溫度傳感器采集外界溫 度并將溫度值送給單片機(jī)用于下一步處理; DS1302 初始化子程序是用于初始化 DS1302 的日歷和時(shí)鐘內(nèi)容;判斷溫度報(bào)警子程序是實(shí)現(xiàn)判斷溫度是否超過上下限,若超過則會(huì)掉用與報(bào)警有關(guān)的函數(shù)實(shí)現(xiàn)報(bào)警;切屏控制功能子程序和修改設(shè)定功能子程序都屬于系統(tǒng)的控制功能模塊,用于對(duì)系統(tǒng)的控制;實(shí)時(shí)溫度顯示子程序和上下限溫度顯示子程序以及實(shí)時(shí)時(shí)鐘顯示子程序,都是處理需要顯示的數(shù)據(jù),并顯示在液晶顯示器的相應(yīng)位置。 整個(gè)軟件系統(tǒng)的主函數(shù)通過如圖 的循環(huán)結(jié)構(gòu),實(shí)現(xiàn)了各個(gè)模塊在設(shè)計(jì)中的功能。 XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 16 圖 系統(tǒng)主程序流程圖 液晶顯示程序設(shè)計(jì) 設(shè)計(jì)液晶顯示相關(guān)程序之前,我們先要了解 LCD1602 的控制指令。其具體的指令如圖 所示。 第四章 系統(tǒng)軟件設(shè)計(jì) 17 圖 LCD1602 控制命令 其中, 指令 3是通過高低電平來設(shè)置 光標(biāo)和顯示模式 I/D; 指令 4是 高 電平工作 ,低 電平不工作; 指令 5的 D3位為 1時(shí)移動(dòng)文字, 為 0 時(shí)移動(dòng)光標(biāo) 。 因此根據(jù) LCD1602 控制命令, 在主程序的 LCD 初始化語句為: PORTD=1。 //清屏 ENABLE()。//LCD寫入控制命令的子程序 PORTD=0x38。 //8 位 2 行 5x7 點(diǎn)陣 ENABLE()。 PORTD=0x0c。 //顯示器開、光標(biāo)關(guān)、閃爍關(guān) ENABLE()。 PORTD=0x06。 //文字不動(dòng),光標(biāo)自動(dòng)右移 ENABLE()。 因?yàn)?LCD1602 只能顯示 32 個(gè)字符,而需要顯示的內(nèi)容又比較多,又要考慮到顯示字符位置的合理性和美觀性,所以液晶顯示的程序內(nèi)容分為兩大部分。一部分用于顯示與溫度有關(guān)的內(nèi)容,另一部分用于顯示與 DS1302 有關(guān)的內(nèi)容,它們通過按鍵控制模塊來控制顯示 內(nèi)容。 顯示與溫度有關(guān)的內(nèi)容時(shí) , LCD 的顯示格式如下圖圖 所示,其中以 H 開頭的數(shù)字為上限溫度 值 , L 開頭的數(shù)字為 下限溫度值。第一行為溫度傳感器采集到的溫度值,這 里 只顯 示 到十 分 位。 調(diào)用 顯 示這 些 內(nèi)容 的子 函 數(shù)為 display_18b20() 和display_Temperature(),程序流程圖分別如圖 和 所示。 圖 顯示與溫度有關(guān)的內(nèi)容 XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 18 圖 display_18b20()程 序流程圖 圖 display_Temperature()程序流程圖 顯示與 DS1302 有關(guān)的內(nèi)容時(shí), LCD 的顯示格式如下圖圖 所示。其調(diào)用子函數(shù)為 display_ds1302(),其程序流程圖如圖 所示。 第四章 系統(tǒng)軟件設(shè)計(jì) 19 圖 顯示與 DS1302 有關(guān)的內(nèi)容 圖 display_ds1302()程序流程圖 溫度采集和轉(zhuǎn)換程序設(shè)計(jì) 完成溫度采集和轉(zhuǎn)換程序設(shè)計(jì)之前 ,要先了解 DS18B20 的復(fù)位時(shí)序圖和讀寫時(shí)序圖。在其可工作的時(shí)序內(nèi)編寫程序,就能正確的實(shí)現(xiàn)對(duì) DS18B20 讀數(shù)據(jù)和寫命令,驅(qū)動(dòng)DS18B20 工作。其各個(gè)時(shí)序圖如下圖 、 、 所示。 圖 DS18B20 復(fù)位時(shí)序圖 XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 20 圖 DS18B20 寫 0 和寫 1時(shí)序圖 圖 DS18B20 讀 0和讀 1 時(shí)序圖 因此,在本設(shè)計(jì)中的對(duì) DS18B20 的復(fù)位程序具體如下,而對(duì) DS18B20 的讀 寫程序具體內(nèi)容見附錄源程序的 read_byte()和 write_byte()函數(shù)。 DS18B20 復(fù)位程序 : void reset()// { char presence=1。 while(presence) { DQ_HIGH()。//拉高電平 delay(1)。 //稍作延時(shí) DQ_LOW() 。 //主機(jī)拉至低電平 delay(63)。 //延時(shí) 773us DQ_HIGH()。 //釋放總線等電阻拉高總線 , delay(2)。 //延時(shí) 41us if(DQ==0) { presence=0。 //接收到應(yīng)答信號(hào) delay(40)。 //延時(shí) 496us DQ_HIGH()。//再次拉高電,釋放總線平 。 } 第四章 系統(tǒng)軟件設(shè)計(jì) 21 else presence=0。 //沒有接收到應(yīng)答信號(hào),繼續(xù)復(fù)位 } } 本設(shè)計(jì)中 DS18B20 采用的是出廠配置位為 12 位,即將采集到的溫度轉(zhuǎn)換為 12 位的數(shù)字信號(hào),此時(shí)的溫度分辨率為 ℃,轉(zhuǎn)化溫度的最大時(shí)間需要 750ms。其存儲(chǔ)格式如下圖 所示,其中高 8位的前 5位即 bit15 到 bit10 表 示符號(hào)位。如果 S=0 則溫度大于 0,否則溫度小于 0。溫度大于 0時(shí),只要將數(shù)值乘于 就能得到實(shí)際的溫度值 [9]。小于 0時(shí),就需要先取反加一,再按大于零的情況處理。 圖 溫度值存儲(chǔ)格式 下表 是 DS18B20 的部分溫度值和與之對(duì)應(yīng)的數(shù)字輸出內(nèi)容。由表中的 二進(jìn)制數(shù)據(jù)可以看出數(shù)據(jù)的第十一位到第五位表示溫度值的整數(shù)部分,第四位表示溫度的小數(shù)部分。 表 溫度值和與
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1