電子秤壓力控制系統(tǒng)課程設(shè)計(jì)匯編語言中國礦業(yè)大學(xué)_第1頁
電子秤壓力控制系統(tǒng)課程設(shè)計(jì)匯編語言中國礦業(yè)大學(xué)_第2頁
電子秤壓力控制系統(tǒng)課程設(shè)計(jì)匯編語言中國礦業(yè)大學(xué)_第3頁
電子秤壓力控制系統(tǒng)課程設(shè)計(jì)匯編語言中國礦業(yè)大學(xué)_第4頁
電子秤壓力控制系統(tǒng)課程設(shè)計(jì)匯編語言中國礦業(yè)大學(xué)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 硬件課程設(shè)計(jì)中國礦業(yè)大學(xué)計(jì)算機(jī)學(xué)院題 目: 壓力控制系統(tǒng) 班 級:信息安全11-2班 學(xué) 號:*姓 名:* * *指導(dǎo)教師:周世斌 2013年 11 月3013 年 12 月目 錄1. 設(shè)計(jì)任務(wù)與要求.31.1 設(shè)計(jì)任務(wù).31.2 設(shè)計(jì)要求.32. 總體方案與說明.32.1 模擬信號的轉(zhuǎn)換與顯示.32.2 鍵盤數(shù)據(jù)的輸入與顯示.42.3 數(shù)據(jù)的處理與顯示.42.4 顯示說明.43. 硬件框圖與說明 .53.1 8086原理簡介.53.2 8255原理簡介.63.3 0809的應(yīng)用.93.4 液晶顯示屏113.5 鍵盤144電路原理圖與說明164.1 電路原理圖164.2 硬件運(yùn)行過程說明17

2、5軟件主要模塊與說明175.1 主程序流程圖185.2 0809轉(zhuǎn)換及數(shù)據(jù)處理流程196源程序清單與注釋明177問題分析與解決方案288結(jié)論與體會308.1 實(shí)驗(yàn)運(yùn)行結(jié)果.308.2 體會.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)造力和動手能力,進(jìn)一步學(xué)習(xí)各種軟硬件的功能和提高編程能力。電子秤的設(shè)計(jì),是通過實(shí)驗(yàn)臺左下角電位器RW1輸出05直流電壓,模擬壓力信號,送入/轉(zhuǎn)換器,將模擬信號轉(zhuǎn)換成數(shù)字信號并顯示在LCD字符圖形液晶顯

3、示屏的第一行上,作為稱重的重量。同時,從鍵盤輸入數(shù)據(jù),并在LCD字符圖形液晶顯示屏的第二行上顯示出來,作為價格。最后在第三行顯示出重量與單價的乘積及總價。實(shí)現(xiàn)電子秤的基本功能,達(dá)到模擬壓力控制系統(tǒng)課程設(shè)計(jì)的基本要求。1.2設(shè)計(jì)要求(1)模擬電子秤開機(jī)后,改變模擬信號的大小,模擬重量的值必須實(shí)時的顯示在液晶顯示屏上;(2)模擬的單價初始值默認(rèn)為零,從鍵盤輸入單價完成后,需在液晶顯示器上顯示輸入的單價;(3)模擬價格必須隨模擬重量改變,并實(shí)時的顯示在液晶顯示器上。2. 總體方案與說明本次試驗(yàn)需要要使用ADC0809數(shù)模轉(zhuǎn)換器,四乘四鍵盤,可編程控制接口8255,05直流電壓,128*64LCD字符

4、圖形液晶顯示屏。21模擬信號的轉(zhuǎn)換與顯示用滑動變阻器代替壓力傳感器,模擬壓力的變化。將模擬電壓輸入ADC0809通道0(IN0),ADC0809的IN0口地址為280H, CS接地址譯碼輸出的280h287h。8255的A口接LCD的D7DO.8255CS接地址譯碼輸出的288h28fh。8255的PB0PB2分別接LCD的D/I、RW、E接口。編程采集IN0輸入的電壓,將壓力傳感器的模擬信號轉(zhuǎn)化為數(shù)字信號,之后進(jìn)行轉(zhuǎn)換,換算為設(shè)定量程下實(shí)際情況的值,然后將模擬重量的電壓數(shù)據(jù)存放到CPU寄存器中用于下一步計(jì)算。同時將模擬重量的電壓數(shù)據(jù)從8255的A口輸出并在LCD屏幕的第一行作為重量顯示出來。

