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

合集下载

51单片机动态数码管实验报告

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篇)

数码显示控制实验报告(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)动态扫描显示原理:动态扫描显示是通过依次点亮各个数码管,使多位数码管同时显示。

单片机动态显示技术实验报告

单片机动态显示技术实验报告

桂林电子科技大学实验报告2016-2017 学年第一学期'开课单位海洋信息工程学院适用年级、专业 14级机械设计制造及其自动化课程名称《单片微型计算机与接口技术-课内实验》主讲教师周旋课程序号 BS1615000_03课程代码 BS1615000实验名称《动态显示技术》学号 16 - 17姓名林亦鹏卢炳荣?动态显示技术实验报告一、实验目的1、掌握动态显示技术。

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

3、掌握段代码表的推算及数据表的使用方法。

4、掌握C语言编程方法。

—二、实验内容实验设备:计算机一台、单片机实验箱一台、Proteus软件、Keil软件。

硬件原理图:采用共阴数码管,数码管的数据由单片机的P0口提供。

当P0口输出相应的数据,相应的数码管就被点亮。

如:P0=00111111B,则数码管最低位显示0。

74LS573这里用于提高P0口的输出电流,驱动数码管显示,并有一定的隔离干扰的作用。

本实验只用到8位数码管的其中一位。

1、打开Keil新建工程:学号。

2、参考实验程序,编写程序:首先在数码管最高位连续显示0~9字段,其次在数码管次高位连续显示0~9字段,依此类推。

生成:学号文件。

3、打开下载软件,把学号文件烧写到单片机,观察实验现象。

—4、修改程序,将自己的学号显示在数码管上。

1、思考动态显示的工作原理。

2、各寄存器的使用。

3、读懂实验程序。

三、实验结果分析1、程序流程图/*************************************** 实验名 : 动态显示技术* 实验说明 : 8位数码管显示0~7**************************************;#include<>//--定义使用的IO口--//#define GPIO_DIG P0 //段选#define GPIO_PLACE P1 //位选//--定义全局变量--//unsigned char code DIG_PLACE[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位选控制,查表的方法控制unsigned char code DIG_CODE[17] = {0x06,0x66,0x06,0x7d,0x3f,0x06,0x3f,0x6d,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码—unsigned char DisplayData[8];//用来存放要显示的8位数的值//--声明全局函数--//void DigDisplay(); //动态显示函数void main(void){unsigned char i;for(i=0; i<8; i++){DisplayData[i] = DIG_CODE[i];》}while(1){DigDisplay();。

单片机实验3 数码管控制实验-动态显示

单片机实验3  数码管控制实验-动态显示
/**********实验二数码管控制实验-动态显示**************/
;实验名称:数码管动态显示
;功能:4位数码管循环显示“0123”“4567”“89AB”“CDEF”,间隔0.5S。
;编写人:陈建泽
;编写时间:2010年11月2日
/**********************程序代码************************/
D1MS: MOV R2,#250 ;250*(1+1+2)=1000us=1ms
L1:NOP
NOP
DJNZ R2,L1
RET
/*****************中断服务子程序*****************/
T0_INT:MOV TH0,#(65536-50000)/256
MOV TL0,#(65536-50000)MOD 256
MOV A,R4
CJNE A,#16,L3
AJMP MAIN
L3:MOV R5,A
AJMP L1
DIS:MOV P2,R6;用A作为中间寄存器,因后面要循环显示
MOV A,R5
ACALL SQR ;查表
MOV P0,A
ACALL D1MS ;1ms
INC R5
MOV A,R6
RL A;指向下一位
MOV R6,A
RET;子程序返回
TAB: DB 0C0H,0F9H,0A4H,0B0H ;共阳极字型码表0、1、2、3
DB 99H, 92H, 82H, 0F8H;共阳极字型码表4、5、6、7
DB 80H, 90H, 88H, 83H;共阳极字型码表8、9、A、B
DB 0C6H,0A1H,86H, 8EH;共阳极字型码表C、D、E、F

51单片机数码管显示实验报告

51单片机数码管显示实验报告

51单片机数码管显示实验实验内容:1)编写程序让8只数码管初始显示0,每隔大约1s加1显示(可以用延时函数实现),到数码管显示9后,再从0开始显示,如此循环反复。

