版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 微機(jī)原理課程設(shè)計</b></p><p> 學(xué)生姓名: </p><p> 學(xué) 號: </p><p> 專業(yè)班級: 電子信息工程 </p><p> 課程名稱:
2、 微型計算機(jī)原理及應(yīng)用 </p><p> 學(xué)年學(xué)期: 2 0 1 2 — 2 0 13 學(xué)年第 1 學(xué)期</p><p> 指導(dǎo)教師: </p><p> 2 0 1 2 年 1 2月</p><p><b> 目錄</b></p>&
3、lt;p> 一、課設(shè)題目及目的………………………………….4</p><p> 二、設(shè)計任務(wù)………………………………………….4</p><p> 三、總框圖及設(shè)計流程……………………………….4</p><p> 四、源程序清單……………………………………….6</p><p> 五、調(diào)試結(jié)果及顯示……………………
4、…………….19</p><p> 六、課程設(shè)計總結(jié)及體會…………………………….21</p><p><b> 一、課設(shè)題目及目的</b></p><p> 實習(xí)題目:數(shù)字時鐘程序</p><p> 實習(xí)目的:通過實習(xí),使我們進(jìn)一步弄懂所學(xué)到的課本知識,鞏固和深化對8086系統(tǒng)的指令系統(tǒng)、中斷系統(tǒng)、鍵盤/顯示
5、系統(tǒng)、程序設(shè)計、應(yīng)用開發(fā)等基本理論知識的理解,提高匯編語言應(yīng)用于技術(shù)的實踐操作技能,掌握匯編語言應(yīng)用系統(tǒng)設(shè)計、研制的方法,培養(yǎng)利用科技革新、開發(fā)和創(chuàng)新的基本能力,為畢業(yè)后從事與其相關(guān)的工作打下一定的基礎(chǔ)。</p><p><b> 二、課設(shè)任務(wù)</b></p><p> 在屏幕上顯示一數(shù)字時鐘,顯示格式為HH:MM:SS</p><p>
6、 能夠?qū)崿F(xiàn)時間的校準(zhǔn),按鍵H提示修改小時,按鍵M提示修改分鐘,按鍵S提示修改秒</p><p> 按鍵Q退出返回到DOS </p><p><b> 三、總框圖及流程</b></p><p><b> 四.源程序清單</b></p><p> DATA SEGMENT;數(shù)據(jù)段開始</
7、p><p> MESS1 DB ' *****************電子時鐘***************** ',0AH,0DH </p><p> DB ' *****按h修改小時,m修改分,s修改秒******
8、** ',0AH,0DH</p><p> DB ' *****************按q退出****************** ',0AH,0DH,'$'</p><p> MESS2 DB '修改小時','$'</p><p> MESS3
9、 DB '修改分鐘','$'</p><p> MESS4 DB '修改秒鐘','$'</p><p> T_BUFF DB 20</p><p><b> DB ?</b></p><p> DB 20 DUP(?)</p>&l
10、t;p><b> HOR DB ?</b></p><p><b> MIN DB ?</b></p><p><b> SEC DB ?</b></p><p><b> flag db ?</b></p><p><b> D
11、ATA ENDS</b></p><p> STACK SEGMENT</p><p> DB 100 DUP(?)</p><p> STACK ENDS</p><p> CODE SEGMENT</p><p> ASSUME CS:CODE,SS:STACK,DS:DATA</p&g
12、t;<p><b> START:</b></p><p> MOV AX,DATA</p><p><b> MOV DS,AX</b></p><p> CALL CLEAR ;調(diào)用清屏子程序</p><p> PUSH BX
13、;置光標(biāo)位置,AH=2,BH=0,DH跟DL分別為行號與列號,并入棧保護(hù)BX </p><p> MOV AH,2;0~1用于此程序最下邊的 在下面的兩個置光標(biāo)位置</p><p><b> MOV BH,0</b></p><p> MOV DH,0;行</p><p> MOV DL,0;列</
14、p><p><b> INT 10H</b></p><p><b> POP BX</b></p><p> MOV DX,OFFSET MESS1</p><p> MOV AH,09H</p><p><b> INT 21H</b><
15、/p><p> DISPLAY: ;時間顯示部分</p><p> MOV BX,OFFSET T_BUFF;送T_BUFF的偏移地址到BX</p><p> MOV AH,2CH;調(diào)用DOS時間調(diào)用功能,功能號:2CH,小時,分鐘,秒數(shù)分別保存在CH,CL,DH中</p><
16、p><b> INT 21H </b></p><p> MOV HOR,CH</p><p> MOV MIN,CL</p><p> MOV SEC,DH</p><p> CALL TRANS_TIME</p><p> PUSH BX ;置光標(biāo)位置,AH=2,BH=0,
17、DH跟DL分別為行號與列號,并入棧保護(hù)BX </p><p> MOV AH,2;0~1用于此程序最下邊的 在下面的兩個置光標(biāo)位置</p><p><b> MOV BH,0</b></p><p> MOV DH,17;行</p><p> MOV DL,31;列</p><p>
18、;<b> INT 10H</b></p><p><b> POP BX</b></p><p> LEA DX,t_buff;送T_BUFF偏移地址到DX,并調(diào)用DOS顯示功能,功能號為9 </p><p><b> MOV AH,9</b></p><p> I
19、NT 21H;至此當(dāng)前時間的顯示功能結(jié)束!</p><p> mov ah,2;0~1用于此程序最下邊的 在下面的兩個置光標(biāo)位置</p><p><b> mov bh,0</b></p><p> mov dh,18;行</p><p> mov dl,0;列</p><p><
20、;b> int 10h</b></p><p> call delay1</p><p> mov ah,1 ;調(diào)用鍵盤I/O中斷功能號1,獲取鍵值到AL </p><p><b> int 16h</b></p><p> CMP AL,'h'<
21、;/p><p> JE SETTIME</p><p> CMP AL,'m'</p><p> JE SETTIME</p><p> CMP AL,'s'</p><p> JE SETTIME</p><p> CMP AL,'q'&
22、lt;/p><p> JE quit ;是q鍵,退出程序 </p><p> JMP display</p><p><b> quit:</b></p><p> mov ah,4ch </p><p><b> int 21h</b&g
23、t;</p><p><b> ret</b></p><p> SETTIME PROC</p><p><b> PUSH AX</b></p><p><b> PUSH BX</b></p><p><b> PUSH CX&
24、lt;/b></p><p><b> PUSH DX</b></p><p><b> PUSHF</b></p><p> mov flag,al</p><p> MOV AH,0CH</p><p><b> INT 21H</b>
25、;</p><p> cmp flag,'h'</p><p><b> je N1</b></p><p> CMP FLAG,'m'</p><p><b> je N2</b></p><p> cmp flag,'s&
26、#39;</p><p><b> je N3</b></p><p><b> jmp N</b></p><p> N1:PUSH BX ;置光標(biāo)位置,AH=2,BH=0,DH跟DL分別為行號與列號,并入棧保護(hù)BX </p><p> MOV AH,2;0~1用于此程序最下邊的
27、 在下面的兩個置光標(biāo)位置</p><p><b> MOV BH,0</b></p><p> MOV DH,19;行</p><p> MOV DL,31;列</p><p><b> INT 10H</b></p><p><b> POP BX&l
28、t;/b></p><p> MOV DX,OFFSET MESS2</p><p> MOV AH,09H</p><p><b> INT 21H</b></p><p> mov ah,2;0~1用于此程序最下邊的 在下面的兩個置光標(biāo)位置</p><p><b>
29、 mov bh,0</b></p><p> mov dh,17;行</p><p> mov dl,31;列</p><p><b> int 10h</b></p><p><b> jmp N</b></p><p> N2:PUSH BX
30、;置光標(biāo)位置,AH=2,BH=0,DH跟DL分別為行號與列號,并入棧保護(hù)BX </p><p> MOV AH,2;0~1用于此程序最下邊的 在下面的兩個置光標(biāo)位置</p><p><b> MOV BH,0</b></p><p> MOV DH,19;行</p><p> MOV DL,31;列<
31、;/p><p><b> INT 10H</b></p><p><b> POP BX</b></p><p> MOV DX,OFFSET MESS3</p><p> MOV AH,09H</p><p><b> INT 21H</b>&l
32、t;/p><p> mov ah,2;0~1用于此程序最下邊的 在下面的兩個置光標(biāo)位置</p><p><b> mov bh,0</b></p><p> mov dh,17;行</p><p> mov dl,34;列</p><p><b> int 10h</b&
33、gt;</p><p><b> jmp N</b></p><p> N3:PUSH BX ;置光標(biāo)位置,AH=2,BH=0,DH跟DL分別為行號與列號,并入棧保護(hù)BX </p><p> MOV AH,2;0~1用于此程序最下邊的 在下面的兩個置光標(biāo)位置</p><p><b> MOV
34、 BH,0</b></p><p> MOV DH,19;行</p><p> MOV DL,31;列</p><p><b> INT 10H</b></p><p><b> POP BX</b></p><p> MOV DX,OFFSET MES
35、S4</p><p> MOV AH,09H</p><p><b> INT 21H</b></p><p> mov ah,2;0~1用于此程序最下邊的 在下面的兩個置光標(biāo)位置</p><p><b> mov bh,0</b></p><p> mov d
36、h,17;行</p><p> mov dl,37;列</p><p><b> int 10h</b></p><p><b> jmp N</b></p><p> N:MOV DX,OFFSET T_BUFF</p><p> MOV AH,0AH</
37、p><p><b> INT 21H</b></p><p> CALL GETTIME</p><p> cmp flag,'h'</p><p><b> je L1</b></p><p> CMP FLAG,'m'</p&g
38、t;<p><b> je L2</b></p><p> cmp flag,'s'</p><p><b> je L3</b></p><p><b> jmp L</b></p><p> L1:MOV CH,AL</p&g
39、t;<p> MOV HOR,AL</p><p><b> jmp L</b></p><p> L2:MOV CL,AL</p><p> MOV MIN,AL</p><p><b> jmp L</b></p><p> L3:MOV D
40、H,AL</p><p> MOV SEC,AL</p><p><b> jmp L</b></p><p> L:MOV AH,2DH</p><p> MOV CH,HOR</p><p> MOV CL,MIN</p><p> MOV DH,SEC&
41、lt;/p><p><b> MOV DL,0</b></p><p><b> INT 21H</b></p><p><b> popf</b></p><p><b> pop dx</b></p><p><b&g
42、t; POP cX</b></p><p><b> POP bX</b></p><p><b> POP aX</b></p><p><b> JMP START</b></p><p><b> RET</b></p&
43、gt;<p> SETTIME ENDP</p><p> GETTIME PROC</p><p> LEA BX, T_BUFF</p><p><b> ADD BX,2</b></p><p> MOV DH,[BX]</p><p><b> INC
44、BX</b></p><p> MOV DL,[BX]</p><p> AND DH,0FH</p><p> AND DL,0FH</p><p><b> MOV CL,10</b></p><p><b> MOV AL,DH</b></p
45、><p><b> MUL CL</b></p><p><b> ADD AL,DL</b></p><p><b> RET</b></p><p> GETTIME ENDP</p><p> ;***********************
46、*********************************</p><p> ;********************************************************</p><p> TRANS_TIME PROC</p><p> MOV CL,10</p><p> MOV AL,HOR<
47、;/p><p><b> MOV AH,0</b></p><p><b> DIV CL</b></p><p> ADD AL,30H</p><p> ADD AH,30H</p><p> MOV [BX],AL</p><p><
48、b> INC BX</b></p><p> MOV [BX],AH</p><p><b> INC BX</b></p><p> MOV AL,':'</p><p> MOV [BX],AL</p><p><b> INC BX&
49、lt;/b></p><p> MOV AL,MIN</p><p><b> MOV AH,0</b></p><p><b> DIV CL</b></p><p> ADD AL,30H</p><p> ADD AH,30H</p>&l
50、t;p> MOV [BX],AL</p><p><b> INC BX</b></p><p> MOV [BX],AH</p><p><b> INC BX</b></p><p> MOV AL,':'</p><p> MOV [B
51、X],AL</p><p><b> INC BX</b></p><p> MOV AL,SEC</p><p><b> MOV AH,0</b></p><p><b> DIV CL</b></p><p> ADD AL,30H<
52、;/p><p> ADD AH,30H</p><p> MOV [BX],AL</p><p><b> INC BX</b></p><p> MOV [BX],AH</p><p><b> INC BX</b></p><p> MO
53、V AL,'$';將字符串的結(jié)束位送至顯示緩沖區(qū)的最后一位 </p><p> MOV [BX],AL</p><p><b> RET</b></p><p> TRANS_TIME ENDP</p><p> ;*************************************
54、*******************</p><p> ;********************************************************</p><p> ;*****************************************************</p><p><b> ;清屏子程序<
55、/b></p><p> ;********************************************************</p><p> CLEAR PROC NEAR</p><p> PUSH AX ;入棧保護(hù)現(xiàn)場</p><p><b> PUSH BX</b></
56、p><p><b> PUSH CX</b></p><p><b> PUSH DX</b></p><p> MOV AX,0600H;AH=06(滾動)AL=00(全屏空白)</p><p> MOV BH,0cH;設(shè)置背景顏色(1藍(lán)色)和前景顏色(F白色)</p
57、><p> SUB CX,CX</p><p> MOV DX,5F5FH</p><p> INT 10H</p><p> POP DX;出棧恢復(fù)現(xiàn)場</p><p> POP CX</p><p> POP BX</p&g
58、t;<p> POP AX</p><p><b> RET </b></p><p> CLEAR ENDP</p><p> DELAY1 PROC;精確延遲時間子程序</p><p> MOV DX,02FFH;循環(huán)次數(shù)</p><p>
59、UP:XOR CX,CX</p><p><b> A:NOP</b></p><p><b> LOOP A</b></p><p><b> DEC DX</b></p><p><b> JNZ UP</b></p>
60、;<p><b> RET</b></p><p> DELAY1 ENDP</p><p><b> CODE ENDS</b></p><p> END START </p><p><b> 調(diào)試結(jié)果及顯示</b></p><
61、p> 六.課程設(shè)計總結(jié)及體會</p><p> 在這次的課程設(shè)計中,我們選擇的題目是電子時鐘設(shè)計,在設(shè)計的過程中,我們進(jìn)行了相關(guān)資料的查詢。我們小組的兩個人進(jìn)行了分工,每個人負(fù)責(zé)一個部分的設(shè)計。通過這次課程設(shè)計學(xué)習(xí),加深了我們編程相關(guān)知識的印象,也給了我們實際運用所學(xué)知識進(jìn)行實踐的機(jī)會。電子時鐘的設(shè)計不算簡單,程序比較長,在設(shè)計的過程中,對微機(jī)原理的知識進(jìn)一步加深了。我們小組成員互相幫組、互相學(xué)習(xí),在實
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)原理課程設(shè)計--數(shù)字時鐘
- 微機(jī)原理課程設(shè)計---電子時鐘
- 《電子時鐘》微機(jī)原理課程設(shè)計
- 微機(jī)原理課程設(shè)計---指針顯示時鐘
- 微機(jī)原理課程設(shè)計(電子時鐘)
- 基于微機(jī)原理電子時鐘課程設(shè)計
- 微機(jī)原理課程設(shè)計--8253定時中斷時鐘
- 微機(jī)原理課程設(shè)計-數(shù)字聲音機(jī)
- 微機(jī)原理數(shù)字鐘課程設(shè)計報告
- 數(shù)字溫度計(微機(jī)原理課程設(shè)計)
- 微機(jī)課程設(shè)計--計時時鐘
- 數(shù)字時鐘課程設(shè)計
- 數(shù)字時鐘課程設(shè)計
- 微機(jī)原理數(shù)字錄音機(jī)課程設(shè)計
- 課程設(shè)計--數(shù)字時鐘
- 數(shù)字時鐘課程設(shè)計
- 數(shù)字時鐘課程設(shè)計
- 數(shù)字時鐘課程設(shè)計
- 微機(jī)課程設(shè)計---硬件中斷時鐘設(shè)計
- 數(shù)字時鐘課程設(shè)計
評論
0/150
提交評論