×
单片机 > 单片机程序设计 > 详情

51单片机的静态数码管

发布时间:2024-05-07 发布时间:
|

1.138译码器


1.74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。


2.使用138译码器,可以用三位来控制八位,如下图所示,定义LSA=0,LSB=0,LSC=0,则逻辑值为0,根据单片机原理图,则LED1为低电平,再控制相应的数码管,达到静态控制数码管的效果


2.数码管


1.LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。


2.采用16进制数的方法,1为亮,0为灭,于是可以建立数组来表示0到9以及A到F的字符(由下至上来算16进制数);


3.分析数码管的形状,确定八位数字,从而确定图案;


4.0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;//定义数码管的字码(0到9和A到F)


#include

typedef unsigned char u8;

typedef unsigned int u16;

/*实现38译码器的使用*/

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

//使用数组定义,code为定义常量数组,将数组定义在ROM中

u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,

0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//定义数码管的字码

void main()

{

//表示38译码器

LSA=1;

LSB=1;

LSC=0;

P0=smgduan[10];

}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机中断源的扩展方法