数码管显示实验报告

合集下载

数码管的显示的实验报告

数码管的显示的实验报告

数码管的显示的实验报告数码管的显示的实验报告引言:数码管是一种常见的数字显示装置,广泛应用于各种电子设备中。

本实验旨在通过实际操作,了解数码管的原理和工作方式,并通过一系列实验验证其显示效果和功能。

实验一:数码管的基本原理数码管是由多个发光二极管(LED)组成的,每个发光二极管代表一个数字或符号。

通过对不同的发光二极管进行点亮或熄灭,可以显示出不同的数字或符号。

本实验使用的是共阳数码管,即共阳极连接在一起,而阴极分别连接到控制芯片的输出引脚。

实验二:数码管的驱动电路为了控制数码管的显示,需要使用驱动电路。

常见的驱动电路有共阴极驱动和共阳极驱动两种。

本实验使用的是共阳极驱动电路。

驱动电路由控制芯片、电阻和电容组成。

控制芯片通过控制输出引脚的高低电平来控制数码管的点亮和熄灭。

实验三:数码管的显示效果通过控制芯片的输出引脚,可以实现数码管的显示效果。

本实验使用的是四位数码管,可以显示0-9的数字。

通过改变控制芯片输出引脚的电平,可以控制数码管显示不同的数字。

实验中通过编写程序,使数码管显示从0到9的数字循环显示,并通过按键控制数字的增加和减少。

实验四:数码管的多位显示除了显示单个数字外,数码管还可以实现多位显示。

通过控制不同位数的数码管,可以显示更多的数字或符号。

本实验使用的是四位数码管,可以同时显示四个数字。

通过编写程序,可以实现四位数码管的多位显示,例如显示当前时间、温度等信息。

实验五:数码管的亮度调节数码管的亮度可以通过改变驱动电路中的电阻值来实现。

本实验通过改变电阻值,调节数码管的亮度。

实验中通过编写程序,通过按键控制数码管的亮度增加和减少,从而实现亮度的调节。

结论:通过本次实验,我们深入了解了数码管的原理和工作方式。

数码管可以通过驱动电路的控制,实现数字和符号的显示。

同时,数码管还可以实现多位显示和亮度调节。

数码管作为一种常见的数字显示装置,具有广泛的应用前景,可以应用于各种电子设备中。

通过进一步的研究和实践,我们可以更好地利用数码管的功能,满足不同应用场景的需求。

实验报告格式 3-数码管显示实验

实验报告格式 3-数码管显示实验

实验报告格式 3-数码管显示实验实验报告一、实验目的1. 学习如何使用数码管,并能实现数码管的显示2. 了解基本的数字显示方式,可以显示0~9的十进制数字二、实验原理数码管是一种在电子显示器中用来表示数字和其他字符的一种元件。

数码管又称LED 数码管或数字显示管,其主要功能是在打击某一输入触发器时,接到其输出端的数字会正常的显示在数码管上。

在本实验中,我们使用7段共阳数码管,7段共阳数码管由7个发光二极管组成,每个发光二极管通过与阴极接触制停止电流,结束发光。

因此,为了让数码管亮起来,必须将数码管的对应某一位的阴极端接地,同时将要显示的数码(即需要点亮的发光二极管)的阳极端与电源相连。

三、实验器材和实验步骤1. 实验器材数字计数器、7个共阳数码管、4026计数器集成电路2个、电磁继电器、电源和多根杜邦线。

2. 实验步骤(1) 将实验器材按照实验原理连接起来,具体如下图所示:(2) 实验电路接通电源,通过数字计数器发出个、十、百位的计数信号,信号由两个数字计数器发出,计数器的数量可以根据自己的需要进行添加或减少。

(3) 分别连接7个共阳数码管的7个端口,通过对应的杜邦线分别连接到2个4026计数器集成电路中的CLOCK端口,其中一个4026计数器集成电路的RESET端口连接电磁继电器。

(4) 根据需求,调整数字计数器的数据代码,在7个共阳数码管中正确显示出计数器计数的数码。

