根據(jù)項(xiàng)目需求可以用I/O外部上拉,用來(lái)驅(qū)動(dòng)數(shù)碼管;也可以74HC138(38譯碼器)+74HC245(8路信號(hào)收發(fā)器)驅(qū)動(dòng)數(shù)碼管。本文會(huì)以后者為數(shù)碼管驅(qū)動(dòng)電路,在代碼上實(shí)現(xiàn)數(shù)碼管的顯示。
驅(qū)動(dòng)電路:
電路講解:
1)數(shù)碼管元件采用共陰數(shù)碼管,如果需要某位數(shù)碼管被點(diǎn)亮,位選引腳需要被拉成電平;
2)八個(gè)數(shù)碼管有8個(gè)位選引腳,8個(gè)段選引腳。為了將節(jié)省I/O口,使用74HC138將3位(CBA)選擇,轉(zhuǎn)換為8位二值代碼,例如CBA值為000時(shí),Y0輸出低電平,其余為高電平,由于Y0連接到數(shù)碼1位選引腳(圖中的LED1網(wǎng)絡(luò)標(biāo)號(hào)),數(shù)碼管1被選中。
3)74HC138控制的是位選引腳,而74HC245控制的是段選引腳,增強(qiáng)驅(qū)動(dòng)能力。電路原理圖中將DIR接高電平,OE接GND,使得其工作狀態(tài)為An輸入Bn輸出。當(dāng)P0輸出0x00時(shí),Bn端也會(huì)輸出0x00;
代碼實(shí)現(xiàn):
1)數(shù)碼管顯示數(shù)值,有對(duì)應(yīng)的編碼(編碼對(duì)應(yīng)段選被點(diǎn)亮或不亮);
2)數(shù)碼管編碼按照一定的關(guān)系(一般為順序0~F),存儲(chǔ)在一維數(shù)組里面;
3)74HC245收發(fā)器,主要用來(lái)驅(qū)動(dòng)數(shù)碼管,根據(jù)數(shù)碼管顯示可以看做P0數(shù)據(jù)直接到達(dá)數(shù)碼管;
4)調(diào)用一維數(shù)的元素,將編碼值通過(guò)I/O口輸出,控制段選信號(hào),顯示對(duì)應(yīng)數(shù)值;
5)數(shù)字選擇數(shù)碼管,數(shù)字轉(zhuǎn)換為38譯碼器的3路輸入信號(hào),選中某個(gè)數(shù)碼管顯示。
實(shí)現(xiàn)數(shù)碼管顯示函數(shù):
void showsmg(uchar selsmg,uchar num){
//選擇顯示數(shù)碼管第幾個(gè),拆解為38譯碼器對(duì)應(yīng)編碼
smg0 = selsmg&0x01;
smg1 = (bit)((selsmg >>1)&0x01);
smg2 = (bit)((selsmg >>2)&0x01);
//將數(shù)碼管編碼(一維數(shù)組)賦值給P0口,顯示對(duì)用數(shù)字
P0 = table[num];
}
具體顯示代碼:
功能:8個(gè)(7~0)數(shù)碼管,從高到底顯示7~0;
/********************************************************************************
* @File name: main.c
* @Author: AdamChen
* @Version: 1.1
* @Date: 2020-08-07
* @Description: LED display
* @contact:975805363@qq.com
********************************************************************************/
#include "reg52.h"
typedef unsigned char uchar;
typedef unsigned int uint;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x80};
sbit smg2 = P2^4;
sbit smg1 = P2^3;
sbit smg0 = P2^2;
/*******************************************************
* Function name :delay
* Description : 延時(shí)函數(shù)
* Parameter :
@ms millisecond(毫秒)
* Return :None
**********************************************************/
void delay(unsigned int ms) // ms代表需要延時(shí)的毫秒數(shù)
{
uint x,y;
for(x=ms;x >0;x--)
for(y=110;y >0;y--);
}
/*******************************************************
*
* Function name :showsmg
* Description : 數(shù)碼管顯示
* Parameter :
@selsmg 選擇數(shù)碼管第幾個(gè)
@num 顯示數(shù)值
*
* Return :None
**********************************************************/
void showsmg(uchar selsmg,uchar num){
//選擇顯示數(shù)碼管第幾個(gè),拆解為38譯碼器對(duì)應(yīng)編碼
smg0 = selsmg&0x01;
smg1 = (bit)((selsmg >>1)&0x01);
smg2 = (bit)((selsmg >>2)&0x01);
//將數(shù)碼管編碼(一維數(shù)組)賦值給P0口,顯示對(duì)用數(shù)字
P0 = table[num];
}
/*******************************************************
*
* Function name :main
* Description : 8數(shù)碼管,從高到低顯示7到0。
* Parameter :None
* Return :None
**********************************************************/
void main(){
uchar i;
while(1){
//循環(huán)選中,8個(gè)數(shù)碼管,顯示7~0
for(i=0;i< 8;i++)
{
showsmg(i,i);
delay(1);
}
}
}
-
收發(fā)器
+關(guān)注
關(guān)注
10文章
3468瀏覽量
106280 -
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1887瀏覽量
91453 -
譯碼器
+關(guān)注
關(guān)注
4文章
312瀏覽量
50483 -
驅(qū)動(dòng)電路
+關(guān)注
關(guān)注
153文章
1535瀏覽量
108775 -
引腳
+關(guān)注
關(guān)注
16文章
1220瀏覽量
50950
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
數(shù)碼管驅(qū)動(dòng)芯片的使用方法
數(shù)碼管驅(qū)動(dòng)電路分享
數(shù)碼管的驅(qū)動(dòng)方式
大尺寸數(shù)碼管的動(dòng)態(tài)驅(qū)動(dòng)和保護(hù)電路設(shè)計(jì)
![大尺寸<b class='flag-5'>數(shù)碼管</b>的動(dòng)態(tài)<b class='flag-5'>驅(qū)動(dòng)</b>和保護(hù)<b class='flag-5'>電路</b>設(shè)計(jì)](https://file1.elecfans.com//web2/M00/A5/84/wKgZomUMOM2AEBJuAABPl23Lsxg199.jpg)
點(diǎn)亮數(shù)碼管電路
![點(diǎn)亮<b class='flag-5'>數(shù)碼管</b><b class='flag-5'>電路</b>](https://file1.elecfans.com//web2/M00/A6/16/wKgZomUMO6yAT7S5AAAPg4HQhcc357.jpg)
數(shù)碼管驅(qū)動(dòng)電路的作用、分類及驅(qū)動(dòng)電路設(shè)計(jì)
![<b class='flag-5'>數(shù)碼管</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>電路</b>的作用、分類及<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>電路</b>設(shè)計(jì)](https://file1.elecfans.com//web2/M00/A6/8F/wKgZomUMPqyANyFQAAAU6HLcNz0947.jpg)
實(shí)現(xiàn)動(dòng)態(tài)顯示效果,分析數(shù)碼管驅(qū)動(dòng)電路的作用及分類
![實(shí)現(xiàn)動(dòng)態(tài)顯示效果,分析<b class='flag-5'>數(shù)碼管</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>電路</b>的作用及分類](https://file1.elecfans.com//web2/M00/A6/97/wKgZomUMPu6ADRrNAAAR-7zhask343.jpg)
數(shù)碼管的用途
如何驅(qū)動(dòng)數(shù)碼管
![如何<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>數(shù)碼管</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論