数码管显示实验报告

合集下载

数码管的显示的实验报告

数码管的显示的实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

实验中通过编写程序,使数码管显示从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.选取适当的集成电路作为显示控制电路。

本实验中选择CD4511作为显示控制芯片,它可以实现对4位共阳数码管的显示控制。

3.连接电路。

将4位共阳数码管的阳极分别连接到CD4511芯片的A、B、C和D端口,共阴极连接到电源正极。

将CD4511芯片的输入端口IN1、IN2、IN3和IN4连接到微控制器的输出端口,控制微控制器输出的电平来选通不同的数码管。

4.设置微控制器的输出。

通过编程或手动设置微控制器的输出端口来控制数字的显示。

根据需要显示的数字,将相应的输出端口设置为高电平,其余端口设置为低电平。

通过适当的延时控制,便可以实现数字的连续显示。

实验结果与分析:经过上述步骤完成电路搭建后,我们可以通过改变微控制器的输出端口来控制数码管的显示。

当我们设置不同的输出端口为高电平时,相应的数码管会显示对应的数字。

通过适当的延时控制,我们可以实现数字的连续显示,从而实现对数码管的显示控制。

实验结论:通过本次实验,我们成功地设计并实现了一个数码管显示控制电路。

通过对微控制器输出端口的控制,我们可以实现对数码管的数字显示控制。

这对于数字显示系统的设计和开发具有重要意义。

实验心得:通过本次实验,我对数码管的显示控制有了更深入的了解。

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

掌握其显示控制原理和方法对于电子技术爱好者来说至关重要。

通过实际操作,我对数码管显示控制电路的设计和实现有了更深入的认识,同时也提高了我对数字显示系统的理解和设计能力。

数码管动态显示实验报告

数码管动态显示实验报告

数码管动态显示实验报告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单片机控制数码显示模块的方法,学会了使用移位寄存器实现数码显示的动态扫描。

数码管静态实验报告(3篇)

数码管静态实验报告(3篇)

第1篇一、实验目的1. 熟悉数码管的结构和原理,掌握数码管的静态显示方法。

2. 学习使用单片机控制数码管显示数字的方法。

3. 提高编程能力和实际动手操作能力。

二、实验原理数码管是一种用于显示数字和符号的电子显示器件,它由若干个发光二极管(LED)组成,每个LED对应数码管的一个段,通过控制LED的亮与灭,可以显示出相应的数字和符号。

本实验采用共阴极数码管,当对应的段亮起时,显示相应的数字。

数码管的静态显示方式是指,当数码管显示一个数字时,该数字的各个段都会持续亮起,直到下一次更新显示内容。

三、实验设备1. 单片机实验箱2. AT89C51单片机3. 5V电源4. 共阴极数码管5. 连接线6. 调试工具(如示波器、万用表等)四、实验步骤1. 连接电路:按照实验原理图,将单片机的P0口与数码管的各个段连接,将单片机的VCC和GND与数码管的VCC和GND连接。

2. 编写程序:使用C语言编写程序,控制单片机输出相应的数字到数码管。

3. 烧录程序:将编写的程序烧录到单片机中。

4. 调试程序:使用调试工具观察数码管显示的数字,确认程序运行正常。

5. 修改程序:根据实验要求,修改程序,实现不同的显示效果。

五、实验内容1. 显示数字0-9:编写程序,使数码管依次显示数字0-9。

2. 显示特殊字符:编写程序,使数码管显示特殊字符,如“”、“”等。

3. 显示自定义字符:编写程序,使数码管显示自定义的字符,如“ABC”等。

4. 显示数字与字符混合:编写程序,使数码管同时显示数字和字符。

六、实验结果与分析1. 显示数字0-9:程序运行正常,数码管依次显示数字0-9。

2. 显示特殊字符:程序运行正常,数码管显示特殊字符。

3. 显示自定义字符:程序运行正常,数码管显示自定义字符。

4. 显示数字与字符混合:程序运行正常,数码管同时显示数字和字符。

在实验过程中,遇到以下问题:1. 数码管显示不清晰:经过检查,发现数码管与单片机的连接线存在松动,重新连接后,数码管显示清晰。

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.学习数码管介绍和使用;2.熟悉数码管控制电路设计思路和方法;3.掌握数码管显示控制电路的实验过程和步骤。

