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

正文內(nèi)容

本科畢業(yè)論文-基于at89c2051單片機的數(shù)字溫度計設(shè)計-文庫吧

2025-05-14 16:31 本頁面


【正文】 要特點: ① 采用了 ATMEL 公司的高密度、非易失性存儲器( NVSRAM)技術(shù); ② 其片內(nèi)具有 256字節(jié) RAM, 8KB 的可在線編程( ISP) FLASH 存儲器; ③ 有 2 種低功耗節(jié)電工作方式:空閑模式和掉電模式 ④ 片內(nèi)含有一個看門狗定時器( WDT), WDT包 含一個 14 位計數(shù)器和看門狗定時器復(fù)位寄存器(WDTRST),只要對 WDTRST 按順序先寫入 01EH,后寫入 0E1H, WDT 便啟動,當(dāng) CPU 由于擾動而使程序陷入死循環(huán)或 “ 跑飛 ” 狀態(tài)時, WDT 即可有效地使系統(tǒng)復(fù)位,提高了系統(tǒng)的抗干擾性能。 液晶顯示部分 顯示接口用來顯示系統(tǒng)的狀態(tài),命令或采集的電壓數(shù)據(jù)。本系統(tǒng)顯示部分用的是 LCD 液晶模塊,采用一個 16 1 的字符型液晶顯示模塊, 圖 89S52 引腳圖 9 點陣圖形式液晶由 M 行 N 列個顯示單元組成,假設(shè) LCD 顯示屏有 64行,每行有 128 列,每 8 列對應(yīng) 1 個字節(jié)的 8 個位,即每行由 16 字節(jié),共 16 8=128 個點組成,屏上 64 16 個顯示單元和顯示 RAM 區(qū) 1024 個字節(jié)相對應(yīng),每一字節(jié)的內(nèi)容和屏上相應(yīng)位置的亮暗對應(yīng)。一個字符由 6 8 或 8 8點陣組成,即要找到和屏上某幾個位置對應(yīng)的顯示 RAM 區(qū)的 8 個字節(jié),并且要使每個字節(jié)的不同的位為‘ 1’,其它的為‘ 0’,為‘ 1’的點亮,為‘ 0’的點暗,這樣一來就組成某個字符。但對于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可讓控制器工作在文本方式,根據(jù)在 LCD 上開始顯示的行列號及每行的列數(shù)找出顯 示 RAM 對應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對應(yīng)的代碼即可。 1601 使用說明 圖 1601 引腳圖 表 LCD1601 液晶模塊的引腳 引腳 符號 功能說明 1 GND 接地 2 Vcc + 5V 3 VL 驅(qū)動 LCD,一般將此腳接地 4 RS 寄存器選擇 0:指令寄存器( WRITE) Busy flag,位址計數(shù)器( READ) 1:數(shù)據(jù)寄存器( WRITE,READ) 5 R/W READ/WRITE 選擇 1: READ 0: WTITE 10 6 E 讀寫使能(下降沿使能) 7 DB0 低 4位三態(tài)、雙向數(shù)據(jù)總線 續(xù)表 LCD1601 液晶模塊的引腳 8 DB1 9 DB2 10 DB3 11 DB4 高 4位三態(tài)、雙向數(shù)據(jù)總線 另外 DB7 也是一個 Busy flag 12 DB5 13 DB6 14 DB7 寄存器選擇,如表所示: 表 寄存器選擇控制線操作 RS R/W 操作說明 0 0 寫入指令寄存器(清除屏幕?等) 0 1 讀 Busy flag(DB7),以及讀取位址計數(shù)器( DB0~DB6)值 1 0 寫入數(shù)據(jù)寄存器(顯示各字型等) 1 1 從數(shù)據(jù)寄存器讀取數(shù)據(jù) Busy flag(DB7):在此位未被清除為“ 0”時, LCD將無法再處理其他指令要求。 (1)顯示地址:內(nèi)部地址計數(shù)器的計數(shù)地址: SB7=0(DB0~ DB6)第一行 00、0 02? ? 等,第二行 4 42? ? 等,可配合檢測 DB7=1 (RS=0,R/W=1)讀取目前顯示字的地址,判斷是否需要換行。 表 LCD1601 16 1 顯示字的地址 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 00 01 02 03 04 05 06 07 40 41 42 43 44 45 46 47 (2)外部地址: DB7=1,亦即 80H+內(nèi)部計數(shù)地址,可以用此方式將字顯示在某一位置。 LCD 各地址列舉如下表: 表 LCD1601 16 1 顯示字的外部地址 16 1 16 字 1行 1601 11 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 80 81 82 83 84 85 86 87 C0 C1 C2 C3 C4 C5 C6 C7 表 LCD1601 的指令組 指 令 說 明 設(shè)置碼 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 清除顯示幕 0 0 0 0 0 0 0 0 0 * 光標(biāo)回到原點 0 0 0 0 0 0 0 0 1 * 進入模式設(shè)定 0 0 0 0 0 0 0 1 I/D S 顯示幕 ON/OFF 0 0 0 0 0 0 1 D C B 移位 0 0 0 0 0 1 S/C R/L * * 功能設(shè)定 0 0 0 0 1 DL N F * * 字發(fā)生器地 址設(shè)定 0 0 0 1 AGC 設(shè)置顯示地址 0 0 0 1 ADD 忙碌標(biāo)志位 BF 0 0 1 BF 顯示數(shù)據(jù) 1 0 寫入數(shù)據(jù) 讀取數(shù)據(jù) 1 1 讀取數(shù)據(jù) I/D I/D=1 表示加 1, I/D=0 表示減 1 S S=1 表示顯示幕 ON S=0 表示 OFF D D=1 表示顯示屏幕 ON D=0 表示顯示屏幕 OFF C C=1 表示光標(biāo) ON C=0 表示光標(biāo) OFF B B=1 表示閃爍 ON B=0 表示 顯示閃爍 OFF S/C S/C=1 表示顯示屏幕移位 S/C=0 光標(biāo)移位 R/L R/L=1 表示右移 R/L=0 表示左移 DL DL=1 表示 8 位 DL=0 表示 4位 F F=1 表示 5 10 點矩陣 F=0 表示 5 7 點矩陣 N N=1 表示 2 行顯示行 N=0 表示 1行顯示行 BF BF=1:內(nèi)部正在動作 BF=0:可接收指令或數(shù)據(jù)碼 12 液晶顯示部分與 89S52 的接口 如圖所示:用 89S52的 P2口作為數(shù)據(jù)線,用 、 、 分別作為 LCD 的 E、 R/W、RS。其中 E是下降沿觸發(fā)的片選信號, R/W 是讀寫信號, RS 是寄存器選擇信號本模塊設(shè)計要點如下:顯示模塊初始化:首先清屏,再設(shè)置接口數(shù)據(jù)位為 8 位,顯示行數(shù)為 1 行,字型為 5 7點陣,然后 設(shè) 置為整體顯示,取消光標(biāo)和字體閃爍 ,最后設(shè)置為正向增量方式且不移位。向 LCD 的顯示緩沖區(qū)中送字符,程序中采用 2 個字符數(shù)組,一個顯示字符,另一個顯示電壓數(shù)據(jù),要顯示的字符或數(shù)據(jù)被送到相應(yīng)的數(shù)組中,完成后再統(tǒng)一顯示 .首先取一個要顯示的字符或數(shù) 據(jù)送到 LCD 的顯示緩沖區(qū),程序延時 ,判斷是否夠顯示的個數(shù),不夠則地址加一取下一個要顯示的字符或數(shù)據(jù)。 通訊模塊 89S52 內(nèi)部已集成通信接口 URT,只需擴展一片 MAX232 芯片將輸出信號轉(zhuǎn)換成RS232 協(xié)議規(guī)定的電平標(biāo)準(zhǔn) , MAX232 是 一 種 雙 組 驅(qū) 動 器 / 接 收 器 ,每個接收器將 EIA/TIA232E 電平輸入轉(zhuǎn)換為 5V TTL/CMOS 電平。 每個驅(qū)動器將 TTL/CMOS 輸入電平轉(zhuǎn)換 為 EIA/TIA232E 電平。即 EIA 接口,就是把 5V轉(zhuǎn)換為 8V到 15V電位 0V轉(zhuǎn)換為 8V到 15V 再經(jīng) RXD 輸出,接收時由 RXD 輸入,把 8V到 15V 電位轉(zhuǎn)換為 5V, 8V到15V 轉(zhuǎn)換為 0V。 MAX232 的工作電壓只需 5V,內(nèi)部有振蕩電路產(chǎn)生正負 9V 電位。 4 系統(tǒng)的軟件設(shè)計 主程序設(shè)計 液晶與 89S52 的接口 圖 MAX232 引腳功能圖 13 ICL7135A/D 與單片機連接電路的軟件設(shè)計系統(tǒng)的程序流程圖如圖所示 。主程序一開始運行則設(shè)置堆棧起始地址為 70H,設(shè)置中斷寄存器,用來對 ICL7135 的中斷進行計數(shù),每 5次后清零,完成一次數(shù)據(jù)采集工作,然后設(shè)置ICL7135 的 STB 端的中斷的優(yōu)先級。緊接著LCDM1601B 進行一次清屏,使其各個指令、數(shù)據(jù)寄存器的值進行清空,屏幕不顯示任何字符。以前面對 1601B 的介紹,只要將 01H 送到數(shù)據(jù)總線,使 RS=0, R/W=0, E有個下降沿的脈沖就可以完成清屏工作。用以下指令實現(xiàn) MOV P2,01H 。送到數(shù)據(jù) DB7DB0,調(diào)用子程序 ENABLE,由于下降沿時,內(nèi)部數(shù)據(jù)要送到 RAM區(qū),所以要有一個延時子程序,使這個下降沿持續(xù) 。內(nèi)部 RAM 有指令代碼后就開始對 RAM 進行清零,所以屏幕原有的字符將被清除。接著對 1601 進行功能的設(shè)定。 MOV P2,01111000B,按表 來看是設(shè)定 顯示器按 2行顯示,每行 8 位, 5 7 點陣。 調(diào)用一次子程序 ENABLE 程序,寫入 CPU 的指令寄存器中。每次向 LCDM 中寫入一個指令,就調(diào)用一次 ENABLE,然后再對顯示器進行閃爍、光標(biāo)等功能進行設(shè)定。顯示器的 RAM 地址按加1方法進行讀寫。再設(shè)定第一行字符,也就是 ‘ Voltage’的顯示地址 80H。字符 ‘ Voltage’ 的 TABLE 表地址送到 DPTR 中,然后調(diào)用遠程查表命令,依次把數(shù)據(jù)送到 P2口,這時再調(diào)用子程序 WRITE3,使 LCD1601的 RS=1,R/W=0 使使能端 E 產(chǎn) 生一個下降沿脈沖,將數(shù)據(jù)送入到數(shù)據(jù)寄存器中,接下來執(zhí)行子程序 DISPLAY1,它的主要功能是將 TABLE 表中的字符輸出到 LCD 中去。調(diào)定好顯示字符數(shù)即遠程查表的次數(shù),就開始查表了。 例如第一個字符“ V”的 ASCII 碼是 56H,就將這個碼送到 P2 口,再調(diào)用使能數(shù)據(jù)子程序,使 RS=1(數(shù)據(jù)區(qū)使能)寫入顯示數(shù)據(jù)區(qū), R/W=0 表示寫, E=來個下降沿延時 毫秒,使數(shù)據(jù)寫入 RAM 內(nèi)。完成 圖 主程序流程圖 14 TABLE 表輸出以后,向指令 RAM 中寫入第 2 行的起始地址為 OCH,再調(diào)用顯示采樣數(shù)據(jù) 的子程序。采樣數(shù)據(jù)存放的數(shù)據(jù) 地址安排如下圖所示 ,首先將 60H 中的數(shù)顯示在正負號的位置上,按照 ASCII 碼表,正號不顯示( 20H),負號顯示“-”( 2DH)。 A/D 中斷程序設(shè)計 圖 數(shù)據(jù) 地址 15 ICL7135每一分鐘完成 3次據(jù)的采集工作, 1/3秒完成后向 CPU申請中斷 ,CPU這時暫停工作,為中斷服務(wù) .中斷響應(yīng)后關(guān)中斷,將 PSW、 ACC 壓棧,判斷是否首圖 中斷子程序流程圖 16 次中斷,如果是首次中斷,則將正負號標(biāo)志位置入 60H,再把萬位置入 61H 中,如果不是首次中斷,則跳到 NEXT 處,如果是第二次中斷,則將千位數(shù)置入 62H中,如果是第三次中斷,再將百位數(shù)置入 63H 中,第四次中斷則將十位數(shù)置入64H 中,第五次中斷則將小數(shù)點位置入 65H 中,同時個位置入 66H 中。同時清除中斷次數(shù)寄存器 30H 中的值,完成中斷后將 ACC、 PSW 出棧,開中斷。 消隱的思想:每次電壓采集后, CPU將數(shù)據(jù)送到 LCD 顯示,將可能出現(xiàn)以下幾種需要消隱的情況。 例如: 2021V 檔量程: ─ 0 1 9 9 . 9 此時萬位的值 ‘ 0’ 不符合人們的視覺習(xí)慣,需要把萬位的值消隱掉,編程是將20H 送入萬位,使
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1