单片机动态数码显示设计实验报告
51单片机动态数码管实验报告

51单片机动态数码管实验报告一、背景动态数码管是一种常见的显示装置,它由多个LED组成,可以显示数字、字母和符号等信息。
在嵌入式系统中,动态数码管常用于显示各种信息,如温度、湿度、时间等。
本次实验旨在通过学习51单片机动态数码管的使用方法,了解动态数码管的工作原理和使用技巧。
二、分析动态数码管由多个共阴极或共阳极LED组成,每个LED都可用于显示一个数字或字符。
动态数码管的显示是通过快速切换数码管的管脚电平实现的,每个数码管显示部分的亮度和显示时间取决于刷新速度。
本次实验涉及到四位数码管,所以需要控制四个共阳极或共阴极数码管,通过快速切换显示四个数码管的方式实现动态显示效果。
实验所需要的材料有:51单片机开发板、数码管模块、面包板、杜邦线等。
以下是步骤:1.将数码管模块的共阳极或共阴极连接到51单片机开发板的IO口。
根据数码管模块的引脚连接方式,选择合适的IO口。
2.在51单片机开发板上搭建实验电路。
首先将开发板的VCC引脚连接到面包板的正电源线上,GND引脚连接到面包板的地线上。
然后将数码管模块的VCC引脚连接到面包板的正电源线上,GND引脚连接到面包板的地线上。
最后将数码管模块的信号引脚连接到51单片机开发板选择的IO口上。
3.编写程序。
使用C语言编写代码,通过控制IO口的电平和延时实现数码管的动态显示功能。
根据所需显示的数字和字符,选择合适的代码逻辑。
4.将编写好的程序下载到51单片机开发板上。
使用USB转串口工具将开发板与电脑连接,使用相应的下载软件将程序下载到开发板。
5.执行程序。
将开发板上的动态数码管模块打开,观察数码管的显示效果。
根据实际需求,调整程序中的显示内容和显示速度。
三、结果经过以上步骤,可以成功实现51单片机动态数码管的显示功能。
根据编写的程序和韦氏编码表,可以显示各种数字、字母和符号等信息。
通过调整程序中的显示内容和显示速度,可以实现不同的显示效果。
四、建议在进行实验过程中,需要注意以下几点:1.确保电路连接正确。
动态数码显示实验报告

一、实验目的1. 掌握动态数码显示的原理及实现方法;2. 熟悉单片机与数码管之间的接口连接;3. 学会使用C语言编写程序,实现数码管的动态显示;4. 提高对单片机硬件电路和编程的实践能力。
二、实验原理动态数码显示技术是通过减少段选线,分别控制位选线,交替显示各个数码管上的数字,同时确保在人眼无法分辨的时间间隔内刷新,通常不超过24ms。
这样,多个数码管可以共享段选线,从而降低硬件成本。
三、实验设备1. 单片机实验箱一台;2. 共阴极数码管8个;3. 74HC138译码器一个;4. 电阻若干;5. 连接线若干;6. 编程软件Keil uVision;7. 仿真软件Proteus。
四、实验步骤1. 设计电路图:根据实验要求,设计动态数码显示电路图,包括单片机、数码管、译码器等元件的连接方式。
2. 连接电路:按照电路图,将单片机、数码管、译码器等元件连接到实验箱上。
3. 编写程序:使用Keil uVision编写程序,实现数码管的动态显示。
主要步骤如下:(1)定义数码管段码表:根据数码管共阴极特性,定义0-9数字对应的段码。
(2)编写延时函数:实现动态显示的刷新间隔,通常不超过24ms。
(3)编写显示函数:实现逐位显示数字,包括位选和段选控制。
(4)编写主函数:实现循环调用显示函数,实现动态显示效果。
4. 仿真测试:使用Proteus软件对程序进行仿真,观察数码管动态显示效果。
5. 硬件调试:将程序烧写到单片机,连接实物电路,观察数码管动态显示效果。
五、实验结果与分析1. 实验结果:通过仿真和硬件调试,成功实现数码管的动态显示,数字0-9循环显示。
2. 结果分析:(1)动态显示效果:数码管动态显示效果良好,数字清晰,无闪烁现象。
(2)程序优化:在编写程序过程中,对延时函数和显示函数进行了优化,提高了程序运行效率。
(3)硬件连接:电路连接正确,元件性能良好,保证了实验的顺利进行。
六、实验总结本次实验成功实现了动态数码显示,掌握了动态数码显示的原理和实现方法。
单片机数码管显示实验报告