(5) 实验结束,关闭电路电源。

四、实验结果及分析本实验需要的器材比较简单,难度较小并且有初步的操作指南,实验过程中调整计数器的数据代码,可以从实验中学到如何控制数码管数字显示、数据代码调整等一系列操作,虽然实验难度较低,但重在理解数码管的使用过程以及计数器的工作原理。

在实验结束后,数码管正确显示出了计数器计数的数码。

五、实验小结本实验中,使用了数字计数器、7个共阳数码管、4026计数器集成电路、电磁继电器、电源和多根杜邦线,实验中主要学习了如何使用数码管,能够实现数码管的显示,了解基本的数字显示方式,可以显示0~9的十进制数字。

数码管动态显示实验报告

数码管动态显示实验报告

一、实验目的1. 掌握数码管动态扫描显示的原理和编程实现方法;2. 熟悉单片机与数码管之间的接口连接;3. 学会使用定时器中断控制数码管的动态显示;4. 培养动手能力和问题解决能力。

二、实验原理数码管动态显示是通过单片机控制多个数码管同时显示不同的数字或字符,利用人眼的视觉暂留效应,实现快速切换显示内容,从而在有限的引脚数下显示更多的信息。

实验中,我们采用动态扫描的方式,依次点亮数码管,通过定时器中断控制扫描速度。

三、实验器材1. 单片机开发板(如51单片机、AVR单片机等);2. 数码管(共阳/共阴自选);3. 连接线;4. 电阻;5. 实验台;6. 编译器(如Keil、IAR等)。

四、实验步骤1. 设计电路图:根据实验要求,设计单片机与数码管的连接电路图,包括数码管的段码、位选信号、电源等。

2. 编写程序:使用C语言或汇编语言编写程序,实现数码管的动态显示功能。

(1)初始化:设置单片机的工作模式、定时器模式、端口方向等。

(2)显示函数:编写显示函数,实现数码管的点亮和熄灭。

(3)定时器中断服务程序:设置定时器中断,实现数码管的动态扫描。

3. 编译程序:将编写的程序编译成机器码。

4. 烧录程序:将编译后的程序烧录到单片机中。

5. 连接电路:将单片机与数码管连接好,包括数码管的段码、位选信号、电源等。

6. 运行实验:打开电源,观察数码管的显示效果。

五、实验结果与分析1. 实验结果:数码管按照预期实现了动态显示功能,依次点亮每位数码管,并显示出不同的数字或字符。

2. 分析:(1)通过调整定时器中断的周期,可以改变数码管的扫描速度,从而控制显示效果。

(2)在编写显示函数时,要考虑到数码管的共阳/共阴特性,选择合适的点亮和熄灭方式。

(3)在实际应用中,可以根据需要添加其他功能,如显示时间、温度等。

六、实验总结1. 通过本次实验,掌握了数码管动态显示的原理和编程实现方法。

2. 熟悉了单片机与数码管之间的接口连接,提高了动手能力。

数码管动态显示实验报告

数码管动态显示实验报告

数码管动态显示实验报告1.实验目的:本实验旨在通过使用单片机控制数码管的动态显示,了解数码管的原理和使用方法,加深对单片机控制的理解。

2.实验原理:数码管是由许多发光二极管(LED)组成的,每个数码管有7个发光二极管组成7段,再加上一个小数点(或8段数码管),通过控制每个发光二极管的亮灭状态,可以显示出数字、字母等字符。

本实验使用的是共阴极数码管,在通常情况下,数码管引脚为低电平时亮灯,为高电平时灭灯。

3.实验器材:-STC89C52单片机-共阴极数码管-电阻-面包板及连接线-电源4.实验步骤:步骤1:连接电路将数码管的7个引脚分别连接到单片机的7个I/O引脚上,并通过电阻限流。

连接电路后,确认连接无误。

步骤2:编写程序使用C语言编写程序,实现数码管的动态显示。

