外观
三、数码管实验
开发板开源工程链接:https://oshwhub.com/xiezhaoyan/51-dan-pian-ji-diy-kai-fa-ban-97-zhi-cha-jian
1 开发板硬件部分
数码管模块有8个8位共阴极数码管组成,四个数码管一组,包括LED1和LED2。数码管的位码通过74HC138控制,控制引脚为STC89C52RC单片机的P1.2、P1.3、P1.4;数码管的段码由STC89C52RC单片机的P0端口输出,通过74HC245总线缓冲器输出给8位数码管。
2 Proteus仿真电路
数码管模块的Proteus仿真电路如图3所示,具体绘制过程,可以参考我的B站视频:B站Proteus仿真电路绘制视频
Proteus仿真电路的工程文件见百度网盘链接。
3 Keil程序
数码管动态显示程序,显示8位数字0~7,从左到右显示。
C
/************************************************************
*实验7-动态数码管实验
************************************************************/
# include "reg51.h"
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
#define DIGI_PORT P0 //使用宏定义数码管段码口
sbit HC138_A=P1^2;
sbit HC138_B=P1^3;
sbit HC138_C=P1^4;
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//0~F及全灭,段码
u8 disp_data[8]={0,1,2,3,4,5,6,7}; //数码管显示缓冲区,从左到右
/************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数, i=1时,大约延时10us
************************************************************/
void delay(u16 i)
{
while(i--);
}
/************************************************************
* 函 数 名 : digi_display
* 函数功能 : 动态数码管显示
* 输 入 : 无
* 输 出 : 无
************************************************************/
void digi_display(void)
{
u8 i=0;
for(i=0;i<8;i++)
{
switch(i) //位选码,74HC138输出低电平
{
case 0: HC138_C=1;HC138_B=1;HC138_A=1;break;
case 1: HC138_C=1;HC138_B=1;HC138_A=0;break;
case 2: HC138_C=1;HC138_B=0;HC138_A=1;break;
case 3: HC138_C=1;HC138_B=0;HC138_A=0;break;
case 4: HC138_C=0;HC138_B=1;HC138_A=1;break;
case 5: HC138_C=0;HC138_B=1;HC138_A=0;break;
case 6: HC138_C=0;HC138_B=0;HC138_A=1;break;
case 7: HC138_C=0;HC138_B=0;HC138_A=0;break;
default:break;
}
DIGI_PORT=smgduan[disp_data[i]]; //传送段码数据
delay(100); //延时一段时间,等待显示稳定
DIGI_PORT=0x00; //消隐
}
}
/************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
************************************************************/
void main()
{
u8 i=0;
while(1)
{
digi_display();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
4 演示视频
具体演示视频,可以参考我的B站视频:B站联合仿真和开发板验证视频
数码管动态显示相关资源下载:
链接:https://pan.baidu.com/s/1oMPkZQvDPx_sP47ju-U2Og?pwd=nts5
提取码:nts5
喜欢的话请关注点赞,谢谢!!!