5、22 鍵盤數(shù)據(jù)的輸入與顯示8255的C0C3接鍵盤的列0列3,C4C7接鍵盤的行0行3),從鍵盤輸入兩位數(shù),然后在LCD的第二行作為單價顯示出來,并存放到CPU寄存器中用于下一步計(jì)算。23數(shù)據(jù)的處理與顯示通過編程將第一步與第二步寄存在CPU中的模擬重量與模擬價格相乘處理后輸入到LCD的第三行作為總價顯示出來。24LCD顯示說明液晶顯示屏是一種內(nèi)置12864-12漢字圖形點(diǎn)陣的液晶顯示控制模塊,用于顯示漢字及圖形12864A-1漢字圖形點(diǎn)陣液晶顯示模塊集成ST7920驅(qū)動器,可顯示漢字及圖形,內(nèi)置8192個中文漢字(1616點(diǎn)陣)、128個字符(816點(diǎn)陣)及64256點(diǎn)陣顯示RAM(GDRAM

6、)。如圖2.4。液晶顯示屏共顯示四行字符,每行可以顯示八個字符。0-14 重量:*斤16-30 價格:*元32-46 總價:*48-62 值班人員:*圖2.4 LCD接線圖3.硬件框圖與說明3.1 8086原理簡介3.1.1 8086CPU8086是Intel系列的16位微處理器,它采用HMOS工藝技術(shù)制造,芯片采用40系列線封裝,單一的+5V電源,時鐘頻率為510MHz。8086有16根數(shù)據(jù)線和20根地址線,可以處理8位和16位數(shù)據(jù),尋址1MB的儲存單元和64KB的I/O端口。如圖3.1.1。圖 3.1.18086引腳圖3.1.2 8086CPU的編程結(jié)構(gòu)編程結(jié)構(gòu):是指從程序員和使用者的角度

7、看到的結(jié)構(gòu),亦可稱為功能結(jié)構(gòu)。從功能上來看,8086CPU可分為兩部分,即總線接口部件BIU(Bus Interface Unit)和執(zhí)行部件EU(Execution Unit)。8086CPU的內(nèi)部功能結(jié)構(gòu)如圖圖3.1.2所示:圖3.1.2 3.28255原理簡介3.2.1 8255原理及接線圖 8255A是Intel系列的并行接口芯片,常作為微機(jī)系統(tǒng)與外部設(shè)備接口。由于它是可編程的,可以通過軟件來設(shè)置芯片的工作方式,因此,用它連接外部設(shè)備時,一般不需要在附加外部電路,給使用帶來很大方便。如圖3.2.1圖3.2.13.2.2芯片8255 A在本設(shè)計(jì)中的功能作用8255是并行的I|O接口芯片,