可以使用延时函数和位操作函数控制数码管的亮灭,通过改变每个数码管引脚的高低电平状态,实现显示不同的数字、字母。

步骤4:实验观察与分析观察数码管的显示效果,通过改变程序中的参数,可以实现不同的显示效果。

5.实验结果与分析:经过实验,我们成功实现了数码管的动态显示。

通过编写程序,我们可以实现数码管显示数字、字母等不同的字符。

调整程序中的参数,可以实现不同的动态显示效果,如流水灯、闪烁等。

数码管的动态显示是通过改变每个数码管引脚的高低电平实现的,通过快速改变引脚电平状态的时间间隔,创建了肉眼无法察觉的视觉效果,从而实现了动态显示。

此外,通过实验我们还了解到了单片机控制数码管的原理和方法,加深了对单片机控制的理解。

6.实验总结:通过本实验,我们了解到了数码管的动态显示原理和方法,并通过编写程序,成功实现了数码管的动态显示。

同时,我们还巩固了单片机控制的知识,提高了自己的动手能力和问题解决能力。

在今后的学习和工作中,我们将进一步掌握数码管的使用方法,并能够将其应用于更加复杂的应用场景中,实现更多有趣的功能。

数码显示控制实验报告(3篇)

数码显示控制实验报告(3篇)

第1篇一、实验目的1. 熟悉数码显示模块的结构和工作原理;2. 掌握51单片机控制数码显示模块的方法;3. 学会使用移位寄存器实现数码显示的动态扫描;4. 提高单片机编程能力和实践操作能力。

二、实验原理数码显示模块是一种常见的显示器件,主要由7段LED组成,可以显示0-9的数字以及部分英文字符。

51单片机通过控制数码显示模块的段选和位选,实现数字的显示。

移位寄存器是一种常用的数字电路,具有数据串行输入、并行输出的特点。

在本实验中,使用移位寄存器74HC595实现数码显示的动态扫描。

三、实验仪器与材料1. 51单片机实验板;2. 数码显示模块;3. 移位寄存器74HC595;4. 电阻、电容等电子元件;5. 电路连接线;6. 编译软件Keil uVision;7. 仿真软件Proteus。

四、实验步骤1. 电路连接(1)将51单片机的P1口与数码显示模块的段选端相连;(2)将74HC595的串行输入端Q(引脚14)与单片机的P0口相连;(3)将74HC595的时钟端CLK(引脚11)与单片机的P3.0口相连;(4)将74HC595的锁存端LR(引脚12)与单片机的P3.1口相连;(5)将数码显示模块的位选端与74HC595的并行输出端相连。

2. 编写程序(1)初始化51单片机的P1口为输出模式,P3.0口为输出模式,P3.1口为输出模式;(2)编写数码显示模块的段码数据表;(3)编写74HC595的移位和锁存控制函数;(4)编写数码显示模块的动态扫描函数;(5)编写主函数,实现数码显示模块的循环显示。

3. 编译程序使用Keil uVision编译软件将编写的程序编译成hex文件。

4. 仿真实验使用Proteus仿真软件进行实验,观察数码显示模块的显示效果。

五、实验结果与分析1. 编译程序后,将hex文件下载到51单片机实验板上;2. 使用Proteus仿真软件进行实验,观察数码显示模块的显示效果;3. 通过实验验证,数码显示模块可以正常显示0-9的数字以及部分英文字符;4. 通过实验,掌握了51单片机控制数码显示模块的方法,学会了使用移位寄存器实现数码显示的动态扫描。

数码显示实验报告

数码显示实验报告

一、实验目的1. 熟悉数码管的结构和工作原理。

2. 掌握数码管与单片机的连接方法。

3. 学习使用动态扫描显示技术实现多位数码管的显示。

4. 培养动手能力和编程能力。

二、实验原理数码管是一种常用的显示器件,由多个发光二极管组成,通过控制发光二极管的亮与灭来显示数字、字母或符号。

本实验采用共阴极数码管,当对应的段码为低电平时,该段发光。

