0、文章介绍
5.1.2 数码管静态显示应用举例
要求:
1、仿真图同案例5_3
2、代码参考案例5_3和案例5_2
1、效果图

2、不完整代码(需要参考单位数码管轮播补充代码)
#include<reg52.h> // 头文件
#define uchar unsigned char
#define uint unsigned int
// 定义锁存器控制引脚
sbit dula=P3^4; // 锁存器U2(段选)
sbit wela=P1^6; // 锁存器U3(位选)
// 共阴极数码管段码表
uchar code seg_code[] = {
0x3F, // 0
0x06, // 1
0x5B, // 2
0x4F, // 3
0x66, // 4
0x6D, // 5
0x7D, // 6
0x07, // 7
0x7F, // 8
0x6F // 9
};
// 延时函数
void delay(uint ms) {
uint i, j;
for(i = ms; i > 0; i--)
for(j = 110; j > 0; j--);
}
// 数码管展示函数
void display_digit(uchar digit) {
P0 = seg_code[digit]; // 发送数字对应的段码
dula=1; // 打开段选
delay(5); // 稳定信号
dula=0; // 关闭段选
}
// 主函数
void main()
{
uchar digit;
while(1)
{
// 1.位选控制
wela=1; // 打开位选
P0=0xc0; // 位选6个数码管 1100 0000
wela=0; // 关闭位选
// 2.段选控制
for(digit = 0; digit < 10; digit++) // 轮流显示0到9
{
// 补充代码
}
}
}

606

被折叠的 条评论
为什么被折叠?