8、內(nèi)部有三個相互獨(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芯片8255的功能分析1、8255A是可編程并行接口,內(nèi)部有3個相互獨(dú)立的8位數(shù)據(jù)端口,即A口、B口和C口。三個端口都可以作為輸入端口或輸出端口。A口有三種工作方式:方式0、方式1和方式2;B口可以工作在方式0或方式1下;C口通常作為聯(lián)絡(luò)信號使用。8255的工作只有當(dāng)片選CS有效時才能進(jìn)行工作,而控

9、制邏輯端口實(shí)現(xiàn)對其他端口的控制。當(dāng)8255工作在方式0時,即基本輸入輸出方式時,可將三個數(shù)據(jù)端口劃分為四個獨(dú)立的部分:A口和B口作為兩個8位端口,C口的高4位和低4位可以用作兩個4位的輸入輸出口,各個端口都可獨(dú)立地用作輸入或輸出。2、數(shù)據(jù)總線緩沖器是一個8位雙向三態(tài)緩沖器,三態(tài)是由讀/寫控制邏輯控制的,它可與系統(tǒng)的DB直接相連,實(shí)現(xiàn)CPU和8255A之間的信息傳送;讀寫控制器用于管理數(shù)據(jù)、控制字或狀態(tài)字的傳送,接收來自CPU的地址信息及一些控制信號,然后向A組、B組控制電路發(fā)送命令,控制端口數(shù)據(jù)的傳送方向。3、8255引腳:RESET:復(fù)位輸入線,當(dāng)該輸入端處于高電平時,所有內(nèi)部寄存器(包括控

10、制寄存器)均被清除,所有I/O口均被置成輸入方式。CS:芯片選擇信號線,當(dāng)這個輸入引腳為低電平時,即/CS=0時,表示芯片被選中,允許8255與CPU進(jìn)行通訊;/CS=1時,8255無法與CPU做數(shù)據(jù)傳輸.RD:讀信號線,當(dāng)這個輸入引腳為低電平時,即/RD=0且/CS=0時,允許8255通過數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。WR:寫入信號,當(dāng)這個輸入引腳為低電平時,即/WR=0且/CS=0時,允許CPU將數(shù)據(jù)或控制字寫入8255。D0D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時,通過它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和

11、狀態(tài)信息也通過數(shù)據(jù)總線傳送。PA0PA7:端口A輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個8位的數(shù)據(jù)輸入鎖存器。PB0PB7:端口B輸入輸出線,一個8位的I/O鎖存器, 一個8位的輸入輸出緩沖器。PC0PC7:端口C輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個8位的數(shù)據(jù)輸入緩沖器。端口C可以通過工作方式設(shè)定而分成2個4位的端口, 每個4位的端口包含一個4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號輸出或狀態(tài)信號輸入端口。A0,A1:地址選擇線,用來選擇8255的PA口,PB口,PC口和控制寄存器.當(dāng)A0=0,A1=0時,PA口被選擇;當(dāng)A0=0,A1=1時,PB口

12、被選擇;當(dāng)A0=1,A1=0時,PC口被選擇;當(dāng)A0=1.A1=1時,控制寄存器被選擇。3.2.4 8255具有三種基本的工作方式基本輸入/輸出方式(方式0) 選通工作方式(方式1) 雙向傳送方式(方式2)方式0:相當(dāng)于三個獨(dú)立的8位簡單接口 各端口既可設(shè)置為輸入口,也可設(shè)置為輸出口,但不能同時實(shí)現(xiàn)輸入及輸出。C端口可以是一個8位的簡單接口,也可以分為兩個獨(dú)立的4位端口 常用于連接簡單外設(shè)(適于無條件或查詢方式)。方式1:利用一組選通控制信號控制A端口和B端口的數(shù)據(jù)輸入輸出 A口、B口作輸入或輸出口,C口的部分位用作選通控制信號 A口、B口在作為輸入和輸出時選通信號不同方式2:雙向輸入輸出方式

13、可以既作為輸入口,又作為輸出口 只有A端口可工作在方式2下。3.3 0809的應(yīng)用3.3.1 0809內(nèi)部特性(1)8路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位。如圖3.3.1。(2)具有轉(zhuǎn)換起??刂贫恕#?)轉(zhuǎn)換時間為100s(4)單個+5V電源供電。(5)模擬輸入電壓范圍0+5V,不需要零點(diǎn)和滿刻度校準(zhǔn)。(6)工作溫度范圍為-40+85攝氏度。(7)低功耗,約15mW圖3.3.13.3.2外部特性(引腳功能)圖3.3.2ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖所示。下面說明各引腳功能。IN0IN7:8路模擬量輸入端。2-12-8:8位數(shù)字量輸出端。ADDA、ADDB、AD

14、DC:3位地址輸入線,用于選通8路模擬輸入中的一路。ALE:地址鎖存允許信號,輸入,高電平有效。START:AD轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復(fù)位,下降沿啟動A/D轉(zhuǎn)換)。EOC: AD轉(zhuǎn)換結(jié)束信號,輸出,當(dāng)AD轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當(dāng)AD轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。REF(+)、REF(-):基準(zhǔn)電壓。Vcc:電源,單一5V。GND:地。3.3.3量程轉(zhuǎn)換方法:INO單極性