二、实验原理数码管是数字显示器件,具有低功耗、体积小、寿命长等优点。

常见的数码管有共阳极和共阴极两种。

共阳极数码管的阳极端口是一个共用的端口,通过将不同的阴极端口接地来控制数码管的发光情况。

共阴极数码管的阴极端口是一个共用的端口,通过将不同的阳极端口接地来控制数码管的发光情况。

数码管的控制电路可以使用逻辑门电路或微控制器来实现。

本实验采用逻辑门电路来设计数码管显示控制电路。

三、实验器材和器件1.实验板一块;2.74LS47数码管译码器一颗;3.共阴极数码管四个;4.逻辑门IC:7404、7408、7432各一个;5.杜邦线若干。

四、实验步骤1.将74LS47数码管译码器插入实验板上的相应位置,并用杜邦线连接74LS47和逻辑门IC的引脚:1)将74LS47的A、B、C和D引脚依次连接到7408的输入端;2)将74LS47的LE引脚连接到VCC(高电平,表示使能有效);3)将74LS47的BI/RBO引脚连接到GND(低电平,表示译码输出);4)将7408的输出端依次连接到7432的输入端;5)将7432的输出端依次连接到数码管的阴极端口。

2.将四个数码管的阳极端口分别连接到4个控制开关上,并将开关接地。

3.将实验电路接入电源,调整电压和电流,观察数码管的显示情况。

五、实验结果和分析实验结果显示,控制开关的状态可以控制数码管的显示内容。

当其中一控制开关接地时,对应的数码管会显示相应的数字。

通过调整开关的状态,可以实现不同数字的显示。

六、实验总结通过这次实验,我学会了数码管的基本使用方法和控制电路的设计思路。

数码管作为一种数字显示元件,广泛应用于各种电子产品中,掌握其控制方法对于电子工程师来说非常重要。

在今后的学习和工作中,我将继续深入研究数码管的相关知识和应用,提高自己的技术水平。

数码管显示实验 实验报告

数码管显示实验 实验报告

数码管显示实验实验报告一、实验目的本次数码管显示实验的主要目的是深入了解数码管的工作原理和显示控制方式,通过实际操作掌握数码管与微控制器的接口技术,并能够编写相应的程序实现各种数字和字符的显示。

二、实验原理数码管是一种由多个发光二极管组成的显示器件,常见的有共阴数码管和共阳数码管两种类型。

共阴数码管是将所有发光二极管的阴极连接在一起,当阳极接高电平时,相应的二极管发光;共阳数码管则是将所有发光二极管的阳极连接在一起,当阴极接低电平时,相应的二极管发光。

在控制数码管显示时,通常采用动态扫描的方式,即依次快速地给每个数码管的段选端送入相应的字形码,同时使位选端选通对应的数码管,利用人眼的视觉暂留效应,使人看起来好像所有数码管同时在显示。

三、实验设备与材料1、实验开发板2、数码管模块3、杜邦线若干4、电脑5、编程软件四、实验步骤1、硬件连接将数码管模块与实验开发板进行连接,确定好段选和位选引脚的连接。

检查连接是否牢固,确保电路无短路或断路现象。

2、软件编程打开编程软件,选择相应的开发板型号和编程语言。

定义数码管的段选和位选引脚。

编写控制程序,实现数字 0 到 9 的循环显示。

3、编译与下载对编写好的程序进行编译,检查是否有语法错误。

将编译成功的程序下载到实验开发板上。

4、观察实验现象接通实验开发板的电源,观察数码管的显示情况。

检查显示的数字是否正确,显示的亮度和稳定性是否符合要求。

五、实验结果与分析1、实验结果数码管能够正常显示数字 0 到 9,并且能够按照设定的频率循环显示。

显示的数字清晰、稳定,没有出现闪烁或模糊的现象。

2、结果分析程序编写正确,能够准确地控制数码管的段选和位选信号,实现数字的显示。

动态扫描的频率设置合理,既保证了显示的稳定性,又不会出现明显的闪烁。

