51单片机C语言程序数码管显示实验指导书Word下载.docx
- 文档编号:17593237
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:19
- 大小:9.85MB
51单片机C语言程序数码管显示实验指导书Word下载.docx
《51单片机C语言程序数码管显示实验指导书Word下载.docx》由会员分享,可在线阅读,更多相关《51单片机C语言程序数码管显示实验指导书Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
共阴极编码
共阳极编码
1
0x3F
0xC0
0x06
0xF9
2
0x5B
0xA4
3
0x4F
0xB0
4
0x66
0x99
5
0x6D
0x92
6
0x7D
0x82
7
0x07
0xF8
8
0x7F
0x80
9
0x6F
0x90
A
0x77
0x88
0x7C
0x83
C
0x39
0xC6
0x5E
0xA1
E
0x79
0x86
F
0x71
0x8E
开发板中数码管部
原理图中用到两片573,一片用于位选,选择8位共阴数码管中的某位或几位,另一片573用于段选,用于输入以上表格中的编码来控制要显示的内容。
举个例子,如果我们要使数码管的最低位显示“A”,那么,首先通过控制DS1,选中位选控制的573,控制DSD7为“0”(共阴,如果是共阳的数码管就置“1”),然后通过控制DS2,选中段选选控制的573,在DSD0~DSD7输入0x77,即可实现“A”在第3位显示。
EX2.1、最低位显示“A”
实验源程序:
(全部程序请参考本章实验的程序文件夹)
//***********************************************************************************//主函数
//***********************************************************************************
voidmain()//主函数
{
while
(1)//进入while死循环
{
P1=0x7f;
//0x7f=01111111,即选通数码管最低位
LE1=1;
//锁存位
LE1=0;
//断开锁存,位选573的Q7~Q0仍为0x7f
P1=0x77;
//0x77为"
A"
的编码
LE2=1;
//锁存段码
LE2=0;
//断开锁存,段选573的Q7~Q0仍为0x77
}
}
硬件连接:
IO接口
模块接口
位数
J8
J12
8位
J11_0
J15_DS1
2位
J11_1
J15_DS2
实验现象:
控制数码管最低位显示字母"
。
扩展实验:
自己动手实现点亮最低位到最高位的任一位显示“C”。
EX2.2、最低位显示0~9
{
uchari;
for(i=0;
i<
10;
i++)//如果要实现0~F循环,只需要将10改为16
P1=dis[i];
//0~9的编码
//断开锁存,段选573的Q7~Q0仍为dis[i]
delay(5000);
//延时保持一下
}
控制数码管最低位显示0~9循环变化。
自己动手实现点亮最低位到最高位的任一位显示0~9循环变化。
EX2.3、8位全部显示字母“E”
voidmain()//主函数
P1=0x00;
//0x00=00000000,即选通数码管的全部8位
//断开锁存,位选573的Q7~Q0仍为0x00
P1=0x79;
//0x79为"
E"
//断开锁存,段选573的Q7~Q0仍为0x79
控制数码管全部8位显示字母"
自己动手实现点亮全部位显示“5”。
EX2.4、8位显示0~F
voidmain()//主函数
while
(1)//进入while死循环
//0x7f=00000000,即选通数码全8位
16;
i++)//如果要实现0~10循环,只需要将16改为10
//0~F的编码
//延时保持一下
控制数码管全8位显示0~F循环变化。
自己动手控制数码管全8位显示F~0循环变化。
EX2.5、8位动态扫描显示01234567
wei=0x01;
//初始化位为0x01,即为最高位
i=0;
//初始化段码为0
scan();
//数码管扫描函数
//动态扫描函数
scan()
P1=~wei;
//由于共阴,低电平来选通某1位,所以需取反
//断开锁存,位选573的Q7~Q0仍保持
wei<
<
=1;
//左移一位
//0~7的编码
//断开锁存,段选573的Q7~Q0仍保持
i++;
//i加1
delay(10);
//延时保持一下,延时过大会闪动,延时过小会有暗影
if(i==8){i=0;
wei=0x01;
}//共8位,扫描到第8位时,重新扫描
控制数码管8位动态扫描显示01234567。
自己动手控制数码管8位动态扫描显示FEDCBA98。
EX2.6、0.1~10累加
num=0;
//初始化段码为0
i++)
//显示个位
P1=0xbf;
//0xbf=10111111,即选通个位
wei=num*10;
P1=dis[wei/10]|0x80;
//dis[wei/10]为0~9的编码,0x80为小数点
delay(100);
//延时保持一下,延时过大会闪动,延时过小会有重影
LE2=1;
LE2=0;
//清除P1口数据,以免造重影
//显示十分位
//0xbf=01111111,即选通十分位
P1=dis[wei%10];
//断开锁存,段选573的Q7~Q0仍保持
//延时保持一下,延时过大会闪动,延时过小会有重影
//清除P1口数据,以免造重影
if(num==9.9)num=0;
//扫描到显示9.9时,重新开始扫描
num+=0.1;
//num加0.1
控制数码管低2位显示从0.1到9.9累加,步进为0.1。
自己动手控制数码管低4位显示从0.01到99.99累加,步进为0.01。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 语言 程序 数码管 显示 实验 指导书