15、輸入電壓與轉(zhuǎn)換后的數(shù)字的關(guān)系為:N=Ui/(UREF/256)3.4 液晶顯示屏3.4.1 液晶屏簡介和主要特性液晶顯示屏是一種內(nèi)置12864-12漢字圖形點(diǎn)陣的液晶顯示控制模塊,用于顯示漢字及圖形12864A-1漢字圖形點(diǎn)陣液晶顯示模塊集成ST7920驅(qū)動器,可顯示漢字及圖形,內(nèi)置8192個中文漢字(1616點(diǎn)陣)、128個字符(816點(diǎn)陣)及64256點(diǎn)陣顯示RAM(GDRAM)。主要技術(shù)參數(shù)和顯示特性:電源:VDD 3.3V+5V(內(nèi)置升壓電路,無需負(fù)壓);顯示內(nèi)容:128列 64行;顯示顏色:黃綠;顯示角度:6:00鐘直視;LCD類型:STN;與MCU接口:8位或4位并行/3位串行;2

16、MHZ時鐘頻率;配置LED背光;多種軟件功能:光標(biāo)顯示、畫面移位、自定義字符、睡眠模式等3.4.2液晶顯示屏引腳說明引腳號引腳名稱電平功能說明1VSS-模塊的電源地2VDD-模塊的電源正端3V0-LCD驅(qū)動電壓輸入端4RS(/CS)H/L并行的指令/數(shù)據(jù)選擇信號,L-指令;串行的片選信號5R/W(SID)H/L并行的讀寫選擇信號;串行的數(shù)據(jù)口6E(CLK)H/L并行的使能信號;串行的同步時鐘7DB0H/L數(shù)據(jù)08DB1H/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

17、-并行;L-串行16NC空腳17/RETH/L復(fù)位 低電平有效18NC空腳19LED_A-背光源正極(LED+5V)20LED_K-背光源負(fù)極(LED-OV)表128X64 引腳說明邏輯工作電壓(VDD):4.55.5V電源地(GND):0V工作溫度(Ta):060(常溫) / -2075(寬溫)3.4.3漢字編碼查詢表 圖3.4.33.4.4液晶顯示流程圖:圖3.4.43.4.5液晶顯示原理圖: 圖 3.4.53.5 鍵盤鍵盤的工作原理是用4條I/O線作為行線,4條I/O線作為列線組成的鍵盤。在行線和列線的每一個交叉點(diǎn)上,設(shè)置一個按鍵。這樣鍵盤中按鍵的個數(shù)是44個。這種行列式鍵盤結(jié)構(gòu)能夠有效

18、地提高單片機(jī)系統(tǒng)中I/O口的利用率。3.5.1鍵盤原理流程圖 圖3.5.13.5.2鍵盤電路圖 圖3.5.23.5.3鍵盤的掃描過程(1)檢測是否所有鍵都松開了,若沒有則繼續(xù)檢測。(2)檔所有鍵都松開了,在檢測是否有鍵按下,若無這繼續(xù)檢測。(3)若有鍵按下,要消除鍵盤抖動,確認(rèn)有鍵按下。(4)對壓下的鍵進(jìn)行編碼,將該鍵的行列信號轉(zhuǎn)換成16進(jìn)制,由此確定有哪個鍵按下了。如果出現(xiàn)有多個鍵重復(fù)按下的情況,只有在其他鍵全部釋放后,僅剩一個鍵按下時,才把此鍵當(dāng)作按下的鍵。(5)該建釋放后在回到(2)4電路原理圖與說明4.1電路原理圖4.1.1電路連接圖與說明:(1)0809的通道0的地址為298H,通道