三、实验设备1. 单片机实验箱一台2. 共阴数码管8位3. 电阻若干4. 连接线若干5. 编译器(如Keil uVision)6. 仿真软件(如Proteus)四、实验内容1. 实验电路搭建根据实验原理图,连接单片机、数码管、电阻等元件。

具体连接方法如下:(1)将单片机的P0口与数码管的段码相连。

(2)将单片机的P1口与数码管的位选相连。

(3)将数码管的公共阴极与地相连。

(4)将电阻分别串联在数码管的段码和位选上,用于限流。

2. 编写程序(1)初始化单片机IO口,将P0口设置为输出模式,P1口设置为输出模式。

(2)编写数码管显示函数,根据输入的数字,计算对应的段码,并输出到P0口。

(3)编写动态扫描显示函数,按照一定的时间间隔依次显示各个数码管。

3. 编译程序使用Keil uVision编译器将编写的程序编译成hex文件。

4. 仿真实验使用Proteus软件进行仿真实验,观察数码管显示效果。

五、实验步骤1. 搭建实验电路。

2. 编写程序,实现数码管显示功能。

3. 编译程序,生成hex文件。

4. 在Proteus软件中导入hex文件,进行仿真实验。

5. 观察数码管显示效果,分析实验结果。

六、实验结果与分析1. 实验结果通过仿真实验,数码管能够按照程序的要求显示数字、字母或符号。

2. 实验分析(1)数码管显示原理:数码管通过控制发光二极管的亮与灭来显示数字、字母或符号。

当对应的段码为低电平时,该段发光。

(2)动态扫描显示原理:动态扫描显示是通过依次点亮各个数码管,使多位数码管同时显示。

led数码管显示控制实验报告

led数码管显示控制实验报告

led数码管显示控制实验报告篇一:单片机实验报告——LED数码管显示实验《微机实验》报告LED数码管显示实验指导教师:专业班级:姓名:学号:联系方式:一、任务要求实验目的:理解LED七段数码管的显示控制原理,掌握数码管与MCU的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。

实验内容:利用C8051F310单片机控制数码管显示器基本要求:利用末位数码管循环显示数字0-9,显示切换频率为1Hz。

提高要求:在4位数码管显示器上依次显示当天时期和时间,显示格式如下:yyyy(月份.日)(小时.分钟)思考题:数码管采用动态驱动方式时刷新频率应如何选择?为什么?二、设计思路C8051F310单片机片上晶振为,采用8分频后为,输入时钟信号采用48个机器周期。

0到9对应的断码为:FCH、60H、DAH、F2H、66H、B6H、BEH、E0H、FEH、F6H 基础部分:由于只需要用末位数码管显示,不需要改变位码,所以只需要采用LED的静态显示。

采用查表的方法,通过循环结构,每次循环查找数据表下一地址,循环十次后重新开始循环。

每次循环延时1s,采用定时器0定时方式1。

提高部分:四个数码管都要显示,所以采用LED的动态显示。

由于数码管的位选由、控制,P0端口的其他引脚都没用到,所以对P0端口初始化赋00H,每次循环加40H、选中下一位,四次后十六进制溢出,P0端口变又为00H回到第一个数码管。

每位数码管显示一个段码后都延时1ms(否则数码管太亮,刺眼)采用定时器0定时方式1,依然采用查表法改变段码值。

通过循环:DJNZ R5,BACKMOVR5,#250 DJNZ R4,BACK MOVR4,#8来控制每种模式的切换时间,我采用2s切换一次(8*250*1ms=2s)。

切换模式,可以采用改变查表法的偏移量来实现,没切换一次模式,偏移量加04H,三次后回到初始偏移量,来实现三种模式的循环显示。