2)C语言程序#include<reg52.h>#define uint unsigned intvoid display();void num();int i;unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表void delayms(uint);void main(){while(1){num();display();}}void display(){P2=0xff;//消隐P0连接段选,P1节位选P1=0x00;//8个数码管同时显示P2=table[i];//数码管显示数码0 delayms(1000);//延时5ms}void num(){if(i<9)i++;elsei=0;}void delayms(uint x){uint i,j;for(i=0;i<x;i++)for(j=0;j<110;j++);}3)汇编语言:ORG 0000HLJMP MAINORG 0100H;P2连接段选,P1节位选MAIN: MOV P1,#00H ;所有的数码管都显示MOV R2,#00H ;从0开始显示LOOP: MOV A,R2 ;为下面的基址加变址寄存器寻址方式做准备MOV DPTR,#TAB1 ;把数组的首地址赋给DPTRMOVC A,@A+DPTR ;取数组中的数字MOV P2,A ;把取得的值送给P0口显示ACALL DELAY ;延时一会INC R2 ;为取下一个数加一CJNE R2,#10,LOOP ;只要数小于10就继续循环显示MOV R2,#00H ;如果加到10后重新从0开始LJMP LOOP ;进入循环函数;****************************************** TAB1: DB 0C0H,0F9H,0A4H,0B0H,99H; 数组DB 92H,82H,0F8H,80H,90HRET;****************************************** DELAY: MOV R3,#3 ;延时函数DE1: MOV R4,#0FFHDE2: MOV R5,#0FFHDJNZ R5,$DJNZ R4,DE2DJNZ R3,DE1RET;*************************************************END(3)编写程序学习数码管的动态显示,让8只数码管从从左往右显示1、2、3……8。

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

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

单片机数码管动态显示实验报告单片机数码管动态显示实验程序(汇编)单片机数码管动态显示实验程序org 00hajmp headorg 0030hhead:mov sp,#0070hnum equ p0 ;p0口连接数码管reset:mov dptr ,#tabmov r0,#4sh:acall show_tabcall dptr_adddjnz r0,shmov r0 ,#4sjmp resetdptr_add:inc dptrinc dptrinc dptrinc dptrrettab :db0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH;;;;;;;;;;;;;;;;;;;;; 函数的功能是用来动态显示dptr上的四个数据 ;;;;;;;;;;;;;;;;;;;;;; show_tab:clr amov r2,#0mov r3,#148mov p2,#238loop:movc a,@a+dptrmov num ,aacall delay_5msinc r2mov a,r2;调用片选函数前注意A的变化acall select_movcjne r2,#4,loopmov r2,#0clr adjnz R3,loopret;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;select_mov:;p2的初值238push 0e0hmov a,p2rl amov p2,apop 0e0hretdelay_5ms:mov r6,#5signed_5ms:call delay_1msdjnz r6,signed_5msret篇二:单片机动态数码显示设计实验报告微机原理与接口技术实验报告实验题目:指导老师:班级:计算机科学与技术系姓名:动态数码显示设计2014年 12月3日实验十三动态数码显示设计一、实验目的1.掌握动态数码显示技术的设计方法。

数码管的动态显示实验报告

数码管的动态显示实验报告

数码管的动态显示实验报告数码管的动态显示实验报告一、引言数码管是一种常见的数字显示器件,广泛应用于计算机、电子仪器和仪表等领域。

本实验旨在通过动态显示的方式,展示数码管的工作原理和应用。

二、实验目的1. 了解数码管的基本结构和工作原理;2. 学习使用单片机控制数码管进行动态显示;3. 掌握数码管的编码方式和显示原理。

三、实验器材和原理1. 实验器材:数码管、Arduino开发板、面包板、杜邦线等;2. 实验原理:数码管是由多个发光二极管组成的,每个发光二极管可以通过控制其阳极和阴极来实现亮灭。

通过快速切换不同的发光二极管,可以实现数码管的动态显示。

四、实验步骤1. 连接电路:将数码管的阳极和阴极分别连接到Arduino开发板的数字输出引脚和地线上;2. 编写程序:使用Arduino开发环境,编写程序控制数码管的动态显示;3. 上传程序:将编写好的程序上传到Arduino开发板;4. 运行实验:观察数码管的动态显示效果。

五、实验结果和分析经过实验,我们成功实现了数码管的动态显示。

通过控制不同的数字和显示时间间隔,我们可以展示各种数字、字母、符号等。

数码管的动态显示效果生动鲜明,能够吸引人的注意力。

六、实验心得通过本次实验,我深入了解了数码管的工作原理和应用。

数码管作为一种常见的显示器件,在现代电子领域扮演着重要的角色。