19、0與0+5V相連接,片選地址為280H287H(2)8255的片選地址為288H29DH,A口地址為288H,B口地址為289H,C口地址為28AH,PA0PA7接LCD數(shù)據(jù)總線D0D7,PB0PB2接LCD的D/I、RW、E。PC0PC7接鍵盤的DOD7。圖4.1.14.1.2 硬件接線實(shí)物圖 圖4.1.24.2 硬件運(yùn)行過程說明4.2.1過程說明初始化壓力傳感器,將壓力傳感器的信號傳至A/D轉(zhuǎn)換器(由于沒有壓力傳感器,試驗(yàn)中用滑動變阻器替代),然后將壓力傳感器的模擬信號轉(zhuǎn)化為數(shù)字信號,之后進(jìn)行轉(zhuǎn)換,換算為設(shè)定量程下實(shí)際情況的值,將值送到8255,8255控制液晶屏顯示,將換算之后的值顯示出

20、來。并使當(dāng)前數(shù)據(jù)隨時間一直不斷變化。當(dāng)壓力大小相對穩(wěn)定時,從4*4鍵盤輸入一個2為數(shù),通過8255鏈接的LCD顯示器顯示在顯示屏的第二行。然后計(jì)算模擬重量乘以價格得到總價輸出到LCD液晶顯示屏的第三行。5.軟件主要模塊與說明程序軟件模塊分為主程序,鍵盤程序,0809轉(zhuǎn)換程序,液晶顯示程序,計(jì)算子程序五個部分,鍵盤程序,液晶顯示程序流程圖在硬件部分已有敘述,下面主要描述主程序,0809轉(zhuǎn)換程序的詳細(xì)過程,主程序完成8255初始化,調(diào)用0809轉(zhuǎn),完成LCD準(zhǔn)備工作,調(diào)用鍵盤函數(shù),調(diào)用計(jì)算函數(shù)等一系列主干過程。5.1 主程序流程圖圖5.15.2 0809轉(zhuǎn)換及數(shù)據(jù)處理流程 5.2.1數(shù)據(jù)處理流程圖

21、 圖5.3.15.2.2數(shù)據(jù)轉(zhuǎn)換代碼如下TRANSFORM PROC;啟動0809MOVDX,280HOUTDX,ALMOVCX,0FFHAGAIN: LOOP AGAININAL,DX;讀取0809的值MOVBL,2 ;量程轉(zhuǎn)換,100-1000MOVAH,0MULBLMOV HUANCH+64 ,AXMOVDX,0MOVCX,100 ;將轉(zhuǎn)換量程后的值進(jìn)行拆分,使之能在LED屏上顯示DIVCXADDAX,0A3B0HMOV HUANCH+6,AX;儲存百位數(shù)值,顯示MOVAX,DXMOVDX,0MOVCX,10DIVCXADDAX,0A3B0HMOV HUANCH+8,AX;儲存十位數(shù)值,

22、顯示MOVAX,DXADDAX,0A3B0HMOV HUANCH+12,AX;儲存?zhèn)€位數(shù)值至緩沖區(qū)RETTRANSFORM ENDP6.源程序清單與注釋IO_ADDRESS EQU 288hIO_ADDRESS EQU 288Ha8255 equ 288H ;8255 A口c8255 equ 28aH ;8255 C口k8255 equ 28bH ;8255控制口分DATA SEGMENTHUANCH DW 0D6D8H, 0C1BFH,0A3BAH,0C1A6H,0A1C3H,0A3AEH,0A3CBH,0BDEFH;0-14 顯示kg,+6,最后一個存數(shù)據(jù),+16DW 0BCDBH,0B8

23、F1H,0A3BAH,0A3B0H,0A3AEH,0A3B0H,0A1A0H,0D4AAH;16-30 單價XXX.X帕DW 0D7DCH,0BCDBH,0A3BAH,0A3AEH,0A3AEH,0A3AEH,0A3AEH,0A3AEH;32-46 顯示狀態(tài)DW 0D6B5H,0B0E0H,0C8CbH,0D4B1H,0A1C3H,0D1EEH,0BDA8H,0A1A0H;48-52 顯示值班人員DW64,66,68,0,72;CC DB 10;HZ_ADR DB ?table1 DW 0770h,0B70h,0D70h,0E70h,07B0h,0BB0h,0DB0h,0EB0hDW 07D0