三、资源分配基础部分:、:控制数码管的位选P1:控制数码管段码的显示R0:控制段选提高部分:、:控制数码管的位选P1:控制数码管段码的显示R0:控制位选R1:控制段选R3:用于改变偏移量来切换模式R4、R5:控制循环次数,控制模式切换时间四、流程图基础部分:提高部分篇二:实验八数码管LED实验报告苏州大学实验报告院、系年级专业姓名学号课程名称成绩指导教师同组实验者实验日期实验名称:数码管LED实验一.实验目的理解8段数码管的基本原理,理解8段数码管的显示和编程方法,理解4连排共阴极8段数码管LG5641AH与MCU 的接线图。

数字显示器实验报告

数字显示器实验报告

一、实验目的1. 了解数字显示器的基本原理和分类。

2. 掌握数字显示器的设计方法和应用。

3. 学会使用数码管和LCD显示器进行数字显示。

4. 提高动手实践能力和问题解决能力。

二、实验内容1. 数码管显示实验2. LCD显示器显示实验三、实验原理1. 数码管显示原理:数码管是一种半导体发光器件,由若干个发光二极管(LED)组成,每个LED代表一个数码管的笔画。

通过控制LED的亮灭,可以显示不同的数字和字符。

2. LCD显示器显示原理:LCD显示器是一种液晶显示器,通过液晶分子的旋转控制光的透过与阻挡,实现图像的显示。

LCD显示器主要由液晶面板、背光源、偏振片、驱动电路等组成。

四、实验步骤1. 数码管显示实验(1)搭建电路:将数码管与AT89C51单片机连接,连接方式包括共阴极和共阳极两种。

(2)编写程序:使用C语言编写程序,实现数码管显示数字和字符。

(3)调试程序:使用Keil软件对程序进行编译和调试,观察数码管显示效果。

2. LCD显示器显示实验(1)搭建电路:将LCD显示器与AT89C51单片机连接,连接方式包括并行和串行两种。

(2)编写程序:使用C语言编写程序,实现LCD显示器显示数字和字符。

(3)调试程序:使用Keil软件对程序进行编译和调试,观察LCD显示器显示效果。

五、实验结果与分析1. 数码管显示实验结果:通过编写程序,数码管能够显示数字和字符,实现了实验目的。

2. LCD显示器显示实验结果:通过编写程序,LCD显示器能够显示数字和字符,实现了实验目的。

3. 分析:(1)数码管显示实验:在实验过程中,发现数码管的共阴极和共阳极连接方式不同,需要根据实际连接方式编写程序。

此外,为了提高显示效果,需要对数码管进行动态扫描显示。

(2)LCD显示器显示实验:在实验过程中,发现LCD显示器的并行和串行连接方式不同,需要根据实际连接方式编写程序。

此外,为了提高显示效果,需要对LCD显示器进行初始化和设置显示模式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三、数码管显示实验
一、实验目的及要求
理解8段数码管的基本原理,理解8段数码管的显示和编程方法,理解4连排共阴极8段数码管J3641AS通过DP1668与CPU的接线图。

理解8段数码管原理,运行与理解各子程序,编制一个4连排8段数码管程序,CPU 的P2口接左、右两个DP1668的控制引脚,各DP1668接LED的数据线hgfedcba,在4 连排8段数码管显示编程的日期。

熟悉结构后,自行编程左边四个数码管,显示分钟和秒,当计时达到一个小时,就重新从00:00开始计时。

另外,指定计时的开始值。

二、实验原理(图)
8段数码管一般由8个发光二极管(Llight-emitting diode,LED)组成,每一个位段就是一个发光二极管。

一个8段数码管分别由a、b、c、d、e、f、g位段,外加上一个小数点的位段h(或记为dp)组成。

根据公共端所接电平的高低,可分为共阳极和共阴极两种。

