技术文档

单片机数码管实验报告 单片机应用技术课程报告~数码管的静态显示

小编 2024-11-25 技术文档 23 0

单片机应用技术课程报告~数码管的静态显示

实验名称

数码管的静态显示

实验时间

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文件,并且能够正常仿真,在连接硬件线路图的时候没有出现错误,这是一个进步。在今后的实验过程中我会更加的注意,减少错误的产生。

教你玩单片机之静态数码管(附程序)

静态数码管的相关知识:

LED数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用的段数一般为7段,有的另加一个小数点 。LED数码管根据LED的接法不同,分为共阴和共阳两类 。

原理图解析:

HC6800-ES V1.0实验板上面用的数码管是共阴极的数码管,数码管的公共端接到138译码器,段码段通过74H573锁存器接到单片机的P0口。

锁存器(Latch):

是一种对脉冲电平敏感的存储单元,它们可以在特定输入脉冲电平作用下改变和保持状态,所谓锁存,就是把信号暂存以维持某种电平状态。

74H573锁存器的功能说明:

1. OE为时能端,当他为低电平的时候, 锁存器开始工作

2. VCC和GND为电源和地端

3 .LE为锁存端,当LE为高电平的时候,Q0~Q7都跟D0~D7状态一样,当LE为低电平的时候,Q0~Q7都锁存数据,无论D0~D7怎么变化,Q0~Q7都保持锁存之前的那个状态。

74H573锁存器 逻辑引脚:

74H573锁存器真值表:

51单片机数码管显示数字程序:

使用的IO: 数码管使用P0

#include<reg51.h>

#define GPIO_DIG P0

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

//RAM,ROM

unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9的值

//0~9段码

//0:0011_1111

void main(void)

{

LSA=0;

LSB=0;

LSC=0;//我们可以理解为打开某一个数码管打开

while(1)

{

GPIO_DIG=DIG_CODE[6];

}

}

相关问答

单片机数码管 显示不全解决方法?

1、先更换同型号规格新电池试试。电量不足会引起数显数字不全。更换新电池不能解决问题,就是显示器故障了。2、显示器基本没有维修价值,建议到衡器门市更换新...

单片机 如何定义 数码管 ?

单片机控制数码管分两种。1、静态数码管,控制比较简单,只送段码就可以了。比如:P1=0xc0,共阳极的话,将显示02、动态数码管,控制就比较复杂一些,需要先...单...

51 单片机 数码管 P0=table[1]; w0=0; delay(1); w0=1 P0=?

提前准备机制,就像代码执行一样这个顺序是不可以乱的。这里w0用来开启数码的开关。然后呢,把准备的数据放进去。你一来直接往里放肯定不准确啥。提前准备机...

求助: 单片机数码管 两个数值位置互换五秒后恢复……怎么编程?

有2个环节注意就可以了1、可以把所有需要显示的数设置为1个数组形式,交换其实就是数组内的数交换。2、5秒回复嘛,做个定时器当显示的数组内容所有都为0时,开...

单片机数码管 小数点的显示?

以下是我的回答,单片机数码管小数点的显示可以通过以下步骤实现:首先,需要了解数码管的工作原理。数码管是由多个LED段组成的,通过控制各个段的亮灭来显示不...

单片机 仿真 数码管 怎么找?

要找单片机仿真数码管,你可以在电子元器件市场或在线电子商务平台上搜索。在搜索框中输入关键词,如“单片机仿真数码管”或“数字显示模块”,然后浏览结果。...

51 单片机实验 我们的实验用DVCC-52JH++实验箱.利用脉冲发生器...

[最佳回答]很幸运的看到你的问题.但是又很遗憾到现在还没有人回答你的问题.也可能你现在已经在别的地方找到了答案,那就得恭喜你啦.可能是你问的问题有些专业...

51 单片机 的共阴 数码管 怎么显示数字(c语言)?

要让51单片机共阴数码管显示数字,只需要将单片机的P2端口输出数字对应的段码即可。以显示数字“0”为例,c语言程序如下:#include要让51单片机共阴数码管显...

如何实现 单片机 两个 数码管 之间单独控制且同时显示?

先让你的第一个数码管显示要显示的第一个数字,其他数码管关闭;然后关闭第一个数码管显示;然后让你的第二个数码管显示要显示的第二个数字,其他数码管关闭;...

单片机 控制 数码管 静态显示数字怎么烧录?

要烧录此程序,您需要先编写程序代码,然后将其烧录到单片机的闪存中。以下是一般的步骤:1.准备开发环境:您需要安装单片机开发工具,例如Keil或MPLAB等软件。...

猜你喜欢