24、h,0BD0h,0DD0h,0ED0h,07E0h,0BE0h,0DE0h,0EE0h ;鍵盤掃描碼表char DB0123456789ABCDEF;字符表DATA ENDSDATA ENDSSTACKS SEGMENTSTACK;堆棧空間DB 100 DUP (?)STACKENDS;jianpanCODE SEGMENTASSUMECS:CODE,DS:DATA,SS:STACKS,ES:DATASTART:CLIMOVAX,DATAMOVDS,AXMOVES,AX;?MOVAX,stacksMOVSS,AXMOVDX,IO_ADDRESS+3MOVAL,81HOUTDX,AL;8255初

25、始化CALL TRANSFORM;調(diào)用0809 okCALL CLEAR ;LCD 清除LEABX,HUANCHMOVCH,1 ;顯示第1行信息CALL LCD_DISPCALL JISUANLEABX, HUANCHMOVCH,2 ;顯示第1行信息CALL LCD_DISPLEABX, HUANCHMOVCH,3 ;顯示第1行信息CALL LCD_DISPLEABX,HUANCHMOVCH,4 ;顯示第4行信息CALL LCD_DISPMOVDX,c8255MOVAL,0fhOUTDX,ALINAL,DX;讀行掃描值A(chǔ)NDAL,0fhCMPAL,0fhJZ START ;未發(fā)現(xiàn)有鍵按下則轉(zhuǎn)M

26、OVDL,3fhMOVAH,2INT 21hCALL JIANPANMOVDL,CCADDDL,30HMOVAH,02INT 21h ;顯示查找到的鍵盤MOVBL,CC;MOVBH,0;MOV HUANCH+66,BXADDBX,0A3B0HMOV HUANCH+22,BXCALL JIANPANMOVDL,CCADDDL,30HMOVAH,02INT 21h ;顯示查找到的鍵盤MOVBL,CC;MOVBH,0MOV HUANCH+68,BXADDBX,0A3B0HMOV HUANCH+26,BXMOVBL,10MOVAX,HUANCH+66MOVAH,0;MULBLADDAX,HUANCH+

27、68MOV HUANCH+70,AX;MOVDX,IO_ADDRESS+3MOVAL,81HOUTDX,AL;8255初始LEABX, HUANCHMOVCH,2 ;顯示第2行信息CALL LCD_DISPLEABX, HUANCHCALL JISUANMOVCH,3 ;顯示第3行信息CALL LCD_DISPl1: JMP STARTCLEAR PROCMOVAL,0CHMOVDX,IO_ADDRESSOUTDX,AL;設(shè)置CLEAR命令CALL CMD_SETUP ;啟動LCD執(zhí)行命令RETCLEAR ENDPTRANSFORM PROC;啟動0809MOVDX,280HOUTDX,ALM

28、OVCX,0FFHAGAIN: LOOP AGAININAL,DX;讀取0809的值MOVBL,2 ;量程轉(zhuǎn)換,100-1000MOVAH,0MULBLMOV HUANCH+64 ,AXMOVDX,0MOVCX,100;將轉(zhuǎn)換量程后的值進(jìn)行拆分,使之能在LED屏上顯示DIVCXADDAX,0A3B0HMOV HUANCH+6,AX;儲存百位數(shù)值,顯示MOVAX,DXMOVDX,0MOVCX,10DIVCXADDAX,0A3B0HMOV HUANCH+8,AX;儲存十位數(shù)值,顯示MOVAX,DXADDAX,0A3B0HMOV HUANCH+12,AX;儲存?zhèn)€位數(shù)值至緩沖區(qū)RETTRANSFORM

