![匯編課程設(shè)計—-電子秤_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/30/88482721-04ce-4db3-bc87-66635ecd6b43/88482721-04ce-4db3-bc87-66635ecd6b431.gif)
![匯編課程設(shè)計—-電子秤_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/30/88482721-04ce-4db3-bc87-66635ecd6b43/88482721-04ce-4db3-bc87-66635ecd6b432.gif)
![匯編課程設(shè)計—-電子秤_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/30/88482721-04ce-4db3-bc87-66635ecd6b43/88482721-04ce-4db3-bc87-66635ecd6b433.gif)
![匯編課程設(shè)計—-電子秤_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/30/88482721-04ce-4db3-bc87-66635ecd6b43/88482721-04ce-4db3-bc87-66635ecd6b434.gif)
![匯編課程設(shè)計—-電子秤_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/30/88482721-04ce-4db3-bc87-66635ecd6b43/88482721-04ce-4db3-bc87-66635ecd6b435.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、電子秤設(shè)計Electronic Scale Design微機原理與接口技術(shù)課程設(shè)計電子秤設(shè)計Electronic Scale Design-XXX(常州工學(xué)院計算機科學(xué)與技術(shù)系,江蘇常州, 213002) 摘要:基于微處理器的電子秤系統(tǒng)設(shè)計采用以80x86作為核心控制器,外圍附有稱重傳感器(即電位器),A/D轉(zhuǎn)換電路,鍵盤、LED顯 示電路,以8253、8255和8259芯片作為輔助設(shè)計等構(gòu)成智能電子秤, 從而實現(xiàn)電子稱重系統(tǒng)的各種控制功能。關(guān)鍵詞:80x86 8253芯片8255芯片 8259芯片 A/D轉(zhuǎn)換 Abstract : This system is mainly controll
2、ed by the microprocessor 80x86 , the periphery is consists of weighing Sensor( potentiometer ), A/D converter circuit ,the circuit of LED and keyboard, With chip 8253, chip 8255 and chip 8259 as assistant design ,all of those are composed of electronic scale.It can achieve all function of apparatus
3、. The paper introduces total scheme and hardware design of thesystem in detail .Key words : 80x86 825382558259 A/D LED引言在我們的生活中經(jīng)常需要測量物體的重量,于是就用到 了生活中很常見的秤。但是社會的進步,科學(xué)的發(fā)展,技術(shù) 的變革,我們對測量物體重量的要求越來越嚴(yán),精度上要求 也越來越高,且要求其操作簡便,易于識別,更易于為人類 所運用和服務(wù)。隨著計量技術(shù)和電子技術(shù)的不斷發(fā)展,傳統(tǒng) 純機械結(jié)構(gòu)的桿秤、臺秤、磅秤等稱量裝置逐步被淘汰,電 子稱量裝置如電子秤、電子天平等以其準(zhǔn)確、
4、快速、方便、 顯示直觀等諸多優(yōu)點而受到人們的青睞。電子秤正向著提高 精度和降低成本的方向發(fā)展,即向著大眾化方向發(fā)展。電子 衡量器件總的發(fā)展趨勢是小型化、模塊化、集成化、智能化;其技術(shù)性能趨向是速率高、準(zhǔn)確度高、穩(wěn)定性高、可靠性高;其功能趨向是稱重計量的控制信息和非控制信息并重的“智 能化”功能;其應(yīng)用性能趨向于綜合性和組合性。稱重技術(shù) 自古以來就被人們所重視,作為一種計量手段,廣泛應(yīng)用于 工農(nóng)業(yè)、科研、交通、內(nèi)外貿(mào)易等各個領(lǐng)域,與人民的生活 緊密相連,息息相關(guān)。所以我們小組選擇這個課題也是結(jié)合 生活實際,由于這層意思的考慮,力求將從課本上所學(xué)到的 知識與生活實際結(jié)合起來,運用到生活中去,源于學(xué)
5、習(xí),用 于生活,同時這次課程設(shè)計也是一次難得的機會,一次用于 檢驗自己匯編語言與系統(tǒng)設(shè)計的思想到底學(xué)得怎么樣,所以 這個課題的課程設(shè)計,在我看來,還是很有意義的。3目錄一、系統(tǒng)設(shè)計概述 41.1 電子秤功能概述4.1.2 主要模塊41.3 主要原理4二、硬件系統(tǒng)設(shè)計42.1 硬件系統(tǒng)設(shè)計概述 4.2.1.1 工作原理4.2.1.2 實驗接線圖 5.2.2 硬件系統(tǒng)所用芯片資料介紹7.2.2.1 8253 芯片7.2.2.2 8255 芯片9.2.2.3 8259 芯片1.02.2.4 ADC0809 芯片 .1.12.2.5 鍵盤的設(shè)置 1.22.2.6 LED數(shù)碼管白向設(shè)置1.4三、軟件系統(tǒng)
6、設(shè)計 1.53.1 程序流程圖1.53.1.1 主程序流程圖 153.1.2 中斷處理程序流程圖 1.63.2 參數(shù)信息1.73.3 源程序清單1.8四、心得體會24五、參考文獻24WORD格式-可編輯-專業(yè)資料系統(tǒng)設(shè)計概述1.1 電子秤功能概述本次課程設(shè)計的課題是電子秤設(shè)計,主要是以80X86CPU為核心設(shè)計一個電子秤檢測系統(tǒng) (AD采樣用ADC0809),系統(tǒng)可實現(xiàn)對壓力信號的采集,轉(zhuǎn)換成電信號,再通過AD轉(zhuǎn)換模塊轉(zhuǎn)換成 CPUM以處理的數(shù)字信號,實現(xiàn)在顯示器上顯示當(dāng)前物品的重量,當(dāng)然這里的重量是通過變位器進行的壓力 信號的模擬。此外該電子秤設(shè)計還添加了一些輔助單元,通過按鍵來實現(xiàn)的一些功
7、能。如按下4*4矩陣鍵盤上的 A鍵后,可以設(shè)置物品的單價;按下 B鍵,LED數(shù)碼管上將顯示當(dāng)前物品的單價及總 價;當(dāng)按下R鍵后,將熄滅數(shù)碼管,退出電子秤稱重系統(tǒng)。上面即為電子秤設(shè)計的主要的功能。1.2 主要模塊電子秤系統(tǒng)主要由 80x86 CPUH塊(即一臺PC機)、8255并行口模塊、8259中斷控制器模塊、8253 定時計數(shù)器模塊、鍵盤、 LED數(shù)碼管顯示模塊,還有比較重要的一個模塊就是ADC0809即AD采樣模塊,用于將電模擬信號轉(zhuǎn)換成數(shù)字信號。1.3 主要原理電子秤設(shè)計的主要原理是利用ADC0809對采集到的模擬壓力信號,將其轉(zhuǎn)換成易于處理的數(shù)字電信號,將采集得到的重量在數(shù)碼管上顯示出
8、來(0-255),用于告訴用戶當(dāng)前物品的重量。由用戶決定接下來繼續(xù)進行什么樣的操作,設(shè)置單價,顯示總價,或是按鍵退出電子秤稱重系統(tǒng)。重要的原 理就在于對模擬壓力信號的采集,處理轉(zhuǎn)換成電信號,最后經(jīng)過AD轉(zhuǎn)換模塊轉(zhuǎn)換成數(shù)字式實驗箱易于處理的數(shù)字信號,作為其他模塊的處理基礎(chǔ),這就是大概的系統(tǒng)設(shè)計原理。:、硬件系統(tǒng)設(shè)計2.1 硬件系統(tǒng)設(shè)計概述2.1.1 工作原理實驗箱硬件部分,主要用到8255、8259中斷控制器、8253定時計數(shù)器、鍵盤、LED數(shù)碼管,還用到的就是ADC0809用于模擬和數(shù)字信號之間的轉(zhuǎn)換。電子秤硬件系統(tǒng)設(shè)計的主要原理是利用壓力傳感器采集模擬壓力信號,經(jīng)過一系列處理,轉(zhuǎn)換成模擬電信
9、號,再送給AD轉(zhuǎn)換模塊(ADC0809)進行處理,最后就可以得到易于CPUt理的數(shù)字電信號。將處理后的信號送給處理器,由處理器控制實驗箱上顯示器來進行顯示,同時還可以通過實驗箱上的鍵盤模塊對顯示的內(nèi)容進行控制,以用來控制當(dāng)前顯示在數(shù)碼管上的內(nèi)容,包括設(shè)置單價,顯示總價,還有就是按鍵退出電子秤稱重系統(tǒng)。系統(tǒng)的工作原理圖如圖 1所示。圖1工作原理圖2.1.2實驗接線圖系統(tǒng)的硬件接線圖如下面的圖2所示。-完整版學(xué)習(xí)資料分享OEVREF(-)VREF(+)ADCS ADWR ADRD CLKEOC0809DB7IN7DB6IN6DB5IN5DB4DB3DB2IN4IN3IN2DB1IN1DB0IN0A
10、DDCADDBADDAADCUSER1LAD0USER0LAD1LAD2INTi2LAD3INTi1LAD4LAD5MEWRLAD6MERDLAD7BLAST80x86HOLDABALEHOLDLWRADSI A/ DLRDLVV_RIOWRCS3IORDCS2OY6OY2CS1CS0INTROY0RRRRRRRR01234567DD DD D DD Datn1TN2SAC OA 1SAC R w OSAC DR§01234567DDDD DD D DAD0AD1AD2AD3AD4AD5AD6AD78255SRD SWR A0 A1 RESET CSPA0 PA1PA2 PA3 PA
11、4 PA5 PA6 PA7PC0 PC1PC2 PC3 PC4 PC5 PC6 PC7反 向 驅(qū) 動 電 路win反向驅(qū)動電路S13:S14S15-+5VPB0PB1PB2PB3PB4PB5PB6PB7圖2硬件系統(tǒng)接線圖說明為了便于查看, 一些線未畫出來。 其中ADC0809的CLK弓I腳在實驗中接的是 1.5MHz,其他未 連的/CS都接到80X86的IOY0引腳上,/RD和/WR接到分別接到 80X86的IORD和IOWR弓I腳上。2.2硬件系統(tǒng)所用芯片資料介紹該系統(tǒng)設(shè)計主要用到的芯片有8253、8255、8259、ADC0809還有就是LED顯示模塊,4*4矩陣鍵盤。現(xiàn)將用到的芯片和模塊
12、分別介紹如下。2.2.1 8253 芯片8253是一塊定時器/計數(shù)器接口芯片,其具有三個獨立的16位計數(shù)器,它可用程序設(shè)置成多種工作方式,按十進制 BCD碼或二進制進行減法計數(shù),最高計數(shù)速率可達2.6MHz。8253能工作于定時方式,OUT腳產(chǎn)生周期性的輸出波形,作為可編程方波頻率發(fā)生器、分頻器等,也可以工作于計數(shù)器方式,OUT腳產(chǎn)生非周期性的輸出波形,作為程控單脈沖發(fā)生器、事件計數(shù)器等。1、8253的引腳介紹3所示。DiGOUT0g 1GAIEUD2CLKUD3D4D5OUT1D6GATE1D7CLK1<E 8253,CSL onX C ITO,WR1 NGATE2AUCLK2 <
13、;A18253的引腳排列如圖圖3 8253的引腳圖引腳說明:D0D7為8條雙向數(shù)據(jù)線,/WR為寫輸入信號,/RD為讀輸入信號,/CS為片選輸入 信號,A1、A0為片內(nèi)寄存器地址輸入信號。除 /CS外,上述引腳都同系統(tǒng)總線直接相接。此外, 每個計數(shù)器都有 3條信號線:CLK0CLK2用于輸入基準(zhǔn)脈沖信號;OUT0OUT2輸出不同的信號波形來滿足定時/計數(shù)器的要求;GATE0GATE2用于控制計數(shù)器的計數(shù)操作或者觸發(fā)計數(shù)器的重 啟。2、8253的內(nèi)部結(jié)構(gòu)8253的結(jié)構(gòu)框圖如圖4所示每個計數(shù)器內(nèi)部都有三個寄存器。(1)6位的控制寄存器:初始化時,將工作方式寄存器中低6位寫入該寄存器,從而控制計數(shù)器的
14、工作方式。(2) 16位的計數(shù)初值寄存器:初始化時寫入該計數(shù)器的初始值。(3) 16位的減1計數(shù)寄存器:計數(shù)開始時,將計數(shù)初值從初值寄存器送入減1計數(shù)寄存器,當(dāng)計數(shù)輸入端CLK每輸入一個計數(shù)脈沖下降沿, 減1計數(shù)寄存器內(nèi)容減1 ;當(dāng)減1計數(shù)寄存器內(nèi)容發(fā)生 變化時,OUT腳輸出相應(yīng)信號反映的當(dāng)前的計數(shù)狀態(tài)。(4) 16位輸出鎖存寄存器:在計數(shù)過程中,輸出鎖存寄存器跟隨減1計數(shù)器的變化。當(dāng) CPU向某一計數(shù)器寫入鎖存命令時,其鎖存當(dāng)前的計數(shù)值,直至 CPU讀取計數(shù)值之后,再繼續(xù)跟隨減 1計 數(shù)器。當(dāng)/CS端收到低電平時,8253根據(jù)/WR和/RD端的電平,控制本器件接受 CPU的讀寫訪問:寫 82
15、53工作方式字、裝入各計數(shù)器的初始值、讀出各計數(shù)器的當(dāng)前值。雙向三態(tài)的8位數(shù)據(jù)總線緩沖 器根據(jù)地址信號 A0A1來選擇內(nèi)部的源寄存器并將數(shù)據(jù)發(fā)送到總線上或接受來自總線的數(shù)據(jù)并送到A0A1指定的目的寄存器。/WR/RD/CSA0A14計數(shù)器0CLK0GATE03OUT0CLK1計數(shù)器1計數(shù)器2GATE1OUT1CLK2GATE2> OUT2圖4 8253的結(jié)構(gòu)框圖3、8253的工作方式? 方式0計數(shù)結(jié)束中斷? 方式1 可編程單穩(wěn)? 方式2 連續(xù)負(fù)脈沖發(fā)生器? 方式3 連續(xù)方波發(fā)生器? 方式4 軟件觸發(fā)選通? 方式5硬件觸發(fā)選通本次課程設(shè)計中8253工作在方式3,此方式為可軟、硬件觸發(fā)的方波
16、發(fā)生器,N=Fclk/Tclk, 在本次設(shè)計中,F(xiàn)clK信號為1.193MHZ,輸出信號為100HZ, N為11930。其端口地址為 4043H, 40H 口用于計數(shù)器0, 41H 口用于計數(shù)器1, 42H 口用于計數(shù)器2, 43H 口用于狀態(tài)和控制口,本 次課程設(shè)計只用到 40H和43H兩個端口地址。4、8253的初始化編程8253加電后的工作方式不確定,必須經(jīng)初始化編程后,才能正常工作初始化編程:(1)先寫入控制字(2)再寫入計數(shù)初值工作后,可隨時讀取計數(shù)值,一般先將計數(shù)值鎖存在通道內(nèi)的鎖存器中,然后可分兩次讀取16位的計數(shù)值初始化程序片段:mov al,計數(shù)器控制字mov dx,控制方式
17、端口out dx,almov ax,計數(shù)器初值mov dx,計數(shù)器0端口outdx,al;寫計數(shù)器的初值低字節(jié)部分mov al,ahoutdx,al;寫計數(shù)器計數(shù)初值高字節(jié)部分2.2.2 8255 芯片8255是通用可編程并行接口芯片,具有40個引腳、雙列直插式封裝的大規(guī)模集成電路,采用單一+5V供電,輸入/輸出電平與TTl完全兼容,芯片引腳圖見圖5AD0AD1AD2AD3AD4AD5AD6AD7PA0PA1PA2PA3PA4PA6PA78255SRDSWRA0A1RESETCSPC0 PC1PC2 PC3 PC4 PC5 PC6 PC7PB0 PB1 PB2 PB3 PB4 PB5 PB6
18、PB7圖58255芯片引腳圖引腳簡要介紹:SRD和SWR分別是讀寫信號,A0和A1是端口地址信號,RESET用于復(fù)位,/CS 為片選信號,AD0AD7為與總線數(shù)據(jù)線相接的部分,其他的為 PAD, PB 口和PC 口。1、連接外設(shè)的數(shù)據(jù)端口(1)端口 A : PA0-PA7 (A 組控制)常作數(shù)據(jù)端口使用,功能最強大(2)端口 B: PB0-PB7 (B 組控制)常作數(shù)據(jù)端口使用(3)端口 C: PC4-PC7 (A 組控制),PC0-PC3 (B 組控制)可作數(shù)據(jù)、狀態(tài)或控制端口使用可拆分成兩個4位端口分別輸入或輸出每位可獨立進行輸出控制(位控制)2、8255工作方式(1)方式0:基本輸入輸出
19、方式(不帶聯(lián)絡(luò))適用于無條件傳送和查詢方式的接口電路(2)方式1:選通輸入輸出方式(帶輸入 /輸出聯(lián)絡(luò))適用于查詢和中斷方式的接口電路()方式2:雙向選通方式(同時帶輸入聯(lián)絡(luò)和輸出聯(lián)絡(luò))適用于可雙向傳送數(shù)據(jù)的外設(shè),適用于查詢和中斷方式的接口電路3、8255的編程? 編程:只寫1個方式控制字到控制口。? D7:方式字/復(fù)位字選擇位,'1'時為8255A方式控制字,'0'時為PC口的置/復(fù)位-WORD 格式-可編輯-專業(yè)資料-控制字,當(dāng) D7為1'時,其余各位的含義為:(1) D6D5:A組選擇方式選擇位。00'為方式0, '01'為
20、方式1, '10'為方式2。(2) D2:B組方式選擇位。0'為方式0, '1'為方式1.(3) D4 D& D1、D0:分另 I為 PAD、PC7PC4 口、PB 口、PCA PC0 口輸入/輸出方 式選擇位。0'為輸出,1'為輸入。說明:工作過程中:通過數(shù)據(jù)端口對外設(shè)數(shù)據(jù)進行讀寫本次課設(shè)8255均工作在方式 0,其把PAD、PB口和PC口的高4位、低4位都作為基本輸 入/輸出口。初始化程序片段:mov al,方式控制字mov dx, 端口號 ;如果端口號255,應(yīng)用dx間接尋址out dx,al ;寫入控制寄存器2.2.3 8
21、259 芯片8259是專門用來控制中斷的芯片。它內(nèi)部集成了與中斷控制有關(guān)的所有基本存儲電路,包括中斷請求鎖存、中斷源優(yōu)先級排隊、中斷源識別、中斷源屏蔽、中斷向量號產(chǎn)生等電路,既可以支持程序查詢式中斷,又可以支持向量式中斷,因而8259中斷控制器的功能既強大又靈活。1、8259引腳簡介8259芯片引腳圖見圖 6D1IR0IR1D2IR2D3IR3D4IR4D5IR5D6IR6D7IR78259INTINTAhSP/ENqCSI1RDCAS0?WRCAS1A0CAS2圖6 8259芯片引腳圖引腳說明:IR0IR7用來鎖存8個外設(shè)的中斷t#求狀態(tài),CAS0、CAS0和CAS0用于芯片級聯(lián)時使用,IN
22、T用于向CPU發(fā)出中斷請求信號,INTA用于接CPU中斷允許信號。2、初始化編程在8259開始工作前,用戶必須對8259A進行初始化編程。通過寫入初始化命令字ICW1ICW4對8259進行初始化3、中斷操作編程在8259工作期間,可以隨時向8259寫入操作命令字 OCW1OCW3 ,使之按用戶設(shè)置的新的工作方式進行工作,如用戶可以通過寫 OCW1來選擇屏蔽某些中斷,還可以通過寫操作命令字OCW2發(fā)中斷結(jié)束命令。4、操作方式編程OCW1其格式為:AO D7 ES D5 川 D3 亞 01 DOI1TN6M5M4M3Mt配OCW也可稱為屏蔽操作字,其被寫入8259內(nèi)部的中斷屏蔽寄存器IMR。OCW
23、的8位與IR0IR7相對應(yīng),當(dāng)其某一位為1時,即相應(yīng)IR上的輸入信號被屏蔽。IMR中的內(nèi)容在任何時候都可讀出或 寫入,要訪問奇口地址。OCW2其用于設(shè)置中斷結(jié)束方式和優(yōu)先級循環(huán)方式,要訪問偶口地址。其格式為:175呢D1105LE0I012LIL0OCW3其用于設(shè)置特殊中斷屏蔽方式和程序查詢方式、讀狀態(tài)方式。其格式為:-完整版學(xué)習(xí)資料分享5、初始化程序片段: mov al,inttype mov ah,35hint 21hpush espush bx lea dx,intpr mov cx,seg intpr push ds mov ds,cx mov al,inttype mov ah,25
24、h int 21h pop ds in al,21h and al,0feh out 21h,al;讀取原有中斷向量;原有中斷向量入棧保護;獲取中斷向量偏移量;獲取中斷向量段首址;原有數(shù)據(jù)段基址ds入棧保護;設(shè)置新的中斷號;設(shè)置新的中斷向量;讀取8259中斷;開IR0中斷°01f曲KIS2.2.4 ADC0809 芯片ADC0809是CMOS工藝的8位逐次逼近型 A/D轉(zhuǎn)換器,它由8路模擬開關(guān)、地址鎖存譯碼器、8位A/D轉(zhuǎn)換器及三態(tài)輸出鎖存器構(gòu)成。八通道多路轉(zhuǎn)換器能直接連通8個單端模擬信號中的任何一個。ADC0809芯片的引腳圖如圖 7所示。C匚VREF(-)VREF(+)ADCSA
25、DWRADDCADRDCl IZADDB ADC ADDA ADCCLKEOC0809IN7DB7IN6DB6IN6IN5DB5IN5IM/1DB4IN4 ikioDB3IN3IMODB2IN2IN1DB1IN0DB0-WORD格式-可編輯-專業(yè)資料圖7 ADC0809芯片引腳圖1、主要引腳功能簡介(1) IN0IN7 : 8路模擬信號輸入端,由地址鎖存及譯碼控制單元的3位地址A、B、C進行選通切換。該次課程設(shè)計中只用到了IN0。(2) START : A/D轉(zhuǎn)換啟動控制信號輸入端(3) ALE :地址信號輸入端,START和ALE共同用于A/D轉(zhuǎn)換(4) VREF ( + )和VREF (-
26、):正、負(fù)基準(zhǔn)電壓輸入端(5) OE:輸出允許控制信號輸入端。A/D轉(zhuǎn)換后的數(shù)據(jù)進入三態(tài)輸出數(shù)據(jù)鎖存器,并在 OE的作用下(OE為高電平),通過D7D0將鎖存器的數(shù)據(jù)送出。(6) EOC : A/D轉(zhuǎn)換結(jié)束標(biāo)志信號(7) CLK外部送給ADC0809的時鐘信號2、ADC0809的操作編程mov dx,ADC0809 端口號mov al,0;選擇 0 路,INT0out dx,alcall delay;延時,轉(zhuǎn)換需要一定時間in al,dx;獲取數(shù)值2.2.5鍵盤的設(shè)置1、鍵盤的接口鍵盤的接口 一般分為獨立式和矩陣式。獨立式按鍵就是各按鍵相互獨立、每個按鍵各接一根輸入線,一根輸入線上的按鍵是否按
27、下不 會影響其他輸入線上的工作狀態(tài)。因此,通過檢測輸入線的電平狀態(tài)可以很容易判斷哪個按鍵被按 下了。獨立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單。但每個按鍵需占用一根輸入線,在按鍵數(shù)量較多 時,輸入口浪費大,電路結(jié)構(gòu)顯得很繁雜。故此種鍵盤適用于按鍵較少或操作速度較高的場合。若 采用此方式,各按鍵開關(guān)均采用上拉電阻,這是為了保證在按鍵斷開時,各io 口線有確定的高電平。當(dāng)然如輸入口線內(nèi)部已有上拉電阻,則外電路的上拉電阻可省去。矩陣式鍵盤適用于按鍵數(shù)量較多的場合,它由行線和列線組成,按鍵位于行、列的交叉點上, 一個4*4的行、列結(jié)構(gòu)可以構(gòu)成一個含有16個按鍵的鍵盤。很明顯,在按鍵數(shù)量較多的場合,矩陣鍵盤與
28、獨立式按鍵鍵盤相比,要節(jié)省很多的I/O 口。行、列線分別接到按鍵的兩端。行線通過上拉電阻接到+5V上。平時無按鍵時,行、 列線處于高電平狀態(tài), 而當(dāng)有鍵按下時,行、 列線將導(dǎo)通, 因此行線電平狀態(tài)將由與此行線相連的列線電平?jīng)Q定。按鍵的識別在此課設(shè)中采用掃描法。讓所有 的列線處于低電平,當(dāng)有鍵按下時,按鍵所在的行電平將被拉成低電平,根據(jù)此行電平的變化,便 能判定此行有鍵被按下。為了進一步判定到底哪一列的鍵被按下,可在某一時刻只讓一條列線處于 低電平,而其余所有列線處于高電平。這里采用的是矩陣式按鍵,且采用行掃描法,鍵盤接線圖見圖8反向驅(qū)動電路S3 .S7 八 S11 4 -S15 1I P 0
29、I v Q I O Q0 i 卜圖8鍵盤接線圖-完整版學(xué)習(xí)資料分享WORD格式-可編輯-專業(yè)資料-完整版學(xué)習(xí)資料分享2、鍵盤掃描程序: mov dx,p8255Pbmov al,0 out dx,al inc dxAB:in al,dx and al,0fh cmp al,0fh jz AB mov di ,5 mov cx,0 delay11:loop delay11 dec di jnz delay11 mov bh,0 mov bl,0 mov cx,4 mov ah,0fehAGAIN:mov al,ah mov dx,p8255Pb out dx,al inc dx in al,dx
30、 and al,0fh cmp al,0fh jnz AB1 add bh,4 rol ah,1 loop AGAIN jmp KeyboardScanAB1:mov cx,4 AB3:shr al,1 jc AB2 jmp AB4AB2:inc bl loop AB3AB4:add bh,bl mov al,bh lea bx,asctab xlatmov ah,2 mov dl,al int 21h push dx mov cx,100;行,即PB口輸出全零;pc 口讀值,如果不為 0f則說明是有鍵按下;延時消抖;用于記錄是哪行哪列的鍵被按下了;判斷四次看到底有無鍵按下;PB 口逐行置零;
31、dx已指向pc 口了;al 里是pc 口的狀態(tài);既然到了 AB1,說明已經(jīng)有鍵被按下;這列有鍵按下;判釋放shifang:mov dx,p8255Pb mov al,0 out dx,al inc dxAB5:in al,dxand al,0fh;延時消抖cmp al,0fh jnz AB5 loop shifang mov di,5 mov cx, 0 delay12:loop delay12dec dijnz delay12 pop dx2.2.6 LED數(shù)碼管的設(shè)置1、LED說明LED是7段碼顯示,并且是共陰的,將 8255的PA0-PA7接到鍵盤顯示單元的 KD0-KD7; PC0-P
32、C3 接到KH1-KH4,通過動態(tài)掃描可讓 LED動態(tài)顯示相應(yīng)的信息。此課程設(shè)計使用共陰結(jié)構(gòu),陰極控制端為低電平,數(shù)碼顯示端輸入高電平時發(fā)亮。顯示器的工作方式有靜態(tài)顯示和動態(tài)顯示。所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一個字符時,相 應(yīng)的二極管恒定地導(dǎo)通或截止。優(yōu)點是顯示穩(wěn)定,在發(fā)光二極管導(dǎo)通電流一定的情況下顯示器的亮 度大,在系統(tǒng)運行過程中,僅在需要更新顯示內(nèi)容時CPU執(zhí)行一次顯示更新子程序,大大節(jié)省了CPU的時間,提高CPU的利用率。所謂動態(tài)顯示,就是一位一位地輪流點亮各位顯示器,對于每一位顯示器來說,每隔一段時間點 亮一次。顯示器的亮度與導(dǎo)通電流有關(guān),也與點亮?xí)r間和間隔時間的比例有關(guān)。調(diào)整電流
33、和時間參 數(shù),可實現(xiàn)亮度較高和比較穩(wěn)定的顯示。此課程設(shè)計中使用的是動態(tài)顯示,8255的A 口作為掃描口,經(jīng)反向驅(qū)動器75452接顯示器公共極,B 口作為數(shù)據(jù)口,接到顯示器的各個段。LED驅(qū)動電路見圖9所示圖9 LED顯示模塊的電路2、LED驅(qū)動顯示程序:lea bx,tablelea si,bufferab11: mov al,sixlatmov dx,p8255pa out dx,almov al,bitmov dx,p8255Pb out dx,al mov di,30 mov cx,6000h;查表換碼;A 口用于輸出用于點亮數(shù)碼管的段碼;B 口用于輸出用于選中數(shù)碼管的位選delay:1
34、00P delay dec di jnz delay inc si;延時;顯布卜一單兀里的值shl bit,1 cmp bit,10h jnz ab11;用于4位數(shù)碼管循環(huán)點亮mov bit,1 mov al,0 out dx,al;消隱,以消除亮度不一的問題三、軟件系統(tǒng)設(shè)計3.1 程序流程圖3.1.1 主程序流程圖電子秤系統(tǒng)的主程序流程圖見以下圖io開機初始化N/一按鍵為B?* Y""Flag 置 2單價、重量,送往顯示緩沖區(qū)圖10主程序流程圖3.1.2中斷處理程序流程圖中斷處理程序流程圖見圖11圖11中斷流程圖3.2參數(shù)信息p8253ctrl equ 43h p8253
35、ct0 equ 40h cnt equ 11930定義8253方式字端口定義8253計數(shù)器0端口定義8253的初值(用于產(chǎn)生 100Hz的信號)-WORD 格式-可編輯-專業(yè)資料-p8255ctrl equ 0c803h p8255pa equ 0c800h p8255pb equ 0c801h p8255pc equ 0c802h inttype equ 08h time db 0count dw 0定義8255方式字端口定義8255的PAH定義8255的PB 口定義8255的PC 口定義8號中斷附十狀得1s的時鐘(100*10ms=1s)獲得延時table db 0c0h,0f9h,0a4
36、h,0b0h,99h,92h,82h,0f8h,80h,90h定義 0 至U 9 的段碼表asctab db "0123456789ABR"buffer db 0,0,0,0bit db 1flag db 0weight db 0price db 0amount dw 0定義asctab表定義顯示緩沖區(qū)用于數(shù)碼管位選用于記錄是哪個鍵被按下了定義產(chǎn)品重量定義產(chǎn)品單價定義產(chǎn)品總價;8253p8253ctrl equ 43hp8253ct0 equ 40hcnt equ 11930;8255p8255ctrl equ 0c803h p8255pa equ 0c800h p8255
37、pb equ 0c801h p8255pc equ 0c802h ;8259inttype equ 08h3.3源程序清單端口定義;8253方式字端口;8253計數(shù)器0端口;8253計數(shù)初值端口定義;8255方式字端口;8255PA 口;8255PB 口;8255PC 口中斷向量定義;中斷向量號數(shù)據(jù)域.model small .datatime db 0;獲彳導(dǎo) 1s 的時鐘 100*10ms=1s到9的段碼表表count dw 0;獲得延時table db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h;0asctab db "012345
38、6789ABR"asctab-完整版學(xué)習(xí)資料分享buffer db 0,0,0,0bit db 1flag db 0weight db 0price db 0amount dw 0; 主程序.code.startup用于數(shù)碼管位選用于記錄是哪個鍵被按下了產(chǎn)品重量產(chǎn)品單價產(chǎn)品總價WORD格式-可編輯-專業(yè)資料8253初始化mov al,36h;計數(shù)器0, 16位,方式3,二進制計數(shù)mov dx,p8253ctrl;43hout dx,al;寫入控制方式字mov ax,cnt;寫入計數(shù)初值,先與低8位,再與局 8位mov dx,p8253ct0out dx,almov al,ahout
39、dx,al;8255初文口化mov dx,p8255ctrlmov al,89h;PA輸出PB輸出PC輸入(PC4-PC7也設(shè)定為輸入)out dx,al;8259初文口化mov al,inttype;讀取原中中斷向量mov ah,35hint 21hpush es;原有中斷向量入棧保護push bxlea dx,intpr;獲取中斷向量偏移量mov cx,seg intpr;獲取中斷向量段首址push ds;原有數(shù)據(jù)段基址ds入棧保護mov ds,cxmov al,inttype;設(shè)置新的中斷號mov ah,25h;設(shè)置新的中斷向量int 21hpop dsin al,21h;讀取8259中
40、斷and al,0feh;開IR0中斷out 21h,al;sti;開總中斷scan:call KeyboardScan;調(diào)用鍵盤掃描程序cmp dl,'R';如果按下的是R鍵,則熄滅LED數(shù)碼管,程序退出jz Exitcmp flag,1;如果flag為1,則跳到ahandle處進行處理jz ahandlecmp flag,2jz bhandle;如果flag為2,則跳到bhandle處進行處理cmp dl,'A'如果按T的鍵是 A鍵,則使flag為1jz tAcmp dl,'B'如果按T的鍵是 B鍵,則使flag為2jz tBmov buff
41、er,。;當(dāng)不是A、B、R鍵按下的時候,只顯示物品的重量jmp quittA: mov flag,1-完整版學(xué)習(xí)資料分享WORD格式-可編輯-專業(yè)資料jmp quit tB: mov flag,2 jmp quit ahandle:cmp dl,'B'當(dāng)flag為1的時候,數(shù)碼管會一直顯示單價和重量jnz qw mov flag,2;必須在這里進行判斷是否B鍵被按下了,才能再做其他操作jmp quit qw:sub dl,30h;因為數(shù)碼管的個數(shù)不夠,所以只讓單價可以為1、2、3cmp dl,1 jz tX cmp dl,2 jz tX cmp dl,3 jz tX jmp q
42、uit tX:mov price,dlmov buffer,dl;單價送往buffer單元,用于后面的顯示jmp quit bhandle:cmp dl,'A'當(dāng)flag為2的時候,數(shù)碼管會一直顯示單價和總價jnz we;必須在這里進行判斷是否A鍵被按下了,才能再做其他操作mov flag,1 jmp quit we:mov ah,0 mov al,weight mov bl,price mul bl mov amount,axcall Convert;總價送往 buffer+1,buffer+2, 和 buffer+3 單元quit:jmp scan ;Exit:cli;cl
43、ose總中斷,關(guān)中斷之后就不會進行刷新了,數(shù)碼管不再亮了pop dx pop ds mov al,inttype;還原原來的中斷向量mov ah,25h int 21h .exit 0 ; 中斷服務(wù)程序intpr: push ax push bx push cx push dx push di push sipush bppush sp;眾多寄存器基址進棧保護cmp flag,2;用于設(shè)置當(dāng)flag為2,即B鍵接下后,總價顯示到還原的時間jnz qqinc countcmp count,200jnz qqmov flag,0mov count,。qq:inc time;中斷服務(wù)程序,進入 10
44、0次中斷的時間為1scmp time,100;100*10ms=1sjnz iexitcmp flag,2;當(dāng)顯示總價的時候不進行 AD采樣jz notsamplecall Samplenotsample:mov time,。iexit: call Refresh;調(diào)用數(shù)碼管刷新程序mov al,20h ;發(fā)EOI中斷結(jié)束命令out 20h,al;20h為8259的偶口pop sppop bppop sipop dipop dxpop cxpop bxpop ax;眾多寄存器基址出棧iret;返回到主程序中; 采樣程序-Sample:mov dx,0c840h;ADC0809 端口號mov a
45、l,0;選才i 0路,INT0out dx,almov cx,3000;延時loop $in al,dx;獲取產(chǎn)品重量mov weight,al;用weight記錄重量值call Convert;調(diào)用轉(zhuǎn)換函數(shù)ret; 轉(zhuǎn)換Convert:cmp flag,2;當(dāng)flag為2時表示要轉(zhuǎn)換的是總價,否則進行的是重量的轉(zhuǎn)換jnz clmov ax,amountjmp c2c1:mov al,weightmov ah,0;將00FF表示的重重轉(zhuǎn)換至U buffer中去,已用以顯不-完整版學(xué)習(xí)資料分享c2:mov bl,100div blmov buffer+1,almov al,ahmov ah,0m
46、ov bl,10;重量的百位或總價的百位div blmov buffer+2,almov buffer+3,ah;十位;個位ret;LED數(shù)碼管刷新子程序Refresh:lea bx,tablelea si,bufferab11: mov al,sixlatmov dx,p8255pa out dx,almov al,bitmov dx,p8255Pb out dx,almov di,30 mov cx,6000h;查表換碼;A 口用于輸出用于點亮數(shù)碼管的段碼;B 口用于輸出用于選中數(shù)碼管的位選delay:100P delay dec di jnz delay inc si;延時;顯布卜一單兀
47、里的值shl bit,1 cmp bit,10h jnz ab11;用于4位數(shù)碼管循環(huán)點亮mov bit,1 mov al,0 out dx,al;消隱,以消除亮度不一的問題ret; 鍵盤掃描子程序KeyboardScan:mov dx,p8255Pb mov al,0 out dx,al;行,即PB 口輸出全零inc dxAB:in al,dx and al,0fh cmp al,0fh;pc 口讀值,如果不為 0f則說明是有鍵按下jz AB mov di ,5 mov cx,0-WORD格式-可編輯-專業(yè)資料delay11:loop delay11;延時消抖dec dijnz delay11mov bh,0;用于記錄是哪行哪列的鍵被按下了mov bl,0mov cx,4;判斷四次看到底后無鍵按卜mov ah,0feh;PB 口逐行置零AGAIN:mov al,ah mov dx,p8255Pb out dx,al inc dx;dx已指向pc 口了in al,dx;al 里是pc 口的狀態(tài)and al,0fhcmp al,0fhjnz AB1add bh,4rol ah,1loop AGAINjmp Keyb
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氣候變化下農(nóng)業(yè)生態(tài)系統(tǒng)的適應(yīng)性調(diào)整研究進展
- 物聯(lián)網(wǎng)技術(shù)在智能家居生態(tài)圈的應(yīng)用前景
- 國慶節(jié)秋天主題活動方案
- 現(xiàn)代辦公樓電力維護成本深度剖析
- 現(xiàn)代物流技術(shù)與醫(yī)療行業(yè)互補與共進
- Unit 4 Friends Forever Understanding ideas 說課稿-2024-2025學(xué)年高中英語外研版(2019)必修第一冊001
- 2023八年級物理上冊 第四章 在光的世界里第6節(jié) 神奇的眼睛說課稿(新版)教科版
- 6《觀察土壤》說課稿-2023-2024學(xué)年科學(xué)四年級下冊教科版
- 2023二年級語文上冊 第八單元 24 風(fēng)娃娃說課稿 新人教版
- 18《文言文二則 鐵杵成針》(說課稿)2023-2024學(xué)年-統(tǒng)編版四年級語文下冊
- 北京地鐵13號線
- 塑料成型模具設(shè)計(第2版)江昌勇課件1-塑料概述
- 產(chǎn)業(yè)園EPC總承包工程項目施工組織設(shè)計
- 方形補償器計算
- 為加入燒火佬協(xié)會致辭(7篇)
- 兒科重癥監(jiān)護病房管理演示文稿
- 甲基異丁基甲酮化學(xué)品安全技術(shù)說明書
- 條形基礎(chǔ)的平法識圖課件
- 秘書實務(wù)完整版課件全套ppt教程
- 新版神經(jīng)系統(tǒng)疾病的病史采集和體格檢查ppt
- 義務(wù)教育《歷史》課程標(biāo)準(zhǔn)(2022年版)
評論
0/150
提交評論