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

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

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

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

将两位数拆开,十位和个位;用除法和取余函数就可以得到十位和个位;如 c=36a=c/10;b=c%10则,a=3; b=6再将它俩分别送到对应的数码管上,显示.

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

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

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

第一个管亮灭一次,然后第二个管亮灭一次,时间间隔短一点就好了.

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

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

abcdefg从低位到高位一一对应,4个连在一起是一个意思,就是用位选来控制,进行扫描刷新就可以了!

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