下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、題 目:班 級(jí):學(xué) 號(hào):姓 名:指導(dǎo)教師:硬件課程設(shè)計(jì)中國礦業(yè)大學(xué)計(jì)算機(jī)學(xué)院壓力控制系統(tǒng)信息安全11-2班* * *周世斌2013年11月一3013年12月1 . 設(shè)計(jì)任務(wù)與要求 .31.1 設(shè)計(jì)任務(wù) ., , 31.2 設(shè)計(jì)要求 .32 .總 體 方 案 與 說明.32.1 模擬信號(hào)的轉(zhuǎn)換與顯示 .32.2 鍵盤數(shù)據(jù)的輸入與顯示 .42.3 數(shù) 據(jù) 的 處 理 與 顯示 .42.4 顯示說明.43 .硬 件 框 圖 與 說明.53.18086原理簡介 .53.28255原理簡介 .63.30809的應(yīng)用 .93.4液晶顯小屏113.5鍵盤144 .電路原理圖與說明164.1 電路原理圖164
2、.2 硬 件 運(yùn) 行 過 程 說明175 .軟件主要模塊與說明 175.1 主程序流程圖185.2 0809 轉(zhuǎn) 換 及 數(shù) 據(jù) 處 理 流程196 .源程序清單與注釋明 177 .問題分析與解決方案 288 .結(jié)論與體會(huì) 308.1 實(shí)驗(yàn)運(yùn)行結(jié)果 .308.2 體會(huì) .319 .參考資料 321.設(shè)計(jì)任務(wù)與要求1. 1設(shè)計(jì)任務(wù)運(yùn)用相關(guān)硬件,結(jié)合自己的編程技術(shù),設(shè)計(jì)簡單的電子秤,并實(shí)現(xiàn)其基本 功能,是本次模擬壓力控制系統(tǒng)的硬件課程設(shè)計(jì)。在完成課程設(shè)計(jì)的過程中, 需要學(xué)生獨(dú)立思考,積極發(fā)揮創(chuàng)造力和動(dòng)手能力,進(jìn)一步學(xué)習(xí)各種軟硬件的功 能和提高編程能力。電子秤的設(shè)計(jì),是通過實(shí)驗(yàn)臺(tái)左下角電位器RWIf
3、fi出05V直流電壓,模擬壓力信號(hào),送入A /D轉(zhuǎn)換器,將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)并顯示在LCD字符圖形液晶顯示屏的第一行上,作為稱重的重量。同時(shí),從鍵盤輸入數(shù)據(jù), 并在LCD?符圖形液晶顯示屏的第二行上顯示出來, 作為價(jià)格。最后在第三行 顯示出重量與單價(jià)的乘積及總價(jià)。實(shí)現(xiàn)電子秤的基本功能,達(dá)到模擬壓力控制 系統(tǒng)課程設(shè)計(jì)的基本要求。1) 模擬電子秤開機(jī)后,改變模擬信號(hào)的大小,模擬重量的值必須實(shí)時(shí)的顯示在液晶顯示屏上;2) 模擬的單價(jià)初始值默認(rèn)為零,從鍵盤輸入單價(jià)完成后,需在液晶顯示器上顯示輸入的單價(jià);3)模擬價(jià)格必須隨模擬重量改變,并實(shí)時(shí)的顯示在液晶顯示器上。2. 總體方案與說明本次試驗(yàn)需要要使
4、用 ADC0809數(shù)模轉(zhuǎn)換器,四乘四鍵盤,可編程控制接口 8255, 05V直流電壓,128*64LCD?符圖形液晶顯示屏。2 1 模擬信號(hào)的轉(zhuǎn)換與顯示用滑動(dòng)變阻器代替壓力傳感器,模擬壓力的變化。將模擬電壓輸入ADC0809通道0(IN0) , ADC0809勺IN0 口地址為280H, CS接地址譯碼輸出的 280h287h 8255的A 口接LCD的D7DO. 8255c眼地址譯碼輸出的 288h28fh。8255的 PB0PB盼另J接LCD的D/I、RW E接口。編程采集IN0輸入的電壓,將壓力傳 感器的模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào),之后進(jìn)行轉(zhuǎn)換,換算為設(shè)定量程下實(shí)際情況 的值,然后將模擬重量
5、的電壓數(shù)據(jù)存放到 CPUJ存器中用于下一步計(jì)算。同時(shí) 將模擬重量的電壓數(shù)據(jù)從8255的A 口輸出并在LCDW幕的第一行作為重量顯示 出來。2 2 鍵盤數(shù)據(jù)的輸入與顯示8255白C0C按鍵盤的歹10歹【3, C4C裱鍵盤的行0行3),從鍵盤輸入 兩位數(shù),然后在LCD勺第二行作為單價(jià)顯示出來,并存放到 CPU?存器中用于下 一步計(jì)算。2 3 數(shù)據(jù)的處理與顯示通過編程將第一步與第二步寄存在CP加的模擬重量與模擬價(jià)格相乘處理 后輸入到LCD勺第三行作為總價(jià)顯示出來。1.2設(shè)計(jì)要求2 . 4 LCD顯示說明液晶顯示屏是一種內(nèi)置128X 64-12漢字圖形點(diǎn)陣的液晶顯示控制模塊,用 于顯示漢字及圖形?12
6、864A-1漢字圖形點(diǎn)陣液晶顯示模塊集成 ST7920驅(qū)動(dòng)器, 可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字(16X 16點(diǎn)陣)、128個(gè)字符(8X16 點(diǎn)陣)及64X256點(diǎn)陣顯示RAM(GDRAM 如圖2.4。液晶顯示屏共顯示四行字符,每行可以顯示八個(gè)字符。0-14 重量:*斤16-30 價(jià)格:* 元32-46 總價(jià):*3 .硬件框圖與說明3.1 8086原理簡介3.1.1 8086CPU8086是Intel系列的16位微處理器,它采用HMOS藝技術(shù)制造,芯片采用40系列線封裝,單一的+5Vfe源,時(shí)鐘頻率為510MHz8086有16根數(shù)據(jù)線和20根地址線,可以處理8位和16位數(shù)據(jù),尋址1MB
7、的儲(chǔ)存單元和64KB的I/O端口。如圖3.1.1119120121122123124心126127128129 30131152133”113513©137LR; D 111LL9ST65 般言笫名六X2黑溫aoafivccA16 AI7A13A13RHFrd" HOW HLDAWR MIO DTKDEZS:AL-E INTA TEST READfRI4I.T157 15© T5T 15.X isT TT 15T 150 11叩 14514S T5T 14 I45" HI" 1<3 142141圖3.1.1 8086 引腳圖3.1.2 8
8、086CPU的編程結(jié)構(gòu)編程結(jié)構(gòu):是指從程序員和使用者的角度看到的結(jié)構(gòu),亦可稱為功能結(jié)構(gòu)。從功能上來看,8086CPUT分為兩部分,即總線接口部件 BIU(BusInterface Unit)和執(zhí)行部件 EU(Execution Unit) 。 8086CPU勺內(nèi)部功能結(jié)構(gòu)標(biāo)志竊奪ffEl如圖圖3.1.2所示:圖 3.1.23.2 8255原理簡介3.2.1 8255 原理及接線圖8255A是Intel系列的并行接口芯片,常作為微機(jī)系統(tǒng)與外部設(shè)備接口由于它是可編程的,可以通過軟件來設(shè)置芯片的工作方式, 因此,用它連接外3.2.1圖 3.2.1o J 2 3 4 5 £ 7 o 1 3
9、4 5 6 7 012 34567 ?A?A?APAPAPAW SPBPEPBFE誑PEppcpcpgppcpMMg 雷向D6D?RD而擊AlNG部設(shè)備時(shí),一般不需要在附加外部電路,給使用帶來很大方便。如圖3.2.2 芯片8255 A在本設(shè)計(jì)中的功能作用8255是并行的I|O接口芯片,內(nèi)部有三個(gè)相互獨(dú)立的8為數(shù)據(jù)端口。8255 實(shí)現(xiàn)了外設(shè)與8086之間的數(shù)據(jù)傳輸。8255的A口地址為288H B口地址為289H, C 口地址為28AH控制口地址為28BH A 口作為LED顯示屏數(shù)據(jù)總線 D0D7 B 口控制LED 燈,蜂鳴器,電機(jī),C 口的低三位分別接LED顯示屏的D/I,RW,E。3.2.3
10、 芯片8255的功能分析1、8255A是可編程并行接口,內(nèi)部有3個(gè)相互獨(dú)立的8位數(shù)據(jù)端口,即A 口、B 口和C口。三個(gè)端口都可以作為輸入端口或輸出端口。A口有三種工作方式:方式0、方式1和方式2; B 口可以工作在方式0或方式1下;C 口通常 作為聯(lián)絡(luò)信號(hào)使用。8255的工作只有當(dāng)片選CS有效時(shí)才能進(jìn)行工作,而控制邏輯端口實(shí)現(xiàn)對(duì)其他端口的控制。當(dāng)8255 工作在方式0 時(shí),即基本輸入輸出方式時(shí),可將三個(gè)數(shù)據(jù)端口劃分為四個(gè)獨(dú)立的部分:A 口和B 口作為兩個(gè)8位端口,C 口的高4位和低4位可以用作兩個(gè)4位的輸入輸出口,各個(gè)端口都可 獨(dú)立地用作輸入或輸出。2、 數(shù)據(jù)總線緩沖器是一個(gè)8 位雙向三態(tài)緩沖
11、器,三態(tài)是由讀/ 寫控制邏輯控制的,它可與系統(tǒng)的DB直接相連,實(shí)現(xiàn)CPUffi 8255A之間的信息傳送;讀 寫控制器用于管理數(shù)據(jù)、控制字或狀態(tài)字的傳送,接收來自CPU的地址信息及 一些控制信號(hào),然后向A組、B組控制電路發(fā)送命令,控制端口數(shù)據(jù)的傳送方 向。3、8255引腳:RESET復(fù)位輸入線,當(dāng)該輸入端處于高電平時(shí),所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O 口均被置成輸入方式。CS:芯片選擇信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),即/CS=0時(shí),表示芯片 被選中,允許8255與CPU!行通訊;/CS=1時(shí),8255無法與CPU故數(shù)據(jù)傳輸.RD讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),即/RD
12、=0且/CS=0時(shí),允許8255 通過數(shù)據(jù)總線向CPUS:送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。 WR寫入信號(hào),當(dāng)這個(gè)輸入引腳為低電平時(shí),即/WR=0且/CS=0時(shí),允許CPU等數(shù) 據(jù)或控制字寫入8255。D0D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPUK據(jù)傳送的通道,當(dāng)CPU執(zhí)行輸入輸出指令時(shí),通過它實(shí)現(xiàn)8 位數(shù)據(jù)的讀/ 寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。PAO- PA7端口 A輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個(gè) 8 位的數(shù)據(jù)輸入鎖存器。PBA PB7:端口 B輸入輸出線,一個(gè)8位的I/O鎖存器,一個(gè)8位的輸入輸出緩沖器。PC3 PC7:端口 C輸入輸出線
13、,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個(gè) 8 位的數(shù)據(jù)輸入緩沖器。端口C 可以通過工作方式設(shè)定而分成2 個(gè) 4 位的端口,每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口 A和端口 B配合使用,可作為控制信號(hào)輸出或狀態(tài)信號(hào)輸入端口。A0,A1:地址選擇線,用來選擇8255的PA 口,PB 口,PC 口和控制寄存器.A0=0,A1=0 時(shí) ,PA 口被選擇; 當(dāng) A0=0,A1=1 時(shí) ,PB 口被選擇; 當(dāng) A0=1,A1=0時(shí),PC 口被選擇;當(dāng)A0=1.A1=1時(shí),控制寄存器被選擇。3.2.4 8255 具有三種基本的工作方式基本輸入 /輸出方式(方式0)選通工作方式(方式1)雙向傳送方式(
14、方式2)方式0:相當(dāng)于三個(gè)獨(dú)立的8 位簡單接口各端口既可設(shè)置為輸入口,也可設(shè)置為輸出口,但不能同時(shí)實(shí)現(xiàn)輸入及輸出。C端口可以是一個(gè)8位的簡單接口,也可以分為兩個(gè)獨(dú)立的4 位端口 常用于連接簡單外設(shè)(適于無條件或查詢方式) 。方式 1:利用一組選通控制信號(hào)控制 A端口和B端口的數(shù)據(jù)輸入輸出A 口、B 口作 輸入或輸出口,CO的部分位用作選通控制信號(hào) A 口、B 口在作為輸入和輸出 時(shí)選通信號(hào)不同方式 2:雙向輸入輸出方式 可以既作為輸入口,又作為輸出口只有A端口可工作在方式2 下。3.3 0809 的應(yīng)用3.3.1 0809 內(nèi)部特性3.4 8路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位。如圖3
15、.3.1。( 2)具有轉(zhuǎn)換起??刂贫?。(3)轉(zhuǎn)換時(shí)間為100仙s(4)單個(gè)+5V電源供電。( 5)模擬輸入電壓范圍0+5V , 不需要零點(diǎn)和滿刻度校準(zhǔn)。( 6)工作溫度范圍為-40+85 攝氏度。( 7)低功耗,約15mWVCCIN2IN3IN1IN4IN0IN5ADD1IN6ADD2IN7ADD3D0ADC REF(-)D10809 eocD2OED4VCCD5CLKD6STARTD7ALED8GND圖 3.3.2t圖 3.3.13.3.2外部特性(引腳功能)卜面說明ADC08095片有28條引腳,采用雙列直插式封裝,如圖所示。各引腳功能。IN0IN7: 8路模擬量輸入端。2-12-8: 8
16、位數(shù)字量輸出端。ADDA ADDB ADDC3位地址輸入線,用于選通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)電壓。Vcc:電源,單一
17、+ 5V。GND 地。3.3.3 量程轉(zhuǎn)換方法:INO 單極性輸入電壓與轉(zhuǎn)換后的數(shù)字的關(guān)系為:N=Ui /(U REF/256)3.4 液晶顯示屏3.4.1 液晶屏簡介和主要特性液晶顯示屏是一種內(nèi)置128X64-12漢字圖形點(diǎn)陣的液晶顯示控制模塊, 用于顯示漢字及圖形?12864A-1漢字圖形點(diǎn)陣液晶顯示模塊集成 ST7920驅(qū)動(dòng) 器,可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字(16X 16點(diǎn)陣)、128個(gè)字符(8X16 點(diǎn)陣)及64X256點(diǎn)陣顯示RAM(GDRAM主要技術(shù)參數(shù)和顯示特性:電源:VDD 3.3V+5V(內(nèi)置升壓電路,無需負(fù)壓);顯示內(nèi)容:128列X 64行;顯示顏色:黃綠;顯示
18、角度:6: 00 鐘直視;LCDgfeS: STN與MCI® 口 : 8位或4位并行/3位用行;2MHZ寸鐘頻率;配置LED背光;多種軟件功能:光標(biāo)顯示、畫面移位、自定義字符、睡眠模式等 naimLJ3.4.2 液晶顯示屏引腳說明弓1腳號(hào)引腳名稱電平功能說明1VSS-模塊的電源地2VDD-模塊的電源正端3V0-LCJl II5K12驅(qū)動(dòng)電壓輸入端V0(3PIN)V0UT<181JN)4RS(/CS)H/L并行的指令/數(shù)據(jù)選擇信號(hào),L-指令;串行的片選信號(hào)5R/W(SID)H/L并行的讀寫選擇信號(hào);串行的數(shù)據(jù)口6E(CLK)H/L并行的使能信號(hào);串行的同步時(shí)鐘7DB0H/L數(shù)據(jù)0
19、8DB1H/L數(shù)據(jù)19DB2H/L數(shù)據(jù)210DB3H/L數(shù)據(jù)311DB4H/L數(shù)據(jù)412DB5H/L數(shù)據(jù)513DB6H/L數(shù)據(jù)614DB7H/L數(shù)據(jù)715PSBH/L并/串行接口選擇:H-并行;L-串行16NC空腳17/RETH/L復(fù)位彳平后效18NC空腳19LED_A-背光源正極(LED+5V20LED_K-背光源負(fù)極(LED-O切表128X64引腳說明邏輯工作電壓(VDD): 4.55.5V電源地(GND): 0V工作溫度(Ta): 060c (常溫)/ -20 75c (寬溫)3.4.3 漢字編碼查詢表5T7920 GB中文字里福表4時(shí)*田川餐目.KM 軍用看十才*立。辱不席其口看EB9
20、羽夏*聯(lián)* *&*電助電E!她網(wǎng)兇 FH 4戰(zhàn)時(shí)息十七,rr.死F產(chǎn)尸施MMtV « t K fKhi H N1 « MHJ 4 «- »0M 淚 4tSlAl 4>北味 &IC.4 £ fl 4 口網(wǎng),青 3H R H-IHJ M H ft. na 河芹 R a 胖 it UHV愕停書 p5fl肆安 B2JD H 司 ». n:河康d修 日UD 餐后申奧HKV flt 帆 g*瞋警 LUI* “壯丁 KM / 6 由 bitau 用工 Wfl W H < k>D 1 at H5« s a
21、y 里碑 阻殉s? *如 Ml H * B4K X £ fi ELK (i 11 £ fl R錯(cuò)M取岬粒 肘Mi H if «HSHI時(shí)圖力 Hul l 7 n qr 收押匿背也才 01KD置工 使印修事造區(qū) WHI多亦歡火 M m事需K 睚匐 S ?." yrm 憾 « 4 fll- RKU史西H it 有翔一立 ¥西 口加卅千M* 國制博舌費(fèi)的 3 耳港 FVW艇品煤 BK C K < < L5 叫力感H 胃 昕0 方R, 用FD步串理生 2* *fWi * S t B; HKV軸帖施M m«i A v r
22、« m 1 B st .r D*fl /電電總 旺山 依川奔 RW看早匾B一q&卞£n尸更山白四-|居巾?HWP.K WqR 壬,土后乘S看h罪 譯口事1 MT* «&RaG<K*n M箕0 # m H $«,!=眄F, 歸種怖”嘿ft,,*拌 Rh /«克 白L«姑壇*毋第«環(huán)鼻中«0-fiie<tl?斗十!«制#'三齡國»fc,nEF* 事理*«*4|¥* *市鼻1珞片!14|"土0<,«|*<1|心由&
23、#171;1*燃盡47!仃|1«!-桿人安燃,五海£<石4:付電|.-,青十注HI3E: * j耳+R星It,n比 律,,將餐吊r* ft fE H H H 鼻和*息螂行他舉事再事莖舉* M H胃話畢*J*粗* 3I,膽鼻m吊*用K * * * * *于 It tt M t V > IV r主不sat? r i* a e a a 箸*昨弄x用 也餐品。t R 牌里直行拿;#總 武力率* * + IT 朱重西也E :甲片展鵬/£電事M IT弟" 費(fèi)用口:利事E« 0 B f It K N 摘摩布描四 二武堂裝耳星且看3 *隹擇 制同等
24、導(dǎo)用E B 熨/*但H君 M 另 4 工區(qū)看H城可。 H 是山a a e is v e n 盤心戈d粒M崛娛*Q世事上舌f! e ¥.E之胃立H屏二壯七百:砰出總岬的局 ilv 心 H H 時(shí) 千圖r才m f趕M « 41 K 1* P R * t埠M H號(hào)*G ,*R書M樽 ft N th K .11 K t t ?R H < 事 我4 身 m 之 s 鼻珀3.4.4 液晶顯小流程圖:圖 3.4.43.4.5 液晶顯示原理圖: -3255*'LCD,圖 3.4.53.5 鍵盤鍵盤的工作原理是用4條I/O線作為彳T線,4條I/O線作為列線組成的鍵 盤。在行線和
25、列線的每一個(gè)交叉點(diǎn)上,設(shè)置一個(gè)按鍵。這樣鍵盤中按鍵的個(gè)數(shù)是4X4個(gè)。這種行列式鍵盤結(jié)構(gòu)能夠有效地提高單片機(jī)系統(tǒng)中I/O 口的利用率3.5.1鍵盤原理流程圖jTSs.i圖 3.5.13.5.2鍵盤電路圖圖 3.5.23.5.3鍵盤的掃描過程(1)檢測(cè)是否所有鍵都松開了,若沒有則繼續(xù)檢測(cè)。(2)檔所有鍵都松開了,在檢測(cè)是否有鍵按下,若無這繼續(xù)檢測(cè)。(3)若有鍵按下,要消除鍵盤抖動(dòng),確認(rèn)有鍵按下。(4)對(duì)壓下的鍵進(jìn)行編碼,將該鍵的行列信號(hào)轉(zhuǎn)換成16進(jìn)制,由此確定有哪個(gè)鍵按下了。如果出現(xiàn)有多個(gè)鍵重復(fù)按下的情況,只有在其他鍵全部釋放 后,僅剩一個(gè)鍵按下時(shí),才把此鍵當(dāng)作按下的鍵。(5)該建釋放后在回到(2
26、)4 .電路原理圖與說明4.1 電路原理圖4.1.1 電路連接圖與說明:(1) 0809的通道0的地址為298H,通道0與0+5V相連接,片選地址為 280H287H(2) 8255的片選地址為288H29DH,A«地址為288H B 口地址為289H, C 口 地址為28AH PA0PA骸LC躁據(jù)總線 D0D7 PB0PB整LCD的D/I、 RW E。PC0PC按鍵盤的 DOD7圖 4.1.14.1.2硬件接線實(shí)物圖圖 4.1.24.2 硬件運(yùn)行過程說明4.2.1 過程說明初始化壓力傳感器,將壓力傳感器的信號(hào)傳至 A/D轉(zhuǎn)換器(由于沒有壓力 傳感器,試驗(yàn)中用滑動(dòng)變阻器替代),然后將
27、壓力傳感器的模擬信號(hào)轉(zhuǎn)化為數(shù) 字信號(hào),之后進(jìn)行轉(zhuǎn)換,換算為設(shè)定量程下實(shí)際情況的值,將值送到8255,8255控制液晶屏顯示,將換算之后的值顯示出來。并使當(dāng)前數(shù)據(jù)隨時(shí)間一直 不斷變化。當(dāng)壓力大小相對(duì)穩(wěn)定時(shí),從 4*4鍵盤輸入一個(gè)2為數(shù),通過8255 鏈接的LCD顯示器顯示在顯示屏的第二行。然后計(jì)算模擬重量乘以價(jià)格得到總 價(jià)輸出到LCD液晶顯示屏的第三行。5 .軟件主要模塊與說明程序軟件模塊分為主程序,鍵盤程序,0809轉(zhuǎn)換程序,液晶顯示程序,計(jì) 算子程序五個(gè)部分,鍵盤程序,液晶顯示程序流程圖在硬件部分已有敘述,下面主要描述主程序,0809轉(zhuǎn)換程序的詳細(xì)過程,主程序完成8255初始化,調(diào)用0809
28、 轉(zhuǎn),完成LCD®備工作,調(diào)用鍵盤函數(shù),調(diào)用計(jì)算函數(shù)等一系列主干過程。5.1主程序流程圖啟動(dòng)0劑9轉(zhuǎn)粒LCD蒲屏+,瞬葭一行第四行,轉(zhuǎn)化為漏嗎法至覆沖區(qū)計(jì)算,送至參;申區(qū)山顯示第二、三行,exi>圖5.15.2 0809轉(zhuǎn)換及數(shù)據(jù)處理流程5.2.1數(shù)據(jù)處理流程圖圖 5.3.15.2.2數(shù)據(jù)轉(zhuǎn)換代碼如下TRANSFORM PROC;啟動(dòng)0809MOV DX280H OUT DXAL MOV CX0FFH AGAIN:LOOPAGAININ ALDX;讀取0809的值MOV BL2;量程轉(zhuǎn)換,100-1000MOV AH0 MUL BLMOVHUANCH+64 , AXMOV DX
29、0MOVCX100;將轉(zhuǎn)換量程后的值進(jìn)行拆分,使之能在 LECW上顯示DIV CXADD AX0A3B0HMOVHUANCH+6, AX ; 儲(chǔ)存百位數(shù)值,顯示 MOV AX, DXMOV DX,0MOV CX,10DIV CXADD AX,0A3B0HMOVHUANCH+8, AX ; 儲(chǔ)存十位數(shù)值,顯示MOV AX, DXADD AX,0A3B0H MOVHUANCH+12, AX; 儲(chǔ)存?zhèn)€位數(shù)值至緩沖區(qū) RETTRANSFORM ENDP6. 源程序清單與注釋IO_ADDRESS IO_ADDRESS a8255 c8255 k8255DATAHUANCHEQU288h EQU288H
30、equ 288H equ 28aH equ 28bH SEGMENT;8255 A 口;8255 C 口;8255控制口分DW0D6D8H, 0C1BFH,0A3BAH,0C1A6H,0A1C3H,0A3AEH,0A3CBH,0BDEFH ;0-14 顯示 kg,+6, 最后一個(gè)存數(shù)據(jù),+16DW0BCDBH,0B8F1H,0A3BAH,0A3B0H,0A3AEH,0A3B0H,0A1A0H,0D4AAH;16-30 單價(jià) XXX.XBDW0D7DCH,0BCDBH,0A3BAH,0A3AEH,0A3AEH,0A3AEH,0A3AEH,0A3AEH ;32-46 顯示狀態(tài)DW0D6B5H,0B
31、0E0H,0C8CbH,0D4B1H,0A1C3H,0D1EEH,0BDA8H,0A1A0H ;48-52 顯示值班人員DW64,66,68,0,72 ;CC DB10;HZ_ADR DB ?table1 DW0770h,0B70h,0D70h,0E70h,07B0h,0BB0h,0DB0h,0EB0hDW07D0h,0BD0h,0DD0h,0ED0h,07E0h,0BE0h,0DE0h,0EE0h ; 鍵盤掃描碼表char DB'0123456789ABCDEF' 字符表DATA ENDSDATA ENDS; 堆棧空間;jianpanSTACKS SEGMENSTTACKDB
32、100 DUP(?) STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKS,ES:DATASTART:CLIMOV AX,DATAMOV DS, AXMOV ES, AXMOV AX,stacksMOV SS, AXMOV DX,IO_ADDRESS+3MOV AL,81HOUT DX, ALCALL TRANSFORMCALL CLEARLEA BX,HUANCHMOV CH,1CALL LCD_DISPCALL JISUANLEA BX, HUANCHMOV CH,2CALL LCD_DISPLEA BX, HUANCHMOV CH,3CA
33、LL LCD_DISPLEA BX,HUANCHMOV CH,4CALL LCD_DISP;?;8255初始化; 調(diào)用 0809 ok;LCD 清除; 顯示第 1行信息; 顯示第1行信息; 顯示第1行信息; 顯示第4行信息MOV DX,c8255 MOV AL,0fh OUT DX, AL IN AL, DX AND AL,0fh CMP AL,0fh JZ START MOV DL,3fhMOV AH,2 INT 21h CALL JIANPAN MOV DL,CC ADD DL,30H MOV AH,02 INT 21hMOV BL,CC ; 讀行掃描值; 未發(fā)現(xiàn)有鍵按下則轉(zhuǎn); 顯示查找到
34、的鍵盤; 顯示查找到的鍵盤;8255初始; 顯示第2行信息; 顯示第3行信息;設(shè)置CLEA命令;啟動(dòng)LC曲行命令; 啟動(dòng) 0809MOV BH,0 ;MOVHUANCH+66, BXADD BX,0A3B0HMOVHUANCH+22, BXCALL JIANPANMOV DL,CCADD DL,30HMOV AH,02INT 21hMOV BL,CC ;MOV BH,0MOVHUANCH+68, BXADD BX,0A3B0HMOVHUANCH+26, BXMOV BL,10MOV AX,HUANCH+66MOV AH,0 ;MUL BLADD AX,HUANCH+68MOVHUANCH+70
35、,AX;MOV DX,IO_ADDRESS+3MOV AL,81HOUT DX, ALLEA BX, HUANCHMOV CH,2CALL LCD_DISPLEA BX, HUANCHCALL JISUANMOV CH,3CALL LCD_DISPl1:JMPSTARTCLEARPROCMOV AL,0CHMOV DX,IO_ADDRESSOUT DX, ALCALL CMD_SETUPRETCLEARENDPTRANSFORMPROCMOV DX,280HOUT DX, ALMOV CX,0FFHAGAIN:LOOPAGAININ AL, DXMOV BL,2MOV AH,0MUL BLMO
36、VHUANCH+64 , AXMOV DX,0MOV CX,100DIV CXADD AX,0A3B0HMOVHUANCH+6, AXMOV AX, DXMOV DX,0MOV CX,10DIV CXADD AX,0A3B0HMOVHUANCH+8, AXMOV AX, DXADD AX,0A3B0HMOVHUANCH+12, AXRETTRANSFORMENDP FUNCUPPROCMOV AL,34HOUT DX, AL CALLCMD_SETUPRETFUNCUP ENDPLCD_DISP PROCLEA BX, HUANCHCMP CH, 1JZ DISP_SEC1CMP CH,2JZ
37、 DISP_SEC2CMP CH,3JZ DISP_SEC3CMP CH,4JZ DISP_SEC4MOV BYTEPTRHZ_ADR,98hADD BX,48JMP NEXTDISP_SEC1:MOV BYTEPTRHZ_ADR,80H; 讀取0809的值; 量程轉(zhuǎn)換,100-1000; 將轉(zhuǎn)換量程后的值進(jìn)行拆分,使之能在LEDW上顯示; 儲(chǔ)存百位數(shù)值,顯示; 儲(chǔ)存十位數(shù)值,顯示; 儲(chǔ)存?zhèn)€位數(shù)值至緩沖區(qū);LCD顯示狀態(tài)命令; 判斷是否為第一行; 判斷是否為第二行; 判斷是否為第三行; 判斷是否為第三行; 第四行起始端口地址; 指向第四行信息; 第一行起始端口地址ADD BX,0JMP NEX
38、T; 指向第一行信息DISP_SEC2:MOV BYTEPTRHZ_ADR,90HADD BX,16JMP NEXTDISP_SEC3:MOV BYTEPTRHZ_ADR,88HADD BX,32JMP NEXT; 第二行起始端口地址; 指向第二行信息; 第三行起始端口信息; 指向第三行信息DISP_SEC4:MOV BYTEPTRHZ_ADR,98H; 第三行起始端口信息;設(shè)定ddraM址命令; 先送漢字編碼高位; 輸出漢字編碼高字節(jié); 延遲; 輸出漢字編碼低字節(jié); 修改顯示內(nèi)碼緩沖區(qū)指針;修改LCD示端口地址ADD BX,48; 指向第三行信息JMP NEXTNEXT:MOV CL,8CO
39、NTINUE:PUSHCXMOV AL,HZ_ADRMOV DX,IO_ADDRESSOUT DX, ALCALL CMD_SETUPMOV AX, BXPUSHAXMOV AL, AHMOV DX,IO_ADDRESSOUT DX, ALCALL DATA_SETUPCALL DELAYTIMEPOP AXMOV DX,IO_ADDRESSOUT DX, ALCALL DATA_SETUPCALL DELAYTIMEINC BXINC BXINC BYTEPTRHZ_ADRPOP CXDEC CLJNZ CONTINUERETLCD_DISPENDPCMD_SETUPPROCMOV DX,I
40、O_ADDRESS ; 指向8255端口控制端口;PC1 置0,pc0置0 (LCD I端=0, W =0);PC2置 1 (LCD 圓=1);PC2置0, (LCD 圓置0); 指向8255控制端口;PC1 置0, PC0=1 (LCD I端=1);PC2置 1 (LCD 圓=1);PC2置0, (LCD 圓=0); 延時(shí)子程序ADD DX,1NOPMOV AL,00000000BOUT DX, ALCALL DELAYTIMENOPMOV AL,00000100BOUT DX, ALNOPCALL DELAYTIMEMOV AL, 00000000BOUT DX, ALCALL DELAY
41、TIMERETCMD_SETUP ENDPDATA_SETUPPROCMOV DX,IO_ADDRESSADD DX,1MOV AL,00000001BOUT DX, ALNOPCALL DELAYTIMEMOV AL,00000101BOUT DX, ALNOPCALL DELAYTIMEMOV AL, 00000001BOUT DX, ALNOPDELAYTIME PROCMOV CX,0FFFFHD1:LOOPD1RETDELAYTIME ENDPDATA_SETUP ENDPJISUAN PROCMOV AX,HUANCH+70MOV BX,HUANCH+64MUL BXMOV DX,
42、0 ;MOV BX,10000DIV BXADD AX,0A3B0HMOV HUANCH+38, AX MOV AX, DX MOV BX,1000 MOV DX,0 ;DIV BXADD AX,0A3B0HMOV HUANCH+40, AX MOV AX, DX MOV BX,100 MOV DX,0 ;DIV BXADD AX,0A3B0HMOV HUANCH+42, AX MOV AX, DX MOV BX,10 MOV DX,0 ;DIV BXADD AX,0A3B0HMOV HUANCH+46, AX MOV AX, DX RETJISUAN ENDP JIANPAN PROC MO
43、V DX,k8255 MOV AL,81h OUT DX, AL key_loop:MOV DX,c8255MOV AL,0fh OUT DX, AL IN AL, DX AND AL,0fh CMP AL,0fh JZ key_loop CALL DELAY MOV AH, AL MOV DX,k8255 MOV AL,88h OUT DX, AL MOV DX,c8255 MOV AL, AH OR AL,0f0h OUT DX, AL; 初始化8255控制字; 讀行掃描值; 未發(fā)現(xiàn)有鍵按下則轉(zhuǎn);delay for amomentIN AL, DXAND AL,0f0hCMP AL,0f0
44、hJZ key_loopMOV SI, offset table1MOV DI, offset charMOV CX,16 key_tonext: CMP AX, SI JZ key_findkeyDEC CXJZ key_loopADD SI ,2INC DIJMP key_tonext key_findkey:MOV DL, di MOV AH,02 int 21hMOV BL, DLSUB BL,30HMOVCC, BL key_waitup:MOV DX,k8255MOV AL,81hOUT DX, ALMOV DX,c8255MOV AL,0fhOUT DX, ALIN AL, dx
45、AND AL,0fhCMP AL,0fhJNZ key_waitupCALL delay; 顯示查找到的鍵盤; 讀列掃描值; 未發(fā)現(xiàn)有鍵按下則轉(zhuǎn); 鍵盤掃描碼表首址; 字符表首址; 待查表的表大小;cmp (col,row) with every word;in the table; 未找到對(duì)應(yīng)掃描碼; 讀行掃描值; 按鍵未抬起轉(zhuǎn);delay for amomentRETJIANPAN ENDPDELAY PROCNEARPUSHAX;delay 50ms-100msMOVAH,0INT 1AHMOVBX, DXDELAY1:MOVAH,0INT 1AH CMPBX, DX JZ DELAY1
46、 MOVBX, DX DELAY2: MOVAH,0 INT 1AH CMPBX, DX JZ DELAY2POPAX RETDELAY ENDP CODEENDS ENDSTART7. 問題分析與解決方案7.1 重量如何用05v直流電壓模擬?解決方案:最后解決方案是依據(jù)0809 A/D轉(zhuǎn)換器將電壓轉(zhuǎn)換為0255的數(shù) 值,存入寄存器后,再乘2,默認(rèn)保留一位小數(shù),就得到一個(gè)類似于 XX.X的重 量值( 00.051.0Kg)7.2 究竟該怎樣將12864的四行與我們?cè)O(shè)計(jì)的顯示內(nèi)容對(duì)應(yīng)起來?解決方案:我們是在LED液晶屏的自定義實(shí)驗(yàn)的基礎(chǔ)上修改得來,自定義實(shí)驗(yàn)只有兩行顯示,通過對(duì)代碼的分析,發(fā)現(xiàn)四行的端口地址并不是順序排列的。經(jīng)過不斷的試驗(yàn),得到各口地址為:第一行:80H;第二行:90H;第三行: 88H;第四行:98H通過判斷需要輸出哪一行的信息,輸出漢字表中的相應(yīng)漢字,LED 顯示屏的每一行能顯示八個(gè)字符,所以根據(jù)漢字在 LED屏幕上的位置以計(jì)算得出漢字 在表中位置。LEA BX, HZ_TABADD BX,48; 指向第四行信息ADD BX,0; 指向第一行信息
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 定制櫥柜采購合同范例
- 家庭內(nèi)部裝修合同范例
- 小區(qū)水塔清洗服務(wù)合同模板
- 合同模板審核注意
- app制作服務(wù)合同范例
- 勞務(wù)外包人員合同模板
- 影視公司用人合同范例
- 關(guān)于小區(qū)電梯維修合同范例
- 代理發(fā)布雜志廣告合同范例
- 大型建材銷售合同范例
- 園林景觀工程關(guān)鍵施工技術(shù)、措施
- 新生兒頭顱血腫課件
- 《6.2.1 排列與排列數(shù)》教案、導(dǎo)學(xué)案與同步練習(xí)
- DB21-T 2819-2017巖土工程勘察報(bào)告編制規(guī)范
- TQLCY 001-2023 學(xué)校食堂大宗食品原料采購食品安全管理規(guī)范
- 筑夢(mèng)青春志在四方規(guī)劃啟航職引未來
- 職業(yè)道德與焊工職業(yè)守則
- 2024墻面原位加固修復(fù)技術(shù)規(guī)程
- 友邦培訓(xùn)體系
- 社會(huì)主義核心價(jià)值觀秀版
- 鐵道車輛制動(dòng)裝置及制動(dòng)新技術(shù)全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論