掌握数码管的编码方式和显示原理,对于今后的学习和工作都具有重要意义。

七、实验应用数码管广泛应用于各种计算机和电子设备中,如电子钟、电子秤、数字仪表等。

其动态显示效果可以提高用户体验,增加信息传递效果。

同时,数码管的低功耗、易控制等特点也使其成为电子产品中不可或缺的一部分。

八、实验展望数码管作为一种显示器件,随着科技的发展,其在分辨率、显示效果、节能等方面还有很大的发展空间。

未来,我们可以期待更加智能化、高清晰度的数码管产品的出现,为人们的生活和工作带来更多的便利和乐趣。

九、结论通过本次实验,我们深入了解了数码管的动态显示原理和应用。

单片机实验报告,数码管显示

单片机实验报告,数码管显示

单片机实验报告,数码管显示实验目的1、掌握数码管动态扫描显示的原理和编程实现方法;2、掌握软件延时程序的使用。

实验任务利用数码管动态显示,设计一个两位秒表,计时0-59,时间到了显示“FF”,使用软件延时实现。

实验原理数码管动态显示的连接方式是将所有数码管的段码a、b、c、d、e、f、g、dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。

所谓动态扫描显示,即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

具体过程是:当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以只要将需要显示的数码管的位选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中每位数码管的点亮时间为2ms左右,由于人的视觉暂留现象及发光极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

实现延时通常有两种方法:一种是硬件延时,这需要用到单片机的定— 1 —时器,这种方法可以提高CPU的工作效率,也能做到精确控制时间,此方法将在实验四中再学习;另一种方法是软件延时,这种方法主要采用循环体进行。

可以采用for循环以及for循环嵌套的方式达到粗略的长时间延时,利用Keil软件可以调试和观察for语句的延时时间。

实验结果:总结:本次实验我很好的复习了有关C语言的相关语句知识点,合理的运用到了单片机的程序编码中去,但实验过程中,也出现了很多问题。

比如在运行过程中,数码管会乱码,检查后发现是扫描信号端口错误,将扫描信号端口顺序调换,重新运行则解决了乱码问题。

共阴数码管电路0到15的显示参数代码表要记清楚。

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

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

单片机数码管动态显示实验报告单片机数码管动态显示实验报告一、实验目的本实验旨在通过单片机控制数码管的动态显示,掌握单片机的基本操作和数码管显示原理,培养实际动手能力和编程技能。

二、实验原理数码管是一种常用的电子显示器件,通过单片机控制可以实现数字、字母等多种形式的显示。

本实验采用共阴极数码管,通过单片机控制选通哪个LED灯亮,从而在数码管上显示出相应的数字或字母。

三、实验步骤1.硬件搭建首先,将单片机、数码管、电源等硬件连接起来。

注意数码管的引脚与单片机的连接方式,确保正确连接。

2.编程环境设置打开单片机编程软件,如Keil uVision等,配置相应的编译器和调试器选项。

3.编写程序在编程环境中,编写程序以实现数码管的动态显示。

本实验采用C语言进行编程。

程序主要包括初始化、显示函数等。

4.编译程序将编写的程序进行编译,生成可执行文件。

5.调试程序通过调试器对程序进行调试,观察数码管的显示效果是否符合要求。

如有问题,及时修改程序并重新编译和调试。

6.测试结果确保程序运行无误后,对数码管的显示效果进行测试,观察是否达到预期效果。

四、实验结果与分析1.实验结果通过本次实验,我们成功实现了单片机对数码管的动态显示。

在数码管上成功显示了数字和字母,效果良好。

2.结果分析通过本次实验,我们深入了解了单片机的基本操作和数码管显示原理。

同时,我们也学会了如何编写程序、编译和调试程序。

此外,我们还学会了如何解决实验过程中遇到的问题。

这些技能对于后续的电子设计和开发具有重要意义。

五、实验总结与展望1.实验总结本次实验通过单片机控制数码管的动态显示,我们成功掌握了单片机的基本操作和数码管显示原理。

在实验过程中,我们学会了如何编写程序、编译和调试程序。

同时,我们也学会了如何解决实验过程中遇到的问题。

这些技能对于后续的电子设计和开发具有重要意义。

2.实验展望在本次实验的基础上,我们可以进一步探索如何实现更复杂的显示效果,如多位数码管的动态显示、彩色显示等。

数码管显示实验报告

数码管显示实验报告