单片机数码管显示实验报告单片机数码管显示实验报告引言:数码管是一种常用的显示器件,广泛应用于各种电子设备中。
本实验旨在通过使用单片机控制数码管的亮灭来实现数字的显示,以及通过编程控制数码管显示不同的数字和字符。
1. 实验目的本实验的主要目的是通过使用单片机控制数码管的显示,了解数码管的工作原理,以及掌握单片机编程技巧。
2. 实验材料本实验所需材料包括:单片机(如STC89C52)、数码管、电阻、面包板、杜邦线等。
3. 实验原理数码管是一种由多个发光二极管组成的显示器件,通常由7个发光二极管和一个小数点组成,可以显示0-9的数字和一些字母。
每个发光二极管的亮灭与单片机输出的电平有关,通过控制单片机的输出口,可以实现数码管上不同数字和字符的显示。
4. 实验步骤4.1 连接电路首先,将单片机和数码管通过杜邦线连接在一起。
将数码管的共阳极连接到单片机的输出口,将数码管的每个段连接到单片机的不同IO口。
同时,为了保护数码管和单片机,还需要在数码管的每个段与单片机之间串联一个适当的电阻。
4.2 编写程序使用C语言编写程序,通过控制单片机的输出口,实现数码管上不同数字和字符的显示。
程序的主要逻辑是通过改变单片机输出口的电平来控制数码管的亮灭。
根据数码管的接线方式和编码规则,可以通过设置不同的输出口电平组合来显示不同的数字和字符。
4.3 烧录程序将编写好的程序通过编程器烧录到单片机中。
4.4 运行实验将单片机连接到电源,观察数码管上的显示效果。
通过改变程序中的输出口电平设置,可以实现不同数字和字符的显示。
5. 实验结果通过实验,我们成功地实现了通过单片机控制数码管的显示。
通过改变程序中的输出口电平设置,可以实现数码管上不同数字和字符的显示。
实验结果表明,单片机可以灵活地控制数码管的亮灭,实现多种显示效果。
6. 实验总结通过本次实验,我们深入了解了数码管的工作原理,掌握了单片机编程技巧。
数码管作为一种常用的显示器件,在电子设备中有着广泛的应用。
数码管动态显示实验报告

一、实验目的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.实验总结:通过本实验,我们了解到了数码管的动态显示原理和方法,并通过编写程序,成功实现了数码管的动态显示。
同时,我们还巩固了单片机控制的知识,提高了自己的动手能力和问题解决能力。
在今后的学习和工作中,我们将进一步掌握数码管的使用方法,并能够将其应用于更加复杂的应用场景中,实现更多有趣的功能。
流动显示实验实验报告

