大虾们,8位数码管 如何让每位显示不同的数字?
我想让8个数码管从左到右分别显示0、1……7,如何可以做到啊?我用的是lpc2124芯片,keilMDK编程的。#include<LPC21xx.h>unsignedin...
我想让8个数码管从左到右分别显示0、1……7,如何可以做到啊?
我用的是lpc2124芯片,keil MDK编程的。
#include<LPC21xx.h>
unsigned int table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(void)
{int a;
for(a=0;a<60000;a++);
}
int main(void)
{
PINSEL0=0;
IO0DIR=0xffff;
IO0PIN=0x100;
IO0SET=table[0];
delay();
} 展开
我用的是lpc2124芯片,keil MDK编程的。
#include<LPC21xx.h>
unsigned int table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(void)
{int a;
for(a=0;a<60000;a++);
}
int main(void)
{
PINSEL0=0;
IO0DIR=0xffff;
IO0PIN=0x100;
IO0SET=table[0];
delay();
} 展开
1个回答
展开全部
你这用是的共阳数码管吧,那8个阳极是不能连在一起的,你这么肯定是显示8个同样的数字呀,就相当于一个数码管吗。要显示8个不同的数字,那8个阳极要分别接到8个引脚上。写程序时,要轮流扫描这8位,但每次只显示一位。如,先输出第一个数码管显示的段码,再输出第一位数码管阳极有效的位码,只有这一个阳极为1。延时,再依次输出后面的数码管显示的段码和位码。这样不断循环显示才行的。但显示每一位的延时不能太长了,如你这个延时子程序,改成
for(a=0;a<300;a++);就可以,虽然是轮流显示的,但是看起来却是8个数字同时亮的,如果有闪烁的话,可以修改延时的长短。
for(a=0;a<300;a++);就可以,虽然是轮流显示的,但是看起来却是8个数字同时亮的,如果有闪烁的话,可以修改延时的长短。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询