Proteus绘制8086原理图以及编程实现流水灯
文章目錄
一、問題所在以及解決方案
二、在剛開始的時(shí)候也出現(xiàn)過如下的報(bào)錯(cuò)情況
三、編程實(shí)現(xiàn)LED由上到下逐個(gè)遞增點(diǎn)亮,每隔一段時(shí)間點(diǎn)亮下一只,但前面的不滅。
一、問題所在以及解決方案
在上一篇文章中提到的流水燈只亮不閃以及74372輸出全是高電平問題,解決方案如下:
在繪制完最小系統(tǒng)原理圖以及流水燈原理圖之后,發(fā)現(xiàn)led燈只亮不閃,運(yùn)行四個(gè)流水燈依次熄滅點(diǎn)亮的代碼時(shí)也是如此;后與老師一起研究發(fā)現(xiàn)問題所在是前兩塊74273芯片的引腳輸出都是紅色高電平,說明信號(hào)沒有傳送入鎖存器中;這可能是接的線路出了問題,但當(dāng)天我與老師一起尋找許久卻始終沒有找到問題所在,無論是引腳的接線還是元器件和線路的標(biāo)號(hào),都沒有出錯(cuò)的問題。這個(gè)問題也讓我糾結(jié)了很久,課后也多次嘗試,仍然無果;
最后再一次偶然上網(wǎng)搜索找到一個(gè)帖子說:連線都沒有問題的話可以考慮可能是接線不穩(wěn)定所導(dǎo)致的。雖然是仿真實(shí)驗(yàn),但是我還是抱著試一試的心態(tài),將連接標(biāo)號(hào)為U6、U7的兩塊74273芯片的總線與子電路連線全都刪除然后再重新連接,竟然十分意外地運(yùn)行成功了。這雖然令我感到很無奈,但是也很驚喜和喜悅;算是圓滿的完成看了一次實(shí)驗(yàn)。
這是繪制的8086最小系統(tǒng)圖,個(gè)人建議:在原理圖的連線沒有發(fā)現(xiàn)問題時(shí)仍然無法運(yùn)行成功,可以嘗試將出錯(cuò)的那部分刪除然后重新連線,舍友也出現(xiàn)了和我類似的情況,用這個(gè)方法成功了。
?
二、在剛開始的時(shí)候也出現(xiàn)過如下的報(bào)錯(cuò)情況
?
?這是因?yàn)榻o8086芯片設(shè)置的內(nèi)存不足導(dǎo)致,我們需要更改一下給8086設(shè)置的內(nèi)存就可以了。
在原理圖界面雙擊8086芯片,出現(xiàn)如下頁面:
?
?然后點(diǎn)擊確認(rèn),這樣就不會(huì)再出現(xiàn)剛剛那種報(bào)錯(cuò)的情況了。
三、編程實(shí)現(xiàn)LED由上到下逐個(gè)遞增點(diǎn)亮,每隔一段時(shí)間點(diǎn)亮下一只,但前面的不滅。
;方法1 此方法比較簡單好上手好懂,但是代碼太過冗長,如果led數(shù)量再繼續(xù)增加就更長了。
.MODEL SMALL .8086 .STACK .CODE .STARTUP AGAIN:MOV DX,0200H ;74ls273芯片對應(yīng)的地址 MOV AX,1111111111111111B ;對應(yīng)0電平的LED點(diǎn)亮 OUT DX,AX CALL DELAY ;延時(shí) MOV AX,1111111111111110B; OUT DX,AX CALL DELAY; MOV AX,1111111111111100B; OUT DX,AX CALL DELAY; MOV AX,1111111111111000B; OUT DX,AX CALL DELAY; MOV AX,1111111111110000B; OUT DX,AX CALL DELAY; MOV AX,1111111111100000B; OUT DX,AX CALL DELAY; MOV AX,1111111111000000B; OUT DX,AX CALL DELAY; MOV AX,1111111110000000B; OUT DX,AX CALL DELAY; MOV AX,1111111100000000B; OUT DX,AX CALL DELAY; MOV AX,1111111000000000B; OUT DX,AX CALL DELAY; MOV AX,1111110000000000B; OUT DX,AX CALL DELAY; MOV AX,1111100000000000B;; OUT DX,AX CALL DELAY; MOV AX,1111000000000000B;; OUT DX,AX CALL DELAY; MOV AX,1110000000000000B;; OUT DX,AX CALL DELAY; MOV AX,1100000000000000B;; OUT DX,AX CALL DELAY; MOV AX,1000000000000000B;; OUT DX,AX CALL DELAY; MOV AX,000000000000000B;; OUT DX,AX CALL DELAY; JMP AGAIN DELAY PROC NEAR ;延時(shí)子程序 MOV BX,200LP1:MOV CX,469 LP2:LOOP LP2 DEC BX JNZ LP1 RET DELAY ENDP .DATA END .方法2:?
.MODEL SMALL .8086 .STACK .CODE .STARTUP AGAIN:MOV DX,0200H ;74ls273芯片對應(yīng)的地址 MOV AX,0FFFFH ;將FFFFH賦給AX,對應(yīng)0電平的LED點(diǎn)亮。此時(shí)LED燈全滅。 MOV BL,0H ;清空BL中的數(shù)值 MOV CL,10H ;將10H賦給CX,表示循環(huán)次數(shù)為16次LOOP1: MOV CL,BL ;將BL中的數(shù)值放入CL中 SAL AX,CL ;AX里的數(shù)邏輯左移,移動(dòng)次數(shù)=CL中的數(shù)值 OUT DX,AXCALL DELAY ;延時(shí)INC BX ;BX+1——>BXDEC CX ;CX-1——>CX JNZ LOOP1 DELAY PROC NEAR ;延時(shí)子程序 MOV BX,200 LP1:MOV CX,300 LP2:LOOP LP2 DEC BX JNZ LP1 RET DELAY ENDP .DATA END .總結(jié)
以上是生活随笔為你收集整理的Proteus绘制8086原理图以及编程实现流水灯的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: visualsvn server备份记录
- 下一篇: 软件测试_接口测试之协议和端口汇总(3)