六、实验中遇到的问题及解决方法1、问题数码管显示出现闪烁现象。

解决方法调整动态扫描的频率,增加扫描的速度,减少每个数码管的点亮时间,从而减轻闪烁现象。

数码管扫描显示控制器实验报告

数码管扫描显示控制器实验报告

实验四数码管扫描显示控制器设计与实现2011211208班2011211055 4 于圣泽一、实验目的1.掌握VHDL语言的语法规范, 掌握时序电路描述方法;2.掌握多个数码管动态扫描显示的原理及设计方法。

二、实验原理三、多个数码管动态扫描显示, 是将所有数码管的相同段并联在一起, 通过选通信号分时控制各个数码管的公共端, 循环依次点亮多个数码管, 利用人眼的视觉暂留现象, 只要扫描的频率大于50Hz, 将看不到闪烁现象。

一个数码管要稳定显示要求显示频率大于50Hz, 那么6个数码管则需要50×6=300Hz以上才能看到持续稳定点亮的现象。

四、cat1~cat6是数码管选通控制信号, 分别对应于6个共阴极数码管的公共端, 当catn=‘0’时, 其对应的数码管被点亮。

因此, 通过控制cat1~cat6, 就可以控制6个数码管循环依次点亮。

五、实验内容1.用VHDL语言设计并实现六个数码管串行扫描电路, 要求同时显示0、1.2.3.4.5这6个不同的数字图形到6个数码管上, 仿真验证其功能, 并下载到实验板测试。

2.用VHDL语言设计并实现六个数码管滚动显示电路六、循环左滚动, 始终点亮6个数码管, 左出右进。

状态为: 012345→123450→234501→3450123→450123→501234→012345七、向左滚动, 用全灭的数码管填充右边, 直至全部变灭, 然后再依次从右边一个一个地点亮。

状态为:012345→12345X→2345XX→345XXX→45XXXX→5XXXXX→XXXXXX→XXXXX0→XXXX01→XXX012→XX0123→X01234→012345,其中‘X’表示数码管不显示。

八、设计思路和过程对50MHz时钟进行5000分频, 得到10kHZ时钟scanclk。

把scanclk作为6进制计数器的时钟, 对计数器的状态进行译码, 得到cat(5 downto 0)的选通脉冲。

电子设计自动化(EDA)_数字时钟程序模块(LED数码管显示)_实验报告

电子设计自动化(EDA)_数字时钟程序模块(LED数码管显示)_实验报告

电子设计自动化(EDA)—数字时钟LED数码管显示二、实验内容和实验目的1. 6个数码管动态扫描显示驱动2. 按键模式选择(时\分\秒)与闹钟(时\分)调整控制,3. 用硬件描述语言(或混合原理图)设计时、分、秒计数器模块、闹钟模块、按键控制状态机模块、动态扫描显示驱动模块、顶层模块。

要求使用实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒;要求模式按键和调整按键信号都取自经过防抖处理后的按键跳线插孔。

实验目的: 1)学会看硬件原理图, 2)掌握FPGA硬件开发的基本技能3)培养EDA综合分析、综合设计的能力三、实验步骤、实现方法(或设计思想)及实验结果主要设备: 1)PC机, 2)硬件实验箱, 3)Quartus II软件开发平台。

1.打开Quartus II , 连接实验箱上的相关硬件资源, 如下图1所示。

2.建立新文件, 选择文本类型或原理图类型。

3. 编写程序。

4.编译5. 仿真, 加载程序到芯片, 观察硬件输出结果(数码管显示)6.结果正确则完成。

若结果不正确, 则修改程序, 再编译, 直到正确。

