目录
- 前言
- 一、硬件原理
- 二、静态数码管显示
- 三、动态数码管显示
- 总结
前言
本节主要学习静态数码管与动态数码管的显示。
一、硬件原理
LED数码管是由多个发光二极管封装在一起的显示器件,主要分为共阴极和共阳极数码管两类。
硬件原理图如下:
笔者所用开发板上有两个四显示共阴极数码管,各数码管受相同八引脚控制显示,由于单片机输出高电平驱动能力较弱,利用74HC245芯片供给较大电流和功率驱动,并通过配置com端的电平来选亮数码管。
利用3-8译码器节省单片机IO资源。
二、静态数码管显示
51单片机P0寄存器控制数码管各段的显示,由原理图可知,若使数码管显示3,则需配置P0=0x4F。
如上图,令LED8=0,其余为高电平,即可选通第一个数码管。
显示对应表如下:
使第一个数码管显示3
代码如下:
#include <REGX52.H>
//数码管段码表
unsigned char TubeTable[] = {
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void Tube(unsigned char Location, unsigned char Number)
{
switch(Location)
{
case 1:P2_4=1;P2_3=1;P2_2=1;break;
case