29、 ENDPFUNCUP PROCMOVAL,34H ;LCD顯示狀態(tài)命令OUTDX,ALCALL CMD_SETUPRETFUNCUP ENDPLCD_DISP PROCLEABX, HUANCHCMPCH, 1;判斷是否為第一行JZ DISP_SEC1CMPCH,2 ;判斷是否為第二行JZ DISP_SEC2CMPCH,3;判斷是否為第三行JZ DISP_SEC3CMPCH,4;判斷是否為第三行JZ DISP_SEC4MOVBYTEPTR HZ_ADR,98h ;第四行起始端口地址ADDBX,48 ;指向第四行信息JMP NEXTDISP_SEC1:MOVBYTEPTR HZ_ADR,80H

30、;第一行起始端口地址ADDBX,0 ;指向第一行信息JMP NEXTDISP_SEC2:MOVBYTEPTR HZ_ADR,90H ;第二行起始端口地址ADDBX,16;指向第二行信息JMP NEXTDISP_SEC3:MOVBYTEPTR HZ_ADR,88H;第三行起始端口信息ADDBX,32;指向第三行信息JMP NEXTDISP_SEC4:MOVBYTEPTR HZ_ADR,98H;第三行起始端口信息ADDBX,48;指向第三行信息JMP NEXTNEXT:MOVCL,8CONTINUE:PUSHCXMOVAL,HZ_ADRMOVDX,IO_ADDRESSOUTDX, ALCALL C

31、MD_SETUP ;設(shè)定DDRAM地址命令MOVAX,BXPUSHAXMOVAL,AH;先送漢字編碼高位MOVDX,IO_ADDRESSOUTDX,ALCALL DATA_SETUP ;輸出漢字編碼高字節(jié)CALL DELAYTIME ;延遲POPAXMOVDX,IO_ADDRESSOUTDX, ALCALL DATA_SETUP ;輸出漢字編碼低字節(jié)CALL DELAYTIMEINCBXINCBX;修改顯示內(nèi)碼緩沖區(qū)指針I(yè)NCBYTEPTR HZ_ADR ;修改LCD顯示端口地址POPCXDECCLJNZ CONTINUERETLCD_DISP ENDPCMD_SETUP PROCMOVDX,

32、IO_ADDRESS ;指向8255端口控制端口ADDDX,1NOPMOVAL,00000000B ;PC1置0,pc0置0 (LCD I端=0,W端0)OUTDX, ALCALL DELAYTIMENOPMOVAL,00000100B ;PC2置1 (LCD E端1)OUTDX, ALNOPCALL DELAYTIMEMOVAL, 00000000B ;PC2置0,(LCD E端置0)OUTDX, ALCALL DELAYTIMERETCMD_SETUP ENDPDATA_SETUP PROCMOVDX,IO_ADDRESS ;指向8255控制端口ADDDX,1MOVAL,00000001B

33、 ;PC1置0,PC0=1 (LCD I端=1)OUTDX, ALNOPCALL DELAYTIMEMOVAL,00000101B ;PC2置1 (LCD E端1)OUTDX, ALNOPCALL DELAYTIMEMOVAL, 00000001B ;PC2置0,(LCD E端0)OUTDX, ALNOPDELAYTIME PROC;延時子程序MOVCX,0FFFFHD1:LOOP D1RETDELAYTIME ENDPDATA_SETUP ENDPJISUAN PROCMOVAX,HUANCH+70MOVBX,HUANCH+64MULBXMOVDX,0;MOVBX,10000DIVBXADD

34、AX,0A3B0HMOV HUANCH+38,AXMOVAX,DXMOVBX,1000MOVDX,0;DIVBXADDAX,0A3B0HMOV HUANCH+40,AXMOVAX,DXMOVBX,100MOVDX,0;DIVBXADDAX,0A3B0HMOV HUANCH+42,AXMOVAX,DXMOVBX,10MOVDX,0;DIVBXADDAX,0A3B0HMOV HUANCH+46,AXMOVAX,DXRETJISUAN ENDPJIANPAN PROCMOVDX,k8255 ;初始化8255控制字MOVAL,81hOUTDX,ALkey_loop:MOVDX,c8255MOVAL,0

