版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p><b> 課程設計</b></p><p> 課 程:微機原理與接口技術設計</p><p><b> 專業(yè)班級: </b></p><p> 學 號:xxxxxx</p><p> 姓 名: xx</p><p><b&g
2、t; 設計題目及要求</b></p><p> 模擬計算器運算(加,減,乘,括號)</p><p> 1.通過小鍵盤做加、減、乘、括號運算。七段數(shù)碼管顯示器作輸入數(shù)據(jù)和結(jié)果數(shù)據(jù)的顯示。 </p><p><b> 2.按鍵規(guī)定: </b></p><p> ?。?)數(shù)字用小鍵盤0~9輸入。 </
3、p><p> ?。?)功能按鍵設定: </p><p><b> “A”——“+” </b></p><p><b> “B”——“-” </b></p><p><b> “D”——“*” </b></p><p> “E”——“括號” </
4、p><p><b> “F”——“=” </b></p><p> “C”——開始運算(包括撤消運算),屏幕顯示“0”。 </p><p><b> 3.運算要求: </b></p><p> ?。?)輸入一原始數(shù)據(jù),顯示器跟隨顯示。 </p><p> ?。?)按“+”、
5、“-”、“*”或“括號”時,顯示器內(nèi)容不變。 </p><p> ?。?)再輸入數(shù)據(jù)時,顯示器跟隨顯示。 </p><p> ?。?)按“=”時,顯示器顯示最終結(jié)果數(shù)據(jù)。 </p><p> ?。?)按“C”時,屏幕顯示“0”。 </p><p> (6)需要考慮運算的優(yōu)先級問題。 </p><p> ?。?)可以只
6、考慮正整數(shù)運算,不考慮負數(shù)和實數(shù)運算。 </p><p> 注:輸入數(shù)據(jù)時,若超出顯示范圍則不響應超出部分。在計算結(jié)果超出顯示范圍時,則顯示“F”。</p><p><b> 設計思想</b></p><p> 調(diào)用鍵盤掃描子程序不斷掃描鍵盤是不是有輸入,如果沒有就一直掃描,如果有就停止掃描,完成輸入,并將輸入的數(shù)字通過調(diào)用顯示子程序顯示
7、到LED顯示器上。利用匯編的程序核對輸入鍵的數(shù)值,通過調(diào)用加,減,乘,括號,子程序?qū)崿F(xiàn)一位十進制數(shù)以內(nèi)的及加、減、乘以及括號法運算。運算完成后將運算的結(jié)果儲存并顯示到LED顯示器上。</p><p><b> 功能流程圖</b></p><p><b> N</b></p><p><b> Y</b
8、></p><p> Y N</p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b&g
9、t; N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y
10、</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> 結(jié)果討論及心得</b></p><p> 分到這個課設題目第一反應是比較簡單,但仔細一思考有沒多大頭緒,又感覺挺復雜,尤其是實現(xiàn)括號運算一點思路都
11、沒有。后來經(jīng)過網(wǎng)上找相關資料和隊友討論漸漸有了思路。經(jīng)過一個星期的反復實驗終于完成了這次課設,在實驗箱上可以完成一位數(shù)的加減乘以及括號運算。這次課設中遇到很多問題,讓我看到了自己的很多不足比如匯編能力不足,對芯片不了解等等。同時這次課設讓我鞏固了所學的課本知識,提高了動手實踐能力和團隊合作能力,自己感覺收獲還是很大的。</p><p> 附錄:實驗代碼(完整的源程序)</p><p>
12、 .MODELTINY</p><p> COM_8255EQU0273H;8255控制口</p><p> PA_8255EQU0270H</p><p> PB_8255EQU0271H</p><p> PC_8255EQU0272H</p><p> .STACK100
13、</p><p><b> .DATA</b></p><p> Z1 DB 8 DUP(?)</p><p> bufferDB8 DUP(?);8個字節(jié)顯示緩沖區(qū)</p><p> SEG_TABDB0C0H,0F9H,0A4H,0B0H, 99H, 92H, 82H,0F
14、8H</p><p> DB080H, 90H, 88H, 83H,0C6H,0A1H, 86H, 8EH,0FFH</p><p><b> .CODE</b></p><p> START:MOVAX,@DATA</p><p> MOVDS,AX</p><p>
15、MOVES,AX</p><p><b> NOP</b></p><p> CLD;0->DF, 地址自動遞增</p><p> MOVDX,COM_8255</p><p> MOVAL,89H</p><p> gg:OUTDX,AL;PA、PB輸出
16、,PC輸入</p><p> LEADI,buffer</p><p> MOVAL,10H</p><p> MOVCX,08H</p><p> REPSTOSB</p><p><b> CALLDIR</b></p><p> MAI
17、N3:LEADI,buffer</p><p> MAIN2:CALLkeyi</p><p> CMP AL,0AH ;+</p><p><b> JZ e3</b></p><p> CMP AL,0DH ;*</p><p><b> JZ
18、Q3</b></p><p> CMP AL,0CH ;=</p><p><b> JZ gg </b></p><p> CMP AL,0BH ;-</p><p><b> JZ E4</b></p><p> CMP AL,0
19、EH ;()</p><p><b> JZ E5</b></p><p><b> QQ:STOSB</b></p><p> QQQ: CALLDIR</p><p> CMPDI,offset buffer+8</p><p> JNZ
20、MAIN2</p><p><b> JMPMAIN3</b></p><p><b> e3:JMP Q1</b></p><p><b> E4:JMP Q6</b></p><p> E5:JMP Q7</p><p> Q3:CA
21、LL KEYI</p><p> CMP AL,0AH</p><p><b> JZ Q1</b></p><p> CMP AL,0DH</p><p><b> JZ Q3</b></p><p> CMP AL,0CH</p><p>
22、;<b> JZ gg</b></p><p> CMP AL,0BH</p><p><b> JZ E7</b></p><p> CMP AL,0EH</p><p><b> JZ Q5B</b></p><p><b>
23、STOSB</b></p><p><b> CALL DIR</b></p><p> CMP DI,OFFSET BUFFER+8</p><p><b> MOV BL,AL</b></p><p> LEA SI,BUFFER</p><p>&l
24、t;b> LODSB</b></p><p><b> MUL BL</b></p><p> LEA DI,BUFFER</p><p><b> STOSB</b></p><p><b> MOV BL,AL</b></p>&l
25、t;p><b> CALL KEYI</b></p><p><b> JMP F</b></p><p><b> E8:JMP gg</b></p><p><b> E7:JMP Q6</b></p><p> Q5B:JMP Q5A
26、</p><p> Qx:CALL KEYI</p><p> CMP AL,0AH</p><p><b> JZ Q1</b></p><p> CMP AL,0DH</p><p><b> JZ Q3</b></p><p> CM
27、P AL,0CH</p><p><b> JZ E8</b></p><p> CMP AL,0BH</p><p><b> JZ Q6</b></p><p> CMP AL,0EH</p><p><b> JZ M3</b></
28、p><p><b> STOSB</b></p><p><b> CALL DIR</b></p><p> CMP DI,OFFSET BUFFER+8</p><p><b> MOV BL,AL</b></p><p> LEA SI,BU
29、FFER+4</p><p><b> LODSB</b></p><p><b> MUL BL</b></p><p> LEA DI,BUFFER</p><p><b> STOSB</b></p><p><b> MOV
30、BL,AL</b></p><p><b> CALL KEYI</b></p><p><b> JMP F</b></p><p> M3:JMP Q5A</p><p><b> SA:JMP S9</b></p><p>
31、Q1:CALLkeyi</p><p><b> STOSB</b></p><p><b> CALLDIR</b></p><p> CMPDI,offset buffer+8</p><p> S1:CALL KEYI</p><p> CMP AL,0
32、EH</p><p><b> JZ R</b></p><p> CMP AL,0DH</p><p><b> JZ S</b></p><p> LEA DI,BUFFER+3</p><p><b> STOSB</b></p&g
33、t;<p> LEA SI,BUFFER</p><p><b> LODSB</b></p><p><b> MOV BL,AL</b></p><p> LEA SI,BUFFER+1</p><p><b> LODSB</b></p>
34、;<p><b> ADD AL,BL</b></p><p> LEA DI,BUFFER</p><p><b> STOSB</b></p><p> MOV BL,AL </p><p><b> JMP DY</b></p>&
35、lt;p><b> QC:JMP Q3</b></p><p><b> Q6:JMP Q2</b></p><p><b> Q7:JMP Q5</b></p><p> S:CALL KEYI</p><p><b> MOV BL,AL</
36、b></p><p> LEA SI,BUFFER+1</p><p><b> LODSB</b></p><p><b> MUL BL</b></p><p> LEA DI,BUFFER+1</p><p><b> STOSB</b&
37、gt;</p><p><b> JMP S1</b></p><p> DY:LEA SI,BUFFER+3</p><p><b> LODSB</b></p><p> F:CMP AL,0AH</p><p><b> JZ Q1</b>
38、;</p><p> CMP AL,0BH</p><p><b> JZ Q2</b></p><p> CMP AL,0DH</p><p><b> JZ QC</b></p><p><b> JMP QQ2</b></p>
39、<p><b> M1:JMP e3</b></p><p><b> M2:JMP Qx</b></p><p> Q5A:JMP Q56</p><p><b> M4:JMP gg</b></p><p><b> M5:JMP E4&l
40、t;/b></p><p><b> M6:JMP E5</b></p><p><b> R:</b></p><p> LEA DI,BUFFER+3</p><p><b> STOSB</b></p><p> LEA SI,BU
41、FFER</p><p><b> LODSB</b></p><p><b> MOV BL,AL</b></p><p> LEA SI,BUFFER+1</p><p><b> LODSB</b></p><p><b> A
42、DD AL,BL</b></p><p> LEA DI,BUFFER</p><p><b> STOSB</b></p><p><b> MOV BL,AL</b></p><p> LEA DI,BUFFER+4</p><p><b>
43、 STOSB </b></p><p><b> CALLkeyi</b></p><p> CMP AL,0AH</p><p><b> JZ M1</b></p><p> CMP AL,0DH</p><p><b> JZ M2&
44、lt;/b></p><p> CMP AL,0CH</p><p><b> JZ M4</b></p><p> CMP AL,0BH</p><p><b> JZ M5</b></p><p> CMP AL,0EH</p><p&
45、gt;<b> JZ M6</b></p><p> Q2:CALLkeyi</p><p><b> STOSB</b></p><p><b> CALLDIR</b></p><p> CMPDI,offset buffer+8</p>&l
46、t;p> S3:CALLkeyi</p><p> CMP AL,0EH</p><p><b> JZ R2</b></p><p> CMP AL,0DH</p><p><b> JZ S2</b></p><p> LEA DI,BUFFER+3&
47、lt;/p><p><b> STOSB</b></p><p> LEA SI,BUFFER+1</p><p><b> LODSB</b></p><p><b> MOV BL,AL</b></p><p> LEA SI,BUFFER&l
48、t;/p><p><b> LODSB</b></p><p><b> SUB AL,BL</b></p><p> LEA DI,BUFFER</p><p><b> STOSB</b></p><p><b> MOV BL,AL
49、</b></p><p><b> JMP DY</b></p><p> S2:CALL KEYI</p><p><b> MOV BL,AL</b></p><p> LEA SI,BUFFER+1</p><p><b> LODSB&
50、lt;/b></p><p><b> MUL BL</b></p><p> LEA DI,BUFFER+1</p><p><b> STOSB</b></p><p><b> JMP S3</b></p><p><b>
51、 SH:JMP SA</b></p><p><b> SC:JMP S</b></p><p><b> SB:JMP R</b></p><p><b> Q8:JMP Q1</b></p><p><b> Q9:JMP Q3</b&
52、gt;</p><p><b> QA:JMP gg</b></p><p><b> QB:JMP Q2</b></p><p><b> SJ:JMP SB</b></p><p> R2:LEA DI,BUFFER+3</p><p>&l
53、t;b> STOSB</b></p><p> LEA SI,BUFFER+1</p><p><b> LODSB</b></p><p><b> MOV BL,AL</b></p><p> LEA SI,BUFFER</p><p><
54、;b> LODSB</b></p><p><b> SUB AL,BL</b></p><p> LEA DI,BUFFER</p><p><b> STOSB</b></p><p><b> MOV BL,AL</b></p>
55、<p><b> JMP DY</b></p><p><b> JMP MAIN3</b></p><p> QQ2: MOV AL,BL</p><p> MOV AL,10H</p><p> LEA DI,BUFFER+1</p><p><
56、b> STOSB</b></p><p> MOV AL,10H</p><p> LEA DI,BUFFER+2</p><p><b> STOSB</b></p><p> MOV AL,10H</p><p> LEA DI,BUFFER+3</p>
57、;<p><b> STOSB</b></p><p> MOV AL,10H</p><p> LEA DI,BUFFER+4</p><p><b> STOSB</b></p><p> MOV AL,10H</p><p> LEA DI,B
58、UFFER+5</p><p><b> STOSB</b></p><p> MOV AL,10H</p><p> LEA DI,BUFFER+6</p><p><b> STOSB</b></p><p> MOV AL,10H</p><
59、;p> LEA DI,BUFFER+7</p><p><b> STOSB</b></p><p><b> JMP QQQ</b></p><p><b> SF:JMP SC</b></p><p><b> SW:JMP SH</b>
60、;</p><p> Q5:CALL KEYI</p><p><b> STOSB</b></p><p><b> CALLDIR</b></p><p> CMPDI,offset buffer+8</p><p><b> CALLkeyi&
61、lt;/b></p><p> CMP AL,0AH</p><p><b> JZ Q8</b></p><p> CMP AL,0DH</p><p><b> JZ Q9</b></p><p> CMP AL,0CH</p><p&
62、gt;<b> JZ QA</b></p><p> CMP AL,0BH</p><p><b> JZ QB</b></p><p> CMP AL,0EH</p><p><b> JZ Q5</b></p><p><b>
63、 SE:JMP SJ</b></p><p><b> RT:JMP gg</b></p><p><b> V1:JMP Q9</b></p><p><b> V2:JMP QB</b></p><p><b> V3:JMP QA</b
64、></p><p> Q56:CALL KEYI</p><p><b> STOSB</b></p><p><b> CALLDIR</b></p><p> CMPDI,offset buffer+8</p><p> LEA DI,BUFFER+5
65、</p><p><b> STOSB</b></p><p><b> CALLkeyi</b></p><p> CMP AL,0AH</p><p><b> JZ SW</b></p><p> CMP AL,0DH</p>
66、;<p><b> JZ V1</b></p><p> CMP AL,0CH</p><p><b> JZ V3</b></p><p> CMP AL,0BH</p><p><b> JZ V2</b></p><p>
67、 CMP AL,0EH</p><p><b> JZ Q56</b></p><p><b> QU:JMP Q6</b></p><p><b> QP:JMP Q3</b></p><p> S9:CALL KEYI</p><p><
68、;b> CALLDIR</b></p><p> CMPDI,offset buffer+8</p><p><b> STOSB</b></p><p><b> CALL KEYI</b></p><p> CMP AL,0EH</p><p&
69、gt;<b> JZ SQ</b></p><p> CMP AL,0DH</p><p><b> JZ SF</b></p><p><b> STOSB</b></p><p><b> CALLDIR</b></p>&l
70、t;p> CMPDI,offset buffer+8</p><p> LEA DI,BUFFER+7</p><p><b> STOSB</b></p><p><b> LODSB</b></p><p><b> MOV BL,AL</b></p
71、><p> LEA SI,BUFFER+5</p><p><b> LODSB</b></p><p><b> ADD AL,BL</b></p><p> LEA DI,BUFFER+4</p><p><b> STOSB</b></
72、p><p><b> MOV BL,AL</b></p><p><b> SQ:</b></p><p> LEA SI,BUFFER+6</p><p><b> LODSB</b></p><p><b> MOV BL,AL<
73、;/b></p><p> LEA SI,BUFFER+1</p><p><b> LODSB</b></p><p><b> ADD AL,BL</b></p><p> LEA DI,BUFFER+4</p><p><b> STOSB&l
74、t;/b></p><p><b> MOV BL,AL</b></p><p><b> JMP DZ</b></p><p><b> PP:JMP F</b></p><p> DZ:LEA SI,BUFFER</p><p><
75、;b> LODSB</b></p><p><b> MOV BL,AL</b></p><p> LEA SI,BUFFER+4</p><p><b> LODSB</b></p><p><b> MUL BL</b></p>&
76、lt;p> LEA DI,BUFFER</p><p><b> STOSB</b></p><p><b> CALL KEYI</b></p><p> CMP AL,0FH</p><p><b> JZ PP</b></p><p&g
77、t; DIRPROCNEAR</p><p><b> PUSHAX</b></p><p><b> PUSHBX</b></p><p><b> PUSHDX</b></p><p> LEASI,buffer;置顯示緩沖器初值</p
78、><p> MOVAH,0FEH</p><p> LEABX,SEG_TAB</p><p> LD0:MOVDX,PA_8255</p><p><b> LODSB</b></p><p> XLAT;取顯示數(shù)據(jù)</p><p> OUT
79、DX,AL;段數(shù)據(jù)->8255 PA口</p><p> INCDX;掃描模式->8255 PB口</p><p> MOVAL,AH</p><p> OUTDX,AL</p><p> CALLDL1;延遲1ms</p><p> MOVDX,PB_8255</p
80、><p> MOVAL,0FFH</p><p> OUTDX,AL</p><p> TESTAH,80H</p><p><b> JZLD1</b></p><p> ROLAH,01H</p><p><b> JMPLD0
81、</b></p><p> LD1:POPDX</p><p><b> POPBX</b></p><p><b> POPAX</b></p><p><b> RET</b></p><p> DIREND
82、P</p><p> DL1PROCNEAR;延遲子程序</p><p><b> PUSHCX</b></p><p> MOVCX,500</p><p><b> LOOP$</b></p><p><b> POPCX&l
83、t;/b></p><p><b> RET</b></p><p> DL1ENDP</p><p> KEYIPROCNEAR</p><p><b> PUSHBX</b></p><p><b> PUSHDX<
84、/b></p><p> LK:CALLAllKey;調(diào)用判有無閉合鍵子程序</p><p><b> JNZLK1</b></p><p><b> CALLDIR</b></p><p> CALLDIR;調(diào)用顯示子程序,延遲6ms</p><
85、;p><b> JMPLK</b></p><p> LK1:CALLDIR</p><p><b> CALLDIR</b></p><p> CALLAllKey;調(diào)用判有無閉合鍵子程序</p><p><b> JNZLK2</b>
86、</p><p><b> CALLDIR</b></p><p><b> JMPLK</b></p><p> LK2:MOVBL,0FEH;R2</p><p> MOVBH,0;R4</p><p> LK4:MOVDX,PB_825
87、5</p><p> MOVAL,BL</p><p> OUTDX,AL</p><p><b> INCDX</b></p><p><b> INAL,DX</b></p><p> TESTAL,01H</p><p
88、><b> JNZLONE</b></p><p> XORAL,AL;0行有鍵閉合</p><p><b> JMPLKP</b></p><p> LONE:TESTAL,02H</p><p><b> JNZNEXT</b><
89、/p><p> MOVAL,08H;1行有鍵閉合</p><p> LKP:ADDBH,AL</p><p> LK3:CALLDIR;判斷釋放否</p><p> CALLAllKey</p><p><b> JNZLK3</b></p><
90、p> MOVAL,BH;鍵號->AL</p><p><b> POPDX</b></p><p><b> POPBX</b></p><p><b> RET</b></p><p> NEXT:INCBH;列計數(shù)器加1</
91、p><p> TESTBL,80H</p><p> JZKND;判是否已掃到最后一列</p><p> ROLBL,01H</p><p><b> JMPLK4</b></p><p> KND:JMPLK</p><p> KEYIEN
92、DP</p><p> AllKeyPROCNEAR</p><p> MOVDX,PB_8255</p><p> XORAL,AL</p><p> OUTDX,AL;全"0"->掃描口</p><p><b> INCDX</b>
93、</p><p> INAL,DX;讀鍵狀態(tài)</p><p><b> NOTAL</b></p><p> ANDAL,03H;取低二位</p><p><b> RET</b></p><p> AllKeyENDP</p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機課程設計之計數(shù)器
- 自動計數(shù)器課程設計課設報告
- 光控計數(shù)器課程設計
- 6進制計數(shù)器課程設計
- 里程計數(shù)器課程設計
- 光電計數(shù)器課程設計報告
- 電子計數(shù)器課程設計報告
- 里程計數(shù)器課程設計
- 24進制計數(shù)器課程設計
- 頻率計數(shù)器課程設計
- 電子課程設計-雙通道計數(shù)器
- 單口ram計數(shù)器的課程設計
- 10進制加法計數(shù)器課程設計
- 電路課程設計---自動循環(huán)計數(shù)器
- 微機原理課程設計--基于單片機設計的音樂倒數(shù)計數(shù)器
- 可控計數(shù)器的設計eda課程設計
- 課程設計---多進制計數(shù)器的設計
- 課程設計--8位計數(shù)器eda課程設計報告
- 課程設計--簡易的倒數(shù)計數(shù)器
- 數(shù)電課程設計--藥片計數(shù)器
評論
0/150
提交評論