




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上微型計算機技術(shù) 課程設(shè)計 指導(dǎo)教師: 班 級: 姓 名: 學(xué) 號: 班內(nèi)序號: 課設(shè)日期: _目 錄36一、課程設(shè)計題目:點陣顯示系統(tǒng)電路及程序設(shè)計利用匯編語言與微型計算機技術(shù)課程中所學(xué)的可編程接口芯片8253、8255A、8259設(shè)計一個基于微機控制的點陣顯示系統(tǒng)。二、設(shè)計目的1通過本設(shè)計,使學(xué)生綜合運用匯編語言與微型計算機技術(shù)、數(shù)字電子技術(shù)等課程的內(nèi)容,為今后從事計算機檢測與控制工作奠定一定的基礎(chǔ)。2掌握接口芯片8253、8255A、8259等可編程器件、譯碼器74LS138、8路同相三態(tài)雙向總線收發(fā)器74LS245、點陣顯示器件的使用。3學(xué)會用匯編語言編寫一個較
2、完整的實用程序。4掌握微型計算機技術(shù)應(yīng)用開發(fā)的全過程,包括需求分析、原理圖設(shè)計、元器件選用、布線、編程、調(diào)試、撰寫報告等步驟。三、設(shè)計內(nèi)容1點陣顯示系統(tǒng)啟動后的初始狀態(tài)在計算機顯示器上出現(xiàn)菜單:dot matrix display system1.left shift display2.up shift display3.s stop4.Esc Exit2點陣顯示系統(tǒng)運行狀態(tài)按計算機光標(biāo)鍵,點陣逐列向左移動并顯示:“微型計算機技術(shù)課程設(shè)計,點陣顯示系統(tǒng),計科11302班,陳嘉敏,彭曉” 。按計算機光標(biāo)鍵,點陣逐行向上移動并顯示:“微型計算機技術(shù)課程設(shè)計,點陣顯示系統(tǒng),計科11302班,陳嘉敏,
3、彭曉” 。按計算機光標(biāo)s鍵,點陣停止移動并顯示當(dāng)前字符。3結(jié)束程序運行狀態(tài)按計算機Esc鍵,結(jié)束點陣顯示系統(tǒng)運行狀態(tài)并顯示“?!?。四設(shè)計所需器材與工具1一塊實驗面包板(內(nèi)含時鐘信號1MHz或2MHz)。 2可編程芯片8253、8255、74LS245、74LS138各一片,16×16點陣顯示器件一片。3導(dǎo)線若干。4示波器、萬用表、常用工具等共用(從實驗室現(xiàn)借現(xiàn)還)。五、設(shè)計思路 1利用74LS138設(shè)計地址譯碼電路,8255端口地址:300H303H,8253端口地址:304H307H。274LS245用于總線和8253、8255之間的雙向傳輸和隔離。3利用面包板上時鐘(1MHz或2
4、MHz)和8253設(shè)計一個1毫秒定時電路,將定時信號(1毫秒方波)接到總線的IRQ2或IRQ10送給8259控制點陣左移或上移。4選擇8255的PA0、PA4、PA5和PB4、PB5、PB6、PB7,7個位控制點陣顯示器件行和列的數(shù)據(jù)串行輸入、輸入脈沖、鎖存脈沖(并行輸出脈沖)。六、設(shè)計步驟1.電路原件介紹(1)74LS245數(shù)據(jù)總路線緩沖器 圖6-1-1 74LS245的功能表 圖6-1-2圖6-1-3(2)74LS138 圖6-1-4標(biāo)準(zhǔn)地址譯碼電路 圖6-1-58255CS對應(yīng)的地址為300H303H, 8253CS對應(yīng)的地址為304H307H。簡化后的非標(biāo)準(zhǔn)地址譯碼電路 圖6-1-6(
5、3).8253定時/計數(shù)器 圖6-1-7(4).8255A 圖6-1-8(5).點陣顯示器件 圖6-1-9 圖6-1-10 附4、課程設(shè)計所用器件 圖6-1-12 附5、點陣生成圖 圖6-1-13 圖6-1-14 圖6-1-15 圖6-1-16 圖6-1-17 圖6-1-18 圖6-1-19 圖6-1-20開始2.流程圖初始化8253、8255A及8259芯片,選擇計數(shù)器1、2,輸出端口A、B,工作方式0顯示主界面信息,點陣顯示出字模,停止不移動中斷服務(wù)程序,不斷掃描鍵盤,等待有鍵按下(1.2.3.4)并執(zhí)行相應(yīng)服務(wù)程序按鍵4啟動Esc功能,調(diào)用退出程序,點陣顯示“?!保⒔Y(jié)束顯示。按鍵3啟動
6、StopDisplay功能,調(diào)用停止程序,點陣停止移動并顯示當(dāng)前字符按鍵2啟動UpShift功能,調(diào)用上移程序,并顯示在點陣上按鍵1啟動LeftShift功能,調(diào)用左移程序,并顯示在點陣上3.電路圖 圖6-3-1注:(1)電路箱總芯片上已集成8259芯片,實際連接時8253的OUT2直接接到總芯片的IRQ10處;(2)實際連接時,是由8255A芯片的PA0、PA4、PA5、PB4、PB5、PB6、PB7控制點陣顯示屛;PA0R1、PA4SCK、PA5LATCH、PB4A、PB5B、PB6C、PB7D。GND和EN/OE接地,+5V接電源正極。4.正確運用所給器件布線,搭接硬件電路初始接線圖 圖
7、6-4-1 測試中發(fā)現(xiàn)8255無法正常工作,檢查得知面包板底下有短路,重新申請新的面包板,更改部分線路,最后得到線路圖如下,并測試成功。最終接線圖及測試 圖6-4-25.詳細(xì)匯編代碼DATA SEGMENT微db 12H, 10H, 12H, 10H, 2AH, 90H, 4AH, 0A4H, 8AH, 0BEH, 1FH, 0C4H,20H, 24H, 7FH, 0A8H, 0A0H, 28H, 2FH, 28H, 29H, 10H, 29H, 50H, 29H, 0A8H, 29H, 28H, 30H, 46H, 20H, 84H型 db 01H, 04H, 7FH, 84H, 12H,
8、24H, 12H, 24H, 12H, 24H, 0FFH, 0A4H, 12H, 24H, 12H, 24H, 12H, 04H, 23H, 14H, 41H, 08H, 7FH, 0FCH, 01H,00H, 01H, 04H, 0FFH, 0FEH, 00H, 00H計 db 00H, 40H, 20H, 40H, 10H, 40H, 10H, 40H, 00H, 40H, 00H, 44H, 0F7H, 0FEH, 10H, 40H, 10H, 40H, 10H, 40H, 10H, 40H, 12H, 40H, 14H, 40H, 18H, 40H, 10H, 40H, 00H, 4
9、0H算 db 20H, 80H, 3EH, 0FCH, 49H, 20H, 9FH, 0F0H, 10H, 10H, 1FH, 0F0H, 10H, 10H, 1FH, 0F0H, 10H, 10H, 1FH, 0F0H, 08H, 24H, 0FFH, 0FEH, 08H, 20H, 08H, 20H, 10H, 20H, 20H, 20H機 db 10H, 00H, 10H, 10H, 11H, 0F8H, 11H, 10H, 0FDH, 10H, 11H, 10H, 31H, 10H, 39H, 10H, 55H, 10H, 51H, 10H, 91H, 10H, 11H, 10H, 1
10、1H, 12H, 12H, 12H, 14H, 0EH, 18H, 00H技 db 10H, 40H, 10H, 40H, 10H, 48H, 13H, 0FCH, 0FCH, 40H, 10H, 40H, 10H, 40H, 13H, 0F8H, 1AH, 08H, 31H, 10H, 0D1H, 10H, 10H, 0A0H, 10H, 40H, 10H, 0B0H, 51H, 0EH, 26H, 04H術(shù) db 01H, 00H, 01H, 40H, 01H, 30H, 01H, 10H, 01H, 04H, 0FFH, 0FEH, 01H, 00H, 03H, 80H, 05H, 40
11、H, 09H, 20H, 11H, 10H, 21H, 0EH, 0C1H, 04H, 01H, 00H, 01H, 00H, 01H, 00H課 db 00H, 08H, 43H, 0FCH, 22H, 48H, 22H, 48H, 03H, 0F8H, 02H, 48H, 0E2H, 48H, 23H, 0F8H, 20H, 40H, 2FH, 0FEH, 20H, 0E0H, 29H, 50H, 32H, 48H, 24H, 4EH, 08H, 44H, 00H, 40H程 db 08H, 04H, 1DH, 0FEH, 0F1H, 04H, 11H, 04H, 11H, 04H, 0F
12、FH, 04H, 11H, 0FCH, 38H, 00H, 37H, 0FEH, 54H, 20H,50H, 28H, 91H, 0FCH, 10H, 20H, 10H, 24H, 17H, 0FEH, 10H, 00H設(shè) db 01H, 0F0H, 21H, 10H, 11H, 10H, 11H, 10H, 01H, 10H, 02H, 0EH, 0F4H, 00H, 13H, 0F8H, 11H, 08H, 11H, 10H, 10H, 90H, 10H, 0A0H, 14H, 40H, 18H, 0B0H, 13H, 0EH, 0CH, 04H計 Db 00H, 40H, 20H, 40
13、H, 10H, 40H, 10H, 40H, 00H, 40H, 00H, 44H, 0F7H, 0FEH, 10H, 40H, 10H, 40H, 10H, 40H, 10H, 40H, 12H, 40H, 14H, 40H, 18H, 40H, 10H, 40H, 00H, 40HDou0 db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 18H, 00H, 18H, 00H, 10H, 00H, 20H, 00H, 00H, 00H,
14、 00H, 00H點 db 02H, 00H, 02H, 00H, 02H, 08H, 03H, 0FCH, 02H, 00H, 02H, 10H, 3FH, 0F8H, 20H, 10H, 20H, 10H, 20H, 10H, 3FH, 0F0H, 00H, 00H, 29H, 10H, 24H, 0C8H, 44H, 44H, 80H, 04H陣 db 00H, 80H, 78H, 84H, 4FH, 0FEH, 50H, 80H, 50H, 0A0H, 61H, 20H, 51H, 28H, 4BH, 0FCH, 48H, 20H, 48H, 20H, 68H, 24H, 57H, 0
15、FEH, 40H, 20H, 40H, 20H, 40H, 20H, 40H, 20H顯 db 00H, 10H, 1FH, 0F8H, 10H, 10H, 10H, 10H, 1FH, 0F0H, 10H, 10H, 10H, 10H, 1FH, 0F0H, 14H, 50H, 44H, 44H, 34H, 4CH, 14H, 50H, 04H, 40H, 04H, 44H, 0FFH, 0FEH, 00H, 00H示 db 00H, 10H, 3FH, 0F8H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 04H, 0FFH, 0FEH, 01H, 00H, 0
16、1H, 00H, 09H, 20H, 19H, 18H, 21H, 0CH, 41H, 04H, 01H, 00H, 05H, 00H, 02H, 00H系 db 00H, 38H, 7FH, 0C0H, 04H, 00H, 04H, 10H, 08H, 20H, 3FH, 0C0H, 01H, 00H, 02H, 20H, 04H, 10H, 3FH, 0F8H, 01H, 08H, 09H, 20H, 09H, 10H, 11H, 08H, 25H, 08H, 02H, 00H統(tǒng) db 10H, 80H, 10H, 40H, 20H, 48H, 27H, 0FCH, 48H, 80H, 0
17、F9H, 10H, 12H, 08H, 27H, 0FCH, 41H, 24H, 0F9H, 20H, 41H, 20H, 01H, 20H, 1AH, 22H, 0E2H, 22H, 44H, 1EH, 08H, 00HDou2 db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 18H, 00H, 18H, 00H, 10H, 00H, 20H, 00H, 00H, 00H, 00H, 00HZhang Db 09H, 00H, 0FDH
18、, 08H, 09H, 08H, 09H, 10H, 09H, 20H, 79H, 40H,41H, 04H, 47H, 0FEH, 41H, 40H, 79H, 40H, 09H, 20H, 09H, 20H, 09H, 10H, 09H, 4EH, 51H, 84H, 21H, 00H strmenu DB 'dot matrix display system',0AH,0DH,'1.','L',' left shift display',0AH,0DH,'2.','U',' up sh
19、ift display',0AH,0DH,'3.S stop',0AH,0DH,'4.Esc Exit',0AH,0DH,0AH,0DH,'$'OUTSET DW 0000H;用于存放字符首地址,增加程序可移植性。 COUNT DB 35;用于指示漢字的個數(shù)StopFlag DB 00H;暫停標(biāo)志位:用于輔助實現(xiàn)暫停功能。(1)如果為0收到中斷后,可以MoveStep;(2)否則不行。Status DB 00H;輔助實現(xiàn)第一種中斷。;為了實現(xiàn)“利用中斷來刷屏”,需要用到兩個變量。IndexOfLine DW 0006H;行標(biāo),用來指示當(dāng)前
20、刷屏從第幾行開始。用于輔助實現(xiàn)ShowUpward范圍是0count*16-1。當(dāng)超過的時候,應(yīng)該使其等于00IndexOfWord DB 00H;漢字的指針(只能放256個漢字嘍),輔助實現(xiàn)ShowLeftward的MoveStep DB 00H;以每個漢字為中心,的位移量,用于Left。:出于我們點陣的數(shù)據(jù)格式,其范圍在016之間。;用于恢復(fù)原中斷向量INT0A_OFF DW(?)INT0A_SEG DW(?) ;Test:用于輔助做測試的變量。Times DB 00hDATA ENDSCODE SEGMENT 'CODE'ASSUME DS:DATA,CS:CODE;-S
21、tartSTART:MOV DX,DATAMOV DS,DXLEA DX,wEI ;設(shè)置字符的開始位置MOV OUTSET,DXCALL InI8255CALL Ini8253MOV AX,3572H ;獲取原中斷向量 INT 21H MOV INT0A_OFF,BX ;保存原中斷向量 MOV BX,ES MOV INT0A_SEG,BX CLI ;關(guān)中斷 MOV AX,2572H MOV DX,SEG MoveStepLeft ;設(shè)置新的中斷向量 PUSH DS MOV DS,DX MOV DX,OFFSET MoveStepLeft INT 21H POP DS STI ;開中斷 IN A
22、L,0A1H ;打開IRQ10 AND AL,0FBH OUT 0A1H,AL IN AL,21H ;打開IRQ2 AND AL,0FBH OUT 21H,ALLEA DX,strmenuMOV AH,09HINT 21H;刷屏。NOTEND:MOV AH,0BH ;檢查是否有鍵按下 INT 21H INC AL JNZ NOTEND2 ; 若無鍵按下,則跳過判斷 MOV AH,08H ;如有Q或q鍵按下,則程序退出 INT 21H CMP AL,'s'當(dāng)鍵入為's'的時候,停止LED滾動JZ JStopCMP AL,'S'JZ JStopCMP
23、 AL,1BH;當(dāng)鍵入為Esc的時候,退出程序JZ JEXITCMP AL,'u'當(dāng)鍵入U的時候,調(diào)用Up:(1)改變Status變量=2;(2)改變StopFlag;(3)改變中斷表向量為“MoveLeftStep",從而實現(xiàn)中斷移位JZ JUpCMP AL,'U'JZ JUpCMP AL,'l'當(dāng)鍵入L的時候,調(diào)用Left:(1)改變Status變量=2;(2)改變StopFlag;(3)改變中斷向量表為“MoveLeftStep",從而實現(xiàn)中斷移位JZ JLeftCMP AL,'L'JZ JLeft CM
24、P AL,'Q' JZ JEXITCMP AL,'q' JZ JEXITNOTEND2:CMP Status,01HJZ JLeftShow;以向左的方式,刷屏CMP Status,02HJZ JUpShow;以向上的方式刷屏;CALL DELAYCALL DELAYJMP NOTENDJStop:CALL StopJMP NOTENDJLeft:CALL LeftJMP NOTENDJUp:CALL UPJMP NOTENDJEXIT:CALL EXITJLeftShow:CALL ShowLeftward;CALL DELAY;?也許對于cpu位的位移,這個
25、delay最好是放在MoveStepLeft函數(shù)的內(nèi)部;CALL MoveStepLeft;-如果中斷沒起作用,那就用CUP來位移。MOV AH,2MOV DL,'L'INT 21HJMP NOTENDJUpShow:CALL ShowUpward;CALL DELAY;CALL MoveStepUp;-如果中斷沒起作用,那就用CUP來位移。MOV AH,2MOV DL,'U'INT 21HJMP NOTEND;-根據(jù)鍵盤輸入,改變中斷向量表,從而選擇是向上,還是向下移動。-Left:;(1)把中斷處理程序“向左左位”的中斷程序放入中斷向量表中。;(2)同時將s
26、tatus置為1,表示的是以向左的方式刷屏;(3)置暫停位為00h;(4)開始循環(huán)。PUSH AXPUSH DXMOV AH,2MOV DL,'L'INT 21H CLI ;關(guān)中斷 MOV AX,2572H MOV DX,SEG MoveStepLeft ;設(shè)置新的中斷向量 PUSH DS MOV DS,DX MOV DX,OFFSET MoveStepLeft INT 21H POP DS STI ;開中斷 IN AL,0A1H ;打開IRQ10 AND AL,0FBH ; OUT 0A1H,AL IN AL,21H ;打開IRQ2 AND AL,0FBH OUT 21H,A
27、LMOV Status,1;(2)MOV StopFlag,00H;(3)置暫停位POP DXPOP AXRETUp:;(1)把中斷處理程序“向上位移”的中斷程序放入中斷向量表中。;(2)同時將status置為,表示的是以向左的方式刷屏;(3)置暫停位為00h;(4)開始循環(huán)。PUSH AXPUSH DXMOV AH,2MOV DL,'U'INT 21H CLI ;關(guān)中斷 MOV AX,2572H MOV DX,SEG MoveStepUp ;設(shè)置新的中斷向量 PUSH DS MOV DS,DX MOV DX,OFFSET MoveStepUp INT 21H POP DS S
28、TI ;開中斷 IN AL,0A1H ;打開IRQ10 AND AL,0FBH ; OUT 0A1H,AL IN AL,21H ;打開IRQ2 AND AL,0FBH OUT 21H,AL ;開中斷MOV Status,2;(2)MOV StopFlag,00H;置暫停位POP DXPOP AXRETStop:PUSH AXPUSH DXMOV AH,2MOV DL,'S'INT 21HMOV StopFlag,01H;置暫停位POP DXPOP AXRET;-LED顯示的邏輯部分-;-SendWord-SendWord:;計算并送出一行16位數(shù)據(jù)。;這個數(shù)據(jù)放在AX中。PUS
29、H AXPUSH BXPUSH CXPUSH DXMOV CX,16cicleSendWord:;測試部分PUSH AXPUSH DXMOV DX,8000H;MOV DX,0001HAND DX,AXSHR DX,15ADD DX,30HMOV AH,2HINT 21HPOP DXPOP AX;1:通過8255的c4口把一位數(shù)據(jù)給G1PUSH AXMOV DX,303HTEST AX,8000H;如果數(shù)據(jù)位是0的話,將c0置1;如果數(shù)據(jù)位是1的話,將c0置0JZ SetOne;將c0置0MOV AL,BOUT DX,ALJMP GoOnSetOne:;將C0置1MOV AL,BOUT DX,
30、ALGoOn:;2:以下代碼是為了實現(xiàn)一個"移位脈沖"MOV AL,B;使得C6變成0(低電平);同時不改變數(shù)據(jù)輸入位OUT DX,ALMOV AL,B;使得C6變成1(高電平);同時不改變數(shù)據(jù)輸入位OUT DX,ALPOP AXSHL AX,1;SHR AX,1DEC CXJNZ cicleSendWordPOP DXPOP CXPOP BXPOP AXRET;-ShowLeftWard-ShowLeftWard:PUSH SIPUSH DXPUSH CXPUSH BXPUSH AX;1:根據(jù)IndexOfWord2;2:MoveStep決定一個位的位移;3:當(dāng)Stop為
31、0時,每“刷完一次屏',MoveStep要移動+;否則不移動;4:當(dāng)MoveStep=16時,IndexOfWord2+;5:當(dāng)IndexOfWord2=NumOfCharacter-1時,IndexOfWord2歸零:因為”索引是從0開始的嘛“。MOV SI,OUTSETMOV AL,32MUL IndexOfWordADD SI,AXMOV CX,16;來一個信號刷一次屏Oneline:;CALL DELAY;Left代碼的關(guān)鍵:;(1)CX作為一個臨時的“偏移變量使用”;(2)把四個字節(jié)(兩個字)的數(shù)據(jù)拼接在一起,并把最終結(jié)果放在AX中。PUSH CX ;MOV AH,SIMOV
32、 AL,SI+1MOV CL,MoveStepSHL AX,CL;MOV BH,SI+32;下一個字的對應(yīng)行;MOV BL,SI+33CALL GetNextLeftWord;-取下一個字對應(yīng)行的十六位,放在BX中MOV CL,16SUB CL,MoveStepSHR BX,CLOR AX,BXPOP CXADD SI,2;換行;testCALL Enter;(1)移位輸出了16位數(shù)據(jù)CALL SendWord;2)釋放鎖存,先0后1.采用置位、復(fù)位控制字MOV AL,BMOV DX,303H;call delayOUT DX,ALMOV AL,BOUT DX,AL;(3)行選-需要測試選中那
33、一行MOV AL,CL;SHL AL,1DEC AL;?MOV DX,302HOUT DX,ALDEC CXJNZ OnelinePOP AXPOP BXPOP CXPOP DXPOP SI;JMP EXITRET;-GetNextLeftWord-GetNextLeftWord:;取下一字的時候,要考慮一種特殊情況,及當(dāng)SI已經(jīng)指向最后一個字的時候,下一個16位,應(yīng)該取自第一個字PUSH AXPUSH SIPUSH DXMOV AL,IndexOfWordINC ALCMP AL,COUNTJNZ GetNextLeftGetFistLeft:MOV DX,OUTSETMOV AL,32MU
34、L IndexOfWordADD DX,AXMOV AX,SISUB AX,DXMOV SI,OUTSETADD SI,AXMOV BH,SIMOV BL,SI+1;TESTPUSH DXMOV DL,' 'MOV AH,2HINT 21HPOPDXMOV AX,BXCALL SendWordJMP EndGetLeftWordGetNextLeft:MOV BH,SI+32;下一個字的對應(yīng)行MOV BL,SI+33EndGetLeftWord:POP DXPOP SIPOP AXRET;-MoveStepLeft-MoveStepLeft:;1:根據(jù)IndexOfWord2以
35、及MoveStep2確定SI。;2:MoveStep決定一個位的位移;3:當(dāng)Stop為0時,每“刷完一次屏',MoveStep要移動+;否則不移動;4:當(dāng)MoveStep=16時,IndexOfWord2+;5:當(dāng)IndexOfWord2=COUNT時,IndexOfWord2歸零:因為”索引是從0開始的嘛“。;當(dāng)刷完一次屏之后,MoveStep2要變化。;(1)當(dāng)已經(jīng)按下暫停建的時候,則不前移動;(2)當(dāng)移動超過=16的時候PUSH AXCLIMOV AL,01HTEST StopFlag,ALJNZ EndStep;如果等于1,則MoveSteip不前移動INC MoveStepM
36、OV AL,16CMP MoveStep,ALJNZ EndStep;如果EndMoveStep!=16跳過4;MOV MoveStep,00HINC IndexOfWordMOV AL,COUNTCMP IndexOfWord,ALJNZ EndStep;如果IndexOfStep2!=COUNT,則跳過5MOV IndexOfWord,00HEndStep: MOV AL,62H ;發(fā)中斷結(jié)束命令 MOV DX,0A0H OUT DX,AL ;向從片8259發(fā)EOI命令 OUT 020H,AL ;向主片8259發(fā)EOI命令 STI ;開中斷 POP AX IRETRET;-ShowUpWa
37、rd-;1:用到變量:IndexOfLine;:(1)用來指示當(dāng)前刷屏從第幾行開始。(2)范圍是0count*16-1。(3)當(dāng)超過的時候,應(yīng)該使其等于00(4)用來對SI初始化;2:SI:;:SI動態(tài)變化(顯示十六行數(shù)據(jù)過程中),當(dāng)超過的count*16-1這個地方所對應(yīng)的地址的時候,使其“重新指向開頭”。;ShowUpWard:PUSH SIPUSH DXPUSH CXPUSH BXPUSH AXMOV SI,OUTSETMOV AX,2MUL IndexOfLine ADD SI,AXMOV CX,16;來一個信號刷一次屏AnotherLine:MOV AH,SIMOV AL,SI+1A
38、DD SI,2;(1)換行;(2)如果換行以后>=range=32*count行對應(yīng)的指針,令其從新指向開頭,并繼續(xù)+進(jìn)行行掃PUSH AX;定義一個臨時變量MOV AX,0MOV AL,32MUL COUNTMOV BX,OUTSETADD BX,AXCMP BX,SIJNZ Continue;如果等于range,則reset;ResetMOV SI,OUTSETContinue:POP AX;TestCALL Enter;(1)移位輸出了16位數(shù)據(jù)-以AX傳送數(shù)據(jù)CALL SendWord;2)釋放鎖存,先0后1.采用置位、復(fù)位控制字MOV AL,BMOV DX,303H;call
39、delayOUT DX,ALMOV AL,BOUT DX,AL;(3)行選-需要測試選中那一行MOV AL,CL;SHL AL,1DEC AL;?MOV DX,302HOUT DX,ALDEC CX;用于實現(xiàn)16行數(shù)據(jù)的輸出JNZ AnotherLinePOP AXPOP BXPOP CXPOP DXPOP SI;JMP NOTENDRET;-MoveStepUp-MoveStepUp:PUSH AX;testPUSH DXCLIINC TimesMOV AH,2MOV DL,TimesADD DL,30HINT 21HMOV AH,2MOV DX,IndexOfLineADD DL,30HI
40、NT 21HCMP StopFlag,1JZ ContinueMoveUpADD IndexOfLine,1;(1)換行;(2)如果換行以后>=range=32*count行對應(yīng)的指針,令其從新指向開頭,并繼續(xù)+進(jìn)行行掃M(jìn)OV AX,16MUL COUNTCMP AX,IndexOfLineJNZ ContinueMoveUp;ResetMOV IndexOfLine,00HContinueMoveUp: MOV AL,62H ;發(fā)中斷結(jié)束命令 MOV DX,0A0H OUT DX,AL ;向從片8259發(fā)EOI命令 OUT 020H,AL ;向主片8259發(fā)EOI命令 STI ;開中斷
41、 POP DX POP AX IRET;JMP NOTENDRET;-輔助函數(shù)-INI8253:;對8253C1和C2進(jìn)行初始化PUSH DXPUSH AXMOV DX,307H;初始化8253,307H為8253控制端口地址MOV AL,B ;計數(shù)器1,方式3OUT DX,AL;將初始控制字輸出到控制端口MOV DX,305H;計數(shù)器1MOV AX,900;先讀低8位,OUT DX,ALMOV AL,AH;再讀高8位OUT DX,ALMOV DX,307H;再給8253寫控制字MOV AL,B;計數(shù)器2,方式3OUT DX,ALMOV DX,306H;計數(shù)器2MOV AX,900;先讀低8位
42、,OUT DX,ALMOV AL,AH;再讀高8位OUT DX,ALPOP AXPOP DXRETINI8255:;8255初始化PUSH DXPUSH AX MOV DX,303H;初始化8255 MOV AL,80H;A口輸出 OUT DX,AL;將初始控制字輸出到控制端口MOV DX,300H ;A端口的地址MOV AL,000HOUT DX,AL MOV DX,302H;C口地址 ? MOV AL,000H OUT DX,ALPOP AXPOP DXRETEXIT: MOV AX,2572H ;恢復(fù)中斷向量 MOV DX,INT0A_SEG PUSH DS MOV DS,DX MOV
43、DX,INT0A_OFF INT 21H POP DS IN AL,0A1H ;屏蔽IRQ10 OR AL,04H OUT 0A1H,AL IN AL,21H ;屏蔽IRQ2 OR AL,04H OUT 21H,AL MOV AX,4C00H ;程序退出 INT 21H Enter: PUSH AX PUSH DXMOV AH,2MOV DX,0AHINT 21HMOV AH,2MOV DX,0DHINT 21HPOP DXPOP AXRETDELAY PROC PUSH CX PUSH BX MOV BX,0FFFHLOOP2:MOV CX,0FFFHLOOP1:LOOP LOOP1 DEC BX JNZ LOOP2 POP BX POP CX RET DELAY ENDPCODE ENDSEND START6.實驗過程中的主要難點(自己遇到的)及解決思路和辦法主要難點:利用proteus畫電路圖時,知道每個芯片怎么連,但是需要多個芯片同時連接時,之間的連線會有些不確定;在試驗箱上連線時,沒能提前好好布局,連線很混亂很難看清楚,尤其在測試芯片有問題需要更改的時候,很難分清楚;不會編寫核心點陣顯示程序及功能調(diào)用子程序;調(diào)試改寫程序時,會遇到測試燈和電路不工作的
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 航空航天復(fù)合材料 課件知識點3 聚合物基復(fù)合材料制備工藝
- 社會穩(wěn)定測試題及答案
- 儲備獸醫(yī)面試題及答案
- 折花技能培訓(xùn)
- 四肢骨折護(hù)理常規(guī)
- 縱膈腫瘤切除術(shù)診療規(guī)范
- 2025年中國噴射式干手機行業(yè)市場全景分析及前景機遇研判報告
- 2025年中國尼龍釣魚線行業(yè)市場全景分析及前景機遇研判報告
- 美容店入職培訓(xùn)
- 磚瓦行業(yè)安全培訓(xùn)
- 宣傳片視頻拍攝投標(biāo)方案(技術(shù)方案)
- 德勤-問題解決策略與實踐-客戶服務(wù)培訓(xùn)手冊課件
- 2025年山東產(chǎn)權(quán)交易集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 《浙江市政預(yù)算定額(2018版)》(第七冊-第九冊)
- DB32-T 4878-2024 居住區(qū)供配電設(shè)施建設(shè)標(biāo)準(zhǔn)
- 2025年河北交通投資集團(tuán)公司招聘筆試參考題庫含答案解析
- 藥品配送包裝及運輸方案
- 經(jīng)濟(jì)師考試知識產(chǎn)權(quán)高級經(jīng)濟(jì)實務(wù)新考綱題庫詳解(2025年)
- 新課標(biāo)(水平三)體育與健康《籃球》大單元教學(xué)計劃及配套教案(18課時)
- 醫(yī)院培訓(xùn)課件:《失血性休克的急救護(hù)理》
- 2024年北京市中考生物真題卷及答案解析
評論
0/150
提交評論