35、fhOUTDX,ALINAL,DX;讀行掃描值A(chǔ)NDAL,0fhCMPAL,0fhJZ key_loop ;未發(fā)現(xiàn)有鍵按下則轉(zhuǎn)CALL DELAY ;delay for amomentMOVAH,ALMOVDX,k8255MOVAL,88hOUTDX,ALMOVDX,c8255MOVAL,AHORAL,0f0hOUTDX,ALINAL,DX;讀列掃描值A(chǔ)NDAL,0f0hCMPAL,0f0hJZ key_loop ;未發(fā)現(xiàn)有鍵按下則轉(zhuǎn)MOVSI,offset table1 ;鍵盤掃描碼表首址MOVDI,offset char ;字符表首址MOVCX,16 ;待查表的表大小key_tonext:

36、CMPAX,SI ;cmp (col,row) with every wordJZ key_findkey ;in the tableDECCXJZ key_loop ;未找到對應(yīng)掃描碼ADDSI,2INCDIJMP key_tonextkey_findkey:MOVDL,diMOVAH,02int 21h ;顯示查找到的鍵盤MOVBL,DLSUBBL,30HMOV CC,BLkey_waitup:MOVDX,k8255MOVAL,81hOUTDX,ALMOVDX,c8255MOVAL,0fhOUTDX,ALINAL,dx;讀行掃描值A(chǔ)NDAL,0fhCMPAL,0fhJNZ key_wait

37、up ;按鍵未抬起轉(zhuǎn)CALL delay ;delay for amomentRETJIANPAN ENDPDELAY PROC NEARPUSHAX;delay 50ms-100msMOVAH,0INT 1AHMOVBX,DXDELAY1:MOVAH,0INT 1AHCMPBX,DXJZ DELAY1MOVBX,DXDELAY2:MOVAH,0INT 1AHCMPBX,DXJZ DELAY2POPAXRETDELAY ENDPCODE ENDSEND START7.問題分析與解決方案 7.1重量如何用05v直流電壓模擬?解決方案:最后解決方案是依據(jù)0809 A/D轉(zhuǎn)換器將電壓轉(zhuǎn)換為0255的

38、數(shù)值,存入寄存器后,再乘2,默認(rèn)保留一位小數(shù),就得到一個類似于XX.X的重量值(00.051.0Kg)7.2究竟該怎樣將12864的四行與我們設(shè)計(jì)的顯示內(nèi)容對應(yīng)起來?解決方案:我們是在LED液晶屏的自定義實(shí)驗(yàn)的基礎(chǔ)上修改得來,自定義實(shí)驗(yàn)只有兩行顯示,通過對代碼的分析,發(fā)現(xiàn)四行的端口地址并不是順序排列的。經(jīng)過不斷的試驗(yàn),得到各口地址為:第一行:80H;第二行:90H;第三行:88H;第四行:98H。通過判斷需要輸出哪一行的信息,輸出漢字表中的相應(yīng)漢字,LED顯示屏的每一行能顯示八個字符,所以根據(jù)漢字在LED屏幕上的位置以計(jì)算得出漢字在表中位置。LEA BX, HZ_TABADD BX,48 ;指向第四行信息ADD BX,0 ;指向第一行信息ADD BX,16;指向第二行信息ADD BX,32;指向第三行信息7.3掃描鍵盤輸入值時,有時可能是鍵盤不夠靈敏,按下鍵可能沒反應(yīng),這樣就得重按,導(dǎo)致我們也不知道輸入的數(shù)是什么?另外,在本實(shí)驗(yàn)中,鍵盤還有控制程序循環(huán)的功能,所以我們必須知道是否輸入成功,并且知道掃描出來數(shù)值.解決方案:我們經(jīng)過權(quán)衡利弊后決定引入系統(tǒng)顯示中斷,進(jìn)而判斷是否需要重輸或者不用,并且還可以增加實(shí)驗(yàn)的透明性。另外,我們引入了兩次系統(tǒng)中斷也使前后兩

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論