74LS138 动态数码管

#include sbit LS138A = P2^2; //定义138译码器的输入A脚由P2.2控制 sbit LS138B = P2^3; //定义138译码器的输入脚B由P2.3控制 sbit LS138C = P2^4; //定义138译码器的输入脚C由P2.4控制 //此表为 LED 的字模, 共阴数码管 0-9 - unsigned char code smg_duan[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //段码控制 unsigned char count=123; // 用于计数 unsigned char ircode[3]; /**************************************** 延迟50us ****************************************/ void delay_50us(unsigned int t) { unsigned char j; for(;t>0;t--) for(j=19;j>0;j--); } // 74LS138译码器实现 void displayLS138() { unsigned char i; //count=123 ircode[0] = smg_duan[count%1000/100]; // 百位 ircode[1] = smg_duan[count%100/10]; // 十位 ircode[2] = smg_duan[count%10]; // 个位 for(i=0;i<3;i++) { P0 = ircode[i]; switch(i) //使用switch 语句控制位选 { case 0:LS138A=0; LS138B=0; LS138C=0; break; case 1:LS138A=1; LS138B=0; LS138C=0; break; case 2:LS138A=0; LS138B=1; LS138C=0; break; case 3:LS138A=1; LS138B=1; LS138C=0; break; case 4:LS138A=0; LS138B=0; LS138C=1; break; case 5:LS138A=1; LS138B=0; LS138C=1; break; case 6:LS138A=0; LS138B=1; LS138C=1; break; case 7:LS138A=1; LS138B=1; LS138C=1; break; } delay_50us(20); } } void main() { while(1) { displayLS138(); } }

你可能感兴趣的:(74LS138 动态数码管)