三、实验设备(环境):
1、电脑一台
2、STC-ISP(V6.85I)烧写应用程序
3、Keil应用程序
四、实验内容(算法、程序、步骤和方法):
#include<STC15F2K60S2.h> //此文件中定义了STC15系列的一些特殊功能寄存器
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit TM1668R_DIO_H = P4^4; //左边数码管宏定义
sbit TM1668R_CLK_H = P2^0;
sbit TM1668R_STB_H = P2^1;
sbit TM1668L_DIO_H = P2^2; //左边数码管宏定义
sbit TM1668L_CLK_H = P2^3;
sbit TM1668L_STB_H = P2^4;
sbit LIGHT = P0^1;
uchar Today_data[8];
uint temp,kk;
const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void Send_Data(uchar dat,uchar n);
void DIS_data_1668(uchar data1,uchar data2,uchar data3,uchar data4,uchar n);
/****************************************************************************** *
* 函数名: Send_Data
* 函数功能: TM1668发送一字节数据函数
* 输入: 无
* 输出: 无
******************************************************************************/ void Send_Data(uchar dat,uchar n)
{
uchar i;
for(i = 0;i<8;i++) //1个字节
{
if(n==0)
TM1668R_CLK_H = 0;
else
TM1668L_CLK_H = 0;
if(dat&(1<<i))
{
if(n==0)
TM1668R_DIO_H = 1;
else
TM1668L_DIO_H = 1;
}
else
{
if(n==0)
TM1668R_DIO_H = 0;
else
TM1668L_DIO_H = 0;
}
_nop_();
_nop_();
_nop_();
_nop_();
if(n==0)
TM1668R_CLK_H = 1;
else
TM1668L_CLK_H =1;
}
}
void DIS_data_1668(uchar data1,uchar data2,uchar data3,uchar data4,uchar n) {
if(n==0)
TM1668R_STB_H = 0;
else
TM1668L_STB_H = 0;
Send_Data(0x00,n); //设置显示模式4位13段
if(n==0)
TM1668R_STB_H = 1;
else
TM1668L_STB_H = 1;
_nop_();
_nop_();
_nop_();
_nop_();
if(n==0)
TM1668R_STB_H = 0;
else
TM1668L_STB_H =0;
Send_Data(0x40,n); // 写数据自动地址加一
if(n==0)
TM1668R_STB_H = 1;
else
TM1668L_STB_H = 1;
_nop_();
_nop_();
_nop_();
_nop_();
if(n==0)
TM1668R_STB_H = 0;
else
TM1668L_STB_H = 0;
Send_Data(0xc0,n); //发送地址指令从0x00开始
_nop_();
_nop_();
Send_Data(data1,n);
Send_Data(0x00,n);
Send_Data(data2,n);
Send_Data(0x00,n);
Send_Data(data3,n);
Send_Data(0x00,n);
Send_Data(data4,n);
Send_Data(0x00,n);
if(n==0)
TM1668R_STB_H = 1;
else
TM1668L_STB_H = 1;
_nop_();
_nop_();
_nop_();
_nop_();
if(n==0)
TM1668R_STB_H = 0;
else
TM1668L_STB_H = 0;
Send_Data(0x88,n);
if(n==0)
TM1668R_STB_H = 1;
else
TM1668L_STB_H = 1;
}
/****************************************************************************** *
* 函数名: Timer0Init
* 函数功能: 定时器0初始化
* 输入: 无
* 输出: 无
******************************************************************************/
void Timer0Init(void) //25微秒@11.0592MHz
{
AUXR |= 0x80; //定时器时钟1T模式1T和12T模式选择
TMOD &= 0xF0; //设置定时器模式
TL0 = 0xEC; //设置定时初值
TH0 = 0xFE; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1; //使能定时器0 IE.1
EA = 1; //使能全局中断IE.7
}
/****************************************************************************** *
* 函数名: main
* 函数功能: 主函数
* 输入: 无
* 输出: 无
******************************************************************************* /
void main(void)
{
Timer0Init();
LIGHT = 1;
while(1)
{
DIS_data_1668(table[6],table[1],table[0],table[2],0);
DIS_data_1668(table[1],table[5],table[0],table[8],1);
}
}
五、实验结论(结果):
本实验实现了XXX功能,核心算法采用了XXX的方式,达到了预期目的。

六、实验心得与小结:
(自行填写,如:功能是否实现;整个过程中存在哪些问题;如何解决的….)。

相关文档
最新文档