单片机实验——数码管显示

合集下载

单片机数码管实验报告

单片机数码管实验报告

单片机数码管实验报告单片机数码管实验报告引言:单片机作为一种重要的嵌入式系统,被广泛应用于各个领域。

在本次实验中,我们将探索单片机与数码管的结合,通过编程控制数码管的显示,实现不同的功能。

本文将详细介绍实验的背景、目的、方法和结果,并对实验过程中遇到的问题进行讨论和总结。

一、实验背景数码管是一种常见的输出设备,用于显示数字和字母等信息。

而单片机则是一种集成了微处理器、存储器和输入输出接口等功能的芯片,具有高度集成、灵活性强的特点。

将单片机与数码管结合起来,可以实现对数字的显示和控制,为实际应用提供了很大的便利。

二、实验目的本次实验的目的是通过编程控制单片机,实现对数码管的显示和控制。

具体包括以下几个方面:1. 学习单片机的基本原理和编程方法;2. 掌握数码管的工作原理和接口电路;3. 理解数码管的编码方式和显示原理;4. 实现基本的数码管显示功能,如显示数字、字母、符号等;5. 探索数码管的扩展应用,如时钟、计时器等。

三、实验方法1. 实验器材准备:本次实验所需的器材包括单片机开发板、数码管、连接线等。

2. 实验步骤:(1)搭建实验电路:将数码管与单片机开发板连接,并根据实验要求进行接线。

(2)编写程序:使用C语言编写程序,通过单片机的GPIO口控制数码管的显示。

(3)下载程序:将编写好的程序下载到单片机开发板上。

(4)实验验证:通过观察数码管的显示情况,验证程序的正确性。

四、实验结果经过实验验证,我们成功实现了对数码管的显示和控制。

通过编写不同的程序,我们可以实现以下几种功能:1. 显示数字:通过控制数码管的不同段点亮,可以显示0-9的数字。

2. 显示字母:通过控制数码管的不同段点亮,可以显示A-Z的字母。

3. 显示符号:通过控制数码管的不同段点亮,可以显示一些常见的符号,如"+"、"-"、"*"等。

4. 显示动画:通过快速切换数码管的显示内容,可以实现简单的动画效果,如闪烁、滚动等。

单片机数码管显示实验总结

单片机数码管显示实验总结

单片机数码管显示实验总结单片机数码管显示实验总结一、实验目的本次实验旨在通过单片机控制数码管显示,掌握数码管的工作原理、编程控制方法以及单片机与数码管的接口技术。

通过实验,提高自己的动手能力和编程技能,为今后的学习和实际工作打下坚实的基础。

二、实验原理数码管是一种常用的电子显示器件,它由多个LED组成,通过控制各个LED的亮灭来显示不同的数字或字符。

本次实验采用的是共阴极数码管,它由8个LED组成,通过单片机控制每个LED的亮灭状态来显示不同的数字或字符。

三、实验步骤1.硬件准备(1)选择合适的单片机开发板,如Arduino、STM32等。

(2)购买数码管及相应的驱动电路。

(3)准备杜邦线、电阻、电容等电子元件。

2.硬件连接(1)将数码管与单片机开发板连接起来。

(2)根据数码管驱动电路的要求,连接电源、地线和控制信号线。

(3)连接电源后,打开开发板电源,观察数码管的显示效果。

3.编程控制(1)在开发板上编写程序,控制数码管显示不同的数字或字符。

(2)使用相应的编译器将程序编译成可执行文件,上传到开发板上。

(3)观察数码管的显示效果,调试程序,使其达到预期效果。

4.测试与评估(1)在不同情况下测试数码管的显示效果,如按键输入、传感器数据等。

(2)对程序进行优化和改进,提高程序的效率和稳定性。

(3)总结实验过程中的问题和解决方法,为今后的学习和实际工作提供参考。

四、实验结果及分析1.实验结果在实验过程中,我们成功地实现了对数码管的编程控制,使其能够根据不同的输入显示不同的数字或字符。

同时,我们也发现了一些问题,如数码管的亮度不够、显示的数字不清晰等。