模24计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count24 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count24;ARCHITECTURE arc OF count24 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk,en)BEGINhh<=a;hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0010" AND b="0011") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;IF(a="0010" AND b="0010") THENcout<='1';ELSE cout<='0';END IF;END IF;END IF;END PROCESS;END arc;模60计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count60 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count60;ARCHITECTURE arc OF count60 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL sout:STD_LOGIC;BEGINPROCESS(clk)BEGINhh<=a; hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0101" AND b="1001") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;END IF;END IF;END PROCESS;sout<='1' WHEN a="0101" AND b="1001" ELSE '0';cout<=sout AND en;END arc;4-7显示译码模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY segment4to7 ISPORT(s:IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g:OUT STD_LOGIC);END segment4to7;ARCHITECTURE arc OF segment4to7 IS SIGNAL y:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINa<= y(6);b<= y(5);c<= y(4);d<= y(3);e<= y(2); f<= y(1);g<= y(0);PROCESS(s)BEGINCASE s ISWHEN "0000"=>y<="1111110"; WHEN "0001"=>y<="0110000"; WHEN "0010"=>y<="1101101"; WHEN "0011"=>y<="1111001"; WHEN "0100"=>y<="0110011"; WHEN "0101"=>y<="1011011"; WHEN "0110"=>y<="1011111"; WHEN "0111"=>y<="1110000"; WHEN "1000"=>y<="1111111"; WHEN "1001"=>y<="1111011"; WHEN OTHERS=>y<="0000000"; END CASE;END PROCESS;END arc;带闹钟控制模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mode_adjust_with_alarm ISPORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END mode_adjust_with_alarm;ARCHITECTURE arc OF mode_adjust_with_alarm ISTYPE mystate IS (s0,s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS (c_state)BEGINCASE c_state ISWHEN s0=> next_state <= s1; clkh<=clk1hz; clkm<=clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="000";WHEN s1=> next_state <= s2; clkh<=adjust; clkm<= '0'; clks<='0';enh<='1'; enm<='0';enha<='0'; clkh_a<= '0';clkm_a<= '0'; mode_ss <="001";WHEN s2=> next_state <= s3; clkh<= '0'; clkm<=adjust; clks <= '0';enh<='0';enm<='1';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="010";WHEN s3=> next_state <= s4; clkh<= '0'; clkm<= '0'; clks<=adjust;enh<='0'; enm<='0';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="011";WHEN s4=> next_state <= s5; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0';enm<='0';enha<='1'; clkh_a<=adjust; clkm_a<= '0'; mode_ss <="100";WHEN s5=> next_state <= s0; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<=adjust; mode_ss <="101";END CASE;END PROCESS;PROCESS (mode)BEGINIF (mode'EVENT AND mode='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;扫描模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY scan ISPORT(clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END scan;ARCHITECTURE arc OF scan ISTYPE mystate IS (s0, s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS ( c_state )BEGINCASE c_state ISWHEN s0=> next_state <=s1; ss<="010";WHEN s1=> next_state <=s2; ss<="011";WHEN s2=> next_state <=s3; ss<="100";WHEN s3=> next_state <=s4; ss<="101";WHEN s4=> next_state <=s5; ss<="110";WHEN s5=> next_state <=s0; ss<="111";END CASE;END PROCESS;PROCESS (clk256hz)BEGINIF (clk256hz'EVENT AND clk256hz='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;复用模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux ISPORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END mux;ARCHITECTURE arc OF mux ISSIGNAL a,hhtmp,hltmp,mhtmp,mltmp,shtmp,sltmp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(mode_ss)BEGINCASE mode_ss ISWHEN "000"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "001"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "010"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "011"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "100"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN "101"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN OTHERS=>hhtmp<="0000";hltmp<="0000";mhtmp<="0000";mltmp<="0000";shtmp<="0000";sltmp<="0000"; END CASE;END PROCESS;PROCESS(ss)BEGINCASE ss ISWHEN "010"=> a <=hhtmp;WHEN "011"=> a <=hltmp;WHEN "100"=> a <=mhtmp;WHEN "101"=> a <=mltmp;WHEN "110"=> a <=shtmp;WHEN "111"=> a <=sltmp;WHEN OTHERS => a <="0000";END CASE;y<=a;END PROCESS;alarm<='1' WHEN ((hh=hha)AND(hl=hla)AND(mh=mha)AND(ml=mla)) ELSE '0';END arc;闪烁模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY blink_control ISPORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END blink_control;ARCHITECTURE arc OF blink_control ISBEGINPROCESS (ss,mode_ss)BEGINIF(ss="010" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="110" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="111" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="010" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="101") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="101") THEN blink_en<='1';ELSE blink_en<='0';END IF;END PROCESS;END arc;Top文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY design3 ISPORT (mode,adjust,clk1hz,clk2hz,clk256hz,clk1khz:IN STD_LOGIC;alarm,a,b,c,d,e,f,g:OUT STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END design3;ARCHITECTURE arc OF design3 ISCOMPONENT mode_adjust_with_alarm PORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT scan PORT (clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT segment4to7 PORT (s: IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g: OUT STD_LOGIC);END COMPONENT;COMPONENT mux PORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END COMPONENT;COMPONENT blink_control PORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END COMPONENT;COMPONENT count24 PORT (clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;COMPONENT count60 PORT (clk ,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;SIGNALclkh,enh,clkm,enm,clks,clkh_a,clkm_a,coutm,couts,coutm_en,couts_en,cout,vcc,coutma_en,coutma,alarm1,bli nk_en,blink_tmp,enha: STD_LOGIC;SIGNAL mode_ss,ss1:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,y,i:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINvcc<='1';coutm_en <= enh OR coutm;couts_en <= enm OR couts;coutma_en<= enha OR coutma;blink_tmp<=blink_en and clk2hz;i(3)<=y(3) OR blink_tmp;i(2)<=y(2) OR blink_tmp;i(1)<=y(1) OR blink_tmp;i(0)<=y(0) OR blink_tmp;ss<=ss1;alarm<=alarm1 AND clk1khz;u1:mode_adjust_with_alarmPORT MAP( adjust,mode,clk1hz,clkh,enh,clkm,enm,clks,enha,clkh_a,clkm_a,mode_ss);u2:count24 PORT MAP(clkh,coutm_en,cout,hh,hl);u3:count60 PORT MAP(clkm,couts_en,coutm,mh,ml);u4:count60 PORT MAP(clks,vcc,couts,sh,sl);u5:count24 PORT MAP(clkh_a,coutma_en,cout,hha,hla);u6:count60 PORT MAP(clkm_a,vcc,coutma,mha,mla);u7:mux PORT MAP(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,ss1,mode_ss,y,alarm1);u8:scan PORT MAP(clk256hz,ss1);u9:blink_control PORT MAP(ss1,mode_ss,blink_en);u10:segment4to7 PORT MAP(i,a,b,c,d,e,f,g);END arc;实验结果:数字钟包括正常的时分秒计时, 实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒。

数码管显示实验报告

数码管显示实验报告

实验三数码管显示实验一、实验目的1、了解数码管的显示原理;2、掌握数码管显示的编程方法。

二、实验内容1、编写数码管显示程序,循环显示0-F字符三、实验设备1、硬件:JX44B0实验板;PC机;JTAG仿真器;2、软件:PC机操作系统(WINDOWS 2000); ARM Developer Suite v1.2;Multi-ICE V2.2.5(Build1319);四、基础知识1、掌握在ADS集成开发环境中编写和调试程序的基本过程。

2、了解ARM应用程序的框架结构;ARM 应用程序的框架结构;3、了解数码管的显示原理;五、实验说明1、LED显示原理发光二极管数码显示器简称LED显示器。

LED显示器具有耗电低、成本低、配置简单灵活、安装方便、耐震动、寿命长等优点,目前广泛应用于各类电子设备之中。

7段LED由7个发光二极管按“日”字排列。

所有发光二极管的阳极连接在一起称共阳极接法,阴极连接在一起称为共阴极接法。

一般共阴极可以不需要外接电阻。

其中各二极管的排列如上图在共阳极接法中,如果显示数字“5”,需要在a、c、d、f、g端加上高电压,其它加低电压。

这样如果按照h、g、f、e、d、c、b、a的顺序排列的话对应的码段是:6DH。

其它的字符同理可以得到。

2、数码管显示驱动、数码管显示驱动数码管的显示一般有动态显示和静态显示两大类,另外按照驱动方式又分串行驱动和并行驱动两种方式。

行驱动两种方式。

串行驱动主要是提供串-并转换,串行驱动主要是提供串-并转换,串行驱动主要是提供串-并转换,减少控制线数量;减少控制线数量;减少控制线数量;并行驱动对每一个段并行驱动对每一个段提供单独的驱动,电路相对简单。

这方面参看数字电路相关内容。

提供单独的驱动,电路相对简单。

这方面参看数字电路相关内容。

下面主要介绍静态显示和动态显示: 1)静态显示:)静态显示: LED 数码管采用静态接口时,共阴极或共阳极节点连接在一起地或者接高电平。

