用LPC2124写的4位数码管不会动,求解答!
时间:10-02
整理:3721RD
点击:
我的PROTEUS显示A到DP是有高低电平的变动,但是1234位那里就不行,求大神告诉我代码哪里错了,我真的想不出来啊,谢谢各位大神们。#include <lpc213x.h>
#define uchar unsigned char
#define unit unsigned int
uchar tab[]={0xF40,0xFF9,0xFA4,0xFB0,0xF99,0xF92,0xF83,0xFF8,0xF80,0xF98};
unsigned int a,b;
void delay()
{
for(b=100000;b>0;b--);}
int main()
{
PINSEL0=0X00000000;
IO0DIR=0xFFF;
IO0CLR=0xFFF;
while(1)
for(a=0;a<11;a++)
{
IO0SET=tab[a];
delay();
IO0CLR=0xFFF;
delay();
}
}

#include <lpc213x.h>
// #include <nxp/iolpc2134.h>
#define uchar unsigned char
#define unit unsigned int
//uchar tab[]={0xF40,0xFF9,0xFA4,0xFB0,0xF99,0xF92,0xF83,0xFF8,0xF80,0xF98};
unsigned int tab[]={
0x1c0,0x2f9,0x4a4,0x8b0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
unsigned int a,b;
void delay()
{
for(b=1000;b>0;b--);
}
int main()
{
PINSEL0=0X00000000;
IO0DIR=0xFFF;
IO0CLR=0xFFF;
while(1)
for(a=0;a<4;a++)
{
IO0CLR=0xFFF;
IO0SET=tab[a];
delay();
}
}
注意数据的截留问题。你定义的类型都不对。
#define uchar unsigned char
#define unit unsigned int
uchar tab[]={0xF40,0xFF9,0xFA4,0xFB0,0xF99,0xF92,0xF83,0xFF8,0xF80,0xF98};
unsigned int a,b;
void delay()
{
for(b=100000;b>0;b--);}
int main()
{
PINSEL0=0X00000000;
IO0DIR=0xFFF;
IO0CLR=0xFFF;
while(1)
for(a=0;a<11;a++)
{
IO0SET=tab[a];
delay();
IO0CLR=0xFFF;
delay();
}
}

呵呵,看到晚了哈!
你程序问题。没做扫描!
欢迎来提问arm问题!
你做这个是4个管同时显示一样的数字。
看你好像是个新手。帮你一下吧。
这个是效果图。

#include <lpc213x.h>
// #include <nxp/iolpc2134.h>
#define uchar unsigned char
#define unit unsigned int
//uchar tab[]={0xF40,0xFF9,0xFA4,0xFB0,0xF99,0xF92,0xF83,0xFF8,0xF80,0xF98};
unsigned int tab[]={
0x1c0,0x2f9,0x4a4,0x8b0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
unsigned int a,b;
void delay()
{
for(b=1000;b>0;b--);
}
int main()
{
PINSEL0=0X00000000;
IO0DIR=0xFFF;
IO0CLR=0xFFF;
while(1)
for(a=0;a<4;a++)
{
IO0CLR=0xFFF;
IO0SET=tab[a];
delay();
}
}
注意数据的截留问题。你定义的类型都不对。
真的非常谢谢小编啊,真切的解决了我的问题。原来主要是我定义的类型不对,我还想问您一个问题,希望版版教下我。你写给我的程序有做扫描吗,我找不到是哪里。么么哒(づ ̄ 3 ̄)づ
for(a=0;a<4;a++)
然后就是做在一起了!呵呵!
给你个建议哈,如果你是新手,不建议你上来就用这类单片机,没别的意思,只是资料相对于少,不利于提高。比如哈,对于pll设定问题,你都没考虑。你仿真是不有警告?你看我仿真就没有警告!
小编给的建议我非常赞同,其实C51我也有在学,但是初期的我觉得除了语法的运用之外,逻辑运用好像是一样的,所以我打算2个一起学(而且我有这个单片机的开发板)。为什么我弄的只能同时显示,我重新调整了,也是for(a=0;a<4;a++),怎么我的是0出现,灭了再1出现,灭了再2出现,灭了再3出现,而你的程序却可以0123同时出现,什么原理呢,小编可以私下给个扣扣我吗
调调延时。你用的是什么编译器?KEILMDK?
路过学习。。
