• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

AVR的高手 救救我啊 ~~~~~

我现在在学AVR单片机,我正在研究数码管的动态显示.下面是我编译的程序,编译可以通过,但显示总是不正确.我用的是7段数码管有3个位控制,也就是可以显示三个数.我把D口的8个位接到数码管的8段上,依次对应.PD1对应a,PD2对应b,,,,,PD7对应dp.然后让PC0对应数码管的位控制2,PC3对应数码管的位控制3,PC5对应数码管的位控制5.下面是程序 3025551239616323.rar
全部回复(4)
正序查看
倒序查看
wes-adv
LV.2
2
2009-04-14 09:42
**此帖已被管理员删除**
0
回复
2009-04-14 16:33
@wes-adv
**此帖已被管理员删除**
谢谢
0
回复
fzhlpp
LV.7
4
2009-04-15 23:19
#include
unsigned char disp[]=
{0xFE,0x06,...};//0-9的查表,你又不说是共阴极还是共阳极,呵呵
main()
{
DDRD=0xFF;//先设置D口为输出
DDRC=0x29;//然后设置C口的PC0,PC2,PC3为输出(DDRC=0b00101001)
PORTD=0xFF;
PORTC=0x29;

PORTC=0x01;//就是D口的PC0是高电平,驱动一个NPN的三极管控制数码管工作.
PORTD=disp[0];//在C口PC0为高电平时控制位控制2数码管显示数据.
YANSHI(4);//延时4毫秒
PORTC=0x08;//就是D口的PC0是高电平,驱动一个NPN的三极管控制数码管工作.
PORTD=disp[1];//在C口PC0为高电平时控制位控制2数码管显示数据.
YANSHI(4);//延时4毫秒
...
}
我也是刚学,显示好学一点我觉得.我现在学中断了,找不到AVR的这方面资料
0
回复
2009-04-18 14:21
@fzhlpp
#includeunsignedchardisp[]={0xFE,0x06,...};//0-9的查表,你又不说是共阴极还是共阳极,呵呵main(){DDRD=0xFF;//先设置D口为输出DDRC=0x29;//然后设置C口的PC0,PC2,PC3为输出(DDRC=0b00101001)PORTD=0xFF;PORTC=0x29;PORTC=0x01;//就是D口的PC0是高电平,驱动一个NPN的三极管控制数码管工作.PORTD=disp[0];//在C口PC0为高电平时控制位控制2数码管显示数据.YANSHI(4);//延时4毫秒PORTC=0x08;//就是D口的PC0是高电平,驱动一个NPN的三极管控制数码管工作.PORTD=disp[1];//在C口PC0为高电平时控制位控制2数码管显示数据.YANSHI(4);//延时4毫秒...}我也是刚学,显示好学一点我觉得.我现在学中断了,找不到AVR的这方面资料
首先对你表示感谢.
   我也是新手.呵呵
   我找到问题的原因了,我没有在每次显示单个数字后对位进行刷新.
   我改了之后就好了.
   AVR可以提供20ma电流和吸收20ma电流 所以不需要三极管来做控制.
0
回复