数码管显示实验报告

数码管显示实验报告

数码管显示实验报告数码管显示实验报告引言:数码管是一种常见的数字显示设备,广泛应用于各种计数、计时和显示系统中。

本实验旨在通过实际操作,了解数码管的工作原理和使用方法,并探索其在电子领域中的应用。

实验原理:数码管是由多个发光二极管组成的,每个发光二极管代表一个数字或字母。

通过控制发光二极管的亮灭来显示不同的字符。

数码管通常分为共阳极和共阴极两种类型,其差别在于亮灭控制信号的电平极性。

实验步骤:1. 准备实验材料:数码管、电路连接线、电阻、开关、电源等。

2. 按照电路图连接电路:将数码管的引脚与其他元件连接,确保电路正确无误。

3. 接通电源,观察数码管的显示效果:根据电路连接的不同,数码管将显示不同的数字或字母。

4. 通过改变电路中的元件参数,如电阻的阻值、开关的状态等,观察数码管的显示变化:可以发现数码管的亮度、显示内容等会随之改变。

实验结果与分析:经过实验,我们发现数码管的显示效果与电路连接方式、元件参数等因素密切相关。

当数码管为共阳极时,需要给对应的引脚施加高电平信号才能使其亮起;而当数码管为共阴极时,则需要给对应的引脚施加低电平信号才能使其亮起。

