

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《微機(jī)接口技術(shù)課程設(shè)計(jì)》</p><p><b> 設(shè)計(jì)報(bào)告</b></p><p> 題目:實(shí)時(shí)鐘顯示與定時(shí)控制設(shè)計(jì)</p><p> 專業(yè): 電子信息工程 </p><p> 班級(jí): XXXXXXX </p><p> 學(xué)號(hào):
2、 XXXXXXXXX </p><p> 姓名: XXX </p><p> 指導(dǎo)老師: XXX </p><p> 設(shè)計(jì)時(shí)間:2013 年 6 月19日到 2013年 6月 25 號(hào)</p><p><b> 1.設(shè)計(jì)任務(wù)說(shuō)明</b
3、></p><p> 通過(guò)本課程設(shè)計(jì),綜合應(yīng)用接口技術(shù)各匯編語(yǔ)言程序設(shè)計(jì)技術(shù),在PC機(jī)上實(shí)現(xiàn)時(shí)鐘顯示、定時(shí)和響鈴,以提高接口、匯編技術(shù)的應(yīng)用能力。</p><p><b> 2. 總體設(shè)計(jì)</b></p><p> ?。?). 利用BIOS 和DOS 的系統(tǒng)功能調(diào)用,能將計(jì)算機(jī)系統(tǒng)的日期和時(shí)間讀出并顯示出來(lái)。</p>&
4、lt;p> (2). 用“時(shí):分:秒” (都是兩位)的形式連續(xù)顯示系統(tǒng)時(shí)間。</p><p> ?。?).利用定時(shí)接口芯片每秒鐘響一次鈴。</p><p> ?。?). 提示輸入定時(shí)時(shí)間(即定時(shí)秒數(shù)),每經(jīng)歷指定的秒數(shù),則演奏樂(lè)曲。</p><p><b> 3. 詳細(xì)設(shè)計(jì)</b></p><p><b&
5、gt; 模塊描述:</b></p><p> ?、牛枚〞r(shí)中斷實(shí)現(xiàn)時(shí)鐘顯示。</p><p> 當(dāng)產(chǎn)生定時(shí)中斷時(shí)(由8259A的IRQ0引起),CPU轉(zhuǎn)入BIOS的08H號(hào)中斷處理程序,在該中斷處理程序中是一條軟中斷指令“INT 1CH”,而在該軟中斷程序中只有一條IRET指令,這樣系統(tǒng)每秒鐘產(chǎn)生18.2次定時(shí)中斷,調(diào)用18.2次INT 1CH,這為開(kāi)發(fā)者提供了一個(gè)編寫與
6、時(shí)間有關(guān)的程序的軟中斷接口,上例的定時(shí)響鈴就是借用這個(gè)軟接口實(shí)現(xiàn)的。其具體操作如下:</p><p> ?、僭跁r(shí)鐘顯示程序,截獲1CH號(hào)中斷,在新的1CH中斷處理程序安排一個(gè)計(jì)數(shù)器,記錄調(diào)用的次數(shù),每18次(約一秒鐘)顯示一次當(dāng)前時(shí)間。</p><p> ②利用BOIS的1AH號(hào)中斷的0號(hào)功能,讀取當(dāng)前計(jì)時(shí)器的數(shù)值:</p><p> 入口參數(shù):AH=02H&l
7、t;/p><p> 執(zhí)行: INT 1AH</p><p> 出口參數(shù):AL=午夜信號(hào),CH=時(shí)的BCD碼,CL=分的BCD碼,DH=秒的BCD碼 </p><p> ?、劾肂IOS的10H號(hào)中斷的13H號(hào)功能,實(shí)現(xiàn)在屏幕的右上角顯示時(shí)間。</p><p> ?、茉谥鞒绦蛑幸4嬖?CH號(hào)中斷的中斷向量,并設(shè)置新的時(shí)鐘顯示中斷程序
8、的中斷向量,然后作其它工作,如調(diào)用BIOS的鍵盤中斷INT 16H的0號(hào)功能,等待用戶按鍵盤,也就是等待中斷的發(fā)生,并在屏幕右上角顯示時(shí)間……,當(dāng)用戶按鍵后,主程序工作完成后,恢復(fù)原1CH中斷向量。</p><p> ?、疲诙〞r(shí)中斷發(fā)生時(shí)同時(shí)調(diào)用發(fā)聲程序?qū)崿F(xiàn)響鈴。</p><p> 發(fā)聲程序用定時(shí)器驅(qū)動(dòng)揚(yáng)聲器方式,這是直接利用8253/8254定時(shí)器產(chǎn)生聲音的一種方法。</p&g
9、t;<p> 定時(shí)器2的GATE2與8255A的端口61H的PB0相連,當(dāng)PB0=1時(shí),GATE2獲得高電平,使定時(shí)器2可以在模式3(方波)下工作。定時(shí)器2的OUT2與端口61H的PB1通過(guò)一個(gè)與門與揚(yáng)聲器的驅(qū)動(dòng)電路相連,如下圖所示。當(dāng)PB1=1時(shí),允許OUT2輸出的頻率信號(hào)到達(dá)揚(yáng)聲器電路。</p><p> 定時(shí)器驅(qū)動(dòng)揚(yáng)聲器方式發(fā)聲原理</p><p> 定時(shí)器2輸出
10、的方波頻率取決與初始化定時(shí)器時(shí)提供的計(jì)數(shù)初值,即對(duì)CLK2端的計(jì)數(shù)脈信號(hào)的分頻系數(shù)。加在CLK2端上的頻率為1193100赫之=12348CH赫之,送入定時(shí)器2的計(jì)數(shù)初值為:12348CH÷發(fā)聲頻率。</p><p><b> 流程圖:</b></p><p><b> 主程序流程圖:</b></p><p>
11、;<b> 中斷程序:</b></p><p><b> 4.程序及說(shuō)明</b></p><p> count_val=18 ;間隔數(shù)(約為一秒)</p><p> dpage=0 ;顯示頁(yè)碼數(shù)</p><p>
12、 row=0 ;顯示行號(hào)</p><p> column=70-buff_len ;顯示開(kāi)始列號(hào)</p><p> column1=70-buff_len1 ;顯示日期的開(kāi)始列號(hào)</p><p> color=07h ;字體顏色<
13、;/p><p><b> .286</b></p><p> .model small</p><p> .code ;為方便程序駐留內(nèi)存,把中斷處理程序放在主程序之前</p><p> ??;下面是1CH中斷處理程序使用的變量</p><p> count dw count_v
14、al ;“滴答”間隔計(jì)數(shù)器</p><p> hhhh db ?,?,":" ;小時(shí)的定義</p><p> mmmm db ?,?,":" ;分的定義</p><p> ssss db ?,? ;秒的定義</p>&
15、lt;p> buff_len=$-offset hhhh ;顯示時(shí)間字長(zhǎng)</p><p> xxxx db ?,? ;年高兩位的定義</p><p> yyyy db ?,?,"\" ;年低兩位的定義</p><p> zzzz db ?,?,"\"
16、 ;月定義</p><p> rrrr db ?,? ;日定義</p><p> buff_len1=$-offset xxxx ;顯示日期字長(zhǎng)</p><p> cursor dw ? ;保存當(dāng)前光標(biāo)位置</p><p> ;1CH號(hào)中斷處理程序代碼
17、</p><p><b> new1ch:</b></p><p> cmp cs:count,0 ;是否到顯示時(shí)候</p><p> jz next ;判斷是否轉(zhuǎn)到next</p><p> dec cs:count ;否則間隔計(jì)數(shù)器減1</p>&
18、lt;p> iret ;中斷返回</p><p> next: ;顯示系統(tǒng)時(shí)間日期子程序</p><p> mov cs:count,count_val ;間隔計(jì)數(shù)器重置初值18</p><p> sti ;開(kāi)中斷</p>
19、<p> pusha ;保護(hù)現(xiàn)場(chǎng)</p><p><b> push ds</b></p><p><b> push es</b></p><p> push cs ;填寫DS和ES</p><p><
20、;b> pop ds</b></p><p><b> push ds</b></p><p><b> pop es</b></p><p> call get_t ;調(diào)用讀取系統(tǒng)時(shí)間子程序</p><p> mov bh,dpage
21、 ;BX<-頁(yè)號(hào)</p><p> mov ah,3 ;取原光標(biāo)位置</p><p><b> int 10h</b></p><p> mov cursor,dx ;保存原光標(biāo)位置</p><p> mov bp,offset hhhh
22、 ;bp<-時(shí)間信息串首地址</p><p> mov bh,dpage </p><p> mov dh,row</p><p> mov dl,column</p><p> mov bl,color</p><p> mov cx,buff_len</p>
23、<p> mov al,0 ;al<-顯示模式,移動(dòng)光標(biāo)</p><p> mov ah,13h ;顯示時(shí)鐘</p><p><b> int 10h</b></p><p> mov bh,dpage</p><p> mov d
24、x,cursor</p><p> mov ah,2 ;恢復(fù)光標(biāo)原位置</p><p><b> int 10h</b></p><p> call get_m ;調(diào)用讀取系統(tǒng)日期中斷程序</p><p> mov bh,dpage</p>
25、<p> mov ah,3 </p><p><b> int 10h</b></p><p> mov cursor,dx</p><p> mov bp,offset xxxx ;bp<-日期信息串首地址</p><p> mov bh,dpag
26、e</p><p> mov dh,row+1</p><p> mov dl,column1</p><p> mov bl,color</p><p> mov cx,buff_len1</p><p><b> mov al,0</b></p><p>
27、mov ah,13h</p><p><b> int 10h</b></p><p> mov bh,dpage</p><p> mov dx,cursor</p><p><b> mov ah,2</b></p><p><b> int 10h&
28、lt;/b></p><p> pop es ;恢復(fù)現(xiàn)場(chǎng)</p><p><b> pop ds</b></p><p><b> popa </b></p><p> iret ;中斷返回</p>&l
29、t;p> get_t proc ;取當(dāng)前系統(tǒng)時(shí)間過(guò)程</p><p> mov ah,2 ;取時(shí)間信息</p><p><b> int 1ah</b></p><p> mov al,ch ;al<-ch中的小時(shí)數(shù)</p><p
30、> call ttasc ;調(diào)用轉(zhuǎn)換壓縮BCD碼為ASCLL碼子程序</p><p> xchg ah,al ;高低位ASCLL碼互換</p><p> mov word ptr hhhh,ax ;保存小時(shí)數(shù)</p><p> mov al,cl ;al<-cl中的分鐘數(shù)</p&
31、gt;<p> call ttasc</p><p> xchg ah,al</p><p> mov word ptr mmmm,ax ;保存分鐘數(shù)</p><p> mov al,dh ;al<-dh中的秒數(shù)</p><p> call ttasc </p>
32、<p> xchg ah,al</p><p> mov word ptr ssss,ax ;保存秒數(shù)</p><p><b> ret</b></p><p> get_t endp</p><p> get_m proc ;取當(dāng)前系統(tǒng)日期過(guò)程</p&g
33、t;<p> pusha ;保護(hù)現(xiàn)場(chǎng)</p><p> mov ah,2ah ;取系統(tǒng)日期</p><p><b> int 21h </b></p><p><b> mov ax,cx</b></p><p> m
34、ov cl,10d</p><p><b> div cl</b></p><p><b> mov bh,ah</b></p><p><b> xor ah,ah</b></p><p><b> div cl</b></p>&
35、lt;p><b> mov bl,ah</b></p><p> add bx,3030h</p><p> mov word ptr yyyy,bx ;保存年的低兩位數(shù)</p><p><b> xor ah,ah</b></p><p><b> div cl&l
36、t;/b></p><p><b> mov bh,ah</b></p><p><b> xor ah,ah</b></p><p><b> div cl</b></p><p><b> mov bl,ah</b></p>
37、<p> add bx,3030h</p><p> mov word ptr xxxx,bx ;保存年的高兩位數(shù)</p><p><b> xor ax,ax</b></p><p><b> xor bx,bx</b></p><p><b> mov a
38、l,dh</b></p><p><b> cbw</b></p><p> call charge</p><p> mov word ptr zzzz,ax ;保存月數(shù)</p><p><b> xor ax,ax</b></p><p><
39、b> mov al,dl</b></p><p><b> cbw</b></p><p> call charge</p><p> mov word ptr rrrr,ax ;保存日數(shù)</p><p><b> popa</b></p><p&
40、gt;<b> ret</b></p><p> get_m endp </p><p> charge proc ;二進(jìn)制轉(zhuǎn)化為十進(jìn)制過(guò)程</p><p><b> push cx</b></p><p><b> push dx<
41、/b></p><p> mov cl,10d</p><p><b> div cl</b></p><p> add al,30h</p><p> add ah,30h ;轉(zhuǎn)化為十進(jìn)制</p><p><b> pop dx</b>
42、;</p><p><b> pop cx</b></p><p><b> ret </b></p><p> charge endp </p><p> ttasc proc ;壓縮BCD碼為ASCLL碼子程序</p>&l
43、t;p><b> push cx</b></p><p><b> mov ah,al</b></p><p> and al,0fh</p><p><b> mov cl,4</b></p><p> shr ah,cl ;高四
44、位移到低位四位</p><p> add ax,3030h ;轉(zhuǎn)為ASCLL碼</p><p><b> pop cx</b></p><p><b> ret</b></p><p> ttasc endp</p><p><b>
45、 ??;初始化代碼和變量</b></p><p> old1ch dd ?</p><p><b> start:</b></p><p><b> push cs</b></p><p> pop ds ;填寫DS</p>&l
46、t;p> mov ax,351ch ;取1CH號(hào)中斷向量</p><p><b> int 21h</b></p><p> mov word ptr old1ch,bx ;保存向量偏移地址</p><p> mov word ptr old1ch+2,es ;保存向量段地址</p>
47、<p> mov dx,offset new1ch ;dx<-新時(shí)鐘中斷入口偏移地址</p><p> mov ax,251ch ;新中斷段地址已在DS中</p><p> int 21h ;設(shè)置新的1CH號(hào)中斷向量</p><p> mov ah,0
48、 ;等待按鍵</p><p><b> int 16h</b></p><p> lds dx,old1ch</p><p> mov ax,251ch ;恢復(fù)原中斷向量</p><p><b> int 21h</b></p><
49、;p> mov ah,4ch</p><p><b> int 21h</b></p><p><b> end start</b></p><p><b> 5.系統(tǒng)測(cè)試</b></p><p><b> 1.測(cè)試方法</b></p
50、><p> 首先在命令提示符下編譯運(yùn)行源程序,顯示出時(shí)間和日期,然后在</p><p> .asm文件里面修改顯示位置,顯示順序部分程序,調(diào)整秒數(shù)顯示的頻率,然后編譯運(yùn)行,觀察更改過(guò)后的運(yùn)行結(jié)果。</p><p><b> 2.測(cè)試結(jié)果</b></p><p><b> 圖 1</b></
51、p><p><b> 圖2</b></p><p> 圖1為初始程序運(yùn)行結(jié)果</p><p> 圖2表示經(jīng)過(guò)部分修改過(guò)后的運(yùn)行結(jié)果</p><p> 運(yùn)行結(jié)果如上圖所示,第二個(gè)圖是在第一個(gè)圖的源程序上經(jīng)過(guò)改變列號(hào),改變時(shí)間和日期的首地址和增加了一個(gè)秒的變量,保存了兩個(gè)秒數(shù)的變化,使其結(jié)果變成圖2</p>
52、<p><b> 6.總結(jié)與體會(huì)</b></p><p> 通過(guò)這次的綜合設(shè)計(jì)性實(shí)驗(yàn),讓我更加清楚的了解了8259A在PC機(jī)中的工作情況,基本掌握了軟中斷服務(wù)程序的結(jié)構(gòu)及編寫方法。同時(shí)學(xué)習(xí)并深刻了結(jié)了PC機(jī)發(fā)聲的原理和方式,掌握了PC機(jī)發(fā)聲程序和延時(shí)程序的編寫方法,進(jìn)一步了結(jié)了8255A和8253在PC機(jī)中的應(yīng)用。在本課程設(shè)計(jì)中,學(xué)會(huì)了應(yīng)用接口技術(shù)各匯編語(yǔ)言程序設(shè)計(jì)技術(shù),在P
53、C機(jī)上實(shí)現(xiàn)時(shí)鐘顯示、定時(shí)和響鈴,以提高接口、匯編技術(shù)的應(yīng)用能力。</p><p> 在編程方面,通過(guò)這次實(shí)驗(yàn),讓我加深了對(duì)DOS和BIOS系統(tǒng)功能指令的理解,把以前沒(méi)記住的指令都加深了印象,鞏固了匯編語(yǔ)言編程的基礎(chǔ)知識(shí)。</p><p> 在獨(dú)立完成實(shí)驗(yàn)過(guò)程還有寫困難,本次試驗(yàn)在同學(xué)的幫助下完成了實(shí)驗(yàn)編程,希望以后在這方面有更大的進(jìn)步;還有部分指令在使用過(guò)程中理解有困難,在學(xué)習(xí)過(guò)程多我
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì).
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)-鍵盤顯示控制器
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)---交通燈顯示系統(tǒng)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)--交通燈顯示系統(tǒng)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)--流水燈
- 《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)-----交通燈設(shè)計(jì)
- 微機(jī)接口技術(shù)課程設(shè)計(jì)
- 微機(jī)接口技術(shù)課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)-交通燈
- 電子表設(shè)計(jì)(微機(jī)原理與接口技術(shù)課程設(shè)計(jì))
- 紅外通信-微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì) --存儲(chǔ)器
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告書
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)——液晶顯示器與鍵盤系統(tǒng)
- 微機(jī)接口技術(shù)課程設(shè)計(jì)--可預(yù)置電子時(shí)鐘
評(píng)論
0/150
提交評(píng)論