经过调试和改进,我们解决了这些问题,使数码管的显示效果更加理想。

2.结果分析通过本次实验,我们深入了解了数码管的工作原理和编程控制方法,掌握了单片机与数码管的接口技术。

同时,我们也发现了一些问题,如数码管的亮度不够、显示的数字不清晰等。

这些问题的出现可能与硬件连接、编程控制等方面有关。

数码管的显示的实验报告

数码管的显示的实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数码管静态显示实训报告

数码管静态显示实训报告

一、实训目的通过本次实训,掌握数码管静态显示的原理和方法,熟悉51单片机的编程技巧,以及如何利用单片机控制数码管显示特定的数字和字符。

同时,了解数码管在电子显示中的应用及其驱动电路的设计。

二、实训器材1. 51单片机开发板2. 数码管(共阴极或共阳极)3. 电阻4. 译码器(如74HC138)5. 驱动器(如74HC245)6. 连接线7. 编程软件(如Keil)8. 仿真软件(如Proteus)三、实训原理数码管静态显示是指每个数码管的每个段都由单片机的I/O口直接驱动。

当某个段需要显示时,相应的I/O口输出高电平或低电平,控制该段LED的亮灭。

共阴极数码管的段码共用一个电源的负极,高电平点亮;共阳极数码管的段码共用一个电源的正极,低电平点亮。

在本次实训中,我们使用51单片机的P0口输出段码数据,P2口输出位选信号,通过译码器和驱动器实现对数码管的驱动。

四、实训步骤1. 硬件连接(1)将数码管按照共阴极或共阳极的接法连接到单片机的P0口。

(2)将译码器的输入端连接到单片机的P2口。

(3)将驱动器的输入端连接到译码器的输出端。

(4)将驱动器的输出端连接到数码管的位选端。

2. 软件编写(1)定义数码管的字形码数组,存储0~9数字的字形码。

(2)编写主函数,通过循环遍历字形码数组,控制数码管显示相应的数字。

(3)编写延时函数,实现数字显示的间隔。

3. 仿真测试(1)使用Proteus软件搭建仿真电路。

(2)编写Keil软件中的程序,并编译生成HEX文件。

(3)将HEX文件下载到51单片机中。

(4)运行仿真程序,观察数码管显示的数字是否正确。

五、实训结果经过实训,我们成功实现了数码管静态显示功能。

数码管能够按照程序设置的方式,依次循环显示0~9十个数字。

六、实训心得1. 通过本次实训,我们了解了数码管静态显示的原理和实现方法,掌握了51单片机的编程技巧。

2. 在实训过程中,我们学会了如何使用译码器和驱动器扩展单片机的I/O口功能。

数码管动态显示实验报告

数码管动态显示实验报告

一、实验目的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. 51单片机开发板2. 数码管(共阴极或共阳极)3. 电阻、电容等电子元件4. 连接线5. 编程器6. 电源7. 示波器(可选)三、实训原理数码管是一种由发光二极管(LED)组成的显示器件,常用于显示数字、字母或其他符号。

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

1. 共阴极数码管:所有LED的阴极连接在一起,公共端为正极。

2. 共阳极数码管:所有LED的阳极连接在一起,公共端为负极。

数码管的显示原理是通过控制LED的点亮和熄灭来显示不同的字符。

每个数码管由7个LED组成,分别对应数码管的7个笔画(A、B、C、D、E、F、G),通过控制这7个LED的点亮和熄灭,可以显示0-9的数字以及部分字母。

四、实训步骤1. 搭建电路:根据实训要求,搭建数码管显示电路。

电路连接包括单片机的P0口或P2口与数码管的段选线连接,单片机的某个引脚与数码管的位选线连接,以及数码管的公共端与电源连接。

2. 编写程序:使用C语言编写程序,通过单片机控制数码管的显示。

程序主要包括以下内容:- 初始化单片机P0口或P2口为输出模式,用于控制数码管的段选线。

- 初始化单片机控制位选线的引脚为输出模式。

- 编写延时函数,用于实现数码管的动态显示效果。

- 编写显示函数,用于控制数码管显示特定的数字或字母。