一、实验目的1. 理解并掌握动态显示技术的基本原理;2. 学习数码管与单片机的连接方法;3. 掌握段代码表的推算及数据表的使用方法;4. 熟悉C语言编程方法,实现动态显示效果。
二、实验原理动态显示技术是一种通过快速切换数码管上的各个段来显示数字或字符的方法。
由于人眼具有视觉暂留效应,当切换速度足够快时,人眼无法分辨出各个段的变化,从而形成连续的显示效果。
三、实验设备与材料1. 计算机;2. 单片机实验箱;3. Proteus软件;4. Keil软件;5. 数码管;6. 电阻;7. 连接线。
四、实验步骤1. 硬件连接:将数码管连接到单片机的P0口,并确保连接正确无误;2. 软件编写:使用Keil软件编写程序,实现动态显示效果;3. 烧写程序:将编写的程序烧写到单片机中;4. 观察现象:打开单片机实验箱,观察数码管上的显示效果。
五、实验内容1. 编写程序,实现数码管上显示数字0-9的动态效果;2. 修改程序,实现数码管上显示特定字符的动态效果;3. 分析程序,了解动态显示的工作原理。
六、实验结果与分析1. 编写程序,实现数码管上显示数字0-9的动态效果(1)程序代码如下:```c#include <reg51.h>#define SEGMENT P0void delay(unsigned int ms) {unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 120; j++);}void displayNumber(unsigned char num) {switch (num) {case 0: SEGMENT = 0x3F; break;case 1: SEGMENT = 0x06; break;case 2: SEGMENT = 0x5B; break;case 3: SEGMENT = 0x4F; break;case 4: SEGMENT = 0x66; break;case 5: SEGMENT = 0x6D; break;case 6: SEGMENT = 0x7D; break;case 7: SEGMENT = 0x07; break;case 8: SEGMENT = 0x7F; break;case 9: SEGMENT = 0x6F; break;default: SEGMENT = 0x00; break;}}void main() {unsigned char i;while (1) {for (i = 0; i <= 9; i++) {displayNumber(i);delay(500);}}}```(2)程序分析:程序通过定义一个段码表来控制数码管的显示,循环显示数字0-9。
数码显示控制实验报告(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)动态扫描显示原理:动态扫描显示是通过依次点亮各个数码管,使多位数码管同时显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与接口技术
实验报告
实验题目:动态数码显示设计
指导老师:
班级:计算机科学与技术系
姓名:
2014年 12月3日
实验十三动态数码显示设计
一、实验目的
1.掌握动态数码显示技术的设计方法。
2.掌握扫描在程序设计中的应用。
二、设计原理
如图13.1所示,在单片机的P1端口接动态数码管的字形码笔段,在单片机的P2端口接动态数码管的数位选择端。
在单片机P3.0管脚处接一个开关,当开关连接高电平时,态数码管上显示“12345”字样;当开关连接低电平时,态数码管上显示“HELLO”字样。
三、参考电路
图13.1 动态数码显示电路原理图
四、电路硬件说明
(1)在“单片机系统”区域中,把单片机的P1.0-P1.7端口连接到“动态数码显示”区域中的a-h端口上。
(2)在“单片机系统”区域中,把单片机的P2.0-P2.7端口通过8联拨动拨码开关JP1连接到“动态数码显示”区域中的S1-S8端口上。
(3)在“单片机系统”区域中,把单片机的P3.0端口通过8联拨动拨码开关JP2连接到拨动开关区域中的SW1端口上。
五、程序设计内容
(1)动态扫描方法:
动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出显示的闪烁现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。
(2)在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,在每个显示缓冲区装有显示的不同数据即可。
(3)对于显示不同字形码的数据采用查表方法来完成。
六、程序流程图 (如图13.2所示)
图13.2 动态数码显示程序流程图
七、汇编源程序
;;;;;;;;;;入口地址;;;;;;;;;;
ORG 0000H
LJMP START
ORG 0003H
RETI
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
RETI
ORG 0023H
RETI
ORG 002BH
RETI
;;;;;;;;;;主程序入口;;;;;;;;;;
ORG 0100H START: LCALL PANDUAN
LCALL XIANSHI
LJMP START
;;;;;;;;;;判断开关的状态;;;;;;;;;;
PANDUAN: JB P3.0,SW
LCALL DELAY10MS
JB P3.0,SW
MOV DPTR,#TABLE2
SJMP Q1
SW: JNB P3.0,PANDUAN
MOV DPTR,#TABLE1 Q1: RET
;;;;;;;;;;显示程序;;;;;;;;;;
XIANSHI: MOV R0,#00H
MOV R1,#7FH NEXT: MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
MOV A,R1
MOV P2,A
LCALL DELAY
INC R0
RR A
MOV R1,A
CJNE R1,#0FBH,NEXT
RET
;;;;;;;;;;10ms延时程序;;;;;;;;;;
DELAY10MS: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
;;;;;;;;;;200ms延时程序;;;;;;;;;;
DELAY: MOV R5,#20
LOOP: LCALL DELAY10MS
DJNZ R5,LOOP
RET
;;;;;;;;;;共阴字母码表;;;;;;;;;;
TABLE1: DB 76H,79H,38H,38H,3FH
;;;;;;;;;;共阴数码表;;;;;;;;;;;
TABLE2: DB 06H,5BH,4FH,66H,6DH
;;;;;;;;;;结束标志;;;;;;;;;;;;;
END
八、C语言源程序
#include<AT89X51.H>
unsigned char code table1[]={0x06,0x5b,0x4f,0x66,0x6d};
unsigned char code table2[]={0x76,0x79,0x38,0x38,0x3f};
void main(void)
{ unsigned char i,j,k,m;
while(1)
{ j=0x7f;
for(i=0;i<5;i++) //运行5次取出表中的5个数//
{ if(P3_0==0) //如果开关为0,则显示12345// { P0=table1[i]; } //送P1口显示//
else //如果开关为1,显示HELLO//
{ P0=table2[i]; } //送P1口显示//
P2=j; //显示码送入P2口//
j=0x7f; //重赋初值//
k=j>>(i+1); //右移i+1位//
m=j<<(7-i); //左移7-i位//
j=k|m;
for(k=4;k>0;k--) //每隔一段时间显示一次//
for(m=248;m>0;m--);
}
}
}
九、注意事项
(1)程序中要注意共阴极数码管显示和共阳极数码管显示的区别,本程序在共阴极数码管显示时,要把单排针接插件J4中的跳线帽加到OE和VCC上。
(2)程序下载后要把8联拨动拨码开关JP2中相应的拨码开关拨上去。
十、实验总结
1、通过本次实验,加深了对动态数码显示的认识;
2、学到了很多知识,自己进行了设计和实验,在实验中出现很多
问题,课下和同学交流及时的解决了实验中出现的问题。