stc89C52驱动四位共阳极数码管引脚 显示乱码

STC89C52单片机,怎么让数码管静态同时显示1到6的数字? - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
STC89C52单片机,怎么让数码管静态同时显示1到6的数字?
11:25:55  
本帖最后由 PeterLin 于
17:28 编辑
看郭天祥的书说的是动态扫描,因为变化很快所以看起来像是同时显示,实质上只是轮流变化,自己想不出来,求大牛相助,谢谢。
是同时静态的显示1到6的数字,不是6个数码管一次只显示一个数字。
17:25 上传
点击文件名下载附件
下载积分: 积分 -1 分
1015.98 KB, 下载次数: 181, 下载积分: 积分 -1 分
11:55:59  
就是利用人眼的视觉残留现象,比如显示1的那个数码管,一亮一灭的频率达到一定值,人眼是分不出来它熄灭过的。
高级工程师
12:17:35  
只要达到24HZ以上,人眼就开始分辨不了了
12:19:37  
把电路图贴出来看看!
助理工程师
12:42:03  
郭天祥好像也有说静态显示的吧?先说静态后说动态扫描的吧
13:13:04  
我也纠结了很久~貌似没法在静态下同时显示两个或两个以上的数字~除非动态
13:28:28  
应该只有用动态才可以吧!静态的貌似不可以。因为只有一个端口控制!要是两个的话就可以了!
17:20:31  
我是舞世界 发表于
郭天祥好像也有说静态显示的吧?先说静态后说动态扫描的吧
但是他的静态显示是6个数码管都显示一样的数字,我想要的是让每个数码管都显示不一样的数字。
17:26:51  
FZDCDUT 发表于
把电路图贴出来看看!
只有PDF的图片,贴出来了。
17:56:22  
顶顶更健康!
18:39:49  
原理还是一样的
只是人眼分辨不出来而已
19:05:37  
本帖最后由 豆子十三 于
19:07 编辑
静态的话,要6块373驱动。就行了。给每块送不同的数,锁存。
高级工程师
19:37:02  
高级工程师
19:44:00  
用74595就可以了。
20:06:17  
sorry,刚才说错了,应该是可以的,给不同的位,送不同的段值就行了。
20:11:17  
jiangxiaowenzsz 发表于
用74595就可以了。
我刚才百度了下,这个锁存器是不是可以分别控制那8个数码管显示什么数字?
20:20:29  
通过锁存器可以使8个数码管轮点亮
可是我想要一起点亮啊&
助理工程师
16:36:17  
干嘛非要静态呢
CellWise周军
15个问题&&&&&&&&2474个浏览
13个问题&&&&&&&&14751个浏览
6个问题&&&&&&&&6128个浏览
每天选一个需要解决的问题,大家一起来帮忙。
授人玫瑰,手有余香
您可能在工作中遇到如下问题,点击下载即可预览专家给出的答案。
问:我从事数码电子产品工作,为什么一开始要用模拟元件?
问:微调器会不会让我的设计变得太复杂,影响用户使用?
问:选择微调器前应该考虑哪些特性?
Powered bySTC89C52单片机数码管静态显示
> STC89C52单片机数码管静态显示
STC89C52单片机数码管静态显示
////////////////////////////////////////////////////////////////////////////实现功能:在实验板静态的点亮数码管,实现从0到9每个数在数码管上显示,相互 之间切换的时间间隔为0.5秒实验板型号:BS-XYD-C52实验名称: 静态数码管编写人: 谢应东编写日期: ////////////////////////////////////////////////////////////////////////////#include#include #define uchar unsigned char //定义unsigned char 为 uchar#define uint unsigned int本文引用地址:sbit Digital_tube_Duan_Enable=P2^6;sbit Digital_tube_Wei_Enable=P2^7;#define Digital_tube_Duan P0 //数码管段选端口uchar code Dis_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};////////////////////////////////////////////////////////////////////////////函数名称:毫秒延时函数函数功能:实现毫秒级的延时参数介绍:Delay_MS: 定义需要延时的毫秒的数值 iNumber: 记录Delay_MS的数值,以for语句实现所要求的延时 iValue: 要延时毫秒所要进行的循环数值,本数值为实际测得返回值: 无注意事项:本实验是在所用晶振为12M的前提下实现的毫秒延时,本函数是通过循环的形 式完成,所以如果改变了晶振的频率,请做相应的改变////////////////////////////////////////////////////////////////////////////void DelayMs(uint Delay_MS){uint iNumber,iVfor(iNumber=0;iNumber<Delay_MS;iNumber++){ iValue=107; while(iValue--);}}////////////////////////////////////////////////////////////////////////////函数名称:数码管循环函数函数功能:完成在数码管上显示数字的功能,每个显示数字之间时间间隔0.5秒,这样依 次循环参数介绍:无返回值: 无注意事项:实验板上的数码管是共阴极的数码管,如果使用共阳极的数码管,请注意不 要弄反了////////////////////////////////////////////////////////////////////////////void Digital_tube_Cylcle(){uchar cNfor(cNumber=0;cNumber<10;cNumber++){Digital_tube_Duan=Dis_table[cNumber];DelayMs(500);}}////////////////////////////////////////////////////////////////////////////函数名称:主函数函数功能:在实验板上实现数码管从0到9的循环显示,每个数字之间的显示时间间隔为 0.5秒,然后切换到下个数字,这样依次循环参数介绍:无返回值: 无注意事项:无////////////////////////////////////////////////////////////////////////////void main(){Digital_tube_Wei_Enable=1; //打开573所存器段选的使能端P0=0x00; //开启所有数码管的段选Digital_tube_Wei_Enable=0; //关闭573锁存器的使能端,以锁存数码管段选的电平while(1){Digital_tube_Cylcle(); //引用数码管循环函数}}
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一

我要回帖

更多关于 共阳极数码管编码表 的文章

 

随机推荐