| 刚开始学单片机,被要求自己做一个51开发板 我做的板子上面的数码管只要输入段选的程序,就一个灯都不亮了,74hc245各个引脚都没有电压了。
 图片是我的原理图,程序如下
 #include "reg52.h"
 #include "intrins.h"
 
 typedef unsigned char u8;
 typedef unsigned int u16;
 
 sbit LSA=P2^2;
 sbit LSB=P2^3;
 sbit LSC=P2^4;
 
 u8 code smgduan[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
 0x77,0x7c,0x39,0x5e,0x79,0x71};
 
 
 void delay(u16 i)
 {
 while(i--);
 }
 
 void DigDisplay()
 {
 u8 i;
 for(i=0;i<8;i++)
 {
 switch(i)
 {
 case 0:
 LSA=0;LSB=0;LSC=0;break;
 case 1:
 LSA=1;LSB=0;LSC=0;break;
 case 2:
 LSA=0;LSB=1;LSC=0;break;
 case 3:
 LSA=1;LSB=1;LSC=0;break;
 case 4:
 LSA=0;LSB=0;LSC=1;break;
 case 5:
 LSA=1;LSB=0;LSC=1;break;
 case 6:
 LSA=0;LSB=1;LSC=1;break;
 case 7:
 LSA=1;LSB=1;LSC=1;break;
 }
 P0=smgduan[i];
 delay(100);
 P0=0x00;
 }
 }
 
 void main()
 {
 while(1)
 {
 DigDisplay();
 }
 }
 这段程序烧进去后数码管没显示,245芯片各个引脚之间也没有电压。
 如果把段选的这段程序删除
 P0=smgduan[i];
 delay(100);
 P0=0x00;
 数码管就能显示8个8,245芯片也有电压了。
 初学单片机,有很多地方不明白,有大佬可以帮帮忙吗,在这多谢了
 |