近日,有一位人找我问了一个数码管的问题,我一看他的板子上面有位选和段选引脚,我就知道他的板子肯定没有74HC138芯片的,经过确认,果真没有,那我们先说什么是位选和段选呢?
1.1段选与位选段选就是你想要数码显示什么数字,如图,有a、b、c、d、e、f、g、dp,共8段,通过配置这8段的高低电平就可以达到显示0-F的效果。
位选则就是数码管需要显示的位置,比如4位一体的数码管,我需要他显示在第3个位置,这就是位选。
1.2有74HC138芯片的配置如图可以看到,数码管一般是由74hc138与74hc245驱动的,但是没有138译码器也是可以的,下面会有具体的讲解。
贴上代码(有138译码器)
/*有些同学会使用下面这个头文件,注意,此头文件没有P2_1这种类似的定义,如需使用,必须位定义,使用方法如下*///#//sbitDU=P2^6;//sbitWE=P2^7;unsignedcharsmg_code2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};//后面自行补充,数码管显示位置voidmain(void){P2_7=1;//位选引脚打开P0=smg_code2[3];//第3个位置P2_7=0;//位选引脚关闭P2_6=1;//段选引脚打开P0=smg_code[6];//显示6P2_6=0;//段选引脚关闭while(1){}}1.4总结可以看出,两者还是有一些区别的,但是逻辑是差不多的,所以说我们编程之前可以先看看自己的原理图是哪种,再来具体的写代码。