天天看點

單片機數位管74HC138晶片74HC245晶片

單片機的數位管動态實作

  • 74HC138晶片
  • 74HC245晶片
單片機數位管74HC138晶片74HC245晶片

# 單片機數位管實作其實很簡單首先你注意兩個問題

1:你要控制是哪一個數位管亮(74HC138)

2:你要控制數位管顯示什麼(74HC245)

74HC138晶片

數位管的位

  1. 由單片機接口控制輸出

    下面是單片機各個接口的真值表:

LED P2.2 P2.3 P2.4
LED1:
LED2: 1
LED3: 1
LED4: 1 1
LED5: 1
LED6: 1 1
LED7: 1 1
LED8: 1 1 1
  1. 這是單片機中74HC138晶片的接法
    單片機數位管74HC138晶片74HC245晶片

74HC245晶片

數位管各位置代号 a b c d e f g
接口 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7

tip:注意每個接口接低電位時,相應的位置為高亮

單片機數位管74HC138晶片74HC245晶片

一段漂亮的代碼片用于自研究

--------------------希望家噴起來-------------------

#include <reg52.h>
int code table[]={0x3f,0x03,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f};
		//顯示的數字0,	1,	2,	3。。。。。
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);							//第一個數位管顯示數字0
 P0=table[0];						//第一個數位管顯示數字0
             P0=0Xff;				//第一個數位管顯示數字0
 led(2);
 P0=table[1];
             P0=0Xff;
 led(3);							//第三個數位管顯示數字2
 P0=table[2];						//第三個數位管顯示數字2
             P0=0Xff;				//第三個數位管顯示數字2
 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;
 };
}
           

#有任何意見,希望大家私信指明。

繼續閱讀