一、电路图
段选
位选
通过Y6选择八个数码管的一个或多个,再通过Y7进行数码管的显示。
段码:共阳数码管
数字1的显示:
dp=1 g=1 f=1 e=1 d=1 c=0 b=0 a=1(亮为0,灭为1)
1111 1001(二进制)
0xf9(十六进制)
其他类似,段码表为:
duanma[18] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf}
二、实现代码
1.静态显示
例题:实现每一个数码管0-9的显示,再进行所有数码管0-15的显示。
#include "reg52.h"
unsigned char code duanma[18] = {
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//code不会占用内存
void Delay(t)
{
while(t--);
while(t--);
}
void selectHC573(unsigned char n)
{
switch(n)
{
case 4:
P2=(P2 & 0x1f) | 0x80;
break;
case 5:
P2=(P2 & 0x1f) | 0xa0;