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