标题:
双位数码管的显示问题
[打印本页]
作者:
清醒梦
时间:
2019-1-11 10:34
标题:
双位数码管的显示问题
论坛里面的各位,想问一下,双位数码管显示相同的数字,是什么问题呢,数码管的显示程序是这样的。数码管的位选由三极管驱动。
void display() //显示程序
{
P2=b[0],P0=a[NB%10]; /*由k的不同值进入确定显示数值*/
delay(100);
P2=b[1],P0=a[NB/10];
delay(100);
P2=b[2],P0=a[DX%10];
delay(100);
P2=b[3],P0=a[DX/10];
delay(100);
}
作者:
wc86110
时间:
2019-1-11 11:49
哪有问题,想要不同自个改就好
作者:
HC6800-ES-V2.0
时间:
2019-1-11 13:06
用我这个试试,就是你的程序,我改了点符号,自己看,问题在哪里!
void display() //显示程序
{
P2=b[0];P0=a[NB%10]; /*由k的不同值进入确定显示数值*/
delay(100);
P2=b[1];P0=a[NB/10];
delay(100);
P2=b[2];P0=a[DX%10];
delay(100);
P2=b[3];P0=a[DX/10];
delay(100);
}
作者:
xuyaqi
时间:
2019-1-11 13:14
把段码输入后应该有位选输入,这样才能各位显示不一样。
作者:
累不死的狗
时间:
2019-1-11 14:25
这程序不能通过吧?
作者:
累不死的狗
时间:
2019-1-11 14:26
你那个格式都不对
作者:
累不死的狗
时间:
2019-1-11 14:27
你那个是几位数码管?
我看像是四位的数码管啊
作者:
清醒梦
时间:
2019-1-11 15:55
是两位数码管,程序改了,还是显示一样的数字,好像不能
作者:
清醒梦
时间:
2019-1-11 16:11
请问哪里的格式不对,可以说清楚一些吗?
作者:
清醒梦
时间:
2019-1-11 16:38
用了两个双位数码管
作者:
杀死比亚
时间:
2019-1-12 07:51
你在每位数码管显示后面加一句P0=0(共阴);如果是共阳让P0=0xff;这样的作用是每一位数码管显示完了以后,要将P0口的数据清零,不然会影响下一位显示,如果还不行,加上适当的延时函数
作者:
gh001
时间:
2019-1-12 09:25
你的问题可能出现在位选信号上面
作者:
清醒梦
时间:
2019-1-12 10:39
位选信号也要延时吗
作者:
清醒梦
时间:
2019-1-12 10:41
加了P0=0xff,也延时了,但还是显示两个相同的数字。
作者:
wh8010jky
时间:
2019-1-12 10:43
可能是位选不对,那个P2=[0] P2=[1] P2=[2] P2=[3] 是什么意思?把数组[]贴出来看看
作者:
清醒梦
时间:
2019-1-12 11:03
本帖最后由 清醒梦 于 2019-1-12 12:54 编辑
位选信号有什么问题,求指导,共阳极数码管的位选信号接pnp型三极管的集电极,发射极接电源,基极接单片机的P2口
作者:
清醒梦
时间:
2019-1-12 12:05
uchar code b[4]={0x01,0x02,0x04,0x08}; //位码组合
作者:
GUELL
时间:
2019-1-12 14:48
#include<reg51.h>
#define uchar unsigned char
typedef unsigned char uint8;
sbit led1=P3^2;
sbit led2=P3^3;
uchar code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
uchar ms,i,num=12;
void delay(uint8 ms)
{
uint8 i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
void main()
{
while(1)
{
led2=1;
P1=table[num%10];
led1=0;
delay(1);
led1=1;
P1=table[num%100/10];
led2=0;
delay(1);
}
}
LED.jpg
(77.95 KB, 下载次数: 42)
下载附件
2019-1-12 14:48 上传
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1