此外,数码管的亮度也与电阻的阻值有关。

通过改变电阻的阻值,我们可以调节数码管的亮度,使其适应不同的环境要求。

数码管还可以通过组合显示不同的字符。

例如,通过同时点亮数码管的多个发光二极管,我们可以显示出数字、字母、符号等。

这为数码管的应用提供了更多的可能性。

应用领域:数码管广泛应用于各个领域,如计时器、计数器、温度显示器、电子钟等。

在计算机硬件中,数码管也常用于显示硬盘容量、CPU温度等信息。

结论:通过本次实验,我们深入了解了数码管的工作原理和使用方法,并通过实际操作探索了其在电子领域中的应用。

数码管作为一种常见的数字显示设备,具有简单、可靠、易于控制等优点,在现代电子技术中扮演着重要的角色。

通过进一步的研究和应用,我们可以更好地利用数码管的特性,推动电子技术的发展。

数码管实验报告实验原理(3篇)

数码管实验报告实验原理(3篇)

第1篇一、实验背景数码管是一种常用的显示器件,它可以将数字、字母或其他符号显示出来。

数码管广泛应用于各种电子设备中,如计算器、电子钟、电子秤等。

本实验旨在通过实践操作,让学生了解数码管的工作原理,掌握数码管的驱动方法,以及数码管在电子系统中的应用。

二、实验原理1. 数码管类型数码管分为两种类型:七段数码管和液晶数码管。

本实验主要介绍七段数码管。

七段数码管由七个发光二极管(LED)组成,分别代表七个笔画。

当七个LED中的某个或某几个LED点亮时,就可以显示出相应的数字或符号。

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

2. 数码管驱动方式(1)静态驱动静态驱动是指每个数码管独立驱动,每个数码管都连接到单片机的I/O端口。

这种方式下,数码管显示的数字或符号不会闪烁,但需要较多的I/O端口资源。

(2)动态驱动动态驱动是指多个数码管共用一组I/O端口,通过控制每个数码管的扫描时间来实现动态显示。

这种方式可以节省I/O端口资源,但显示的数字或符号会有闪烁现象。

3. 数码管显示原理(1)共阳极数码管共阳极数码管的特点是七个LED的阳极连接在一起,形成公共阳极。

当要显示数字时,将对应的LED阴极接地,其他LED阴极接高电平,即可显示出相应的数字。

(2)共阴极数码管共阴极数码管的特点是七个LED的阴极连接在一起,形成公共阴极。

当要显示数字时,将对应的LED阳极接地,其他LED阳极接高电平,即可显示出相应的数字。

