学习笔记--HC138芯片驱动数码管显示
说说今天心情,刚刚上完学校老师里的单片机课,自己也迫不及待的拿出尘封已久的KST-51开发板在宿舍写写C51代码,玩玩数码管显示。初次写笔记,不好见谅哈!
本实验:实现数码显示数字1.
本次实验使用的是共阳数码管阳极接在一起,由阴极来控制单个小灯的亮灭。
数码管上边有 2 个 com,因为公共端通过的电流较大,是8个I0电流电流之和,并联电路电流之和等于总电流,用2 个 com 可以把公共电流平均到 2 个引脚上去,降低单条线路承受的电流。
74HC138 外围电路--74HC138 3线控制8个互斥的低有效输出(Y0至Y7)。
由数据手册可知 当G1为高电平时即是E3为高电平时,G2为低电平时即是E1,E2为低电平时
才能起到数据译码作用 例如:C(A2)=0(低电平) B(A1)=0(低电平)A(A0)=0(低电平) 时Y0输出低电平,其他输出高电平。
驱动数码管显示需要LEDS0需要低电平,以使得Q7三极管导通,我们可以 74HC138实现。
代码如下:
#include <REGX52.H>
sbit ENLED=P1^4;
sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
void main(){
ADDR0=0;
ADDR1=0;
ADDR2=0;
ENLED=0;
ADDR3=1;
P0_1=0; //利用单片机上电I0默认输出高电平,通过让特定IO输出低电平来实现,数码管显示
P0_2=0;
// P0=0xF9; //0xF9 1111 1001 //方法2:通过P0来对整个(P0^0~P0^7)来实现电平炒作
while(1);
}