搜索
bottom↓
回复: 20

请教:Proteus中的数码管该怎么用?已经解决,并上传作为简单实例与大家共享

[复制链接]

出0入0汤圆

发表于 2005-4-21 21:18:36 | 显示全部楼层 |阅读模式
今天是了一下仿真,是用LED成功,但数码管的仿真无论是静态或是动态总是点不亮数码管,后来我将电池分别按共阳和共阴连接,还是不行。请那位大侠指点一下,到底该怎样用。3Q
--------------------------------------------

今天终于解决了,原来,数码管的特性与LED不同,他必须在不停的刷新状态下才能正常显示,一般情况下,采取本位点亮1mS然后转向点亮下一位的循环扫描,显示才比较正常,点亮时间偏离了,效果就不好,或者根本显示不出来。昨天仿真失败,就是由于我采用了静态驱动或扫描时间不合理所致。另外,我还发现,数码管器件库中有共阳和共阴的,CA为共阳,CC为共阴。但CA的并不是真正意义上的共阳,其段码与CC的是相同的,仅仅是公共端接高电位,这和实际上的共阳数码管有区别,在实际使用共阳数码管式,应该采用反码才对。在仿真时,我使用的是6.3版,原来采用想仿真M16,但是可能使该器件的仿真数据有问题,总时提示错误,而这些提示根本就是将M16的引脚都搞错了,请大家注意。此外,分别用了ICC、CVAVR、GCC和ATmanAVR分别作了试验,ICC无法支持仿真,GCC和ATmanAVR的程序明明在AVRStudio下调试好了的,有时却在仿真时根本不按流程进行,只有CVAVR是效果最好的。

  上传的文件中,有三个实例,其中两个用M8驱动六位的数码管,采用了定时器2的CTC方式定时1mS,在中断服务中完成1S一次的计数(感觉不太准),动态扫描驱动6位数码管,以及BIN2BCD的转换。其中一个接线比较复杂的,是和我准备制作的试验品有关,因为M8的某些引脚需要做其他的功能,所以数码管的段码驱动是分别用PB、PC和PD的部分引脚共同完成的。仿真电路中,我没有考虑器件的电流驱动问题,仅仅作为逻辑上的仿真,请大家注意。

上传的实例在586电脑下运行时,会出现数字闪烁的现象,因此仿真试验必须在性能比较好的电脑上进行。

点击此处下载armok0146682.rar

出0入0汤圆

发表于 2005-4-21 22:33:04 | 显示全部楼层
和实际电路中一样连接即可,应该是你程序有问题,要不限流电阻太大

出0入0汤圆

 楼主| 发表于 2005-4-21 22:41:42 | 显示全部楼层
每接限流电阻,程序也是简单得不能再简单拉,就是不知为什么静态连接时也不亮。

出0入0汤圆

发表于 2005-4-21 22:55:06 | 显示全部楼层
不会吧,我做的几个电路的仿真都用到了数码管

用单片机与7219通讯,利用7219驱动数码管。你用的6.5版吗,一定可以的

出0入0汤圆

 楼主| 发表于 2005-4-21 23:14:52 | 显示全部楼层
我用的是6。3的,刚下载了6。7的,但是看readme却显示6。6

出0入0汤圆

发表于 2005-4-21 23:36:58 | 显示全部楼层
好想没有发现这样的问题

你的图呢,可以看一下,大家来分析一下

出0入0汤圆

 楼主| 发表于 2005-4-22 18:36:28 | 显示全部楼层
经过一天的琢磨,总算有了结果。谢谢几位的关心,我准备将调试好的文件传上来,做一个范例。

出0入0汤圆

发表于 2005-4-27 07:57:58 | 显示全部楼层
应该像3楼tdh03z用max7219  驱动



对51单片机程序如下:



#include<reg52.h>

#include<stdio.h>

#define uchar unsigned char

sbit DIN=P1^0;

sbit CLK=P1^2;

sbit LOAD=P1^1;

void send(uchar add,uchar dat)

{

uchar ADS,i,j;

LOAD=0;

i=0;

while(i<16)

{

if(i<8){ADS=add;

}

else{ADS=dat;}

for(j=8;j>=1;j--)

{

DIN=ADS&0x80;

ADS=ADS<<1;

CLK=1;

CLK=0;

}

i=i+8;

}

LOAD=1;

}

void main(void)

{

send(0x0c,0x01);

send(0x0b,0x07);

send(0x0a,0xf5);

send(0x09,0x0ff);

//while(1)

{

send(0x01,0x81);

send(0x02,0x82);

send(0x03,0x83);

send(0x04,0x84);

send(0x05,0x85);

send(0x06,0x86);

send(0x07,0x87);

send(0x08,0x88);

}



}

出0入0汤圆

发表于 2005-5-13 00:55:59 | 显示全部楼层
多谢你的例子,我照你的做,也亮了。

程序还没整理好。

出0入0汤圆

发表于 2006-7-23 18:40:49 | 显示全部楼层
谁能告诉我上面的软件是什么软件来的?谢谢

出0入0汤圆

发表于 2006-8-4 15:12:08 | 显示全部楼层
我第一次用这个软件,把上面的文件放到proteus中总是出现这个错误

Reading netlist...

ERROR: [U1] mixed model AVR.DLL failed to authorize - Product Key does not match Customer Key.

请大家指点一下!是什么地方有问题?

出0入0汤圆

发表于 2006-8-8 15:36:34 | 显示全部楼层
头像被屏蔽

出0入0汤圆

发表于 2008-3-19 12:41:53 | 显示全部楼层
这个帖子已经人工恢复。

之前由于proteus律师(广州某律师行的马姓女律师)的恐吓,我们不得将此贴删除。

感谢网友deananji提供的离线下载数据,让我们得以恢复这个帖子。

出0入4汤圆

发表于 2008-3-19 12:42:17 | 显示全部楼层
ERROR: [U1] mixed model AVR.DLL failed to authorize - Product Key does not match Customer Key.

你没有购买avr的仿真授权

出0入4汤圆

发表于 2008-3-19 12:44:50 | 显示全部楼层
proteus中的数码管有一定的触发时间(可设置)
触发时间不够将导致看不到显示。

出0入0汤圆

发表于 2008-6-2 21:54:13 | 显示全部楼层
请问出发时间怎样设置啊?

出0入0汤圆

发表于 2009-4-27 14:24:26 | 显示全部楼层
我在使用 proteus仿真led时,回出现 CPU 超负荷了,但我把闪烁的时间改长了就好了,不知道大家有没有见过这样的问题~~~~ 在做数码管是,也是的,只要时间不对,数字都不会显示,  请问 这是怎么回事~~

出0入0汤圆

发表于 2009-6-15 14:45:53 | 显示全部楼层
wait.............

出0入0汤圆

发表于 2010-3-4 23:24:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-20 12:45:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-19 17:14:32 | 显示全部楼层
我是51单片机初学者,请问是否有关于频率计的设计?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 23:55

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表