4. 数码管驱动电路(1)BCD码译码驱动器BCD码译码驱动器是一种将BCD码转换为七段数码管所需段码的电路。

常用的BCD码译码驱动器有CD4511、CD4518等。

(2)74HC595移位寄存器74HC595是一种8位串行输入、并行输出的移位寄存器,常用于数码管的动态驱动。

它可以将单片机输出的串行信号转换为并行信号,驱动数码管显示。

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

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

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

数码管的动态显示实验报告一、实验目的1、了解数码管的工作原理和显示方式。

2、掌握数码管动态显示的编程方法和技巧。

3、通过实验,提高对数字电路和单片机编程的综合应用能力。

二、实验原理数码管是一种常用的数字显示器件,分为共阴极和共阳极两种类型。

共阴极数码管的阴极连接在一起并接地,当阳极接高电平时,对应的段点亮;共阳极数码管则是阳极连接在一起并接电源,当阴极接低电平时,对应的段点亮。

动态显示是指依次快速地轮流点亮多个数码管,利用人眼的视觉暂留效应,使人感觉多个数码管同时稳定地显示不同的数字。

在动态显示中,需要通过控制数码管的位选和段选信号来实现数字的显示。

三、实验设备1、单片机开发板2、电脑3、编程软件四、实验步骤1、硬件连接将数码管与单片机的 I/O 口进行连接,确定位选和段选的引脚。

连接好电源和地线,确保电路连接正确无误。

2、软件编程选择合适的编程语言,如 C 语言。

定义数码管的引脚和相关的控制变量。

编写数码管显示的函数,包括位选函数和段选函数。

在主函数中,通过循环调用显示函数,实现数字的动态显示。

3、编译下载使用编程软件对编写的程序进行编译,检查是否有语法错误。

将编译成功的程序下载到单片机开发板中。

五、实验程序```cinclude <reg52h> //包含 52 系列单片机的头文件//数码管段选引脚定义sbit SEG_A = P2^0;sbit SEG_B = P2^1;sbit SEG_C = P2^2;sbit SEG_D = P2^3;sbit SEG_E = P2^4;sbit SEG_F = P2^5;sbit SEG_G = P2^6;sbit SEG_DP = P2^7;//数码管位选引脚定义sbit BIT1 = P1^0;sbit BIT2 = P1^1;sbit BIT3 = P1^2;sbit BIT4 = P1^3;//显示数字 0 9 的段码unsigned char code SEGMENT_CODE ={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};//数码管位选函数void SelectBit(unsigned char bit){switch (bit){case 1:BIT1 = 0; BIT2 = 1; BIT3 = 1; BIT4 = 1; break;case 2:BIT1 = 1; BIT2 = 0; BIT3 = 1; BIT4 = 1; break;case 3:BIT1 = 1; BIT2 = 1; BIT3 = 0;BIT4 = 1;break;case 4:BIT1 = 1;BIT2 = 1;BIT3 = 1;BIT4 = 0;break;}}//数码管段选函数void SelectSegment(unsigned char num){SEG_A =(num & 0x01)? 1 : 0; SEG_B =(num & 0x02)? 1 : 0; SEG_C =(num & 0x04)? 1 : 0; SEG_D =(num & 0x08)? 1 : 0; SEG_E =(num & 0x10)? 1 : 0;SEG_F =(num & 0x20)? 1 : 0; SEG_G =(num & 0x40)? 1 : 0; SEG_DP =(num & 0x80)? 1 : 0;}//主函数void main(){unsigned char i, num = 0;while (1){for (i = 1; i <= 4; i++){SelectBit(i);SelectSegment(SEGMENT_CODEnum);num++;if (num == 10)num = 0;delay_ms(5);//适当的延时,以实现稳定显示}}}```六、实验现象与结果在实验中,当程序下载到单片机开发板后,数码管依次快速地显示数字 0 到 9,循环往复。

数码管动态显示实验报告

数码管动态显示实验报告

数码管动态显示实验报告数码管动态显示实验报告一、引言数码管是一种常见的电子显示器件,广泛应用于各种仪器仪表、计时器、计算器等电子设备中。

