单片机数码管

2019-04-15 17:14发布

单片机的数码管动态实现


在这里插入图片描述
#单片机数码管实现其实很简单首先你注意两个问题
1:你要控制是哪一个数码管亮(74HC138)
2:你要控制数码管的那个位置亮(74HC245)

74HC138芯片

数码管的位
  1. 由单片机接口控制输出
    下面是单片机各个接口的真值表:
LED P2.2 P2.3 P2.4 LED1: 0 0 0 LED2: 0 0 1 LED3: 0 1 0 LED4: 0 1 1 LED5: 1 0 0 LED6: 1 0 1 LED7: 1 1 0 LED8: 1 1 1
  1. 这是单片机中74HC138芯片的接法
    在这里插入图片描述

74HC245芯片

数码管各位置代号 a b c d e f g 接口 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 tip注意每个接口接低电位时,相应的位置为高亮
这是接口对应图 一段漂亮的代码片用于自研究,目前尚还不知道为啥数码管不亮—┭┮﹏┭┮
--------------------希望大神指导------------------- #include <reg52.h> int code table[]={0x3f,0x03,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f}; sbit HC138A=P2^2; sbit HC138B=P2^3; sbit HC138C=P2^4; void led(int x) { if (x==1){ HC138A=0; HC138B=0; HC138C=0; }; if (x==2){ HC138A=0; HC138B=0; HC138C=1; }; if (x==3){ HC138A=0; HC138B=1; HC138C=0; }; if (x==4){ HC138A=0; HC138B=1; HC138C=1; }; if (x==5){ HC138A=1; HC138B=0; HC138C=0; }; if (x==6){ HC138A=1; HC138B=0; HC138C=1; }; if (x==7){ HC138A=1; HC138B=1; HC138C=0; }; if (x==8){ HC138A=1; HC138B=1; HC138C=1; }; } void main() { int x; while(1) { led(1); P0=table[0]; P0=0Xff; led(2); P0=table[1]; P0=0Xff; led(3); P0=table[2]; P0=0Xff; led(4); P0=table[3]; P0=0Xff; led(5); P0=table[4]; P0=0Xff; led(6); P0=table[5]; P0=0Xff; led(7); P0=table[6]; P0=0Xff; led(8); P0=table[7]; P0=0Xff; }; } #其实现在我这代码还是有很多小瑕疵,希望大神能致电小白----万分感谢