




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
微機接口課程設計PAGEPAGE15合肥學院計算機科學與技術系課程設計報告2008~2009學年第一學期課程微型計算機原理與接口技術課程設計名稱數(shù)碼閃爍顯示器學生姓名賈琪學號0604032006專業(yè)班級網(wǎng)工(2)班指導教師張向東2009年1月數(shù)碼閃爍顯示器一、題義分析及解決方案1.題義需求分析1)設計內(nèi)容編寫一個程序,以邏輯開關置數(shù),從八個七段LED數(shù)碼管的輸出,使四個LED數(shù)碼管依次閃爍左移顯示從輸入口的邏輯開關讀入的四位數(shù),閃爍頻率為每秒一次。改進后功能為自右向左八個LED數(shù)碼管依次閃爍左移顯示從輸入口的邏輯開關讀入的四位數(shù)。2)設計分析根據(jù)設計內(nèi)容的要求可分析得出:即要求從邏輯開關讀入的四位數(shù)字,依次左移從四個LED數(shù)碼管上顯示出來,而且顯示的時間間隔要求為一秒??梢赃x用8255A作為8位數(shù)字顯示電路和微處理器的接口芯片。2.問題的提出及解決方法1)硬件部分提出問題首先是輸入和輸出問題,輸入該選什么?選鍵盤還是邏輯開關?為什么?其次是輸入接口和輸出接口的選擇。為什么選擇8255A而不選擇8279或者其他的芯片。解答問題首先輸入設備選擇的是邏輯開關而沒有選擇小鍵盤的原因如下:表1-1比較1器件名稱特點小鍵盤鍵盤(Keyboard)是常用的輸入設備,鍵盤通過一根螺旋形的電纜與主機相聯(lián),該電纜有屏蔽,其內(nèi)芯有電源(+5V)、地線和兩根雙向信號線,電纜長度約為183cm,鍵盤內(nèi)還有一單片微處理器,負責控制整個鍵盤的工作,故結構相對復雜,一般價格為50多元。邏輯開關只有兩種狀態(tài),開關閉合表示輸入0,開關斷開表示輸入1,4位開關可以置0~15的數(shù)。結構簡單,使用方便,價格便宜,高電平:+5V、低電平:0V經(jīng)過比較得知:我們選擇數(shù)字開關電路作為輸入設備較方便。其次本課題選擇的輸出設備是七段LED顯示器,而沒有選擇LCD,原因如下:表1-2比較2LED與LCD相比,LED在亮度,功耗可視角度和刷新速率等方面更具有優(yōu)勢,其最顯著的特點是使用壽命長,光電轉換效能高,綠色環(huán)保。LCDLCD占用空間小,功耗低,低輻射,能降低視覺疲勞,但會出現(xiàn)閃爍現(xiàn)象。2)軟件部分初始化8255A的端口地址設置初值,8255A是一種通用可編程并行I/O接口芯片,可由程序來改變其功能,通用性強,使用靈活,通過8255A,CPU可直接同外設相連接,是應用最廣的并行I/O接口芯片。二、硬件設計1.8255芯片:并行輸入/輸出接口。1)8255引腳圖:8255是可編程并行接口,內(nèi)部有3個相互獨立的8位數(shù)據(jù)端口,即A口、B口和C口。三個端口都可以作為輸入端口或輸出端口。A口有三種工作方式:即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作為聯(lián)絡信號使用。8255的工作只有當片選CS有效時才能進行。而控制邏輯端口實現(xiàn)對其他端口的控制。2)CPU接口(數(shù)據(jù)總線緩沖器和讀/寫控制邏輯)數(shù)據(jù)總線緩沖器這是一個8位雙向三態(tài)緩沖器,三態(tài)是由讀/寫控制邏輯控制的。這個緩沖器是8255A與CPU數(shù)據(jù)總線的接口。所有數(shù)據(jù)的輸入/輸出,以及CPU用輸出指令向8255A發(fā)出的控制字和用輸入指令從8255A讀入的外設狀態(tài)信息,都是通過這個緩沖器傳遞的。讀/寫控制邏輯它與CPU的6根控制線相連,控制8255A內(nèi)部的各種操作??刂凭€RESET用來使8255A復位。和地址線A1及A0用于芯片選擇和通道尋址??刂凭€用來決定8位內(nèi)部和外部數(shù)據(jù)總線上信息傳送的方向,即控制把CPU的控制命令或輸出的數(shù)據(jù)送到相應的通道,或把狀態(tài)信息或輸入數(shù)據(jù)送到CPU。8255A的讀/寫控制邏輯的作用,是從CPU的地址和控制總線上接受輸入的信號,轉變成各種命令送到A組或B組控制電路進行相應的操作。3)8255A的引腳信號與外設相連的PA7~PA0:A口數(shù)據(jù)信號線。PB7~PB0:B口數(shù)據(jù)信號線。PC7~PC0:C口數(shù)據(jù)信號線。與CPU相連的RESET:復位信號。當此信號來時,所有寄存器都被清除。同時三個數(shù)據(jù)端口被自動置為輸入端口。D7~D0:它們是8255A的數(shù)據(jù)線和系統(tǒng)總線相連。CS:片選信號。在系統(tǒng)中,一般根據(jù)全部接口芯片來分配若于低位地址(比如A5、A4、A3)組成各種芯片選擇碼,當這幾位地址組成某一個低電平,于8255A被選中。只有當有效時,讀信號寫才對8255進行讀寫。RD:讀信號。當此信號有效時,CPU可從8255A中讀取數(shù)據(jù)。WR:寫信號。當此信號有效時,CPU可向8255A中寫入數(shù)據(jù)。A1、A0:端口選擇信號。8255A內(nèi)部有3個數(shù)據(jù)端口和1個控制端口,共4個端口。規(guī)定當A1、A0:為00時,選中A端口;為01時,選中B端口;為10時,選中C端口;為11時,選中控制口。8255的基本操作:圖2-18255的基本操作2.8255A的技術參數(shù)表2-18255A的技術參數(shù)標識符最小最大測試條件輸入低電平(VIL)-0.5V0.8V輸入高電平(VIH)2.0V5V輸出低電平(VOL)DB0.45VIOL=2.5mA輸出低電平(VOL)PER0.45VIOL=1.7mA輸出高電平(VOH)DB2.4VIOH=-400μA輸出高電平(VOH)PER2.4VIOH=-200μA驅動電流-1.0mA-4.0mAREXT=750Ω,VEXT=1.5V供應電流120mAIIL(INPUTLOADCURRENT±10μAVIN=0V~5VIOFL(Outputfloatleakage±10μAVOUT=0.45~5V其中PER為peripheralport的縮寫,輸入最低電壓:min-0.5V,max0.8V,輸入最高電壓:2.0V。輸出最低電壓:0.45V輸出最高電壓:2.4V。8255A的方式控制字:圖2-28255A的方式控制字1)方式0的工作特點這種方式通常不用聯(lián)絡信號,不使用中斷,三個通道中的每一個都有可以由程序選定作為輸入或輸出。其功能為:①兩個8位通道:通道A、B。兩個四位通道:通道C高4位和低四位;②任何一個通道可以作輸入/輸出;③輸出是鎖存的;④輸入是不鎖存的;⑤在方式0時各個通道的輸入/輸出可有16種不同的組合。2)選擇器件LEDLED在本設計中的作用LED發(fā)光二級管(Light-EmittingDiode),在本設計中采用7段數(shù)字發(fā)光二級管,做為終端顯示。LED功能分析物理構造:LED發(fā)光二級管,采用砷化鎵、鎵鋁砷、和磷化鎵等材料制成,其內(nèi)部結構為一個PN結,具有單向導電性。工作原理:當在發(fā)光二極管PN結上加正向電壓時,PN結勢壘降低,載流子的擴散運動大于漂移運動,致使P區(qū)的空穴注入到N區(qū),N區(qū)的電子注入到P區(qū),這樣相互注入的空穴與電子相遇后會產(chǎn)生復合,復合時產(chǎn)生的能量大部分以光的形式出現(xiàn)。數(shù)字成像:將七個發(fā)光管進行組合,排列成數(shù)字圖形8,再根據(jù)需要控制七個管的亮與滅,即可顯示出定義數(shù)字。LED技術參數(shù)發(fā)光二極管的壓降一般為1.5~2.0V,其工作電流一般取10~20mA為宜。發(fā)光二極管的發(fā)光顏色有:紅色光、黃色光、綠色光、紅外光等。發(fā)光二極管應用電路有四種,即直流驅動電路、交流驅動電路、脈沖驅動電路、變色發(fā)光驅動電路。LED顯示管段選碼編碼表表2-2LED顯示管段選碼編碼表數(shù)字DPgfedcba二進制編碼(字形)0001111113FH10000001103H2010110115BH3010011114FH40110011066H5011011016DH6011111017DH70000011107H8011111117FH9011011116FHA0111011177HB011111007CHC0011100169HD010111105EHE0111100179HF0111000171HLED數(shù)字顯示原理:如下圖為LED數(shù)碼管及其框圖圖2-3LED數(shù)字顯示原理上面兩圖分別為外形圖和原理圖,當七段數(shù)碼管點亮其中幾段可顯示數(shù)字和簡單的西文字符,將七段數(shù)碼管負極連接到一起稱為公共端,而發(fā)光二極管的正極則分別由引腳引出,便于控制哪個發(fā)光二極管點亮,在右圖中如果在COM端接低電平,而在其他引出線上施加不同的電平,則對高電平的發(fā)光二極管就會點亮,由于將8個發(fā)光二極管負極全部連接在一起,稱為共陰極數(shù)碼管,還有將8個發(fā)光二極管的正極連接在一起,故稱之為共陽極數(shù)碼管,本次實驗用的數(shù)碼管需動態(tài)掃描顯示,其接口電路將所有數(shù)碼管的筆畫控制段與a~h同名端連在一起,接到一個并行端口,每個公共極COM端由獨立的I/O線控制,CPU向字模輸出口送出字形碼時,所有數(shù)碼管接收到相同的字形碼,究竟哪個數(shù)碼管顯示,取決于每個LED的COM端,所謂動態(tài)掃描,就是顯示一位信息時,其他位不能顯示,必須采用分時方法,輪流控制COM端。3.開關1)開關的作用:本次設計需要用八位開關置數(shù),故要用到開關,輸入0時,開關閉合,輸入1時,開關斷開。2)開關功能的分析:如圖所示,開關未合時,與5V電壓相連,輸入1,當合上之后,開關就將A口接地,也就輸入為0,4位開關可以置0~15的數(shù)。3)邏輯開關及其編碼編碼數(shù)編碼數(shù)字編碼數(shù)字00000100080001110019001021010A001131011B010041100C010151101D011061110E011171111F圖2-48路二進制開關開關高電平:+5V、低電平:0V4.硬件總邏輯圖及其說明圖2-5硬件總邏輯圖及其說明三、控制程序設計1.控制程序設計思路說明本實驗是利用控制程序通過改變外接開關控制量來控制燈的閃爍量及閃爍次序,8255A設置為方式0,因此關鍵在于通過8255A將PC口所連接的開關控制寫入8255A做初值。在實驗中8255A的PA和PB口都用做輸出,PC口用作輸入數(shù)據(jù),同開關引腳相連,提供數(shù)據(jù)輸入;PA口用作段選碼,同LED數(shù)碼管段選碼(JP42)引腳相連提供段驅動器的7段代碼信息;PB口用作位選碼,同LED數(shù)碼管位選碼相連(JP41),提供數(shù)位驅動器的選擇信號.2.程序流程圖開始設置8255工作方式:C口輸入,A、B口輸出等待輸入判斷PC6是否為1NY判斷PC7是否為1NY開始輸入個位數(shù)N判斷PC4是否為1,PC5是否為0Y個位數(shù)輸入完畢,輸入十位數(shù)N判斷PC4是否為1,PC5是否為1Y十位數(shù)輸入完畢,輸入百位數(shù)N判斷PC4是否為0,PC5是否為1Y百位數(shù)輸入完畢,輸入千位數(shù)N判斷PC4是否為0,PC5是否為0Y等待輸出N判斷PC7是否為1Y輸入完畢,顯示輸出N判斷PC6是否為0Y寄存器清零,等待輸入結束圖3-1硬件邏輯圖3.控制程序 .MODEL TINY PCIBAR3 EQU 1CH ;8位I/O空間基地址(它就是實驗儀的基地址,也為DMA&32BITRAM板卡上的8237提供基地址)Vendor_ID EQU 10EBH ;廠商ID號Device_ID EQU 8376 ;設備ID號 .STACK 100 .DATAssegcodedb00111111b ;0 db00000110b ;1 db01011011b ;2 db01001111b ;3 db01100110b ;4 db01101101b ;5 db01111101b ;6 db00000111b ;7 db01111111b ;8 db01101111b ;9 db01110111b ;A db01111100b ;b db00111001b ;C db01011110b ;d db01111001b ;E db01110001b ;F IO_Bit8_BaseAddress DW ? msg0 DB 'BIOS不支持訪問PCI$'msg1 DB '找不到StarPCI9052板卡$'msg2 DB '讀8位I/O空間基地址時出錯$' COM_ADD DW 00F3H ;控制口偏移量PA_ADD DW 00F0H ;PA口偏移量PB_ADD DW 00F1H ;PB口偏移量PC_ADD DW 00F2H ;PC口偏移量 .codestart: movax,@data movds,ax nop callinitpci callmodifyaddress ;根據(jù)PCI提供的基地址,將偏移地址轉化為實地址 movdx,com_add ;8255控制端口地址,(DX)=34F3 moval,89h ;(AL)=89H=10001001B:設置8255的工作方式:A口、B口均用于輸出且都工作于方式0,C口用于輸入。 outdx,al;讀取個位數(shù):reset1: ;若PC4=0,循環(huán)等待 movdx,pc_add inal,dx testal,10H ;開關量是否為:00010000 jzreset1 andal,0fh ;屏蔽高四位 movbx,offsetssegcode xlat ;字節(jié)轉換指令 mov[si],al ;讀取十位數(shù):reset2: ;若PC4=1,循環(huán)等待 movdx,pc_addinal,dx testal,20H ;開關量是否為:00110000 jzreset2 andal,0fh ;屏蔽高四位 movbx,offsetssegcode xlat ;字節(jié)轉換指令 mov[si+1],al;讀取百位數(shù):reset3: ;若PC4=0,循環(huán)等待 movdx,pc_addinal,dxmovbl,altestal,10h ;開關量是否為:00100000 jnzreset3 moval,bl andal,0fh ;屏蔽高四位 movbx,offsetssegcode xlat ;字節(jié)轉換指令 mov[si+2],al;讀取千位數(shù):reset4: ;若PC4=1,循環(huán)等待 movdx,pc_addinal,dxmovbl,al testal,20H jnzreset4 moval,bl andal,0fh movbx,offsetssegcode xlat mov[si+3],al movah,11111110b;;(AH)=11111110B,用于位碼選擇,先從最右邊顯示disp1: movdx,pc_add inal,dx testal,40h jzreset1disp2:;內(nèi)循環(huán),用于同時顯示四位數(shù) movbl,ah;BL=11111110B rolah,1 movbh,ah ;BH=11111101B movcx,80hLED: moval,[si] movdx,pa_add outdx,al moval,bl movdx,pb_add outdx,al calldelay1 moval,[si+1] movdx,pa_add outdx,al moval,bh movdx,pb_add outdx,al calldelay1pushbx moval,[si+2] movdx,pa_add outdx,al rolbh,1 moval,bh movdx,pb_add outdx,al calldelay1 jmpQi9disp3: jmpdisp1 ;輔助跳轉Qi9: moval,[si+3] movdx,pa_add outdx,al rolbh,1 moval,bh movdx,pb_add outdx,al calldelay1popbx deccx jnzLED;左移延遲時間選擇 movdx,pc_add inal,dx testal,80h jzQi5 calldelay jmpQi1Qi5: calldelay2Qi1: loopdisp3delayproc pushax movah,0ffh movdx,1000 int21h popax delayendpdelay2proc pushax movah,0ffh movdx,500 int21h popax delay2endpdelay1proc pushcx pushax movcx,6000h ;用于顯示延時lop: looplop ;刷新 moval,0ffh;(AL)=11111111B movdx,pb_add;通過8255A的B口(用于位選),控制哪個燈顯示 outdx,al popax popcx retdelay1endpInitPCI PROC NEAR MOV AH,00H MOV AL,03H INT 10H ;清屏 MOV AH,0B1H MOV AL,01H INT 1AH CMP AH,0 JZ InitPCI2 LEA DX,msg0 InitPCI1: MOV AH,09H INT 21H JMP Exit InitPCI2: MOV AH,0B1H MOV AL,02H MOV CX,Device_ID MOV DX,Vendor_ID MOV SI,0 INT 1AH JNC InitPCI3 ;是否存在StarPCI9052板卡 LEA DX,msg1 JMP InitPCI1 InitPCI3: MOV DI,PCIBAR3 MOV AH,0B1H MOV AL,09H INT 1AH ;讀取該卡PCI9052基地址 JNC InitPCI4 LEA DX,msg2 JMP InitPCI1 InitPCI4: AND CX,0FFFCH MOV IO_Bit8_BaseAddress,CX RET InitPCI ENDPModifyAddress PROC NEAR ADD COM_ADD,CX ADD PA_ADD,CX ADD PB_ADD,CX ADD PC_ADD,CX RET ModifyAddress ENDPExit: MOV AH,4CH INT 21H END START 四、上機調(diào)試過程1.硬件按照預習報告上的硬件總邏輯圖接線,注意輸入線與位選擇線不能接反,否則顯示在LED顯示器上數(shù)字會倒置,連線松動常導致LED顯示器上顯示不出實驗結果,所以硬件調(diào)試時一定要確保連線的緊度。8255A的片選線CS8255接線路板上DRirer的CS2,8255的PB口和PA口接LED的位選和段選,本實驗所用的硬件主要是實驗箱及其集成的兩個四位LED顯示器。共有四個七段LED顯示器,采用的是共陰極接法,七段LED的共陰極接地,CE端接低電平,七段LED的陽極接到八個模擬開關上。改變開關量,則七段LED顯示出相應的數(shù)字,硬件調(diào)試成功。2.軟件調(diào)試軟件調(diào)試上一開始用了匯編語言的編譯環(huán)境,后來用了數(shù)據(jù)段,并將各個端口的地址定義成常量在數(shù)據(jù)段中,數(shù)碼轉換表的定義也放在了數(shù)據(jù)段中,編譯成功。3.聯(lián)機調(diào)試程序控制中的邏輯判斷有誤導致執(zhí)行控制程序時只能顯示初值,從而使得緩沖區(qū)中的數(shù)據(jù)沒有改變。先連接緊硬件連線,然后不斷地改變邏輯判斷語句,針對七段LED顯示器上的錯誤數(shù)字,對照數(shù)碼轉換表調(diào)整邏輯語句,直到七段LED顯示出了正確的結果,調(diào)試成功。4.調(diào)試結果及問題的提出數(shù)碼管顯示數(shù)字不對,經(jīng)檢查是實驗箱上的邏輯開關PC1有問題。五、設計結果分析及問題討論1.課程設計結果及分析1)課程設計結果:通過在八位開關上置數(shù),實現(xiàn)在LED上的自左向右顯示,顯示間隔為一秒。然后在老師的要求下,增加了實現(xiàn)自右向左和顯示四位數(shù)的功能。改變開關的置數(shù),實現(xiàn)輸入模擬量的改變,七段LED顯示管顯示的數(shù)字隨之改變,最小值為0,最大值為F;8255A通過獲取輸入模擬量的值,然后通過譯碼器和鎖存器將之轉換成數(shù)字量,并通過七段LED顯示管顯示出來;四位七段LED采用動態(tài)刷新顯示方式;程序中用SI指向顯示緩沖區(qū),以寄存器間接訪問的方式操作數(shù)據(jù),節(jié)約了程序運行時間。2)設計結果分析:8255A通過獲取輸入模擬量的值,然后通過譯碼器和鎖存器將之轉換成數(shù)字量,并通過七段LED顯示管顯示出來2.問題討論1)輸入問題:實驗中把PC7、PC6、PC5、PC4設置為控制條件,首先將PC6、PC7置1,PC4、PC5置0,處于等待輸入狀態(tài)。接著實現(xiàn)個位數(shù)的輸入的,它是通過對PC4、PC5組合10狀態(tài)來判斷決定是否結束個位數(shù)的輸入的,具體的實現(xiàn)是:若輸入完畢,撥上PC4表示輸入個位數(shù)完畢,此時個位數(shù)已經(jīng)輸入并被存放在相應的寄存器里了。十位數(shù)、百位數(shù)、千位數(shù)的輸入類似:先置數(shù)再分將PC5、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度大數(shù)據(jù)處理履行合同安全保密協(xié)議
- 二零二五年度電子商務運營咨詢費合同
- 二零二五年度環(huán)保廣告投放與綠色營銷合同匯編
- 二零二五年度供應鏈金融終止協(xié)議通知函
- 二零二五年度變壓器制造技術培訓與轉讓協(xié)議
- 二零二五年度農(nóng)村安置房租賃保證金及退還合同
- 2025年度校企深度合作人才培養(yǎng)項目協(xié)議書
- 建筑公司勞務合同(2025年度)勞務人員工資及福利調(diào)整協(xié)議
- 二零二五年度山東省新建商品房買賣合同預售與社區(qū)教育服務協(xié)議
- 二零二五年度高利貸借款合同金融科技賦能發(fā)展
- 2024年上海市中考語文真題卷及答案解析
- 校園直飲水機供貨安裝及售后服務方案
- 廢氣處理系統(tǒng)改造及廢水處理系統(tǒng)改造項目可行性研究報告
- 小學全體教師安全工作培訓
- 大學物業(yè)服務月考核評價評分表
- 現(xiàn)代家政導論-課件 1.1.2認識家政學起源與發(fā)展
- 期末模擬測試卷(試卷)2024-2025學年六年級數(shù)學上冊人教版
- 2024屆護士資格考試必考基礎知識復習題庫及答案(共170題)
- 工業(yè)大數(shù)據(jù)算法賽項實際操作部分評分細則變更說明
- 小學生防性侵安全教育主題班會課件
- DBT29-305-2024 天津市裝配式建筑評價標準
評論
0/150
提交評論