开发板数码管模块电路图如下:

51单片机实验4:静态数码管_开发板

开发板数码管共阴连接,P0口通过输出阳极电平来控制段选,74ls138译码器通过控制8个数码管的阴极电平来控制位选。

实验任务:点亮第一个数码管并使其显示数字0;

P2^2,P2^3,P2^4口置0,使138译码器译码为1000 0000,即第一个数码管阴极电平为0,其他7个数码管阴极电平为1。

P0口置为0x3f,即:0011 1111,(二极管a b c d e f亮,构成数字0)

代码如下:

#include<reg52.h>
#include<intrins.h>
#define uc unsigned
sbit lsa=P2^2;
sbit lsb=P2^3;
sbit lsc=P2^4;
uc code x[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void main()
{

while(1)
{
lsa=lsb=lsc=0;
P0=x[0];
}
}

代码中数组声明时使用code:告诉单片机,定义的数据要放在ROM里面,写入后就不能再更改,而非RAM,这样可以节省运存空间。