数码管动态显示实验是电子技术实验中的一项基础实验,通过控制数码管的亮灭状态,可以实现数字的显示。

本实验旨在通过实际操作,加深对数码管工作原理的理解,并掌握数码管的动态显示方法。

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

通过对发光二极管的亮灭状态进行控制,可以显示不同的数字或字符。

数码管一般采用共阳极或共阴极的方式接线,共阳极的数码管的阳极连接在一起,而共阴极的数码管的阴极连接在一起。

在动态显示实验中,采用的是共阳极数码管。

数码管的亮灭状态是通过控制数码管的阳极与地之间的电压差来实现的。

当某个数码管需要亮时,将其对应的阳极与地连接,电流通过发光二极管,使其发光。

当某个数码管需要灭时,将其对应的阳极与电源正极连接,断开与地的连接,发光二极管不通电,不发光。

三、实验步骤1. 准备实验所需材料:共阳极数码管、面包板、电阻、导线等。

2. 将数码管与面包板连接,确保连接正确,数码管的阳极连接到面包板的相应引脚。

3. 连接电路:将电源正极与数码管的共阳极连接,电源负极与面包板的地引脚连接。

4. 编写程序:根据控制数码管显示数字的逻辑,编写相应的程序。

5. 将程序下载到单片机中,通过单片机控制数码管的亮灭状态。

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

在程序的控制下,数码管可以显示不同的数字或字符,实现了数字的动态变化。

通过调整程序中的参数,可以实现不同的显示效果,如闪烁、滚动、循环等。

五、实验总结本次实验通过实际操作,加深了对数码管工作原理的理解。

通过编写程序,我们掌握了控制数码管动态显示的方法。

在实验过程中,我们遇到了一些问题,如数码管显示不正常、程序错误等,但通过仔细检查和调试,最终解决了这些问题。

通过这次实验,我们不仅学到了知识,还培养了动手实践和问题解决的能力。

数码管显示实验报告

数码管显示实验报告

一、实验目的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.单片机的频率和控制方式对动态显示效果有一定影响。

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

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

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

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

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

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

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

七段数码管的动态扫描显示实验报告

七段数码管的动态扫描显示实验报告

实验四七段数码管的动态扫描显示一、实验目的1.进一步熟悉QuartusII软件进行FPGA设计的流程;2.掌握利用宏功能模块进行常用的计数器, 译码器的设计;3.学习和了解动态扫描数码管的工作原理的程序设计方法;二、实验原理及过程实验板上面常用的4为联体的共阳极7段数码管。

其接口电路是把所有数码管的8个笔划段a-h同名端连接起来, 而每一个数码管由一个独立的公共极COM端控制。

对于这种结构的数码管, 采用动态显示的方法是最为广泛的一种显示方式之一。

在轮流点亮的过程中每位显示器的点亮时间都极为短暂, 但由于人的视觉暂留现象以及发光二极管的余晖效应, 尽管实际上每个显示器并非同时点亮, 但只要扫描的速度足够快(如达到30Hz以上), 给人的印象就是一组稳定的显示数据, 不会有闪烁感。

1、本次实验要求在实验板上实现显示00000000-99999999的十进制计数器。

使用的是宏模块产生一个16位的二进制计数器counter()作为4个数码管的显示数据;编写一个分频模块div, 其输出作为计数器counter()的时钟信号;编写数码管驱动模块segmain, 完成7段译码和扫描显示控制2、建立工程, 并建立顶层图。

3、设计计数时钟设计一分频器, 对50Mhz分频输出到计数器, 让计数器以较慢速度递增。

建立.v文件, 输入以下代码module int_div(clk,div_out);input clk;output reg div_out;reg[31:0] clk_div;parameter CLK_FREQ='D50_000_000;parameter DCLK_FREQ='D10;always@(posedge clk)beginif(clk_div<CLK_FREQ/DCLK_FREQ)clk_div<=clk_div+1;elsebeginclk_div<=0;div_out=~div_out;endendendmodule输入完成后, 将该文件设为顶层文件, 并分析该设计文件, 用于检查设计错误。

  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()烧写应用程序
3、Keil应用程序
四、实验内容(算法、程序、步骤和方法):
#include<>。

相关文档
最新文档