版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計(jì)</b></p><p> 課 程:微機(jī)原理與接口技術(shù)設(shè)計(jì)</p><p><b> 專業(yè)班級(jí): </b></p><p> 學(xué) 號(hào):xxxxxx</p><p> 姓 名: xx</p><p><b&g
2、t; 設(shè)計(jì)題目及要求</b></p><p> 模擬計(jì)算器運(yùn)算(加,減,乘,括號(hào))</p><p> 1.通過小鍵盤做加、減、乘、括號(hào)運(yùn)算。七段數(shù)碼管顯示器作輸入數(shù)據(jù)和結(jié)果數(shù)據(jù)的顯示。 </p><p><b> 2.按鍵規(guī)定: </b></p><p> ?。?)數(shù)字用小鍵盤0~9輸入。 </
3、p><p> ?。?)功能按鍵設(shè)定: </p><p><b> “A”——“+” </b></p><p><b> “B”——“-” </b></p><p><b> “D”——“*” </b></p><p> “E”——“括號(hào)” </
4、p><p><b> “F”——“=” </b></p><p> “C”——開始運(yùn)算(包括撤消運(yùn)算),屏幕顯示“0”。 </p><p><b> 3.運(yùn)算要求: </b></p><p> ?。?)輸入一原始數(shù)據(jù),顯示器跟隨顯示。 </p><p> ?。?)按“+”、
5、“-”、“*”或“括號(hào)”時(shí),顯示器內(nèi)容不變。 </p><p> ?。?)再輸入數(shù)據(jù)時(shí),顯示器跟隨顯示。 </p><p> ?。?)按“=”時(shí),顯示器顯示最終結(jié)果數(shù)據(jù)。 </p><p> (5)按“C”時(shí),屏幕顯示“0”。 </p><p> ?。?)需要考慮運(yùn)算的優(yōu)先級(jí)問題。 </p><p> ?。?)可以只
6、考慮正整數(shù)運(yùn)算,不考慮負(fù)數(shù)和實(shí)數(shù)運(yùn)算。 </p><p> 注:輸入數(shù)據(jù)時(shí),若超出顯示范圍則不響應(yīng)超出部分。在計(jì)算結(jié)果超出顯示范圍時(shí),則顯示“F”。</p><p><b> 設(shè)計(jì)思想</b></p><p> 調(diào)用鍵盤掃描子程序不斷掃描鍵盤是不是有輸入,如果沒有就一直掃描,如果有就停止掃描,完成輸入,并將輸入的數(shù)字通過調(diào)用顯示子程序顯示
7、到LED顯示器上。利用匯編的程序核對(duì)輸入鍵的數(shù)值,通過調(diào)用加,減,乘,括號(hào),子程序?qū)崿F(xiàn)一位十進(jìn)制數(shù)以內(nèi)的及加、減、乘以及括號(hào)法運(yùn)算。運(yùn)算完成后將運(yùn)算的結(jié)果儲(chǔ)存并顯示到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> 分到這個(gè)課設(shè)題目第一反應(yīng)是比較簡單,但仔細(xì)一思考有沒多大頭緒,又感覺挺復(fù)雜,尤其是實(shí)現(xiàn)括號(hào)運(yùn)算一點(diǎn)思路都
11、沒有。后來經(jīng)過網(wǎng)上找相關(guān)資料和隊(duì)友討論漸漸有了思路。經(jīng)過一個(gè)星期的反復(fù)實(shí)驗(yàn)終于完成了這次課設(shè),在實(shí)驗(yàn)箱上可以完成一位數(shù)的加減乘以及括號(hào)運(yùn)算。這次課設(shè)中遇到很多問題,讓我看到了自己的很多不足比如匯編能力不足,對(duì)芯片不了解等等。同時(shí)這次課設(shè)讓我鞏固了所學(xué)的課本知識(shí),提高了動(dòng)手實(shí)踐能力和團(tuán)隊(duì)合作能力,自己感覺收獲還是很大的。</p><p> 附錄:實(shí)驗(yàn)代碼(完整的源程序)</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個(gè)字節(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, 地址自動(dòng)遞增</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;鍵號(hào)->AL</p><p><b> POPDX</b></p><p><b> POPBX</b></p><p><b> RET</b></p><p> NEXT:INCBH;列計(jì)數(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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)課程設(shè)計(jì)之計(jì)數(shù)器
- 自動(dòng)計(jì)數(shù)器課程設(shè)計(jì)課設(shè)報(bào)告
- 光控計(jì)數(shù)器課程設(shè)計(jì)
- 6進(jìn)制計(jì)數(shù)器課程設(shè)計(jì)
- 里程計(jì)數(shù)器課程設(shè)計(jì)
- 光電計(jì)數(shù)器課程設(shè)計(jì)報(bào)告
- 電子計(jì)數(shù)器課程設(shè)計(jì)報(bào)告
- 里程計(jì)數(shù)器課程設(shè)計(jì)
- 24進(jìn)制計(jì)數(shù)器課程設(shè)計(jì)
- 頻率計(jì)數(shù)器課程設(shè)計(jì)
- 電子課程設(shè)計(jì)-雙通道計(jì)數(shù)器
- 單口ram計(jì)數(shù)器的課程設(shè)計(jì)
- 10進(jìn)制加法計(jì)數(shù)器課程設(shè)計(jì)
- 電路課程設(shè)計(jì)---自動(dòng)循環(huán)計(jì)數(shù)器
- 可控計(jì)數(shù)器的設(shè)計(jì)eda課程設(shè)計(jì)
- 課程設(shè)計(jì)---多進(jìn)制計(jì)數(shù)器的設(shè)計(jì)
- 課程設(shè)計(jì)--簡易的倒數(shù)計(jì)數(shù)器
- 數(shù)電課程設(shè)計(jì)--藥片計(jì)數(shù)器
- 課程設(shè)計(jì)--時(shí)分秒計(jì)數(shù)器
- 循環(huán)碼計(jì)數(shù)器 課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論