微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 74hc138驱动数码管位码是第一位和最后一位倒置了,怎么会

74hc138驱动数码管位码是第一位和最后一位倒置了,怎么会

时间:10-02 整理:3721RD 点击:
用的74hc138驱动位码是第一位和最后一位倒置了,怎么回事?求原因和解决的办法?、
PCB打样找华强 http://www.hqpcb.com 样板2天出货
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define qw P1
uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};// 显示段码值
uchar home[8]={1,0,2,2,3,6,8,5}; //时分秒
//uchar disp[6];
uchar wei[8]={0,1,2,3,4,5,6,7};
void delayus(uchar a)            //延迟
{
    uchar i,j;
     for(i=0;i<a;i++)
      for(j=0;j<110;j++);
}
main()
{   
     uchar i;
     qw=0xff;
     P2=0xff;
     /*/disp[0]=home[0]/10;
     disp[1]=home[0]%10;
     disp[2]=home[1]/10;
     disp[3]=home[1]%10;
     disp[4]=home[2]/10;
     disp[5]=home[2]%10; */
         
   while(1)
   {   
      
      //P2=0xff;
      //qw=0x00;
      for(i=0;i<8;i++)
      {  
         qw=wei[i];
         P2=tab[home[i]];
         delayus(2);
         
       }
              
       delayus(2);
    }  
        
        
      
                 
      
      
     
  
}


为什么最后一位变为第一位了?搞不懂?

,,我把段选和位选都换了IO口,竟然仿真正常了,真是越来越搞不懂了?/


程序也改过,把数码管换成共阴的了,有人知道为什么吗?、

不错的文档,值得收藏

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top