欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Proteus绘制8086原理图以及编程实现流水灯

发布时间:2024/1/1 编程问答 82 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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原理图以及编程实现流水灯的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。