版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計報告</b></p><p><b> 微機原理與應(yīng)用</b></p><p> 學(xué) 院 電信學(xué)院 </p><p> 專 業(yè) 信息工程2班 </p><p> 學(xué)生姓名 <
2、;/p><p> 學(xué) 號 </p><p> 指導(dǎo)教師 </p><p> 提交日期 2009.3.8 </p><p><b> 目 錄</b></p><p><b> 1.1概
3、述1</b></p><p> 1.1.1課程設(shè)計題目1</p><p> 1.1.2課程設(shè)計目的1</p><p> 1.1.3設(shè)計實現(xiàn)功能1</p><p> 1.2硬件設(shè)計1</p><p> 1.2.1硬件電路1</p><p> 1.2.2
4、器件介紹2</p><p> 1.3軟件設(shè)計2</p><p> 1.3.1軟件實現(xiàn)功能概述2</p><p> 1.3.2程序流程圖3</p><p> 1.4系統(tǒng)調(diào)試和測試結(jié)果4</p><p> 1.5心得體會4</p><p> 1.6課程建議4&
5、lt;/p><p> 1.7附錄 程序清單4</p><p><b> 簡易電子廣告牌設(shè)計</b></p><p><b> 概述</b></p><p><b> 課程設(shè)計題目</b></p><p><b> 簡易電子廣告牌設(shè)計&
6、lt;/b></p><p><b> 課程設(shè)計目的</b></p><p> 進行一次綜合的小型微機應(yīng)用系統(tǒng)的軟硬件設(shè)計。通過課程設(shè)計,進一步鞏固所學(xué)的知識,并將所學(xué)的內(nèi)容加以綜合運用。將所學(xué)的理論與實際問題或應(yīng)用相結(jié)合,進一步培養(yǎng)自主學(xué)習(xí)的能力,綜合運用知識的能力,以及創(chuàng)新實踐的能力。</p><p><b> 設(shè)計實
7、現(xiàn)功能</b></p><p> 基本功能在8*8雙色點陣上顯示紅黃交替廣告標語,按鍵盤鍵退出,創(chuàng)新實現(xiàn)功能有滾動閃動切換,滾動速度可通過旋鈕調(diào)節(jié),兩段字符串切換,鍵盤輸入數(shù)字顯示</p><p><b> 硬件設(shè)計</b></p><p><b> 硬件電路</b></p><p&g
8、t; 圖1. 1開關(guān)輸入鎖存74LS244 其中K0連接到8253</p><p> 圖1. 2 8253時鐘分頻計時</p><p> 圖1. 3 ADC0809模數(shù)轉(zhuǎn)換電路</p><p> 另外還有點陣連接,行片選信號 CS1 接 280H;紅列片選信號 CS2 接 288H;黃列片選信號 CS3 接 290H</p><p>
9、<b> 器件介紹</b></p><p><b> 8253</b></p><p> 8253內(nèi)部有三個計數(shù)器,分別成為計數(shù)器0、計數(shù)器1和計數(shù)器2,每個計數(shù)器,一個為時鐘輸入端CLK,一個為門控信號輸入端GATE,另一個為輸出端OUT。執(zhí)行部件實際上是一個16位的減法計數(shù)器,它的起始值就是初值寄存器的值。</p><
10、;p><b> 74LS244</b></p><p> 74HC244芯片內(nèi)部共有兩個四位三態(tài)緩沖器,使用時可分別以1C和2G作為它們的選通工作信號。當1/OE和2/OE都為低電平時,輸出端Y和輸入端A狀態(tài)相同;當1/OE和2/OE都為高電平時,輸出呈高阻態(tài)。</p><p><b> ADC0809</b></p>
11、<p> ADC0809是采樣分辨率為8位的、以逐次逼近原理進行?!獢?shù)轉(zhuǎn)換的器件。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉(zhuǎn)換。ADC0809的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A
12、/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平 時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。</p><p><b> LED雙色點陣</b></p><p> 點陣對外引出24條線,其中8條行線,8條紅色列線,8條黃色列線。若使某一種顏色、某一個LED發(fā)光,只要將與其相連的行線加高電平
13、,列線加低電平即可。</p><p><b> 軟件設(shè)計</b></p><p><b> 軟件實現(xiàn)功能概述</b></p><p> 程序輸出提示信息,完成ADC0809和8253初始化,0853兩個計時器工作在方式2和3,完成分頻輸出,通過查表得出字符的點陣取模量依次顯示,讀取74ls244輸入的量,進行滾動閃動
14、切換,滾動速度可通過旋鈕調(diào)節(jié)(通過ADC采樣值控制循環(huán)次數(shù)),兩段字符串切換,鍵盤輸入數(shù)字顯示,每次顯示完成讀取鍵盤值有鍵按下則退出。程序主要分成顯示,8253初始化,開關(guān)輸入程序。</p><p><b> 程序流程圖</b></p><p><b> 主程序:</b></p><p> 輸入數(shù)字字符部分:
15、 </p><p><b> 系統(tǒng)調(diào)試和測試結(jié)果</b></p><p> 這個課程設(shè)計的調(diào)式我們先是運行自帶的演示實驗,用于確認硬件運行正常。之后我們主要采用的是分模塊調(diào)試,再綜合起來。實際調(diào)試中出現(xiàn)最多的問題是JNZ等跳轉(zhuǎn)很容易由于代碼過長而超出跳轉(zhuǎn)范圍,可以采取的就是先跳到一個短的標號,然后在這里用一句JMP。其次還有就是亮度顯示不足,經(jīng)過反復(fù)實驗得出一
16、個比較合適的列延時。另外就是0809控制速度的時候,輸出值為0-255,導(dǎo)致速度過快甚至死機,所以我們對這個數(shù)據(jù)進行簡單處理解決了這一問題,最后還有顯示出現(xiàn)不穩(wěn)定閃動,后發(fā)現(xiàn)是8253分頻后翻轉(zhuǎn)后穩(wěn)定在另一個電平,我們通過添加初始化字程序解決這一問題。設(shè)計結(jié)果達到設(shè)計要求,顯示穩(wěn)定,并且有教多的擴展,當然由于時間關(guān)系,還有些東西有待完善,比如程序的人機界面和操作簡易有待提高,程序模塊化做得不太完善,代碼還有進一步優(yōu)化的空間。不過總的來說
17、,這次課程設(shè)計調(diào)試結(jié)果還是比較滿意的。</p><p><b> 心得體會</b></p><p> 這次微機的課程設(shè)計進一步鞏固了所學(xué)的知識,以前由于實驗次數(shù)少,而且平時編程主要用的是C語言,這次的課程設(shè)計就很好的彌補了這部分缺少的知識,而且由于是團隊合作,有利于培養(yǎng)協(xié)作精神。這次課程設(shè)計還使所學(xué)理論知識和動手實踐相結(jié)合,軟件硬件設(shè)計結(jié)合,還培養(yǎng)了我們創(chuàng)新精神,
18、比如我們實現(xiàn)的滾動調(diào)速功能,其實就是很簡單的幾句,不過做出的效果卻讓同學(xué)覺得很不錯。這次課程設(shè)計總的說,在老師細心的指導(dǎo)下,收獲比較多,也為以后的課程,比如單片機,ARM等打下基礎(chǔ)。 </p><p><b> 課程建議</b></p><p> 微機原理與應(yīng)用這門課程覺得收獲還是很多,不過感覺這個課程由于大家是先學(xué)C語言,使得大家對匯編學(xué)起來興趣比較少,覺得C簡
19、單的幾句匯編卻是相當復(fù)雜,而匯編的底層操作優(yōu)勢也不是太明顯,硬件部分實驗由于課時等緣故上的時間比較少,覺得這個課程應(yīng)該可以優(yōu)先在大一時開設(shè)匯編部分,學(xué)完數(shù)電開設(shè)硬件部分,硬件部分甚至可以和單片機課程一起學(xué)。</p><p><b> 附錄 程序清單</b></p><p> ;***************2008級微機原理與應(yīng)用課程設(shè)計*************
20、</p><p> ;設(shè)計內(nèi)容:簡易電子廣告牌設(shè)計</p><p> ;實現(xiàn)功能:雙色自動切換,滾動閃動切換,滾動速度可通過旋鈕調(diào)節(jié)</p><p> ; 兩段字符串切換,鍵盤輸入數(shù)字顯示</p><p> ;硬件電路:雙色點陣 74ls273 8253 74ls244 ADC0809</p><
21、p> ;創(chuàng)建時間:2009年3月1日-2009年3月3日</p><p> ;創(chuàng)建者:08級信息工程2班 蔡月冰 曹永豪</p><p> ;課程報告提交者:蔡月冰 200830240052</p><p> ;*********************************************************</p>&l
22、t;p> ;地址聲明,依次為點陣 74ls244 ADC0809 8253 </p><p> ioport equ 0e400h-0280h</p><p> proth equ ioport+280h</p><p> protlr equ ioport+288h</p><p> protly equ ioport+29
23、0h</p><p> ls244equ ioport+2a0h</p><p> io0809aequ ioport+2B8h</p><p> io8253aequ ioport+29ah</p><p> io8253bequ ioport+299h</p><p> io8253c
24、equ ioport+29bh</p><p><b> ;數(shù)據(jù)端定義</b></p><p> DATA SEGMENT</p><p> MESS DB 'Strike any key,return to DOS!',0AH,0DH,'$';提示信息</p><p> Addw
25、ei DB 00h,01h,02h,03h,04h,05h,06h,07h;一個字查表偏移量</p><p> count dw 0 ;用于字符滾動或切換的查表偏移量</p><p> mflag dw 0 ;兩段不同字符串切換的標志</p><p> addcolor dw 0
26、 ;更改顏色的標志</p><p> CHARSAVE DB 18h,20h,28h,30h,38h,40h,48h,50h,58h,60h;1-9在BUFF中點陣偏移量</p><p> COUNTTMP DW 0 ;鍵盤輸入數(shù)字變量</p><p> BUFF DB 8H,18H,3H,41H,0C1H,3FH,0H,3CH,0H,78
27、H,48H,48H,0FFH,48H,48H,78H,0H,0H,3CH,42H,42H,7EH,0H,0H,0h,0h,3ch,42h,42h,3ch,0h,0h,0H,0H,0H,0feh,40h,0h,0h,0h,0H,22h,52h,4ah,46h,22h,0h,0h,0h,0h,6ch,92h,82h,44h,0h,0h,0h,4h,4h,7fh,24h,14h,0ch,0h,0h,0h,5ch,52h,52h,76h,0h,
28、0h,0h,0h,4ch,92h,92h,7ch,0h,0h,0h,0h,60h,50h,4eh,40h,0h,0h,0h,0h,6ch,92h,92h,6ch,0h,0h,0h,0h,7ch,92h,92h,64h,0h,0h ;點陣的取模量</p><p> timebuf db 0H,0FEH,92H,92H,92H,92H,0FEH,0H,0H,0FFH,0A9H,0A8H,0A8H,
29、0F8H,7H,1H,8H,18H,3H,41H,0C1H,3FH,0H,3CH ;點陣取模量2</p><p><b> DATA ENDS</b></p><p> ;*********************************************************</p><p> CODE SEGMENT&
30、lt;/p><p> ASSUME CS:CODE,DS:DATA</p><p> ;*************************代碼段***************************</p><p> ;在屏幕上顯示提示信息</p><p> START: MOV AX,DATA</p><p>&
31、lt;b> MOV DS,AX</b></p><p> MOV DX,OFFSET MESS</p><p><b> MOV AH,09</b></p><p> INT 21H ;顯示提示信息</p><p> MOV addcolor,protly ;先
32、顯示紅色</p><p> CALL Int8253 ;調(diào)用8253初始化字程序</p><p> agn: mov dx,io0809a ;啟動A/D轉(zhuǎn)換器, A/D中的數(shù)據(jù)轉(zhuǎn)化成滾動顯示速度</p><p> out dx,al</p><p> in al,dx ;從A
33、/D轉(zhuǎn)換器輸入數(shù)據(jù)</p><p><b> mov ah,0</b></p><p><b> shl ax,1</b></p><p> add ax,30h</p><p> mov cx,ax ;進行數(shù)據(jù)處理,防止?jié)L動速度過快或者過慢</p>&l
34、t;p> d2: mov ah,01h</p><p><b> push cx</b></p><p> mov cx,0008h ;點陣一次顯示8列</p><p> mov si,offset Addwei</p><p> next: mov al,[si]</p&g
35、t;<p> test mflag,01h ;判斷是顯示哪段文字</p><p> jnz flagdan</p><p> mov bx,offset buff</p><p><b> jmp gh</b></p><p> flagdan:mov bx,offset time
36、buf </p><p> gh: add bx,count</p><p> xlat ;得到第一列的取模碼</p><p> mov dx,proth</p><p><b> out dx,al</b></p><p><b>
37、; mov al,ah</b></p><p> mov dx,addcolor</p><p> out dx,al ;顯示第一列</p><p><b> shl ah,01</b></p><p><b> inc si</b></p>
38、<p> call delaylong ;列延時,時間長則字符每列不連續(xù),短則亮度低</p><p><b> loop next</b></p><p><b> pop cx</b></p><p><b> loop d2</b></p>&l
39、t;p> mov al,00 ;關(guān)閉顯示,消隱</p><p> mov dx,addcolor</p><p><b> out dx,al</b></p><p> mov ah,01 ;判斷是否有鍵按下,有則返回DOS</p><p><b>
40、int 16h</b></p><p><b> jz nbrk</b></p><p> MOV AH,4CH </p><p><b> INT 21H</b></p><p> nbrk: inc count ;判斷是否到了最后一個字符</
41、p><p> cmp count,18h ;顯示字符數(shù)=源操作數(shù)/8</p><p> JGE bigger</p><p> jmp nextch</p><p> bigger:mov count,0h ;重新定位到第一個字符</p><p> cmp addcolor,
42、protly ;更換顯示顏色</p><p><b> jz change</b></p><p> mov addcolor,protly</p><p> jmp nextch</p><p> change: mov addcolor,protlr</p><p> nex
43、tch: ;掃描74ls244,74ls244開關(guān)的1-7位,最底連接到8253</p><p> CALL ReadKey ;調(diào)用ReadKey子程序,在DL中返回244值</p><p> TEST DL,20H ;第6位開關(guān)轉(zhuǎn)到顯示第一段字符</p><p> JNZ dansh
44、u</p><p> TEST DL,10H ;第5位開關(guān)轉(zhuǎn)到顯示第二段字符</p><p><b> JNZ sishu</b></p><p> TEST DL,08h ;第4位開關(guān)轉(zhuǎn)到顯示鍵盤輸入的數(shù)字</p><p> JNZ showch;XX</p>
45、<p> TEST DL,04h ;第3位開關(guān)轉(zhuǎn)到鍵盤輸入數(shù)字子程序</p><p><b> JNZ shuru</b></p><p> TEST DL,02H ;第2位開關(guān)為滾動,閃動切換模式</p><p><b> jnz agn11</b></p>
46、;<p> TEST DL,01H ;閃動時,通過查詢8253方式進行時間延時</p><p> JNZ changech</p><p> add count,8</p><p> CALL Int8253 ;必須重新對8253初始化,否則電平使字符不停切換</p><p> ch
47、angech: </p><p><b> dec count</b></p><p> agn11: </p><p><b> jmp agn </b></p><p> showch: </p><p> mov
48、cx,0f0h</p><p> d22: mov ah,01h</p><p><b> push cx</b></p><p> mov cx,0008h ;點陣一次顯示8列</p><p> mov si,offset Addwei</p><p> next1
49、: mov al,[si]</p><p> mov bx,offset buff</p><p><b> PUSH SI</b></p><p><b> push ax</b></p><p> MOV SI,OFFSET CHARSAVE</p><p>
50、ADD SI,COUNTTMP ;通過鍵盤程序得到偏移量</p><p> mov AX,[SI]</p><p> mov ah,00h</p><p><b> add bx,ax</b></p><p><b> pop ax</b></p><p><
51、;b> pop si</b></p><p> xlat ; ;得到第一列的取模碼</p><p> mov dx,proth</p><p><b> out dx,al</b></p><p><b> mov al,ah</b>&l
52、t;/p><p> mov dx,protly</p><p> out dx,al </p><p><b> shl ah,01</b></p><p><b> inc si</b></p><p> call delaylong ;列延時,時間
53、長則字符每列不連續(xù),短則亮度低</p><p> loop next1</p><p><b> pop cx</b></p><p><b> loop d22</b></p><p> mov al,00 ;關(guān)閉顯示,消隱</p><p>
54、; mov dx,addcolor</p><p><b> out dx,al</b></p><p> mov ah,01 ;判斷是否有鍵按下,有則返回DOS</p><p><b> int 16h</b></p><p><b> jz next
55、ch</b></p><p> MOV AH,4CH ;返回</p><p><b> INT 21H</b></p><p> sishu:mov mflag,01h</p><p> jmp nextch </p><p> danshu:mov mflag,00h<
56、;/p><p> jmp nextch </p><p> shuru: ;實現(xiàn)對按鍵單次檢測</p><p> MOV AH,01H</p><p><b> INT 16H</b></p><p> jz shuru ;判
57、斷有鍵按下才掃描鍵值</p><p> MOV ah,00h</p><p><b> int 16h</b></p><p><b> mov ah,0</b></p><p> SUB AL,30H</p><p> mov COUNTTMP,ax ;對AS
58、CII碼處理為0-9</p><p> MOV AH,01H ;檢測是否有鍵按下,沒有則退出子程序</p><p><b> INT 16H</b></p><p><b> jnz shuru</b></p><p> test mflag,01h</p>&l
59、t;p><b> jnz sishu</b></p><p> jmp nextch</p><p> ;******************讀取244子程序**************************</p><p> ReadKey PROC NEAR</p><p> mov dx,ls24
60、4 ;從2A0輸入一數(shù)據(jù)</p><p><b> in al,dx</b></p><p> mov dl,al ;將所讀數(shù)據(jù)保存在DL中</p><p><b> ret</b></p><p> ReadKey ENDP</p>
61、<p> ;******************8253初始化子程序************************</p><p> Int8253 PROC NEAR</p><p> mov dx,io8253c ;向8253寫控制字</p><p> mov al,0b6h ;使2通道為工作方式3&
62、lt;/p><p><b> out dx,al</b></p><p> mov ax,1000 ;寫入循環(huán)計數(shù)初值1000</p><p> mov dx,io8253a</p><p> out dx,al ;先寫入低字節(jié)</p><p>
63、;<b> mov al,ah</b></p><p> out dx,al ;后寫入高字節(jié)</p><p> mov dx,io8253c</p><p> mov al,76h ;設(shè)8253通道1工作方式2</p><p><b> out dx
64、,al</b></p><p> mov ax,5000 ;寫入循環(huán)計數(shù)初值1000</p><p> mov dx,io8253b</p><p> out dx,al ;先寫低字節(jié)</p><p><b> mov al,ah</b></p>
65、;<p> out dx,al ;后寫高字節(jié)</p><p><b> ret</b></p><p> INT8253 ENDP</p><p> ;******************軟件延遲子程序************************</p><p> DE
66、LAYlong PROC NEAR </p><p><b> push cx</b></p><p> mov cx,0ffffh</p><p> timeb: loop timeb</p><p> mov cx,0ffffh</p><p> timec: loop timec&
67、lt;/p><p><b> pop cx</b></p><p><b> ret</b></p><p> DELAYlong ENDP</p><p> ;***********************代碼段結(jié)束*************************</p>&l
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- led電子廣告牌的設(shè)計畢業(yè)論文
- 液晶點陣式矩陣電子廣告牌設(shè)計與制作畢業(yè)設(shè)計
- 電子廣告顯示屏課程設(shè)計
- 課程設(shè)計報告--led點陣廣告牌的設(shè)計
- 課程設(shè)計報告--led點陣廣告牌的設(shè)計
- 課程設(shè)計報告--led點陣廣告牌的設(shè)計
- 液晶顯示廣告牌的設(shè)計-課程設(shè)計
- 點陣廣告牌課程設(shè)計報告書
- 畢業(yè)論文淺談led在電子廣告牌的應(yīng)用
- 基于單片機控制的無線電子廣告牌的設(shè)計_畢業(yè)設(shè)計論文
- 微機原理課程設(shè)計--設(shè)計簡易電子琴
- 課程設(shè)計--基于嵌入式系統(tǒng)的lcd廣告牌設(shè)計
- plc課程設(shè)計--彩色廣告牌的plc控制器設(shè)計
- 廣告牌畢業(yè)設(shè)計
- 8x8點陣廣告牌課程設(shè)計報告
- 課程設(shè)計--廣告牌燈自動閃爍plc控制程序設(shè)計
- 滾動廣告牌的設(shè)計.doc
- plc實現(xiàn)彩燈廣告牌設(shè)計
- 8x_8點陣動態(tài)廣告牌課程設(shè)計報告
- 微機課程設(shè)計--簡易信息索引系統(tǒng)
評論
0/150
提交評論