mdsk.net
当前位置:首页 >> 有谁知道单片机 protEus里面怎么用2位数码管去代替两个一位数码管?急需大神求解! >>

有谁知道单片机 protEus里面怎么用2位数码管去代替两个一位数码管?急需大神求解!

你现的仿真图中用的两个数码管,不是什么共阴的,只有4个脚,那是BCD码输入的.这样,你的程序就非常简单,用一行就能显示:MOV P2,A,这样挺好的,简单,省事.一样,能显示出接收的字符的ASCII码的.但是,要换成两位一体的,是共阴的,10个脚的,那是需要段码和位码来控制显示的,需要专门写一个段动态扫描显示程序的,反倒麻烦了.不过,你的程序只能接收一次,可以改成循环接收任意次数,就好了.电路简化后为这样就行.

程序没问题.proteus的动态显示1~10ms都正常.估计问题出在preoteus仿真上.因为软件对三极管支持的不太好,所以显示不正常.试试去掉三极管,同时改下代码为先高电平点亮,延时,再低电平熄灭.

PROTEUS仿真图上有很多点,有红色的,有蓝色的,蓝色的意思就是低电平,红色的意思就是高电平.你看你的第二个数码管的位选端是蓝色的没?说明你的那个数码管没有使用,肯定是因为程序的原因,仔细检查一下吧!

sbit key1=p3^0;sbit key2=p3^1;if(key1==0) a++;if(key2==0) a--;

思路2个函数,一个keyscan()按键扫描,一个segdisplay()数码管显示 2个全局变量 一个数组 就能实现了

a b c d e f g dp 分别对应连接,共阴极(共阳极)为位选,那个连接那个就亮.和51单片机一样的

1.程序缺少循环,跑飞了.2.电阻太大.不亮,原因并不在单片机上.你就是把单片机删除掉,只是保留电阻和数码管,数码管都不会亮.把电阻,改成330欧姆,试试看.

应该挺简单的啊.你输出的时候,每位输出的段码不同吧?你会做动态显示就OK了现在的问题是如何利用按钮修改每位的段码这也不是问题吧?段码是调用数组中的译码值,假设数组为A[i],只要改变i就行了啊.你输出的时候要输出两次(共2位)(假设为)P1=A[i];,一个是十位,一个是个位.都是一样的原理.现在就是按钮选择的问题了吧?那就更简单了,你肯定懂得.注意一下防抖什么的就好了最后,程序是一点一点调出来的,先慢慢的一个功能一个功能的调出来,后面就不会有很大问题了.这个过程很愉快,也很有成就感.不赞成一口气吃成胖子.

这个元件是用protel画的吧,那个名字:8SEG-4也是画图者自己起的,并不是什么标准的名字,到了proteus里当然就找不到了.而且这两个软件的元件名称根本不相同的,是不统一的.到了proteus里,要按它的元件名称来找,才行.proteus里的数码管,要分共阴和共阳的.一共有4个,还分红色和蓝色的.见下图,在元件列表中就是数码管的名称,所在的类别和子类也在下图显示出来了.

朋友专业家电维修告诉你 你想显示4个一般都用动态扫描方式显示,那样可以省单片机的引脚 你只要把4个数码管的 abcdefg. 8个引脚连在一起, 你的数码管是共阴还是共阳? 还剩下4个 公共端 当做片选 就可以了! 其实那种单个4位数码屏内部就是这样连线的!有什么不明白可以问我!

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com