3. 编译程序:使用Keil uVision等编程软件编译程序,生成可执行的HEX文件。

4. 烧录程序:将编译好的HEX文件烧录到单片机中。

5. 测试电路:给单片机供电,观察数码管是否能够按照预期显示数值。

五、实训结果与分析1. 显示单个数字:程序成功控制数码管显示单个数字,如0、1、2等。

2. 显示多位数字:程序能够控制数码管依次显示多位数字,如123、456等。

基础实验(数码管显示)含代码

基础实验(数码管显示)含代码

实验一基础实验(数码管显示)一、实验内容使用MCS-51汇编语言编写程序,完成如下功能:1. 使用三个数码管显示十进制数值(001~999,可任意设置);2. 每隔1秒,该数值自动减一,直到归零;3. 归零后的下一秒,显示一个新的十进制数值(001~999,可任意设置);4. 每隔1秒,新数值继续自动减一,直到再次归零;5. 重新执行步骤1,循环往复。

6. 当开关S1按下时,暂停计数;S1松开时,恢复计数。

二、数码管显示原理如图所示,三段式数码管由三片74HC164级联控制三个数码管的显示,其中使用单片机P4.5作为模拟串口数据,使用P4.4模拟串口时钟,CLR端接高电平。

使用上一个74HC164的Q7作为下一个74HC164的输入端。

要想输出一个字形码,就需要从高位到低位依次向移位寄存器输出8个比特。

移位寄存器的数据线和时钟线分别接到单片机的P4.5和P4.4管脚,可以使用MCS-51里面的位操作指令进行输出。

连续输出3个字形,24个bit之后,欲显示的字形将稳定地显示在数码管上,程序可以转而执行其他工作。

三、实验流程图1.主程序流程图开始初始化定义计数器R6,R5,R4定义码表TAB 0-9根据R6偏移从TAB取数送到算术寄存器A中调用SHOW子程序根据R5偏移从TAB取数送入算术寄存器A中调用SHOW子程序根据R4偏移从TAB取数送入算术寄存器A中调用SHOW子程序调用延时子程序S1按下?是循环延时否R6减一即个位减一R6为-1?是R5减一即十位减一重新初始化R6否R5为-1?否是R4减一即百位减一重新初始化R5R4为-1?重新初始化R4否2.显示子程序SHOW 流程图3.延时子程序DELAY 流程图子程序SHOW 开始R0初始化计数时钟置0右移AC 标志位送入DATA时钟置1,上跳R0=0?是RET否子程序DELAY 开始RI 初始化为80R3减一R3为0?是R2减一R2为0?是R1减一是R1为0?否R2初始化为200R3初始化为250否否是四、程序源代码 0000H2.LJMP START 0050H4.START:5.P4 EQU 0C0H6.P4SW EQU 0BBH7.CLK EQU P4.48.DAT EQU P4.59.SW EQU P3.610.MOV P4SW, #70H11.LP:12. MOV R6, #913. MOV R5, #914. MOV R4, #915.LOOP:16. MOV DPTR, #TAB17. MOV A,R618. MOV DPTR,#TAB19. MOVC A,@A+DPTR20. LCALL SHOW21.22. MOV A,R523. MOV DPTR,#TAB24. MOVC A,@A+DPTR25. LCALL SHOW26.27. MOV A,R428. MOV DPTR,#TAB29. MOVC A,@A+DPTR30. LCALL SHOW31. LCALL DELAY32.33.PAUSE:34. NOP35. JNB SW,PAUSE36. DEC R637. CJNE R6,#-1,LOOP38.39. DEC R540. MOV R6,#941. CJNE R5,#-1,LOOP42. DEC R443. MOV R5,#944. CJNE R4,#-1,LOOP45. MOV R4,#946. LJMP LOOP47.48.SHOW:49. MOV R0,#850.SLP:51. CLR CLK52. RLC A53. MOV DAT,C54. SETB CLK55. DJNZ R0,SLP56. RET57.58.DELAY:59. MOV R1,#8060.SD:61. MOV R2,#20062.SD1:63. MOV R3,#25064.SD2:65. DJNZ R3,SD266. DJNZ R2,SD167. DJNZ R1,SD68.RET69.70.TAB:71. DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H72.73.74.END75.TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H五、思考题1.MCS51中有哪些可存取的单元,存取方式如何?它们之间的区别和联系有哪些?答:MCS51单片机中,包含程序存储器ROM、数据存储器RAM和特殊功能寄存器(SFRs),其中数据存储器还包含内部RAM,内部扩展RAM和片外RAM。

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

