实验名称
数码管的静态显示
实验时间
2020年7月26 日
学生姓名
实验地点
钉钉群线上
同组人员
专业班级
1、会使用单片机连接外部设备并构建单片机数码管电路。
2、能使用工具软件绘制单片机硬件原理图、能编写简单的C51程序。
3、通过编程,学会在单片机上实现一种数字静态显示控制方法。
2、任务设计要求
1、LED数码管将按照程序设置的方式工作,每隔一段变化一次,依次循环显示0~9十
个数字。
2、程序开始先将“0~9”十个数字的字型码存入一维数组中,然后,每隔1段时间将
数组中的对应字符的字型码通过P2端口送到显示器的段控端,实现相应字符的显示。程序
设计利用for语句循环10次,调用延时函数,依次将“0~9”十个数字的字型码送到显示器
的段控端。
3、总体设计方案
1、程序开始先将“0~9”十个数字的字型码存入一维数组中,然后,每隔1段时间将数
组中的对应字符的字型码通过P0,P2端口送到显示器的段控端,实现相应字符的显示。
2、P0口接共阴极数码管,P2口接共阳极数码管,程序设计利用for语句循环10次,调
用延时函数,依次将“0~9”十个数字的字型码送到显示器的段控端。
4、硬件电路设计
5、软件程序设计
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar i;
void delay()
{ uint k,j;
for(j=600;j>0;j--)
for(k=248;k>0;k--);
}
void main(void)
{ while(1)
{
for(i=0;i<10;i++)
{
P0=table[i];
P2=~table[i];
delay();
}
}
2)性能指标测试及结果分析
7、项目总结
这次的实验做得比较顺利,除了在编写程序的时候出现了错误,不过在老师和同学的帮助下程序正常生成了HEX文件,并且能够正常仿真,在连接硬件线路图的时候没有出现错误,这是一个进步。在今后的实验过程中我会更加的注意,减少错误的产生。