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

合集下载

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

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

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

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

二、实验原理数码管是一种常用的电子显示器件,它由多个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.结果分析通过本次实验,我们深入了解了数码管的工作原理和编程控制方法,掌握了单片机与数码管的接口技术。

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

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

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

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

单片机数码管显示实验报告单片机数码管显示实验报告引言:数码管是一种常用的显示器件,广泛应用于各种电子设备中。

本实验旨在通过使用单片机控制数码管的亮灭来实现数字的显示,以及通过编程控制数码管显示不同的数字和字符。

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. 熟悉了单片机与数码管之间的接口连接,提高了动手能力。

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

51单片机数码管显示0到99实验原理

51单片机数码管显示0到99实验原理

51单片机数码管显示0到99实验原理51单片机是一种常用的单片机微控制器,它可以用来完成各种控制任务,包括数码管显示。

数码管是一种显示器件,可以用来显示数字、字母或符号等。

在本实验中,我们将使用51单片机控制数码管显示从0到99的数字。

实验原理如下:1. 51单片机介绍:51单片机是一种基于Intel 8051架构的微控制器。

它是一种具有48KB的程序存储器和52个输入/输出引脚的芯片。

单片机通过内部时钟和逻辑电路来执行各种任务。

2.数码管介绍:数码管是一种由LED组成的显示器件。

一般用于显示数字,通过控制LED的亮灭来显示不同的数字。

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

3.共阳极数码管原理:共阳极数码管的原理是通过控制不同的引脚来点亮相应的LED。

在显示数字0到9时,需要同时点亮特定的LED。

通过控制引脚为高电平来点亮对应的LED,其他引脚保持低电平。

4.共阴极数码管原理:共阴极数码管的原理与共阳极相反,需要使引脚为低电平来点亮相应的LED。

其他引脚保持高电平。

5. 51单片机控制数码管原理:通过设置51单片机的输出引脚和电平,可以控制数码管的显示。

首先需要将数码管的引脚连接到51单片机的输出引脚上,并设置相应的输出模式和电平。

然后通过程序来控制输出引脚的电平,从而控制数码管的亮灭。

实验步骤如下:1.连接电路:首先将51单片机与数码管进行连接。

根据具体的实验条件,选择合适的数码管和电路图。

2.编写程序:使用51单片机的编程软件(如Keil C等),编写控制数码管的程序。

程序应该包括初始化引脚、设置输出模式和控制引脚电平等内容。

3.烧录程序:将编写好的程序烧录到51单片机的程序存储器中。

通过编程软件将程序下载到单片机中。

4.检查电路:验证电路连接是否正确。

可以通过使用示波器或万用表等工具来检查引脚的电平和波形。

5.运行实验:将电路通电,观察数码管的显示效果。

通过控制程序中的循环和延时等参数,可以实现数字的滚动显示、闪烁显示等效果。

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

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

一、实验目的1、在之前单键实验和中断控制数码管“静态”显示实验的基础上,把单键判断、数码管显示和中断结合起来编写中断程序实现单键控制一位数码管;2、在实现控制一位数码管显示的基础上用单键控制两位数码管显示。

二、实验所需器材与软件硬件:电脑、传输线、AT89S52单片机软件:编程软件Keil uVision3;读写软件MePro V5.02三、实验程序的及其分析:1、单键控制一位数码管显示主要设计思路:在中断主程序后加入单键判断键按下情况判断语句,把数码管显示程序放在中断子程序中。

当有键按下且有中断请求时,重新给数码管显示偏移地址赋值,从而改变显示内容。

程序:ORG 0000HAJMP MAIN ;转向主程序ORG 001BH ;中断矢量地址AJMP T_INT ;转向中断服务程序MAIN: ;主程序标号MOV R3,#0 ;表偏移地址MOV DPTR,#TAB ;把表头地址赋值给寄存器DPTRMOV TMOD,#10H ;设定定时器工作于模式1MOV TH1,#0FEH ;定时器赋初值MOV TL1,#0EHSETB ET1 ;开中断SETB EASETB TR1 ;启动定时器LOOP1:JNB P1.4, LOOP4AJMP LOOP1LOOP4:ACALL DELAYJNB P1.4, LOOP_ADD 单键按下判断程序LOOP_ADD:INC R3CJNE R3,#10,LOOP8MOV R3,#0LOOP8: AJMP LOOP1T_INT: MOV TH1,#0FEHMOV TL1,#0EHMOV A,R3 中断程序内嵌的数码管显示程序MOVC A,@A+DPTRMOV P0,AMOV P2,#11111110BRETITAB:DB 0C0H,0F9H,0A4H,0B0H ,99H,92H,82H,0F8H ;表内容DB 80H,90HDELAY:MOV R5,#64HLOOP5:MOV R7,#0FFHLOOP6:NOPNOP 用于单键按下防抖动的延时程序DJNZ R7,LOOP6DJNZ R5,LOOP5RET2、单键控制两位数码管显示设计思路:用两个寄存器分别存放数码管显示的个位和十位,并且在数码管显示程序中用移位指令对数码管的位码进行移位,使每次执行中断程序时显示一位数,循环两次中断程序后“静态”显示两位数字。

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

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

单片机数码管动态显示实验报告单片机数码管动态显示实验程序(汇编)单片机数码管动态显示实验程序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.掌握动态数码显示技术的设计方法。

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。

  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 ,
所以
100
3025Im min 1325Im max =-===-==mA V V an U R K mA
V V in U R
一般取Rmin 和Rmax 中间值,330Ω、470Ω、510Ω。

由于P0口内部没有上拉电阻,所以在P0口接排阻,上拉电压。

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

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

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

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

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

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


4、动态显示流程图
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 器件的高噪声抵抗特性.。

相关文档
最新文档