版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 微型計(jì)算機(jī)技術(shù)</b></p><p><b> 課程設(shè)計(jì)</b></p><p> 指導(dǎo)教師: </p><p> 學(xué)生班級(jí): </p><p> 學(xué)生姓名:
2、 </p><p> 學(xué) 號(hào): </p><p> 班內(nèi)序號(hào): 19 </p><p> 課設(shè)日期:2012年12月17日~2012年12月28日</p><p><b> 目錄</b></p><p&
3、gt; 一.課設(shè)任務(wù)·······························1</p><p>
4、 二.課設(shè)目的·······························1</p><p> 三.設(shè)
5、計(jì)內(nèi)容·······························1</p><p> 四.設(shè)計(jì)思路&
6、#183;······························2</p><p> 五.設(shè)計(jì)步驟·
7、;······························2</p><p> 六.試驗(yàn)流程·
8、83;·····························3</p><p> 七.源代碼··
9、183;······························4</p><p> 八.實(shí)驗(yàn)結(jié)果·
10、······························10</p><p> 九.實(shí)驗(yàn)總結(jié)·
11、83;·····························12</p><p> 一、課程設(shè)計(jì)任務(wù):模擬電壓采集電路及
12、程序設(shè)計(jì) </p><p> 利用《匯編語言與微型計(jì)算機(jī)技術(shù)》課程中所學(xué)的主要可編程接口芯片8253、8255A、ADC0809和微機(jī)內(nèi)部的中斷控制器8259A(從保留的IRQ2或IRQ10端引入)設(shè)計(jì)一個(gè)模擬電壓采集電路及程序。</p><p><b> 二、設(shè)計(jì)目的</b></p><p> 通過本設(shè)計(jì),使學(xué)生綜合運(yùn)用《匯編語言與微型
13、計(jì)算機(jī)技術(shù)》課程以及其它電子類課程的內(nèi)容,為以后從事計(jì)算機(jī)硬件開發(fā)工作奠定一定的基礎(chǔ)。</p><p> 主要掌握并行I/O接口芯片8253、8255A、ADC0809及中斷控制芯片8259A等可編程器件的使用,掌握譯碼器74LS138的使用。</p><p> 學(xué)會(huì)用匯編語言編寫一個(gè)較完整的實(shí)用程序。</p><p> 掌握微型計(jì)算機(jī)技術(shù)應(yīng)用開發(fā)的全過程:分
14、析需求、設(shè)計(jì)原理圖、選用元器件、布線、編程、調(diào)試、撰寫報(bào)告等步驟。</p><p><b> 三、設(shè)計(jì)內(nèi)容</b></p><p><b> 1.功能要求</b></p><p> 采用ADC0809設(shè)計(jì)一個(gè)單通道模擬電壓采集電路,要求對(duì)所接通道變化的模擬電壓值進(jìn)行采集,采集來的數(shù)字量一路送至發(fā)光二極管顯示,一路送至
15、計(jì)算機(jī)顯示到屏幕上,每行顯示5個(gè)數(shù)據(jù),采集完100個(gè)數(shù)據(jù)后停止采集過程,采集過程中按下ESC鍵也可中斷采集過程。</p><p><b> 設(shè)計(jì)所需器材與工具</b></p><p> 一塊實(shí)驗(yàn)面包板(內(nèi)含時(shí)鐘電路)。 </p><p> 可編程芯片8253、8255A 、ADC0809和譯碼器芯片74LS138、74LS245各一片。7
16、4LS06兩片,發(fā)光二極管8個(gè)。</p><p> 可調(diào)電位器4.7KΩ一個(gè)。</p><p><b> 導(dǎo)線若干。</b></p><p> 示波器、萬用表、常用工具等共用(從實(shí)驗(yàn)室現(xiàn)借現(xiàn)還)。</p><p><b> 8255的自檢測(cè)</b></p><p>
17、 這部分要求我們初始化8255,為了能夠正確的看出8255已經(jīng)初始化,當(dāng)8255初始化后向B口送數(shù)據(jù)0FH到發(fā)光二管上顯示,如果能夠正確顯示就說明8255已經(jīng)被初始化。</p><p><b> 8253的自檢測(cè)</b></p><p> 這部分要求我們初始化8253,8253初始化后可以通過示波器觀察輸出的波形是否滿足要求。</p><p&g
18、t;<b> 進(jìn)行A/D轉(zhuǎn)換。</b></p><p> 這部分是本次課設(shè)的關(guān)鍵部分,在做此之前,必須保證8255和8253都被正確的初始化,通過8255的C口控制ADC0809對(duì)模擬數(shù)據(jù)的采集,然后從A口讀取轉(zhuǎn)換后的數(shù)據(jù),一路送發(fā)光二極管顯示,一路送顯示器上顯示,這里模擬量由電位器得到。</p><p><b> 退出系統(tǒng)</b><
19、/p><p> 想結(jié)束程序的時(shí)候,從菜單上選擇Esc鍵就可以退出程序。</p><p><b> 四、設(shè)計(jì)思路 </b></p><p> 4.7KΩ電位器一端接+5V,一端接地,調(diào)節(jié)電位器得到變化的模擬電壓,該電壓接至ADC0809的某一通道輸入端(如IN0),ADC0809的時(shí)鐘為500KHz,由8253對(duì)面包板上時(shí)鐘1MHz或2MHz分
20、頻后得到,8253的端口地址:300H~303H。</p><p> 編程啟動(dòng)ADC0809轉(zhuǎn)換(ADC0809完成一次轉(zhuǎn)換的時(shí)間大約為120μs),將ADC0809的EOC引腳信號(hào)作為中斷信號(hào),若轉(zhuǎn)換結(jié)束則進(jìn)入中斷服務(wù)程序。在中斷服務(wù)程序中讀入模數(shù)轉(zhuǎn)換結(jié)果,一路送至發(fā)光二極管顯示,一路送至計(jì)算機(jī)顯示到屏幕上。</p><p> 8255A用做CPU和ADC0809間的接口芯片,ADC
21、0809的控制信號(hào)(如OE、ALE、START等)可由8255A的PC口提供,模數(shù)轉(zhuǎn)換后的數(shù)字量可經(jīng)8255A的PA口讀入,經(jīng)8255A的PB口輸出到發(fā)光二極管。8255A端口地址:304H~307H。</p><p> 譯碼電路由74LS138提供。74LS245用于總線和8255A之間的雙向傳輸和隔離。</p><p><b> 硬件珠城際工作原理</b>&l
22、t;/p><p><b> 五、設(shè)計(jì)步驟</b></p><p> 設(shè)計(jì)出正確的接口電路原理圖,要求用專業(yè)繪圖軟件繪制電路圖,并注明器件的名稱和管腳。</p><p> 根據(jù)要求用74LS138設(shè)計(jì)出正確的I/O譯碼電路。</p><p> 正確運(yùn)用所給器件布線,搭接硬件電路。</p><p>
23、; 選用匯編語言編寫主程序以及各芯片調(diào)試子程序,要求:</p><p> 具有操作界面、使用方便;</p><p><b> 實(shí)現(xiàn)功能要求;</b></p><p> 功能模塊應(yīng)有詳細(xì)注釋。</p><p> 調(diào)試并排錯(cuò),包括硬件電路和軟件編程部分的錯(cuò)誤。</p><p><b&g
24、t; 按照下圖連接電路</b></p><p><b> 六、實(shí)驗(yàn)流程</b></p><p> 1、ADC主程序編寫</p><p> 2、ADC中斷服務(wù)程序的編寫</p><p><b> 七、源代碼</b></p><p> DATA SEGME
25、NT</p><p> MESG1 DB '1s invoke interrupt one time,and to light one of LEDs',0ah,0dh</p><p> DB 'Exit with Esc',0ah,0dh,'$'</p><p> INT0A_OFF DW(?)</
26、p><p> INT0A_SEG DW(?) </p><p><b> DATA ENDS</b></p><p> CODE SEGMENT</p><p> ASSUME CS:CODE,DS:DATA</p><p> DELAY PROC</p>&l
27、t;p><b> PUSH CX</b></p><p><b> PUSH BX</b></p><p> MOV BX,0FFFH</p><p> LOOP2:MOV CX,0FFFFH</p><p> LOOP1:LOOP LOOP1</p><p>
28、;<b> DEC BX</b></p><p><b> JNZ LOOP2</b></p><p><b> POP BX </b></p><p><b> POP CX</b></p><p><b> RET </b&g
29、t;</p><p> DELAY ENDP</p><p><b> DISP PROC</b></p><p><b> push ax </b></p><p> show: and al,0f0h ;顯示高4位</p><
30、p><b> shr al,4</b></p><p><b> cmp al,9</b></p><p><b> ja hex</b></p><p> add al,30h</p><p><b> jmp next</b><
31、/p><p> hex: add al,37h</p><p> next: mov dl,al</p><p><b> mov ah,2</b></p><p><b> int 21H</b></p><p><b> pop ax</b
32、></p><p> and al,0fh ;顯示低4位</p><p><b> cmp al,9</b></p><p><b> ja hex1</b></p><p> add al,30h</p><p>
33、<b> jmp next1</b></p><p> hex1: add al,37h</p><p> next1: mov dl,al</p><p><b> mov ah,2</b></p><p><b> int 21h</b></p>
34、<p> mov dl,13 ;向屏幕送回車符</p><p><b> mov ah,2</b></p><p><b> int 21h</b></p><p> mov dl,10 ;向屏幕送換行符<
35、/p><p><b> mov ah,2</b></p><p> int 21h</p><p><b> RET</b></p><p><b> DISP ENDP</b></p><p><b> START:</
36、b></p><p> MOV AX,DATA</p><p> MOV DS,AX </p><p> MOV AH,09H</p><p> MOV DX,OFFSET MESG1</p><p> INT 21h ;顯示提示信息 </p><p>
37、MOV DX,303H ;初始化8255</p><p> MOV AL,80H</p><p> OUT DX,AL </p><p> MOV AX,3572H ;獲取原中斷向量</p><p><b> INT 21H</b></p><p>
38、 MOV INT0A_OFF,BX ;保存原中斷向量</p><p><b> MOV BX,ES</b></p><p> MOV INT0A_SEG,BX</p><p> CLI ;關(guān)中斷</p><p> MOV AX,2572H</p>&l
39、t;p> MOV DX,SEG LEDLIGHT ;設(shè)置新的中斷向量</p><p><b> PUSH DS</b></p><p><b> MOV DS,DX</b></p><p> MOV DX,OFFSET LEDLIGHT</p><p><b> IN
40、T 21H</b></p><p><b> POP DS</b></p><p> STI ;開中斷</p><p> IN AL,0A1H ;打開IRQ10</p><p> AND AL,0FBH</p>&l
41、t;p> OUT 0A1H,AL</p><p> IN AL,21H ;打開IRQ2</p><p> AND AL,0FBH</p><p> OUT 21H,AL</p><p> MOV DX,307H ;8253定時(shí)1S</p><p> MO
42、V AL,01110110B</p><p> OUT DX,AL</p><p> MOV DX,305H</p><p> MOV AL,0E8H</p><p> OUT DX,AL</p><p> MOV AL,03H</p><p
43、> OUT DX,AL</p><p> MOV DX,307H</p><p> MOV AL,10110110B</p><p> OUT DX,AL</p><p> MOV DX,306H</p><p> MOV AL,0E8H</p&g
44、t;<p> OUT DX,AL</p><p> MOV AL,03H</p><p> OUT DX,AL</p><p> L1: MOV AH,0BH ;檢查是否有Esc鍵按下</p><p><b> INT 21H</b></p&g
45、t;<p><b> INC AL</b></p><p> JNZ NEXT0 ; 若無鍵按下,則程序往下執(zhí)行 </p><p> MOV AH,08H ;如有Esc鍵按下,則程序退出</p><p><b> INT 21H</b><
46、/p><p><b> CMP AL,27</b></p><p> JZ EXIT </p><p><b> NEXT0: </b></p><p> CALL DELAY </p><p><b> JMP L1 </b><
47、/p><p> LEDLIGHT PROC FAR ;中斷服務(wù)程序</p><p><b> PUSH SI</b></p><p><b> PUSH AX</b></p><p> PUSH DX </p><p> CLI
48、 ;關(guān)中斷</p><p> mov dx,303h ;初始化8255狀態(tài)字,A口輸出</p><p> mov al,80h</p><p><b> out dx,al</b></p><p> mov dx,300h;送通道號(hào)至A口</p>
49、;<p><b> mov al,0</b></p><p><b> out dx,al</b></p><p> mov dx,303h</p><p> mov al,3h;00000011,使PC1為1</p><p> out dx,al
50、;PC1置1進(jìn)行地址鎖存</p><p> ; mov dx,303h</p><p> ; mov al,90h</p><p> ; out dx,al;重寫8255方式字,A口輸入,B口輸出,C口低四位輸出</p><p> mov dx,303h ;使PC0置高發(fā)啟
51、動(dòng)信號(hào)</p><p> mov al,1h;00000001,先使PC0為1</p><p><b> out dx,al</b></p><p> mov cx,0f00h ;delay</p><p> ;lop1:loop lop1</p>
52、<p> mov dx,303h</p><p> mov al,0h;00000000,延時(shí)后使PC0為0發(fā)啟動(dòng)信號(hào)</p><p><b> out dx,al</b></p><p><b> nop</b></p><p><b> nop&l
53、t;/b></p><p> mov dx,303h</p><p> mov al,5h</p><p> ;00000101,使PC2為高,發(fā)出OE</p><p> out dx,al</p><p> mov dx,300h;從A口讀數(shù)據(jù)</p><p>
54、; in al,dx</p><p> MOV DX,301H;從B口向LED輸出數(shù)據(jù)</p><p><b> OUT DX,AL</b></p><p> CALL DISP ;向屏幕輸出數(shù)據(jù)</p><p> MOV AL,62H ;發(fā)中斷結(jié)束命令</p>
55、<p> MOV DX,0A0H</p><p> OUT DX,AL ;向從片8259發(fā)EOI命令</p><p> OUT 020H,AL ;向主片8259發(fā)EOI命令</p><p> STI ;開中斷</p><p><b> POP DX<
56、/b></p><p><b> POP AX</b></p><p> POP SI </p><p><b> IRET</b></p><p> LEDLIGHT ENDP</p><p><b> EXIT:</b><
57、;/p><p> MOV AX,2572H ;恢復(fù)中斷向量</p><p> MOV DX,INT0A_SEG</p><p><b> PUSH DS</b></p><p><b> MOV DS,DX</b></p><p> MOV DX,INT
58、0A_OFF</p><p><b> INT 21H</b></p><p><b> POP DS</b></p><p> IN AL,0A1H ;屏蔽IRQ10</p><p> OR AL,04H</p><p> OUT 0A1H,A
59、L</p><p> IN AL,21H ;屏蔽IRQ2</p><p> OR AL,04H</p><p> OUT 21H,AL</p><p> MOV AX,4C00H ;程序退出</p><p> INT 21H </p><p><
60、;b> CODE ENDS</b></p><p><b> END START</b></p><p> 八、實(shí)驗(yàn)結(jié)果(如下圖)</p><p> 1、鍵入單選項(xiàng)“1”</p><p> 進(jìn)入主菜單后選擇1進(jìn)行8255的初始化自檢,這時(shí)候會(huì)發(fā)現(xiàn)在實(shí)驗(yàn)板上的一半燈亮,一半滅。界面和實(shí)驗(yàn)箱效果如
61、下圖所示:</p><p> 2、鍵入菜單項(xiàng)“2”</p><p> 8255初始化完成后鍵入“2”,程序?qū)⒉杉瘮?shù)據(jù),一路送往電腦顯示,一路送往二極管顯示,調(diào)節(jié)電位器,采集不同的數(shù)據(jù)</p><p><b> 八、實(shí)驗(yàn)總結(jié)</b></p><p> 個(gè)人覺得這次實(shí)驗(yàn)主要考驗(yàn)的是學(xué)習(xí)態(tài)度和細(xì)心。實(shí)驗(yàn)用到的芯片基本都
62、學(xué)習(xí)過,實(shí)驗(yàn)原理、程序代碼及電路圖老師都有講解,就是看平時(shí)學(xué)習(xí)時(shí)認(rèn)真與否。做實(shí)驗(yàn)時(shí)得細(xì)心和有耐心才能事半功倍。對(duì)于我來說,這次實(shí)驗(yàn)由于之前上機(jī)做單個(gè)芯片測(cè)試的實(shí)驗(yàn)時(shí)不是很認(rèn)真,加上對(duì)匯編語言不能熟練使用導(dǎo)致實(shí)驗(yàn)完成起來比較吃力,但得到老師和同學(xué)點(diǎn)撥后編程還是比較順利的。由于線路較多,實(shí)驗(yàn)在連線上耗費(fèi)了過多的時(shí)間,連接線路時(shí)沒有考慮到走線的合理性和美觀性,線路接地毫無條理,導(dǎo)致實(shí)驗(yàn)出現(xiàn)問題時(shí)檢查線路非常困難。從每根線路檢查起,到更換芯片、
63、電位器等原件實(shí)驗(yàn)都毫無起色,最后發(fā)現(xiàn)檢查線路花的時(shí)間比連接線路花費(fèi)的時(shí)間都長,于是拆掉所有導(dǎo)線重新連接。經(jīng)過兩三次的拆掉所有線路從零開始和無數(shù)次的全盤檢測(cè),歷時(shí)9天左右,得到的實(shí)驗(yàn)結(jié)果終于和理論一致。這次課程設(shè)計(jì)讓我明白了平時(shí)學(xué)習(xí)認(rèn)真和態(tài)度端正的重要性,也讓我?guī)状问浜蛶捉^望,但實(shí)驗(yàn)最終還是成功了,成功的喜悅讓我覺得之前付出的一切都是值得的!正如白老師所說的那樣,這次課程設(shè)計(jì)是硬件軟件結(jié)合、計(jì)科獨(dú)一無二的一次課設(shè),是個(gè)不錯(cuò)的經(jīng)歷!&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 匯編語言程序設(shè)計(jì)-課程設(shè)計(jì)
- 匯編語言程序設(shè)計(jì)課程設(shè)計(jì)
- 匯編語言程序設(shè)計(jì)課程教案
- 匯編語言程序設(shè)計(jì)
- 匯編語言程序設(shè)計(jì)競(jìng)賽報(bào)告
- 匯編語言程序設(shè)計(jì)
- 鍵盤鋼琴匯編語言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 鍵盤鋼琴匯編語言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 鍵盤鋼琴匯編語言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 《匯編語言》課程設(shè)計(jì)報(bào)告--判斷閏年程序
- 匯編語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告-循環(huán)程序設(shè)計(jì)
- 匯編語言課程設(shè)計(jì)報(bào)告
- 匯編語言課程設(shè)計(jì)報(bào)告
- 匯編語言課程設(shè)計(jì)報(bào)告
- 匯編語言課程設(shè)計(jì)報(bào)告a
- 匯編語言程序設(shè)計(jì)前言
- 匯編語言課程設(shè)計(jì)--代碼轉(zhuǎn)換程序
- 匯編語言課程設(shè)計(jì) 音樂點(diǎn)播程序
- 匯編語言程序設(shè)計(jì)課后答案
- 實(shí)驗(yàn)一 匯編語言程序設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論