

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 微機(jī)原理課程設(shè)計實(shí)驗(yàn)報告</p><p><b> 霓虹燈閃爍控制設(shè)計</b></p><p><b> 設(shè)計內(nèi)容</b></p><p> 利用可編程并行接口芯片8255A,通過軟件設(shè)置它的工作方式來控制8個LED燈的亮滅,使它們按照不同的規(guī)律閃爍,從而實(shí)現(xiàn)霓虹燈閃爍控制系統(tǒng)的設(shè)計。</
2、p><p><b> 設(shè)計目的</b></p><p> 通過設(shè)計霓虹燈閃爍控制系統(tǒng),學(xué)會使用芯片8255A,掌握8255A和微機(jī)接口方法,以及它的的工作方式和編程原理。</p><p><b> 設(shè)計要求</b></p><p> 通過對8255A進(jìn)行軟件編程使8個LED燈實(shí)現(xiàn)四種不同規(guī)律的變
3、化:</p><p> 1.使8個LED燈一起閃爍4次</p><p> 2.從左向右循環(huán)依次逐一閃亮,閃亮?xí)r間隔離定為0.5秒,這種變化重復(fù)4次。</p><p> 3.從右向左循環(huán)依次逐一閃亮,閃亮?xí)r間隔離定為0.5秒,這種變化重復(fù)4次。</p><p> 4.最左邊和最右的兩個燈點(diǎn)亮并同時向中間移動,相遇后又分離,移動間隔時間為
4、0.5秒,這種變化重復(fù)4次。</p><p><b> 四.設(shè)計原理</b></p><p> 如硬件原理圖所示,該系統(tǒng)由三部分組成:CPU8086、芯片8255A以及8個LED燈系統(tǒng)。其中,CPU的8條數(shù)據(jù)線同8255A的8條數(shù)據(jù)線對應(yīng)相連。讀線、寫線分別與8255A的讀線寫線相連。地址線的前兩位同8255A的A0、A1相連,同讀寫信號以及片選信號共同決定825
5、5A不同工作方式的地址。8255A的片選信號CS接到地址譯碼器輸出 070-07F插孔。從而完成了CPU對8255A的控制。</p><p> 通過DVCC-8086單板機(jī)上的8255芯片來實(shí)現(xiàn)霓虹燈閃爍控制系統(tǒng)的設(shè)計,利用8255A中的PC口,將其8位輸出PC7~PC0分別與8個LED燈L1~L8相連,當(dāng)PC口其中某位輸出為“0”時,則對應(yīng)LED燈亮。</p><p> 通過編程先對
6、8255進(jìn)行初始化,選擇控制字,設(shè)置PC口為輸出方式,然后給8086CPU中的AH賦值0EFH,采用循環(huán)移位指令對AH中的數(shù)值0EFH進(jìn)行移位,最后將移位后的數(shù)據(jù)輸?shù)絇C口,從而使8個LED燈按要求依次逐一點(diǎn)亮。 其他變化原理與此類似,主要是利用循環(huán)移位指令使PC口某位為零,從而使相應(yīng)位的LED燈閃亮。</p><p><b> 預(yù)備知識 </b></p><p>
7、 ①8255端口地址的確定:</p><p> 8255片選CS的連接決定了8255的端口地址。當(dāng)8255片選CS端連接到地址譯碼器輸出 070-07F插孔時,則8255端口地址對應(yīng)為:</p><p> 控制口:073 HPA口:070 HPB口:071 HPC口:072 H</p><p> ② 8255控制字的確定:置8255控制字為80H=10
8、00 0000D7: =1 (控制字標(biāo)志)D6,D5:=00(A口方式0),=01(方式1), =1X(方式2) D4: =0(A口輸出), =1(A口輸入)D3: =0 (C口高4位輸出), =1(C口高4位輸入)D2: =0(B口方式0), =1(方式1)D1: =0(B口輸出), =1(B口輸入)D0: =0 (C口低4位輸出), =1(C口低4位輸入)</p><p> 【8255A的引腳
9、圖及相關(guān)說明如下】:</p><p><b> ?、?255編程:</b></p><p> 先對8255A初始化,送8255控制字到控制口73H,再從PA、PB、PC口輸入輸出數(shù)據(jù)。</p><p><b> 六.設(shè)計步驟</b></p><p><b> (1) 硬件原
10、理圖</b></p><p><b> (2)軟件流程圖</b></p><p> 8255初始化,置8255控制字為80H① 置PA0=0,其余各位為1, 右邊第一只LED燈亮 ,延時0.5秒</p><p> ② 置PA1=0,其余各位為1, 右邊第二只LED燈亮 ,延時0.5秒 ……③ 置PA7=0,其余各位為1
11、, 右邊第八只LED燈亮 ,延時0.5秒</p><p> ?、?返回① ……</p><p><b> (3)程序設(shè)計</b></p><p> CODE SEGMENT ;程序開始</p><p> ASSUME CS:CODE ;定義代碼段</p><p>
12、; IOCONPT EQU 0073H ;8255A控制端口地址</p><p> IOAPTEQU 0070H ;8255A數(shù)據(jù)端口A的地址</p><p> IOBPTEQU 0071H ;8255A數(shù)據(jù)端口B的地址</p><p> IOCPTEQU 0072H ;8255A數(shù)據(jù)端口C的地址</p><p
13、> IOBDATA EQU 0500H</p><p> CONTPORT EQU 00DFH ;LED燈顯示程序的控制端口地址</p><p> DATAPORT EQU 00DEH ;LED燈顯示程序的數(shù)據(jù)端口地址</p><p> DATA1EQU 0640H</p><p> START:JMP IOLED
14、 ;程序開始,無條件轉(zhuǎn)移到IOLED</p><p> IOLED:CALL FORMAT ;調(diào)用8279A顯示子程序</p><p> CALL LEDDISP</p><p><b> MOV AX,0H</b></p><p> MOV DS,AX ;設(shè)置數(shù)據(jù)段</p>&l
15、t;p> MOV AL,82H</p><p> MOV DX,IOCONPT </p><p> OUT DX,AL ;設(shè)置8255A的控制字,端口A,B,C都工作于方式0,B作輸出</p><p> MOV DX,IOBPT</p><p> IN AL,DX ;讀取端口B的值</p>
16、<p> MOV BYTE PTR DS:[0501H],AL</p><p> MOV DX,IOCONPT</p><p> MOV AL,80H ;設(shè)置控制字,端口A,B,C都工作于方式0,作輸出</p><p> OUT DX,AL </p><p><b> ;只用C口</b>
17、</p><p> ;L1--L8對應(yīng)PC7--PC0</p><p> ;(1)L1--L8閃爍四次</p><p> VV: MOVCX,4H ;設(shè)置8個燈閃爍次數(shù)</p><p> LEDSTART:MOVDX,IOCPT</p><p> MOVAL,00H
18、;點(diǎn)亮L1--L8</p><p> OUT DX,AL</p><p> CALL DELAY2 ;調(diào)用延時子程序</p><p> MOV DX,IOCPT</p><p> MOV AL,0FFH</p><p> OUT DX,AL ;L1--L8燈
19、滅</p><p> CALL DELAY2</p><p> LOOP LEDSTART</p><p> CALL DELAY1 ;循環(huán)(L1--L8閃爍4次)</p><p> ;(2)單燈流水(右四次,左四次,兩邊到中間四次)</p><p> MOV CX,4H&
20、lt;/p><p> LED01 : MOVDX,IOCPT</p><p> MOV AL,7FH ;AL=0111 1111 B即點(diǎn)亮L1</p><p><b> OUTDX,AL</b></p><p> CALL DELAY2</p><p>
21、 AA: ROR AL,1 ;AL=1011 1111 B即點(diǎn)亮L2</p><p> OUT DX,AL</p><p> CALL DELAY2</p><p> CMP AL,80H</p><p> JA AA ;當(dāng)循環(huán)右移AL的最高位
22、再次為0時跳出循環(huán)</p><p> LOOP LED01</p><p> CALL DELAY1 ;調(diào)用延時子程序DELAY1</p><p> MOV CX,4H</p><p> LED02: MOV DX,IOCPT</p><p> MOV A
23、L,0FEH ;AL=1111 1110 B即點(diǎn)亮L8</p><p> OUT DX,AL</p><p> CALL DELAY2</p><p> BB: ROL AL,1 ;AL=1111 1101 B即點(diǎn)亮L7</p><p> OUT DX,AL<
24、;/p><p> CALL DELAY2</p><p> CMP AL,80H</p><p> JA BB ;當(dāng)循環(huán)左移AL的最高位再次為0時跳出循環(huán)</p><p> LOOP LED02 ;單燈向左流水點(diǎn)亮4次</p><p>
25、CALL DELAY1</p><p> MOV CX,4H</p><p> LED03: MOV DX,IOCPT</p><p> MOV AH,0FFH ;AH=1111 1111B</p><p> MOV BH,AH ;BH=1111 1
26、111B</p><p> SHR AH,1 ;AH=0111 1111B 邏輯右移</p><p> MOV BL,AH</p><p> SHL BH,1 ;BH=1111 1110B 邏輯左移</p><p> AND AH,BH</p
27、><p> MOV AL,AH ;AL=0111 1110 B</p><p> MOV AH,BL</p><p> OUT DX,AL ;點(diǎn)亮L1和L8</p><p> CALL DELAY2</p><p> CC: ROR
28、 AH,1 ;AH=1011 1111 B 循環(huán)右移</p><p> MOV BL,AH</p><p> ROL BH,1 ;BH=1111 1101 B 循環(huán)左移</p><p> AND AH,BH</p><p> MOV AL
29、,AH ;AL=1011 1101 B</p><p> MOV AH,BL</p><p> OUT DX,AL ;點(diǎn)亮L2和L7</p><p> CALL DELAY2</p><p> CMP AL,80H</p><p>
30、 JA CC ;當(dāng)AL的最高位為0時跳出循環(huán)</p><p> LOOP LED03 ;雙燈相向移動4次</p><p> CALL DELAY1</p><p> DELAY1: PUSH AX ;延時</p><p><b> PU
31、SH CX</b></p><p> MOV CX,0030H</p><p> DELY2:CALL DELAY2 ;延時</p><p> LOOP DELY2</p><p><b> POP CX</b></p><p><b> POP AX<
32、;/b></p><p><b> RET</b></p><p> DELAY2: PUSH CX</p><p> MOV CX,8000H</p><p> DELA1:LOOP DELA1</p><p><b> POP CX</b></p&
33、gt;<p><b> RET</b></p><p> LEDDISP:MOV AL,90H ;設(shè)置LED燈顯示子程序</p><p> MOV DX,CONTPORT</p><p><b> OUT DX,AL</b></p><p> MOV BYTE PTR
34、 DS:[0600H],00</p><p> LED1:CMP BYTE PTR DS:[0600H],07H</p><p><b> JA LED2</b></p><p> MOV BL,DS:[0600H]</p><p><b> MOV BH,0H</b></p>
35、;<p> MOV AL,CS:[BX+DATA1]</p><p> MOV DX,DATAPORT</p><p><b> OUT DX,AL</b></p><p> ADD BYTE PTR DS:[0600H],01H</p><p><b> JNZ LED1</b&
36、gt;</p><p><b> LED2:RET</b></p><p> FORMAT: MOV BX,0 ;設(shè)置8279A顯示子程序</p><p> MOV WORD PTR DS:[BX+0640H],405BH</p><p><b> ADD
37、 BX,2</b></p><p> MOV WORD PTR DS:[BX+0640H],4040H</p><p><b> ADD BX,2</b></p><p> MOV WORD PTR DS:[BX+0640H],6D6DH</p><p><b> ADD BX,2</
38、b></p><p> MOV WORD PTR DS:[BX+0640H],7F5BH</p><p><b> RET</b></p><p><b> CODE ENDS</b></p><p> END START</p><p><b>
39、 七.實(shí)驗(yàn)結(jié)果</b></p><p> 在實(shí)驗(yàn)箱上按照電路原理圖連接好電路①8255芯片PC口輸出端PC7~PC0依次接L1~L8。</p><p> ?、?255片選CS端連接地址譯碼器輸出070-07F插孔。③將PC機(jī)與DVCC8086用串口通訊線相連。在DVCC調(diào)試軟件中編譯連接運(yùn)行程序后,可以看到如下實(shí)驗(yàn)現(xiàn)象:</p><p> 首先使8個
40、LED燈一起閃爍4次;之后8個燈從左向右循環(huán)依次逐一閃亮,這種變化重復(fù)4次。8個燈又從右向左循環(huán)依次逐一閃亮,這種變化也重復(fù)4次。最后最左邊和最右的兩個燈點(diǎn)亮并同時向中間移動,相遇后又分離,這種變化同樣重復(fù)4次。每次燈閃亮都間隔一定的時間,如程序中設(shè)置的一樣,間隔5秒。</p><p><b> 八.調(diào)試過程與分析</b></p><p> 在觀察實(shí)驗(yàn)結(jié)果時,我發(fā)
41、現(xiàn)五種第四種和我預(yù)想的不一致,這時我記下了此時的第四種變化,并回過頭來查看第四種變化的程序段如下:</p><p> MOV CX,4H</p><p> LED03: MOV DX,IOCPT</p><p> MOV AH,0FFH ;AH=1111 1111B</p><p> MO
42、V BH,AH ;BH=1111 1111B</p><p> SHR AH,1 ;AH=0111 1111B 邏輯右移</p><p> ??;MOV BL,AH</p><p> SHL BH,1 ;BH=1111 1110 B 邏輯左移</
43、p><p> AND AH,BH</p><p> MOV AL,AH ;AL=0111 1110 B</p><p> ??;MOV AH,BL</p><p> OUT DX,AL ;點(diǎn)亮L1和L8</p><p> CALL
44、 DELAY2</p><p> CC: ROR AH,1 ;AH=1011 1111 B 循環(huán)右移</p><p> ?。?MOV BL,AH</p><p> ROL BH,1 ;BH=1111 1101 B 循環(huán)左移</p><p> AND
45、 AH,BH</p><p> MOV AL,AH ;AL=1011 1101 B</p><p> ??;MOV AH,BL</p><p> OUT DX,AL ;點(diǎn)亮L2和L7</p><p> CALL DELAY2</p><p
46、> CMP AL,80H</p><p> JA CC ;當(dāng)AL的最高位為0時跳出循環(huán)</p><p> LOOP LED03 ;雙燈相向移動4次</p><p> CALL DELAY1</p><p> 以上被注釋的程序段是我發(fā)現(xiàn)錯誤后進(jìn)行
47、的修改。</p><p> 下面不考慮以上被添加的四條程序,分析一下這8個燈會怎樣變化:</p><p> ?。▋H對AH、BH這兩個寄存器在程序執(zhí)行過程中值的變化進(jìn)行跟蹤)</p><p> AH=1111 1111B</p><p> BH=AH=1111 1111B</p><p> AH=0111
48、1111B</p><p> BH=1111 1110B</p><p> AH=0111 1110B</p><p> AL=0111 1110B ;點(diǎn)亮L1和L8</p><p> AH=0011 1111B</p><p> BH=1111 1101B</p><
49、p> AH=0011 1101B</p><p> AL=0011 1101B ;點(diǎn)亮L1、L2、L8</p><p> 此時程序執(zhí)行到 CMP AL,80H (AL=0011 1101B<80H)時就會跳出循環(huán)。與原來的設(shè)計不符,原因是在程序執(zhí)行AND AH,BH 時AH循環(huán)右移的結(jié)果已經(jīng)發(fā)生了變化。此時就必須引入一個中間寄存器BL,在程序執(zhí)行ROR
50、AH,1后接著MOV BL,AH 對AH循環(huán)右移的結(jié)果進(jìn)行保存,并且在執(zhí)行 MOV AL,AH 后 </p><p> MOV AH,BL 對AH循環(huán)右移的結(jié)果進(jìn)行恢復(fù)。</p><p><b> 九.實(shí)驗(yàn)總結(jié)</b></p><p> 通過這次霓虹燈閃爍控制實(shí)驗(yàn)的設(shè)計,對于可編程并行接口芯片8255A的工作原理,與
51、微機(jī)接口的方法以及用匯編進(jìn)行編程有了更深入的理解。鞏固了課堂上學(xué)到的知識,并將它運(yùn)用于實(shí)踐。除此之外,我體會最深的一點(diǎn)是:只要用心,不管遇到什么難題都可以解決,正所謂事在人為。剛拿到題目時,一片茫然。雖然在微機(jī)原理課上學(xué)過了匯編語言,芯片8255A的工作方式,并且做過相關(guān)的實(shí)驗(yàn),但是還是朦朦朧朧的不是很明白,所以擔(dān)心做不出來。</p><p> 不過經(jīng)過一番努力,通過仔細(xì)閱讀課本上的相關(guān)知識,上網(wǎng)查些資料,再與
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 霓虹燈plc課程設(shè)計---霓虹燈控制電路設(shè)計
- eda課程設(shè)計--霓虹燈
- eda課程設(shè)計霓虹燈
- plc課程設(shè)計--霓虹燈
- 霓虹燈燈控制系統(tǒng)的課程設(shè)計
- 課程設(shè)計--霓虹燈控制器的設(shè)計
- plc控制的霓虹燈廣告屏設(shè)計課程設(shè)計
- 霓虹燈廣告屏課程設(shè)計2
- 霓虹燈廣告屏設(shè)置課程設(shè)計
- 霓虹燈廣告屏設(shè)置課程設(shè)計
- 課程設(shè)計--霓虹燈燈廣告屏的plc控制系統(tǒng)設(shè)計
- 微機(jī)原理課程設(shè)計--8個開關(guān)控制霓虹燈閃爍,有數(shù)碼管顯示
- 數(shù)字電路課程設(shè)計---霓虹燈控制電路設(shè)計報告
- 霓虹燈plc控制畢業(yè)設(shè)計
- 霓虹燈飾的控制系統(tǒng)課程設(shè)計
- 匯編語言課程設(shè)計--“霓虹燈”的模擬顯示
- 微機(jī)原理課程設(shè)計---霓虹燈的模擬顯示程序設(shè)計
- 霓虹燈廣告屏設(shè)置課程設(shè)計說明書
- 閃爍燈課程設(shè)計
- 微機(jī)原理與接口技術(shù)課程設(shè)計報告---開關(guān)控制霓虹燈
評論
0/150
提交評論