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

正文內(nèi)容

基于單片機(jī)的數(shù)字電壓表【畢業(yè)設(shè)計(jì)-文庫吧

2025-05-16 16:37 本頁面


【正文】 的響應(yīng)、 LCD 顯示、 AD 采集等功能的控制,起到總控和協(xié)調(diào)各模塊之間工作的作用。 主控模塊STC 89 C 52AD 采集模塊ADC 0809按鍵模塊LCD 顯示模塊LCD 1602電源模塊 圖 21 系統(tǒng)結(jié)構(gòu)框圖 本系統(tǒng)結(jié)構(gòu)如圖 21 所示,本設(shè)計(jì)可分為以下模塊:單片機(jī)主控模塊、鍵盤模塊、液晶模塊、 AD 采集模塊。下面對(duì)各個(gè)模塊的設(shè)計(jì)方案逐一進(jìn)行論證分析。 STC89C52 單片機(jī)最初是由 Intel 公司開發(fā)設(shè)計(jì)的,但后來 Intel 公司把 51 核的設(shè)計(jì)方案賣給了幾家大的電子設(shè)計(jì)生產(chǎn)商,譬如 SST、 Philip、 Atmel 等大公司。如是市面上出現(xiàn)了各式各樣的但均以 51 為內(nèi)核的單片機(jī),倒是 Intel 公司自己的單片機(jī)卻顯得遜色了。這些各大電子生產(chǎn)商推出的單片機(jī)都兼容 51 指令、并在 51 的基礎(chǔ)上擴(kuò)展一些功能而內(nèi)部結(jié)構(gòu)是與 51 一致的。 STC89C52 有 40 個(gè)引腳, 4 個(gè) 8 位并行 I/O 口, 1 個(gè)全雙工異步串行口,同時(shí)內(nèi)含 5 個(gè)中斷源, 2 個(gè)優(yōu)先級(jí), 2 個(gè) 16 位定時(shí) /計(jì)數(shù)器。 STC89C52 的存儲(chǔ)器系統(tǒng)由 4K 的程序存儲(chǔ)器 (掩膜 ROM),和 128B 的數(shù)據(jù)存儲(chǔ) 器 (RAM)組成。 STC89C52 單片機(jī)的基本組成框圖見圖 22。 7 時(shí) 鐘 電 路R O M / E P R O M / F l a s h 4 K BR A M 1 2 8 BS F R 2 1 個(gè)定 時(shí) 個(gè) / 計(jì) 數(shù) 器 2C P U總 線 控 制中 斷 系 統(tǒng)5 個(gè) 中 斷 源2 個(gè) 優(yōu) 先 級(jí)串 行 口全 雙 工 1 個(gè)4 個(gè) 并 行 口X T A L 2 X T A L 1R S TE AA L EP S E NP 0P 1P 2P 3V s sV c c 圖 22 STC89C52 單片機(jī)結(jié) STC89C52 單片機(jī)主要特性 1. 一個(gè) 8 位的微處理器 (CPU)。 2. 片內(nèi)數(shù)據(jù)存儲(chǔ)器 RAM(128B),用以存放 可以讀/寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù)等。 3. 片內(nèi)程序存儲(chǔ)器 ROM(4KB),用以存放程序、一些原始數(shù)據(jù)和表格。 4. 四個(gè) 8 位并行 I/ O 接口 P0~P3,每個(gè)口既可以用作輸入,也可以用 作輸出。 5. 兩個(gè)定時(shí)器/計(jì)數(shù)器,每個(gè)定時(shí)器/計(jì)數(shù)器都可以設(shè)置成計(jì)數(shù)方式,用以對(duì)外部事件進(jìn)行計(jì)數(shù),也可以設(shè)置成定時(shí)方式,并可以根據(jù)計(jì)數(shù)或定時(shí)的結(jié)果實(shí)現(xiàn)計(jì)算機(jī)控制。 6. 五個(gè)中斷源的中斷控制系統(tǒng)。 7. 一個(gè)全雙工 UART(通用異步接收發(fā)送器 )的串行 I/ O 口,用于實(shí)現(xiàn)單片機(jī)之間或單機(jī)與微機(jī)之間的串行通信。 8. 片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,但石英晶體和微調(diào)電容需要外接。最高允許振蕩頻率為 12MHz。 STC89C52 單片機(jī)的中斷系統(tǒng) STC89C52 系列單片機(jī)的中斷系統(tǒng)有 5 個(gè)中斷源, 2 個(gè)優(yōu)先級(jí) ,可以實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套。 8 STC89C52 單片機(jī)的定時(shí) /計(jì)數(shù)器 89C52 單片機(jī)內(nèi)集成有兩個(gè)可編程的定時(shí) /計(jì)數(shù)器: T0 和 T1,它們既可以工作于定時(shí)模式,也可以工作于外部事件計(jì)數(shù)模式,此外, T1還可以作為串行口的波特率發(fā)生器。 選擇我所使用的單片機(jī)型號(hào),就是 STC89C52RC 打開文件,要燒錄用戶程序,調(diào)入用戶的程序代碼( *.bin,*hex) 選擇串口,我選擇的是 1COM1。 設(shè)置是否雙倍速,我選擇的是雙倍速,也就是 Double Speed。 選擇“ Download/下載”按鈕,下載我所使用的程序進(jìn)單片機(jī)內(nèi)部,我是選擇“ Download/下載”按鈕,然后再給單片機(jī)上電復(fù)位。 LCD液晶顯示器簡介 液晶原理介紹 液晶顯示器 (LCD)英文全稱為 Liquid Crystal Display,它一種是采用了液晶控制透光度技術(shù)來實(shí)現(xiàn)色彩的顯示器。和 CRT 顯示器相比, LCD 的優(yōu)點(diǎn)是很明顯的。由于通過控制是否透光來控制亮和暗,當(dāng)色彩不變時(shí),液晶也保持不變,這樣就無須考慮刷新率的問題。本系統(tǒng)顯示部分用的是 LCD 液晶模塊, 采用一個(gè)161 的字符型液晶顯示模塊。 液晶模塊簡介 LCD1602液晶模塊采用 HD44780控制器, hd44780具有簡單而功能較強(qiáng)的指令集,可以實(shí)現(xiàn)字符移動(dòng),閃爍等功能, LM016L 與單片機(jī) MCU 通訊可采用 8 位或 4位并行傳輸兩種方式, hd44780 控制器由兩個(gè) 8 位寄存器,指令寄存器( IR)和數(shù)據(jù)寄存器( DR)忙標(biāo)志( BF),顯示數(shù) RAM( DDRAM),字符發(fā)生器 ROMA( CGOROM)字符發(fā)生器 RAM( CGRAM),地址計(jì)數(shù)器 RAM(AC)。 IR 用于寄存指令碼,只能寫入不能讀出, DR用于寄存 數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動(dòng)寫入 DDRAM和 CGRAM,或者暫存9 從 DDRAM 和 CGRAM 讀出的數(shù)據(jù), BF 為 1 時(shí),液晶模塊處于內(nèi)部模式,不響應(yīng)外部操作指令和接受數(shù)據(jù), DDTAM 用來存儲(chǔ)顯示的字符,能存儲(chǔ) 80 個(gè)字符碼 。 LCD1602 液晶模塊的引腳圖如圖 25 所示。 圖 25LCD1602 引腳圖 寄存器選擇控制如表 21。 表 21 寄存器選擇控制 RS R/W 操作說明 0 0 寫入指令寄存器(清除屏等) 0 1 讀 busy flag( DB7) 以及讀取位址計(jì)數(shù)器( DB0~DB6)值 1 0 寫入數(shù)據(jù)寄 存器(顯示各字型等) 1 1 從數(shù)據(jù)寄存器讀取數(shù)據(jù) 液晶顯示部分與 STC89C52的接口 如圖 26所示。用 STC89C52的 P2口作為數(shù)據(jù)線,用 、 、 作為 LCD 的 E、 R/W、 RS。其中 E 是下降沿觸發(fā)的片選信號(hào), R/W 是讀寫信號(hào), RS是寄存器選擇信號(hào)本模塊設(shè)計(jì)要點(diǎn)如下:顯示模塊初始化:首先清屏,再設(shè)置接口數(shù)據(jù)位為 8位,顯示行數(shù)為 1行,字型為 57 點(diǎn)陣,然后設(shè)置為整體顯示,取消光標(biāo)和字體閃爍 ,最后設(shè)置為正向增量方式且不移位。向 LCD 的顯示緩沖區(qū)中送字符,程序中采用 2 個(gè) 字符數(shù)組,一個(gè)顯示字符,另一個(gè)顯示電壓數(shù)據(jù),要顯示的字符或數(shù)據(jù)被送到相應(yīng)的數(shù)組中,完成后再統(tǒng)一顯示 .首先取一個(gè)要顯示的字符或數(shù)據(jù)送到 LCD 的顯示緩沖區(qū),程序延時(shí) ,判斷是否夠顯示的個(gè)數(shù),不夠則地址加一取下一個(gè)要顯示的字符或數(shù)據(jù)。 10 圖 26 LCD1602 與 STC89C52 的接口 圖 27 鍵盤 模塊 電路圖 硬件電路設(shè)計(jì)圖如上圖所示。把單片機(jī)的 - 8聯(lián)撥動(dòng)撥碼開關(guān)連接到“ 4*4 行列式鍵盤”,其中 作為列線, 作為行線, 系統(tǒng)首先通過 CPU 對(duì)全部鍵盤進(jìn)行掃描,即把第一根行線置為“ 0”狀態(tài),其余行線置于“ 1”狀態(tài),讀入輸入緩沖器的狀態(tài),若其狀態(tài)全為“ 1” 表明該行無鍵按下,再將第二根行線置為“ 0”狀態(tài),同樣讀入輸入緩沖器的狀態(tài),如其狀態(tài)也全為“ 1”,則置第一根行線置為“ 0”狀態(tài),以此類推 [5]。如讀入輸入緩沖器的狀態(tài)不全為“ 1”,確定哪一根列線為“ 0”狀態(tài),當(dāng)某個(gè)鍵的行線和列線都為“ 0”狀態(tài)時(shí),表明該鍵按下。 AD 采集模塊設(shè)計(jì) ADC0809 芯片簡介 ADC0809 具有 8 個(gè)通道的模擬輸入線,在程序控制下對(duì)任 意通道進(jìn)行 A/D 轉(zhuǎn)換。 11 模擬輸入部分有 8 路多路開關(guān),可由 3 位地址輸入 ADDA、 ADDB、 ADDC 的不同組合來選擇, ALE 為地址鎖存信號(hào),高電平有效,鎖存這三條地址輸入信號(hào)。主體部分是采用逐次逼近式的 A/D 轉(zhuǎn)換電路,由 CLK 控制的內(nèi)部電路的工作 ,START為啟動(dòng)命令,高電平有效,啟動(dòng) ADC0809 內(nèi)部的 A/D 轉(zhuǎn)換,當(dāng)轉(zhuǎn)換完成,輸出信號(hào) EOC 有效, OE 為輸出允許信號(hào),高電平有效,打開輸出三態(tài)緩沖器 ,把轉(zhuǎn)換后的結(jié)果送 DB。 圖 ADC0809 管腳圖 轉(zhuǎn)換數(shù)據(jù)的傳送 A/D 轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時(shí)傳送給單 片機(jī)進(jìn)行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認(rèn) A/D 轉(zhuǎn)換的完成,因?yàn)橹挥写_認(rèn)完成后,才能進(jìn)行傳送。 引腳功能說明 IN0~ IN7: 8 路模擬量輸入端。 21~ 28: 8 位數(shù)字量輸出端。 ADDA、 ADDB、 ADDC: 3 位地址輸入線,選通 8 路模擬輸入中的一路 。 ALE:地址鎖存允許信號(hào),輸入,高電平有效。 START: A/D 轉(zhuǎn)換啟動(dòng)脈沖輸入端,輸入一個(gè)正脈沖(至少 100ns 寬)使其啟動(dòng)(脈沖上升沿使 0809 復(fù)位,下降沿啟動(dòng) A/D 轉(zhuǎn)換)。 EOC: A/D 轉(zhuǎn)換結(jié)束信 號(hào),輸出,當(dāng) A/D 轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(轉(zhuǎn)換期間一直為低電平)。 OE:數(shù)據(jù)輸出允許信號(hào),輸入,高電平有效。當(dāng) A/D 轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。 CLK:時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于 640KHZ。 REF( +)、 REF( ):基準(zhǔn)電壓。 12 Vcc:電源,單一電源: +5V。 GND:地。 時(shí)鐘模塊的設(shè)計(jì) 13 圖 31 系統(tǒng)流程圖 原理 軟件任務(wù)分析和硬件電路設(shè)計(jì)結(jié)合進(jìn)行,哪些功能 由硬件完成,哪些任務(wù)由軟件完成,在硬件電路設(shè)計(jì)基本定型后,也就基本上決定下來了。 軟件任務(wù)分析環(huán)節(jié)是為軟件設(shè)計(jì)做一個(gè)總體規(guī)劃。從軟件的功能來看可分為兩大類:一類是執(zhí)行軟件,它能完成各種實(shí)質(zhì)性的功能,如測量,計(jì)算,顯示,打印,輸出控制和通信等,另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織調(diào)度角色的軟件。 14 ADC0809 多路電壓檢測函數(shù) 程序代碼如下: void delayms(unsigned int z) //延時(shí)函數(shù), z為多少就延時(shí)多少毫秒 { unsigned int x,y。 for(x = z。 x 0 。 x) for(y = 110 。 y 0 。 y)。 } void dep_key_scan(void) //獨(dú)立鍵盤掃描子函數(shù) { // P1 |= 0x18。 //每次掃描前,先將接鍵盤的引腳口拉高 if(key_1 == 0) //如果檢測到有鍵按下 { delayms(10)。 //延時(shí) 10ms if(key_1 == 0) //再次判斷是否確實(shí)按下按鍵,進(jìn)行消抖操作。 { flag = ~flag。 } } if(key_2 == 0) //同上,判斷第二個(gè)按鍵情況 { delayms(10)。 if(key_2 == 0) { ax++。 } } } void main(void) { LCDInit()。 LCDDispString(2,1,CH voltage)。 LCDDispString(9,2,V)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1