一、实验目的1. 理解数码管的工作原理及驱动方式。

2. 掌握51单片机控制数码管显示的基本方法。

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

4. 提高编程能力和实践操作能力。

二、实验原理数码管是一种常用的显示器件,它由多个发光二极管(LED)组成,可以显示数字、字母或其他符号。

根据LED的连接方式,数码管可分为共阴极和共阳极两种类型。

本实验使用的是共阳极数码管。

51单片机控制数码管显示的基本原理是:通过单片机的I/O口输出高低电平信号,控制数码管的各个段(a-g)的亮灭,从而显示相应的数字或符号。

动态扫描显示技术是将多个数码管连接到单片机的I/O口,通过快速切换各个数码管的显示状态,实现多位数码管的显示。

三、实验器材1. 51单片机实验板2. 共阳极数码管3. 电阻、电容等元件4. 仿真软件(如Proteus)5. 编译器(如Keil)四、实验步骤1. 搭建电路:按照实验原理图连接51单片机、数码管和电阻等元件。

2. 编写程序:使用Keil软件编写控制数码管显示的程序。

程序主要包括以下部分:a. 初始化:设置单片机的工作状态,配置I/O口等。

b. 显示函数:根据需要显示的数字或符号,控制数码管的各个段亮灭。

c. 动态扫描函数:实现多位数码管的动态显示。

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

4. 仿真测试:使用Proteus软件对程序进行仿真测试,观察数码管的显示效果。

5. 实验验证:将程序烧录到51单片机实验板上,进行实际测试。

五、实验结果与分析1. 实验结果:通过仿真测试和实际测试,数码管能够正确显示0-9的数字。

2. 结果分析:实验结果表明,51单片机可以成功地控制数码管显示数字。

动态扫描显示技术能够有效地实现多位数码管的显示,提高了显示效率。

六、实验总结1. 通过本次实验,我们掌握了51单片机控制数码管显示的基本方法,提高了编程能力和实践操作能力。

2. 动态扫描显示技术能够有效地实现多位数码管的显示,提高了显示效率。

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

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

单片机数码管动态显示实验报告实验名称:单片机数码管动态显示实验实验目的:1.了解数码管的动态显示原理;2.掌握单片机控制数码管动态显示的方法;3.培养对数字信号处理的能力。

实验器材:1.STC89C52单片机开发板;2.DC560A数码管模块;3.连接线。

实验原理:数码管是由多个发光二极管组成的,每个数字在数码管上的显示方式是通过快速地轮流点亮数码管的每个段来实现的。

在本实验中,采用时分复用的方法控制数码管动态显示相关数字。

实验步骤:1.连接单片机和数码管模块。

将数码管的共阳或共阴引脚分别连接到单片机的相应IO口上,并接上合适的电阻。

将数码管的A~G引脚连接到单片机的相应IO口上。

2.编写程序代码。

程序主要功能是通过切换数码管的显示段和位,实现数码管动态显示。

4.打开电源,观察行程显示的效果。

实验结果:在实验中,通过编写程序控制单片机,成功实现了数字的动态显示。

数码管能够按顺序显示出所要显示的数字,并且在多个数码管之间进行切换,显示效果非常理想。

实验分析:1.数码管动态显示的原理是通过快速地轮流点亮每个段来实现的。

这个过程发生的速度非常快,人眼无法察觉到。

2.单片机的IO口输出高或低电平,控制数码管的亮灭。

通过逐位切换和循环控制,实现了数字的动态显示。

3.单片机的频率和控制方式对动态显示效果有一定影响。

适当调整程序中的延时时间和控制方式,可以改变数码管的显示效果。

实验总结:本实验通过对单片机数码管动态显示的实现,加深了对数码管原理和单片机控制的认识。

掌握了数字信号动态显示的基本原理和方法。

在今后的学习和工作中,这将有助于对数字信号处理和显示技术的更深入理解和应用。

实验拓展:可以尝试在实验中通过按键按下的方式改变数码管显示的数字,进一步扩展单片机的应用范围和实用性。

此外,还可以尝试改变数码管的显示效果,比如实现数码管的闪烁、呼吸灯等特殊效果。

这将对单片机的编程和数码管的控制提出更高的要求,同时也增加了实验的趣味性和实用性。

51单片机动态数码管实验报告

51单片机动态数码管实验报告

51单片机动态数码管实验报告
本文介绍了51单片机动态数码管实验的步骤和结果。