单片机实验——数码管显示
数码管显示
一、数码管静态显示
1、电路图
图1
2、电路分析
该电路采用串行口工作方式进行串行显示实验,串行传输数据为8位,只能从RXD端输
入输出,TXD端用于输出同步移位脉冲。

当CPU 执行一条写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口开始将发送缓冲器SBUF 中的8位数据按照从低位到高位依次发送出去,8位数据发送完毕,发送结束标志TI置1,必须由软件对它清0后才能启动发送下一帧数据。

因此,当输完8个脉冲后,再一次来8个脉冲时,第一帧的8位数据就移到了与之相连的第二个74LS164中,其他数据依此类推。

3、流程图
发送数据
二、数码管动态显示
1、电路图
图2
2、电路分析
R1-R7电阻值计算:一个7-seg 数码管内部由8段LED 组成,因此导通电压和电流与LED 灯相同,LED 导通压降大概在 1.5V-2.2V ,电流3mA-30mA ,单片机的工作电压是5V ,
所以
一般取Rmin 和Rmax 中间值,330Ω、470Ω、510Ω。

由于P0口内部没有上拉电阻,所以在P0
口接1003025Im min 1325Im max =-===-==mA V V an U R K mA
V V in U R
排阻,上拉电压。

如果没有排阻的话,接上拉电阻时需要考虑数码管的电流,如果太小的话,是驱动不了数码管的。

如图3:
发现电流大于5mA时,数码管才能亮,与前面电流最小3mA不符,因此计算数码管电流时使其在10mA-20mA之间,确保能驱动数码管亮。

两个74HC573实现对六位数码管的段选和位选,控制端为LE(第11脚)。

3、思路分析
先使第一个573输出同步,把数据送入573中,然后锁存,第二个573输出同步,打开第一个数
码管,这样就把第一个数显示在了第一个数码管上,然后以此类推,把数据送到相应的数码管上显示,进行短暂的延时,在频率快的时候,人的眼睛看的是数码管一直在显示,实际上是以特别快的频率在闪烁。

(必须进行一个短暂的延时,延时时间可根据实际情况调整。

如果没有延时的话,数码管上的电流在瞬间是达不到LED的导通电流,所以数码管不会显示,经过proteus仿真实验论证确实如此。


4、动态显示流程图
开始
初始化
573
段选573锁存,位选573打
开,送入数据选择数码管
延时
结束
5、实验总结
在用proteus仿真用573搭载电路的动态数码管显示时,有的数字显示不出来,但是在低频的时候会显示出来,然后频率逐渐变快,数字就没有了,比如:要求六位数码管以次显示123456,结果显示的是1234 6,5是显示不出来的,经过多次调试,发现一般只能显示出来偶数。

附:
74LS164引脚图及功能介绍

脚图
功能图
74LS164为TTL 单向8位移位寄存器,可实现串行输入,并行输出。

其中A 、B (第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,共一个输入信号时可以并接。

T (第8脚)为时钟输入端,可连接到串行口的TXD 端。

每一个时钟信号的上升沿加到T 端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。

R (第9脚)为复位端,当R=0时,复位;R=1时,允许脉冲。

功能表
74HC573脚图及功能介绍
SL74HC573 跟LS/AL573 的管脚一样。

器件的输入是和标准CMOS 输出兼容
的;加上拉电阻,他们能和LS/ALSTTL 输出兼容。

当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同
步)。

当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。

输出能直接接到CMOS,NMOS 和TTL 接口上
操作电压范围:2.0V~6.0V
低输入电流:1.0uA
CMOS 器件的高噪声抵抗特性.。

相关文档
最新文档