打印

51单片机直接驱动数码管,,

[复制链接]
8226|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
OUCHANGHUA|  楼主 | 2010-8-3 14:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
OUCHANGHUA|  楼主 | 2010-8-3 14:30 | 只看该作者
自己顶下

使用特权

评论回复
板凳
欧阳青云| | 2010-8-3 15:05 | 只看该作者
你可以用译码器来控制位选。

使用特权

评论回复
地板
chueng1021| | 2010-8-3 15:09 | 只看该作者
搞个驱动数码管的芯片,不要搞这么原始复杂的

使用特权

评论回复
5
OUCHANGHUA|  楼主 | 2010-8-3 15:24 | 只看该作者
我的只是用来显示数字,,单片机没做其他事的,,想以最小元件实现,,

使用特权

评论回复
6
zhoukok| | 2010-8-3 15:29 | 只看该作者
直接用动态扫描呀

使用特权

评论回复
7
mage心寒| | 2010-8-3 15:39 | 只看该作者
你图上面有数码管吗。。就看到是个共阳的LED,你接地电平就亮了。。

使用特权

评论回复
8
OUCHANGHUA|  楼主 | 2010-8-3 15:57 | 只看该作者
呵呵小弟不才画得不像不经见怪

使用特权

评论回复
9
OUCHANGHUA|  楼主 | 2010-8-3 16:01 | 只看该作者
多谢你ZHOUKOK,,怎么个架构程序呢,,,

6# zhoukok

使用特权

评论回复
10
mage心寒| | 2010-8-3 16:19 | 只看该作者
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,num,aa,bb,cc,num1,num2;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar code tablewe[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
void delay(unit);
void main()
{
while(1)
{
for(num=0;num<8;num++)
{
P0=table[num];
P2=tablewe[num1];
num1++;
if(num1==8)
num1=0;
delay(1);
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
这是我板子上的程序。你可以参考下。。

使用特权

评论回复
11
OUCHANGHUA|  楼主 | 2010-8-3 16:28 | 只看该作者
好的多谢你,,,我研究下你给这个例

使用特权

评论回复
12
OUCHANGHUA|  楼主 | 2010-8-3 16:34 | 只看该作者
我要5位显示不同的数怎么搞呢,,

使用特权

评论回复
13
OUCHANGHUA|  楼主 | 2010-8-3 16:35 | 只看该作者
还有按键呢,,头痛吖,,万事开头难看来真的,,只有自已经历过才知到,,

使用特权

评论回复
14
seabada| | 2010-8-3 16:43 | 只看该作者
图画错了吧,那个你给个邮箱我发点给你

使用特权

评论回复
15
OUCHANGHUA|  楼主 | 2010-8-3 16:49 | 只看该作者
[email=2007OU@163.COM,,,多谢你seabada 2007OU@163.COM,,,多谢你seabada [b[/email]] 14# seabada

使用特权

评论回复
16
OUCHANGHUA|  楼主 | 2010-8-3 16:54 | 只看该作者
我的邮箱,麻烦并多谢seabada你了,,2007OU@163.COM

使用特权

评论回复
17
zhoukok| | 2010-8-3 17:23 | 只看该作者
呵呵  你同样用定时器啊,可以定时去扫描按键和刷新显示的
定时20ms  设置标志位,20ms到了进行按键扫描,20ms没有到,我就去执行数码管显示。你不就是改变键值么,20ms处理那些够用了,如果长了,还可以把时间缩短啊,多多利用好定时器吧

使用特权

评论回复
18
biyveddd| | 2010-8-4 09:38 | 只看该作者
如上,动态扫描呀.你的图的EA引脚电平不对

使用特权

评论回复
19
OUCHANGHUA|  楼主 | 2010-8-4 09:52 | 只看该作者
动态扫同时显示相同的数字,,我用10楼例的可以做一到,,,,但我要10位各显示不同的数字,,并能用按键来修改,,,,,这可怎么搞,,有人能给个详细点的实方法吗,,

使用特权

评论回复
20
zhoukok| | 2010-8-4 18:27 | 只看该作者
这个也好解决啊 你改变键值没有问题的啊  不是说了定时扫描啊  在按键处理那一部分可以改变键值,然后就是动态扫描了 就举一个简单的例子 你开始键值为0,你按下键后,你数值加1,然后输出00000001在数码管上,你再按一下就成了00000010,你改变键值和你扫描并不冲突的啊,改变了键值我就把键值一样的输出就好了啊
按键扫描-——按键处理——动态扫描——循环不就可以了,你改变键值是在按键处理里进行的啊,与动态扫描没关系,唯一关联的就是你的输出值。所以,假如你能做出2位数码管动态扫描,你就可以做出10位的,只是时间调一下,不让自己看到闪烁就OK了
哎呀,说了那么多废话,不知道你看的懂我的意思么,表达能力不够啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

109

帖子

0

粉丝