动态数码管是一种常用的数字显示器件,它可以显示数字、字母和一
些图形。

在51单片机中,为了控制动态数码管的显示,我们需要使用定
时器和中断。

作为一个经典的单片机实验,动态数码管实验是初学者熟悉51单片机开发的重要步骤之一。

本次实验使用的是常见的4位共阳极动态数码管。

电路图如下:
在电路中使用了四个PNP三极管作为驱动器,共阳极接Vcc(5V),
母线接0V,通过控制每个数码管对应的位选引脚(EN1、EN2、EN3、EN4)来实现选定要显示的数码管,再由程序向选定的数码管的a、b、c、d、e、f、g引脚发送对应的信号,以实现数字显示的功能。

程序上,我们需要使用定时器和中断来驱动动态数码管的显示。

具体
步骤如下:
1.定义计数器和数组,数组定义每位数码管显示的数字,计数器控制
当前轮到哪个数码管显示。

2.初始化定时器和中断,并启动定时器。

3.在中断函数中,将数码管的位选引脚依次拉高并依次向数码管a、
b、c、d、e、f、g中发送数据信号。

4.在每个数码管的对应位选时间内,通过对控制数组的操作,改变数
码管显示的数字。

5.循环执行第3~4步,显示不同的数字。

最后,我们通过改变控制数组的值,实现了动态数码管显示不同数字和字母的功能。

总之,通过动态数码管实验,我们进一步熟悉了51单片机的定时器和中断,了解了动态数码管的驱动原理和程序设计方法,为后续更复杂的单片机实验和应用打下了基础。

单片机动态显示实验报告

单片机动态显示实验报告

单片机实验报告姓名:林康班级:1120603学号:201120060325实验题目:实验五动态显示一.实验任务及要求(1)使用单片机并行口做动态数码显示,把片内30H~32H单元的内容静态显示来。

二. 编程思路(1)动态显示是一位一位地轮流点亮各位的数码管,因此需要分时送出段选码和位选码,每次控制一个数码管显示,而且是先送段选码锁存后在送位选码点亮相应的数码管。

通过调节延时程序能够控制数码管显示数据的间隔,其余的和静态显示基本相似。

三. 实验电路及连线方法动态显示连线方法:电路由2 片74LS573,1 个六字一体的共阴数码管组成。

由U15 输出段选码,U16做位选码,与单片机的采用I/O 口连接方式,短路片J22 连接P2.0,J23 连接P2.3,做输出信号锁存。

(实际电路连d7-d6-d5-d4-d3-d2-d1-d0→h-c-d-e-g-b-a-f)。

PW12 是电源端。

开始初始化((R0))→A,取A低四位,查其笔型码送入P0口P2.0置1,然后清零通过74LS573输入段选码,把位选码送入P0口P2.1置1,然后清零延时1毫秒((R0))→A,取A高四位,查其笔型码送入P0口P2.0置1,然后清零通过74LS573输入段选码,把位选码送入P0口P2.1置1,然后清零延时1毫秒R0自加1R7自减1R7=0?结束ORG 0000LP3: MOV 32H,#12HMOV 31H,#34HMOV 30H,#56HMOV R0,#30HMOV R6,#0DFHMOV R7,#03MOV DPTR,#TABCLR P2.0CLR P2.1LP0: CLR AMOV A,@R0ANL A,#0FHMOVC A,@A+DPTRMOV P0,ASETB P2.0CLR P2.0MOV P0,#00MOV A,R6MOV P0,ASETB P2.1CLR P2.1RR AMOV R6,ADEL0: MOV R5,#250LP1: NOPNOPDJNZ R5,LP1CLR AMOV A,@R0ANL A,#0F0HSWAP AMOVC A,@A+DPTRMOV P0,ASETB P2.0CLR P2.0 MOV P0,#00MOV A,R6MOV P0,ASETB P2.1CLR P2.1RR AMOV R6,AINC R0DEL1: MOV R5,#250LP2: NOPNOPDJNZ R5,LP2DJNZ R7,LP0SJMP LP3TAB: DB77H,44H,3EH,6EH,4DH,6BH,7BH,46H,7FH,6FH,5FH,79H,33H,7CH,3BH,1BH END六.调试结果30H-32H单元依次输入12,34,56,数码管从左到右依次显示6 5 4 3 2 1 结果与预期符合。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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、学到了很多知识,自己进行了设计和实验,在实验中出现很多
问题,课下和同学交流及时的解决了实验中出现的问题。

相关文档
最新文档