目录
数码管区域原理图
74HC138译码器
通过控制ABC码来控制LED1~LED8的位选。以此来控制8个数码管中哪一个数码管显示。
方法
定义IO口
#define SMG_A_DP_PORT P0 //宏定义端口P0
#define KZSMG_0_7 P2
创建数组
u8 gsmg_code[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F的显示(十六进制)
u8 xuhao_code[8] ={0xe3,0xe7,0xeb,0xef,0xf3,0xf7,0xfb,0xff}; //数码管显示的位置(从右往左)
让数码管显示
for (j=0;j<8;j++)
{
KZSMG_0_7=xuhao_code[j] ;
SMG_A_DP_PORT = gsmg_code[6];
}
完整代码
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
#define SMG_A_DP_PORT P0 //宏定义端口P0
#define KZSMG_0_7 P2
u8 gsmg_code[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F的显示(十六进制)
u8 xuhao_code[8] ={0xe3,0xe7,0xeb,0xef,0xf3,0xf7,0xfb,0xff}; //数码管显示的位置(从右往左)
void main()
{
u8 j;u8 i=0 ;
u16 t=0;
while(1)
{
for (j=0;j<8;j++)
{
KZSMG_0_7=xuhao_code[j] ;
SMG_A_DP_PORT = gsmg_code[6];
}
}
}
实验现象
我们可以看到数码管显示了数字6
标签:P0,code,u8,数码管,51,显示,单片机,define From: https://blog.csdn.net/hxbwppeqppi/article/details/140742880