




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
微機(jī)原理課程設(shè)計(jì)基于DVCC實(shí)驗(yàn)箱的電廠鍋爐給水pH值檢測(cè)系統(tǒng)接口設(shè)計(jì)(常用版)(可以直接使用,可編輯完整版資料,歡迎下載)
微機(jī)原理課程設(shè)計(jì)基于DVCC實(shí)驗(yàn)箱的電廠鍋爐給水pH值檢測(cè)系統(tǒng)接口設(shè)計(jì)(常用版)(可以直接使用,可編輯完整版資料,歡迎下載)目錄TOC\o"1-3"\u第1章緒論 11.1設(shè)計(jì)目的 11.2設(shè)計(jì)要求 1第2章設(shè)計(jì)原理 22.1總體設(shè)計(jì) 22.2工作原理分析 2第3章器件選型 43.1AT89C51單片機(jī) 43.2A/D轉(zhuǎn)換器 53.2.1A/D工作原理 5AD0809介紹 53.3移位寄存器 63.4LED顯示部分 73.5整體仿真電路 8第4章程序設(shè)計(jì) 9第5章心得體會(huì) 12參考文獻(xiàn) 13第1章緒論1.1設(shè)計(jì)目的針對(duì)鍋爐給水系統(tǒng),為保證鍋爐安全而經(jīng)濟(jì)地運(yùn)行,需對(duì)水(補(bǔ)給水或凝結(jié)水)進(jìn)行凈化、軟化、除鹽、除氣等處理,再對(duì)鍋爐給水進(jìn)行調(diào)質(zhì),在水中加入適量的酸堿液,使水的pH值在指定數(shù)值或設(shè)定范圍。pH值是考察溶液酸度的一個(gè)重要參數(shù),但在線pH值的測(cè)量還沒(méi)有很好地應(yīng)用于電廠鍋爐補(bǔ)給、鍋爐給水以及循環(huán)冷卻水中。通過(guò)pH值的在線檢測(cè),可及時(shí)調(diào)節(jié)系統(tǒng)中的pH值,使其控制在最佳范圍內(nèi),從而達(dá)到減緩鍋爐設(shè)備腐蝕、結(jié)垢的目的。由于電廠鍋爐給水溫度的變化直接影響pH值測(cè)量的準(zhǔn)確性,采用現(xiàn)有的溫度補(bǔ)償方法也只能減小溫度的影響,卻無(wú)法補(bǔ)償給水本身的溫度特性帶來(lái)的偏差,為提高pH值測(cè)量的準(zhǔn)確性,采用計(jì)算機(jī)自動(dòng)進(jìn)行補(bǔ)償,可消除溫度的影響,提高pH值測(cè)量的準(zhǔn)確性。本設(shè)計(jì)是通過(guò)DVCC試驗(yàn)箱實(shí)現(xiàn)對(duì)檢測(cè)數(shù)據(jù)的調(diào)整,最后顯示其真實(shí)值。本設(shè)計(jì)的主要目的為:1.了解并掌握單片機(jī)的原理、結(jié)構(gòu)、指令、輸入輸出接口及應(yīng)用。
2.熟悉DVCC實(shí)驗(yàn)系統(tǒng)的軟、硬件結(jié)構(gòu),并能利用此系統(tǒng)進(jìn)行開(kāi)發(fā)設(shè)計(jì)。
3.掌握匯編語(yǔ)言程序設(shè)計(jì)和調(diào)試。4.掌握PH值傳感器的特性及輸出信號(hào)特點(diǎn)并能實(shí)現(xiàn)信號(hào)的轉(zhuǎn)換及最終的PH值的顯示。1.2設(shè)計(jì)要求開(kāi)發(fā)型單片單板機(jī)DVCC-51是一種簡(jiǎn)易在線開(kāi)發(fā)系統(tǒng),它具有開(kāi)發(fā)編程功能,可用于用戶(hù)8031單片機(jī)系統(tǒng)的在線CPU仿真/調(diào)試,而且它自身就是一臺(tái)以8031單片機(jī)為CPU的單板機(jī),可直接用于工業(yè)過(guò)程控制、實(shí)時(shí)數(shù)據(jù)采集/處理系統(tǒng)和各種智能儀器儀表。本設(shè)計(jì)主要通過(guò)DVCC-51來(lái)實(shí)現(xiàn)軟件與硬件的調(diào)試,以達(dá)到設(shè)計(jì)的目的。本設(shè)計(jì)的要求如下:設(shè)計(jì)指標(biāo):pH測(cè)量范圍0-14,精度0.1,具有溫度補(bǔ)償能力。1、基于DVCC實(shí)驗(yàn)箱,調(diào)通A/D轉(zhuǎn)換器,并能實(shí)現(xiàn)對(duì)輸入的信號(hào)進(jìn)行轉(zhuǎn)換。2、根據(jù)PH值傳感器輸入的信號(hào)特點(diǎn),進(jìn)行量綱的轉(zhuǎn)換和數(shù)據(jù)的顯示。3、并最終將測(cè)出的PH值實(shí)現(xiàn)遠(yuǎn)傳(即具有和上位機(jī)PC機(jī)通訊的能力)。第2章設(shè)計(jì)原理2.1總體設(shè)計(jì)本系統(tǒng)主要由單片機(jī),pH傳感器,溫度補(bǔ)償電路,信號(hào)調(diào)理電路及數(shù)碼管顯示模塊組成。其流程圖如圖2-1所示。圖2-1系統(tǒng)整體結(jié)構(gòu)PH電極產(chǎn)生與水pH有關(guān)的微弱電信號(hào),經(jīng)過(guò)調(diào)理電路處理后為0-5V標(biāo)準(zhǔn)電信號(hào),然后送給ADC0809八位高精度模數(shù)轉(zhuǎn)換器,將0-5V的標(biāo)準(zhǔn)模擬電信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。同時(shí)溫度補(bǔ)償電路也將信號(hào)連入單片機(jī),單片機(jī)對(duì)信號(hào)進(jìn)行各種處理,通過(guò)轉(zhuǎn)換公式再換算成對(duì)應(yīng)的pH值。經(jīng)過(guò)處理的參數(shù)信號(hào)通過(guò)顯示電路進(jìn)行顯示,使人們能直觀的看到pH顯示。2.2工作原理分析本系統(tǒng)主要部分為A/D轉(zhuǎn)換和單片機(jī),由于對(duì)精度沒(méi)做很大要求,我們采用逐次逼近式A/D轉(zhuǎn)換ADC0809。由于ADC0809在進(jìn)行A/D轉(zhuǎn)換時(shí)需要有CLK信號(hào),而此時(shí)的ADC0809的CLK是接在AT89C51單片機(jī)ALE信號(hào)4分頻后的引腳上。因此產(chǎn)生CLK信號(hào)的方法就不用軟件來(lái)產(chǎn)生了,直接由單片機(jī)硬件來(lái)完成,通過(guò)旋鈕改變輸入電壓。ADC0809的參考電壓VREF=VCC,所以轉(zhuǎn)換之后的數(shù)據(jù)要經(jīng)過(guò)數(shù)據(jù)處理,通過(guò)程序處理的過(guò)程就包含了實(shí)現(xiàn)了量程變換,本次設(shè)計(jì)采用C語(yǔ)言編程,然后再由單片機(jī)的串行口輸出給顯示電路。而顯示電路則是由74LS164和數(shù)碼管連接起來(lái)的,最后把數(shù)據(jù)送入數(shù)碼管顯示,選用3個(gè)共陰極數(shù)碼管進(jìn)行顯示當(dāng)前pH的變化值。ADC0809與單片機(jī)8032的連接,所需要的芯片在DVCC面板上都有,查找其模數(shù)轉(zhuǎn)換應(yīng)用原理圖如圖2-2所示。圖2-2A/D轉(zhuǎn)換ADC0809應(yīng)用原理圖第3章器件選型3.1AT89C51單片機(jī)圖3-1單片機(jī)引腳圖AT89C51是美國(guó)ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4kbytes的可系統(tǒng)編程的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集Flash程序存儲(chǔ)器既可在線編程(ISP)也可用傳統(tǒng)方法進(jìn)行編程及通用8位微處理器于單片芯片中,功能強(qiáng)大,而且價(jià)位低。管腳圖如圖3-140個(gè)引腳按引腳功能大致可分為4個(gè)種類(lèi):電源、時(shí)鐘、控制和I/O引腳。管腳功能說(shuō)明:1.電源:VCC—芯片電源,接+5V;VSS—接地端。2.時(shí)鐘:XTAL1、XTAL2—晶體振蕩電路反相輸入端和輸出端。3.I/O線:8031共有4個(gè)8位并行I/O端口:P0、P1、P2、P3口,共32個(gè)引腳。P3口還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線)。4.P3口第二功能:P30/RXD,串行輸入口;P31/TXD,串行輸出口;P32/INT0,外部中斷0(低電平有效);P33/INT1,外部中斷1(低電平有效);P36/WR,外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通(低電平有效);P37/RD,外部數(shù)據(jù)存儲(chǔ)器讀選通(低電平有效)。3.2A3.2.1A常用的A/D轉(zhuǎn)換原理可分為逐次逼近式和雙積分式兩種。前者轉(zhuǎn)換時(shí)間短(幾μs到100μs),適用于工業(yè)生產(chǎn)過(guò)程的控制;后者轉(zhuǎn)換時(shí)間長(zhǎng)(幾ms到100ms),適用于實(shí)驗(yàn)室標(biāo)準(zhǔn)測(cè)試。A/D轉(zhuǎn)換器選用ADC0809模擬/數(shù)字轉(zhuǎn)換器。ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開(kāi)關(guān)以及微處理機(jī)兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機(jī)直接接口。根據(jù)A/D轉(zhuǎn)換器的原理,n位A/D轉(zhuǎn)換器輸出的二進(jìn)制數(shù)字量B與模擬輸入電壓VI、正基準(zhǔn)電壓VREF+、負(fù)基準(zhǔn)電壓VREF-的關(guān)系為式(3-1)所示:(3-1)3.2.2AADC0809是8位逐次逼近式AD轉(zhuǎn)換器,包括8位模數(shù)轉(zhuǎn)換器、8通道多路轉(zhuǎn)換器和與微處理器兼容的控制邏輯。8通道多路轉(zhuǎn)換器能根據(jù)地址鎖存譯碼后的信號(hào),選通8路模擬輸入信號(hào)中的一個(gè)進(jìn)行AD轉(zhuǎn)換。圖3-2ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖如圖3-2為ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖。ADC0809由一個(gè)8路模擬開(kāi)關(guān)、一個(gè)地址鎖存與譯碼器、一個(gè)A/D轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成。多路開(kāi)關(guān)可選通8個(gè)模擬通道,允許8路模擬量分時(shí)輸入,共用A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當(dāng)OE端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖3-3所示。下面說(shuō)明各引腳功能。圖3-3ADC0809模數(shù)轉(zhuǎn)換器的引腳功能IN0~I(xiàn)N7為8路模擬量輸入端;D0~D7為8位數(shù)字量輸出端;ADDA、ADDB、ADDC為3位地址輸入線,用于選通8路模擬輸入中的一路;ALE為地址鎖存允許信號(hào),輸入,高電平有效;START為A/D轉(zhuǎn)換啟動(dòng)信號(hào),輸入,高電平有效;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è)高電平,才能打開(kāi)輸出三態(tài)門(mén),輸出數(shù)字量;CLK為時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于640KHZ;REF(+)、REF(-)為基準(zhǔn)電壓;Vcc為電源,單一+5V;GND為地。3.3移位寄存器74LS164是8位串入并出移位寄存器。是高速硅門(mén)CMOS器件,與低功耗肖特基型TTL(LSTTL)器件的引腳兼容。74LS164是8位邊沿觸發(fā)式移位寄存器,串行輸入數(shù)據(jù),然后并行輸出。數(shù)據(jù)通過(guò)兩個(gè)輸入端(DSA或DSB)之一串行輸入;任一輸入端可以用作高電平使能端,控制另一輸入端的數(shù)據(jù)輸入。兩個(gè)輸入端或者連接在一起,或者把不用的輸入端接高電平,一定不要懸空。時(shí)鐘(CP)每次由低變高時(shí),數(shù)據(jù)右移一位,輸入到Q0,Q0是兩個(gè)數(shù)據(jù)輸入端(DSA和DSB)的邏輯與,它將上升時(shí)鐘沿之前保持一個(gè)建立時(shí)間的長(zhǎng)度。主復(fù)位(MR)輸入端上的一個(gè)低電平將使其它所有輸入端都無(wú)效,同時(shí)非同步地清除寄存器,強(qiáng)制所有的輸出為低電平。74LS164管腳封裝圖如圖3-4所示:圖3-474LS164封裝圖引腳功能:CLOCK:時(shí)鐘輸入端;CLEAR:同步清除輸入端(低電平有效);A,B:串行數(shù)據(jù)輸入端;Q0-Q7:輸出端;3.4LED顯示部分顯示部分采用三位共陰極數(shù)碼管,共陰極數(shù)碼管是把所有LED的陰極連接到共同接點(diǎn),而每個(gè)LED的陽(yáng)極分別為a、b、c、d、e、f、g及dp(小數(shù)點(diǎn)),如圖3-5所示。圖中的8個(gè)LED分別與上面那個(gè)圖中的A~DP各段相對(duì)應(yīng),通過(guò)控制各個(gè)LED的亮滅來(lái)顯示數(shù)字。圖3-5數(shù)碼管引腳圖LED數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)LED數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類(lèi)。靜態(tài)驅(qū)動(dòng)也稱(chēng)直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二~十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來(lái)驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。3.5整體仿真電路圖3-6系統(tǒng)仿真圖單片機(jī)控制ADC0809接收調(diào)理電路的輸出信號(hào)0—5V的電壓信號(hào),單片機(jī)控制ADC0809將模擬信號(hào)轉(zhuǎn)換為0—255的數(shù)字信號(hào),數(shù)字信號(hào)不能直接用于顯示,所以單片機(jī)需要將數(shù)字信號(hào)進(jìn)行處理,轉(zhuǎn)換為需要三位數(shù)碼管顯示的pH值0到14的范圍。系統(tǒng)原理圖如圖3-6所示。第4章程序設(shè)計(jì)本程序采用ADC0809的轉(zhuǎn)換完成標(biāo)志位EOC作為轉(zhuǎn)換完成的標(biāo)志,然后將數(shù)據(jù)讀進(jìn)來(lái),進(jìn)行一系列的處理,包括量程變換等后,再送給數(shù)碼管顯示,采用動(dòng)態(tài)顯示,每個(gè)數(shù)碼管顯示完的標(biāo)志為T(mén)I,以此做為下一個(gè)數(shù)碼管顯示的標(biāo)志。圖4-1程序流程圖其程序流程是:進(jìn)入主程序后,先置P1.0口為1,然后將三個(gè)數(shù)碼管顯示0,以此點(diǎn)亮數(shù)碼管,這時(shí)候進(jìn)入主循環(huán),先判斷P1.0是否等于1,如果等于1時(shí),則進(jìn)行A/D轉(zhuǎn)換,并且將上次轉(zhuǎn)換完成的數(shù)據(jù)提取出來(lái),送給單片機(jī)進(jìn)行數(shù)據(jù)處理,處理包括標(biāo)度變換,將數(shù)據(jù)處理完以后送給數(shù)碼管進(jìn)行顯示,顯示等待一段時(shí)間,判斷A/D是否轉(zhuǎn)換完成,即P1.0是否等于1,如果沒(méi)有轉(zhuǎn)換完成,則再等待一段時(shí)間繼續(xù)查詢(xún),直到轉(zhuǎn)換完成為止,再進(jìn)行數(shù)據(jù)處理顯示,依次循環(huán)。其程序流程圖如圖4-1所示。程序代碼如下所示:#include"reg51.h"#include"absacc.h"unsignedintwait_ms(unsignedintdelay_val)//延時(shí)程序{unsignedinti;unsignedintms_ctr;for(i=0;i<delay_val;i++){ ms_ctr=0x80; while(ms_ctr){ ms_ctr--; }}return(delay_val);}voidmain()//主程序{unsignedchars,y;unsignedinta,b,c,d,z;unsignedcharcodedb[]={0x0fc,0x60,0x0da,0x0f2,0x66,0x0b6,0x0be,0x0e0,0x0fe,0x0f6};unsignedcharcodedb1[]={0x0fd,0x61,0x0db,0x0f3,0x67,0x0b7,0x0bf,0x0e1,0x0ff,0x0f7};SBUF=db[0];SBUF=db[0];SBUF=db[0];P1_0=1;while(1){if(P1_0==1){XBYTE[0X9000]=0X00;s=XBYTE[0X9000];ACC=s;z=s*0.55;a=z/100;//a為百位b=z%100;c=b/10;//c為十位d=b%10;//d為個(gè)位TI=0;//送數(shù)SBUF=db[d];while(TI==0){}TI=0;SBUF=db1[c];while(TI==0){}TI=0;SBUF=db[a];while(TI==1){}}wait_ms(100);//等待延時(shí)}}第5章心得體會(huì)微機(jī)原理課程設(shè)計(jì)包括了A/D轉(zhuǎn)換器與單片機(jī)的連接,數(shù)碼管顯示。其任務(wù)主要是完成數(shù)碼管的顯示和被測(cè)量的變換。回顧起此次單片機(jī)課程設(shè)計(jì),我感慨頗多,主要的困難來(lái)自對(duì)程序的理解。從理論到實(shí)踐,可以說(shuō)得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。這次課設(shè)讓我對(duì)實(shí)驗(yàn)臺(tái)有了足夠的了解,讓我知道了實(shí)驗(yàn)臺(tái)上各個(gè)模塊的用法;而且它還讓我對(duì)自己動(dòng)手寫(xiě)程序來(lái)控制實(shí)驗(yàn)臺(tái)的運(yùn)作有了一定的基礎(chǔ)。雖然實(shí)驗(yàn)臺(tái)只是一個(gè)小型的模擬平臺(tái),但是通過(guò)對(duì)它的學(xué)習(xí)和操作,我對(duì)有關(guān)接口的知識(shí)將會(huì)有一個(gè)更廣泛的認(rèn)識(shí),而且它對(duì)我以后的學(xué)習(xí)也會(huì)有幫助的。在本次課程設(shè)計(jì),我了解并掌握單片機(jī)的原理、結(jié)構(gòu)、指令、輸入輸出接口及應(yīng)用;熟悉DVCC實(shí)驗(yàn)系統(tǒng)的軟、硬件結(jié)構(gòu),并能利用此系統(tǒng)進(jìn)行開(kāi)發(fā)設(shè)計(jì);掌握匯編語(yǔ)言及C語(yǔ)言程序設(shè)計(jì)和調(diào)試;掌握pH檢測(cè)傳感器,并根據(jù)信號(hào)特點(diǎn)實(shí)現(xiàn)信號(hào)的轉(zhuǎn)換及最終的顯示,并利用仿真軟件進(jìn)行電路的調(diào)試??傊?,這次課程設(shè)計(jì)對(duì)于我有很大的幫助,通過(guò)課程設(shè)計(jì),我更加深入地理解了微機(jī)原理課程上講到的各種芯片的功能,以及引腳的作用,同時(shí)加深了對(duì)于主要芯片的應(yīng)用的認(rèn)識(shí),同時(shí)在試驗(yàn)室的環(huán)境里熟悉了匯編程序的編寫(xiě)過(guò)程和運(yùn)行過(guò)程,最后還提高了自己的動(dòng)手能力。由于一開(kāi)始對(duì)編程環(huán)境的不熟悉,導(dǎo)致經(jīng)常犯了一些常識(shí)錯(cuò)誤,給整個(gè)進(jìn)程帶來(lái)了不少麻煩,但在老師的指導(dǎo)幫助下問(wèn)題得到了解決!在此我感謝老師和同學(xué)給予我無(wú)私的幫助使我對(duì)80C51單片機(jī)的掌握又有了提高。參考文獻(xiàn)[1]董華.基于MSP430單片機(jī)的pH計(jì)的研制.吉林大學(xué),2021[2]胡漢才.單片機(jī)原理及接口設(shè)計(jì).北京:清華大學(xué)出版社,2002[3]于海生.微型計(jì)算機(jī)控制技術(shù).北京:清華大學(xué)出版社,1999[4]張迎新.單片機(jī)初級(jí)教程.北京:北京航天航空大學(xué)出版社,2000[5]康華光.模擬電子技術(shù).北京:高等教育出版社,2004[6]胡學(xué)林.可編程控制器應(yīng)用技術(shù).北京:高等教育出版社,2001[7]付家才.單片機(jī)控制工程實(shí)踐技術(shù).北京:化學(xué)工業(yè)出版社,2003二○一三~二○一四學(xué)年第二學(xué)期電子信息工程系課程設(shè)計(jì)報(bào)告書(shū)姓名:陳凱學(xué)號(hào):202113136068班級(jí):電子信息工程2021級(jí)3班課程名稱(chēng):微機(jī)原理及應(yīng)用課程設(shè)計(jì)學(xué)時(shí)學(xué)分:1周1學(xué)分指導(dǎo)教師:閔華松二○一四年二月一、課設(shè)目的綜合運(yùn)用本課程知識(shí),利用集成電路設(shè)計(jì)實(shí)現(xiàn)一些中小規(guī)模電子電路或者完成一定功能的程序,以復(fù)習(xí)鞏固課堂所學(xué)的理論知識(shí),提高程序設(shè)計(jì)實(shí)現(xiàn)系統(tǒng)、繪制系統(tǒng)電路圖的能力,為實(shí)際應(yīng)用奠定一定的基礎(chǔ)。二、課程設(shè)計(jì)內(nèi)容與要求基本功能: 1建立通信錄文檔 2根據(jù)名字查詢(xún) 3顯示通信錄報(bào)表smenudb'telecommrecordmanagement',0dh,0ahdb'1.telecommrecordinput',0dh,0ahdb'2.telecommrecordquery',0dh,0ahdb'3.telecommrecordoutput',0dh,0ahdb'0.Theend',0dh,0ahdb'selectplease(1,2,3,0):$'要求:用到文件的建立、打開(kāi)、讀出、寫(xiě)入、關(guān)閉等文件操作的系統(tǒng)調(diào)用等;用到宏定義及宏調(diào)用;用到子程序;充分發(fā)揮自己的潛能,在完成每個(gè)題目的基本功能的基礎(chǔ)上,對(duì)學(xué)有余力的同學(xué),可進(jìn)一步擴(kuò)展新的功能。如題目一中的文件拷貝可增加對(duì)指定文件名、擴(kuò)展名、日期、時(shí)間等的文件進(jìn)行。題目二可增加按人名、或按號(hào)碼排序等功能;每人獨(dú)立完成1個(gè)題目的基本功能,并能在其上做些完善。包括設(shè)計(jì)報(bào)告和程序清單(帶注釋),運(yùn)行結(jié)果及有關(guān)運(yùn)行說(shuō)明;程序檢查。分優(yōu)、良、中、及格、不及格如為不及格,下學(xué)期需進(jìn)行重新程序設(shè)計(jì);課程設(shè)計(jì)報(bào)告,正規(guī)書(shū)寫(xiě),否則不計(jì)成績(jī);封面:學(xué)號(hào)、姓名、班級(jí)、專(zhuān)業(yè)、指導(dǎo)教師、課程設(shè)計(jì)時(shí)間等信息;課程設(shè)計(jì)的題目(小三黑體);要求:正文:(小四,單倍距);A、在微機(jī)課程設(shè)計(jì)中,所使用的基本的知識(shí)點(diǎn)描述;例如(文件的建立、打開(kāi)、讀出、寫(xiě)入、關(guān)閉等文件操作的系統(tǒng)調(diào)用);列出宏定義清單列表;B、程序的流程圖;詳細(xì)描述程序中執(zhí)行的過(guò)程;C、(關(guān)鍵)程序清單(要求有程序注釋);D、如有硬件需畫(huà)出硬件電路圖;三、程序流程圖開(kāi)始開(kāi)始選擇選擇功能顯示信息查找信息添加顯示信息查找信息添加信息寫(xiě)入寫(xiě)入(讀?。┪募祷刂鞑藛畏祷刂鞑藛位蛲顺鼋Y(jié)束結(jié)束四、程序代碼DATASEGMENTTIPS0DB'Tips:',0DH,0AH,'$';插入提示信息TIPS1DB'SEX:1:male0:female',0DH,0AH,'$'TIPS3DB'PleaseinputID:$';查詢(xún)提示信息TIPS4DB'Pleaseenter"r"toreturn$'TIPS5DB'Pleaseenter"r"toreturn,"c"tocontinue$'IDDB'ID:$'NAMDB'NAME:$'SEXDB'SEX:$'SCOREDB'TelephoneNumber:$'FIDDW?;文件號(hào)SEXMDB'male$'SEXFDB'female$'SMENUDB'telecommrecordmanagement',0DH,0AHDB'1.telecommrecordinput',0DH,0AHDB'2.telecommrecordquery',0DH,0AHDB'3.telecommrecordoutput',0DH,0AHDB'0.Theend',0DH,0AHDB'selectplease(1,2,3,0):$'ID_LENGTHEQU4;配置信息NAM_LENGTHEQU20SEX_LENGTHEQU1;性別請(qǐng)勿更改位數(shù)SCORE_LENGTHEQU5STU_LENGTHDW?;每條學(xué)生信息總長(zhǎng)度STU_LENGTH_ADD1DW?NAM_SEX_SCORE_LENGTHDW?DELDB30DUP('');清空信息用ERRDB'Error,Pleaseinputagain!$';錯(cuò)誤提示信息NOSTUDB'Thereisnothisstudnet!$'ERR_NODB'Nostudentinformation!$'ERR_SAMEDB'ThereisthesameID,pleaseinputagain!$'NEWFDB0DH,0AH,0DH,0AH,'Warning:thisoperationwillemptyallyourdata!',0DH,0AH,0DH,0AH,'Willyoucontinue?(y:empty,otherkey:return):$’FPATHDB'c:\Telecom.txt',0;數(shù)據(jù)庫(kù)文本STRDB50;緩沖區(qū)strDB?DB50DUP(?)STR0DB50DUP(?);緩沖區(qū)str0ENTERDB'$';空格TMPDW0;是否為空標(biāo)志信息SCDB0;分?jǐn)?shù)保護(hù)處用DATAENDSTABMACRO;換行MOVAH,2MOVDL,0DHINT21HMOVDL,0AHINT21HENDMCREATEFMACROFILE_ID,FILE_PATH;創(chuàng)建文件([傳入]文件號(hào)、[傳入]文件路徑)MOVAH,3CHMOVCX,00H;普通文件LEADX,FILE_PATHINT21HMOVFILE_ID,AXENDMOPENFMACROFILE_ID,FILE_PATH;打開(kāi)文件([傳入]文件號(hào)、[傳入]文件路徑)MOVAL,2;讀寫(xiě)文式打開(kāi)MOVAH,3DHLEADX,FILE_PATHINT21HMOVFILE_ID,AXENDMCLOSEFMACROFILE_ID;關(guān)閉文件([傳入]文件號(hào))MOVBX,FILE_IDMOVAH,3EHINT21HENDMREADFMACROFILE_ID,TEMP,NUM;讀文件([傳入]文件號(hào)、[傳入]緩沖區(qū)、[傳入]字節(jié)數(shù))MOVBX,FILE_IDLEADX,TEMPMOVAX,NUMMOVCX,AXMOVAH,3FHINT21HENDMWRITEFMACROFILE_ID,TEMP,NUM;寫(xiě)文件([傳入]文件號(hào)、[傳入]緩沖區(qū)、[傳入]字節(jié)數(shù))MOVBX,FILE_IDMOVCX,NUMLEADX,TEMP[2]MOVAH,40HINT21HENDMMOVEFMACROFILE_ID,STYPE,HIGEC,LOWD;移動(dòng)文件指針([傳入]文件號(hào)、[傳入]移動(dòng)方式、[傳入]偏移字節(jié)(高位)[傳入]偏移字節(jié)(低位))MOVBX,FILE_IDMOVAH,42HMOVAL,STYPE;尾+偏移量方式MOVCX,HIGEC;偏移字節(jié)(高位)MOVDX,LOWD;偏移字節(jié)(低位)INT21HENDMINPUTMACROBUFFER,LENGTH;輸入字符串([傳入]字符串名、[返回]字符串長(zhǎng)度)MOVAH,10LEADX,BUFFERINT21HMOVLENGTH,BUFFER[1]ENDMSHOWMACROBUFFER;顯示字符串([傳入]字符串名)MOVAH,9LEADX,BUFFERINT21HENDMSTAKSEGMENTSTACKDB200DUP(?)STAKENDS;代碼段CODESEGMENTASSUMECS:CODE,DS:DATASHOW_EXITPROCNEAR;提示按r退出PUSHAXPUSHBXPUSHCXPUSHDXTABTABSHOWTIPS4EXIT_1:MOVAH,7INT21HCMPAL,'r'JNZEXIT_1POPDXPOPCXPOPBXPOPAXRETSHOW_EXITENDPSHOW_ECPROCNEAR;詢(xún)問(wèn)退出還是繼續(xù)PUSHAXPUSHBXPUSHCXPUSHDXTABTABSHOWTIPS5EXIT_2:MOVAH,7INT21HCMPAL,'r'JZEXIT_4CMPAL,'c'JNZEXIT_2CALLINSERTEXIT_4:POPDXPOPCXPOPBXPOPAXRETSHOW_ECENDPSHOW_ERRPROCNEAR;顯示出錯(cuò)信息子程序PUSHAXPUSHBXPUSHCXPUSHDXTABTABSHOWERRTABTABPOPDXPOPCXPOPBXPOPAXRETSHOW_ERRENDPRE_TMPPROCNEAR;用空格初始化緩沖區(qū)子程序PUSHAXPUSHBXPUSHCXPUSHDXMOVCX,50MOVBX,1RE:INCBXMOVSTR[BX],''LOOPREPOPDXPOPCXPOPBXPOPAXRETRE_TMPENDPCLEARPROCNEAR;清屏PUSHAXPUSHBXPUSHCXPUSHDXMOVAL,0;上滾行數(shù)MOVCL,0;上滾窗口左上角的列號(hào)為0MOVCH,0;上滾窗口左上角的行號(hào)為0MOVDH,24;上滾窗口右上角的行號(hào)為24MOVDL,79;上滾窗口右上角的列號(hào)為79MOVBH,14;空白行的屬性MOVAH,6;入口參數(shù)INT10H;SET_P1POPDXPOPCXPOPBXPOPAXRETCLEARENDPSHOW_STUPROCNEAR;顯示學(xué)生信息子程序PUSHAXPUSHBXPUSHCXPUSHDXSHOWID;IDMOVCX,ID_LENGTHMOVBX,-1SH_ID:INCBXMOVDL,STR0[BX]MOVAH,2INT21HLOOPSH_IDSHOWENTERSHOWNAM;NAMEMOVCX,NAM_LENGTHMOVBX,ID_LENGTHDECBXSH_NAME:INCBXMOVDL,STR0[BX]MOVAH,2INT21HLOOPSH_NAMESHOWENTERSHOWSEX;SEXMOVBX,ID_LENGTHADDBX,NAM_LENGTHMOVDL,STR0[BX]CMPDL,'1';1顯示male,0顯示femaleJNZSEX_FSHOWSEXMJMPNNSEX_F:SHOWSEXFNN:SHOWENTERSHOWSCORE;SCOREMOVCX,SCORE_LENGTHMOVBX,ID_LENGTHADDBX,NAM_LENGTHSH_SCORE:INCBXMOVDL,STR0[BX]MOVAH,2INT21HLOOPSH_SCOREPOPDXPOPCXPOPBXPOPAXRETSHOW_STUENDP;插入(insert)程序INSERTPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXTABCALLCLEAR;清屏SHOWTIPS0;顯示提示信息SHOWTIPS1TABTAB OPENFFID,FPATH;打開(kāi)文件IN_ID:SHOWID;學(xué)號(hào)INPUTSTR,BL;向緩沖區(qū)輸入ID;CMPBL,ID_LENGTH;看ID是否合法JMPL1JNZERR_IDERR_SA:;錯(cuò)誤處理TABTABSHOWERR_SAMETABTABJMPIN_IDERR_ID:TABTABCALLSHOW_ERRTABTABJMPIN_IDL1:;ID判斷只能為數(shù)字MOVCX,ID_LENGTHLEASI,STR+2LN:MOVAL,BYTEPTR[SI]CMPAL,'0'JBERR_IDCMPAL,'9'JAERR_IDINCSILOOPLNMOVEFFID,0,0,0;指針移到文件首IA:MOVEFFID,1,0,5IB:READFFID,STR0,STU_LENGTH;讀取學(xué)生信息CMPAX,0;文件是否結(jié)束JNZIL1JMPIC;沒(méi)有重復(fù)學(xué)號(hào),可以插入IL1:LEASI,STR0LEADI,STRINCDIDECSIMOVCX,ID_LENGTHIL2:INCSIINCDIMOVAL,BYTEPTR[DI]CMPAL,BYTEPTR[SI]JNZIA;不符合條件讀取下一個(gè)同學(xué)信息LOOPZIL2JMPERR_SA;有重復(fù)學(xué)號(hào)IC:MOVEFFID,2,0,5WRITEFFID,STR,ID_LENGTH;數(shù)據(jù)合法則寫(xiě)入數(shù)據(jù)TABIN_NAM:SHOWNAM;姓名CALLRE_TMP;初始化緩沖區(qū)INPUTSTR,BLADDBL,2;去掉回車(chē)MOVBH,0MOVSI,BXMOVSTR[SI],''SUBBL,2CMPBL,NAM_LENGTHJNAL2ERR_NAM:CALLSHOW_ERRJMPIN_NAML2:CMPSTR[2],'';姓名第一個(gè)字符不為空J(rèn)ZERR_NAMCMPSTR[2],'z'JAERR_NAMCMPSTR[2],'A'JBERR_NAMCMPSTR[2],'a'JNBIIICMPSTR[2],'Z'JAERR_NAMCMPSTR[2],'A'JBERR_NAMIII:MOVCX,NAM_LENGTHMOVBX,2II0:INCBXDECCXCMPSTR[BX],'z'JAERR_NAMCMPSTR[BX],''JBERR_NAMCMPSTR[BX],'a'JNBII0CMPSTR[BX],'Z'JAERR_NAMCMPSTR[BX],'A'JNBII0CMPSTR[BX],''JNZERR_NAMCMPCX,0JNZII0WRITEFFID,STR,NAM_LENGTHTABIN_SEX:SHOWSEX;性別CALLRE_TMPINPUTSTR,BLADDBL,2;去掉回車(chē)MOVBH,0MOVSI,BXMOVSTR[SI],''SUBBL,2CMPBL,SEX_LENGTHJNZERR_SEXMOVBL,STR[2]CMPBL,'1'JZL4CMPBL,'0'JZL4ERR_SEX:CALLSHOW_ERRJMPIN_SEXL4:WRITEFFID,STR,SEX_LENGTHTABIN_SCORE:SHOWSCORECALLRE_TMPINPUTSTR,BLMOVSC,BL;BL保護(hù)ADDBL,2;去掉回車(chē)MOVBH,0MOVSI,BXMOVSTR[SI],''SUBBL,2;CMPBL,SCORE_LENGTH;分?jǐn)?shù)最多4位JMPL5ERR_SCORE:CALLSHOW_ERRJMPIN_SCOREL5:MOVCX,BX;分?jǐn)?shù)只能是數(shù)字和.MOVBX,2L6:CMPSTR[BX],'0'JNBL7;>=0CMPSTR[BX],'.'JNZERR_SCOREJZL8L7:CMPSTR[BX],'9';<=9JAERR_SCOREINCBXLOOPL6L8:MOVBL,SCCMPBL,4;分?jǐn)?shù)(0~100),支持一位小數(shù)JNZL9CMPSTR[4],'.'JNZERR_SCOREJMPLWL9:CMPBL,3JNZL10CMPSTR[3],'.'JZLWCMPSTR[2],'1'JNZERR_SCORECMPSTR[3],'0'JNZERR_SCORECMPSTR[4],'0'JNZERR_SCOREJMPLWL10:CMPBL,2JNZL11CMPSTR[2],'.'JZERR_SCOREJMPLWL11:CMPSTR[2],'.'JZERR_SCORELW:WRITEFFID,STR,SCORE_LENGTHTABCLOSEFFID;關(guān)閉文件CALLSHOW_ECPOPDXPOPCXPOPBXPOPAXRETINSERTENDP;查詢(xún)(query)程序QUERYPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXCALLCLEAROPENFFID,FPATH;打開(kāi)文件IN_ID1:SHOWTIPS3;顯示提示信息INPUTSTR,BL;向緩沖區(qū)STR輸入IDCMPBL,ID_LENGTH;看ID是否合法JZQL1QERR_ID:;錯(cuò)誤處理CALLSHOW_ERRJMPIN_ID1A:MOVEFFID,1,0,5B:READFFID,STR0,STU_LENGTH;讀取學(xué)生信息CMPAX,0;文件是否結(jié)束JNZQL1QL3:TABTAB;文件結(jié)束,沒(méi)有該學(xué)生信息SHOWNOSTUJMPCQL1:LEASI,STR0LEADI,STRINCDIDECSIMOVCX,ID_LENGTHQL2:INCSIINCDIMOVAL,BYTEPTR[DI]CMPAL,BYTEPTR[SI]JNZA;不符合條件讀取下一個(gè)同學(xué)信息LOOPZQL2TABTAB;符合條件顯示CALLSHOW_STUJMPCC:CLOSEFFIDTABTABSHOWTIPS5;詢(xún)問(wèn)退出還是繼續(xù)Q_2:MOVAH,7INT21HCMPAL,'r'JZQ_4CMPAL,'c'JNZQ_2CALLQUERYQ_4:POPDXPOPCXPOPBXPOPAXRETQUERYENDP;瀏覽(list)程序LISTPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXCALLCLEARMOVAX,0MOVTMP,AX;是否為空標(biāo)志清0OPENFFID,FPATH;打開(kāi)文件TABD:MOVEFFID,1,0,5E:READFFID,STR0,STU_LENGTH;讀取學(xué)生信息CMPAX,0;是否到文件尾JNZGCMPTMP,0;判斷有沒(méi)有信息JNZFTABTABTABSHOWERR_NOJMPFG:MOVCX,ID_LENGTH;ID為空不顯示MOVBX,0DECBXNULL:INCBXCMPSTR0[BX],''JZDLOOPNULLCALLSHOW_STUINCTMP;有信息為空標(biāo)志自加TABJMPDF:CLOSEFFIDCALLSHOW_EXITPOPDXPOPCXPOPBXPOPAXRETLISTENDP;===============以下是退出(exit)子程序=======================EXITPROCNEARCALLCLEARMOVAH,4CHINT21HEXITENDP;================以下是主程序====================MAIN:MOVAX,DATAMOVDS,AXMOVAH,0MOVAL,3;80*25的文本方式INT10HMOVAL,0MOVCL,0MOVCH,0MOVDH,24MOVDL,79MOVBH,0FHMOVAH,6INT10HTABSHOWSMENUMOVAX,ID_LENGTHADDAX,NAM_LENGTHADDAX,SEX_LENGTHADDAX,SCORE_LENGTHMOVSTU_LENGTH,AX;計(jì)算每個(gè)學(xué)生信息長(zhǎng)度INCAXNOTAXADDAX,1MOVSTU_LENGTH_ADD1,AX;刪除時(shí)指針參數(shù)MOVAX,NAM_LENGTHADDAX,SEX_LENGTHADDAX,SCORE_LENGTHNOTAXADDAX,1MOVNAM_SEX_SCORE_LENGTH,AX;修改時(shí)指針參數(shù)OPENFFID,FPATH;是否新建文本CMPAX,2JZNEWFILECLOSEFFIDJMPSTARTNEWFILE:CREATEFFID,FPATH
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)三相可控硅直流調(diào)速裝置數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)HIPS塑膠料數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 勞動(dòng)合同(20XX年完整版)
- 遺產(chǎn)繼承金融資產(chǎn)管理合同(2篇)
- 采購(gòu)與分包管理合同(2篇)
- 高等教育自學(xué)考試《00074中央銀行概論》模擬試卷三
- 新浪樂(lè)居萬(wàn)達(dá)中央旅游城歲末營(yíng)銷(xiāo)方案
- 《人工智能應(yīng)用與發(fā)展:高中人工智能學(xué)習(xí)指南》
- 商業(yè)推廣項(xiàng)目合作協(xié)議書(shū)
- 環(huán)保技術(shù)研發(fā)與推廣戰(zhàn)略合作協(xié)議
- 輔酶Q10-心臟安全衛(wèi)士課件
- 申根簽證在職證明模板中英雙語(yǔ)備課講稿
- 兒童吸入性肺炎的診斷與治療
- 建筑QC小組成果報(bào)告建筑QC小組成果報(bào)告八篇
- 供應(yīng)室提高腔鏡器械清洗質(zhì)量PDCA案例
- Unit1DiscoveringUsefulStructures課件-高中英語(yǔ)人教版選擇性必修第三冊(cè)
- JJF 1071-2010國(guó)家計(jì)量校準(zhǔn)規(guī)范編寫(xiě)規(guī)則
- GB/T 24803.4-2013電梯安全要求第4部分:評(píng)價(jià)要求
- GB/T 13814-1992鎳及鎳合金焊條
- GB 4806.7-2016食品安全國(guó)家標(biāo)準(zhǔn)食品接觸用塑料材料及制品
- 腎病綜合征【內(nèi)科學(xué)課件】
評(píng)論
0/150
提交評(píng)論