1.参考教程:
清翔51单片机教程
2.基本原理 :
1)数码管位数:几个数码管连在一起,就是几位。
2)数码管共级:共阴极-数码管中间的线是GND。共阳极-数码管中间的线是VCC。用万用表测:黑表笔放GND(中间)处,红表笔放a处,若a灯亮起则是共阴极。
3)控制每段的亮灭,亮输入高电平,灭低电频。例:数码管显示数字1。对应二进制排列:00000110.
3.静态显示
每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直达送入新字形码为止。
1)锁存器原理
2)位选和段选
用两个锁存器分别进行位选和位选。
位选流程:
①P27赋高定平(也就是位选锁存器的LE脚打开)-——使得输入端D与输出端Q能够互通数据。
②输入端D(也就是P0口)输入数据–控制数码管每位的点亮和熄灭。
③P27赋低电平(也就是位选锁存器的LE脚关闭)——使得输入端D与输出端不互通数据,Q端的位选数据被保存。
段选流程:
①P26赋高定平(也就是段选锁存器的LE脚打开)-——使得输入端D与输出端Q能够互通数据。
②输入端D(也就是P0口)输入数据–控制数码管每位的点亮和熄灭。
③P26赋低电平(也就是段选锁存器的LE脚关闭)——使得输入端D与输出端不互通数据,Q端的位选数据被保存。
3.参考C代码:
#include <reg52.h>
#include <intrins.h>//标准库函数
#define uint unsigned int
#define uchar unsigned char
sbit DU = P2^6; //数码管段选
sbit WE = P2^7; //数码管位选
void main()//main函数自身会循环
{
WE = 1;//打开位选锁存器
P0 = 0XFE;//1111 1110
WE = 0;//锁存位选数据
DU = 1;//打开段选锁存器
P0 = 0X06;//0000 0110
DU = 0;//锁存段选数据
}