单片机实验报告动态数码显示设计
单片机数码管显示实验总结
单片机数码管显示实验总结单片机数码管显示实验总结一、实验目的本次实验旨在通过单片机控制数码管显示,掌握数码管的工作原理、编程控制方法以及单片机与数码管的接口技术。
通过实验,提高自己的动手能力和编程技能,为今后的学习和实际工作打下坚实的基础。
二、实验原理数码管是一种常用的电子显示器件,它由多个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. 熟悉了单片机与数码管之间的接口连接,提高了动手能力。
数码管动态显示实验报告
数码管动态显示实验报告1.实验目的:本实验旨在通过使用单片机控制数码管的动态显示,了解数码管的原理和使用方法,加深对单片机控制的理解。
2.实验原理:数码管是由许多发光二极管(LED)组成的,每个数码管有7个发光二极管组成7段,再加上一个小数点(或8段数码管),通过控制每个发光二极管的亮灭状态,可以显示出数字、字母等字符。
本实验使用的是共阴极数码管,在通常情况下,数码管引脚为低电平时亮灯,为高电平时灭灯。
3.实验器材:-STC89C52单片机-共阴极数码管-电阻-面包板及连接线-电源4.实验步骤:步骤1:连接电路将数码管的7个引脚分别连接到单片机的7个I/O引脚上,并通过电阻限流。
连接电路后,确认连接无误。
步骤2:编写程序使用C语言编写程序,实现数码管的动态显示。
可以使用延时函数和位操作函数控制数码管的亮灭,通过改变每个数码管引脚的高低电平状态,实现显示不同的数字、字母。
步骤4:实验观察与分析观察数码管的显示效果,通过改变程序中的参数,可以实现不同的显示效果。
5.实验结果与分析:经过实验,我们成功实现了数码管的动态显示。
通过编写程序,我们可以实现数码管显示数字、字母等不同的字符。
调整程序中的参数,可以实现不同的动态显示效果,如流水灯、闪烁等。
数码管的动态显示是通过改变每个数码管引脚的高低电平实现的,通过快速改变引脚电平状态的时间间隔,创建了肉眼无法察觉的视觉效果,从而实现了动态显示。
此外,通过实验我们还了解到了单片机控制数码管的原理和方法,加深了对单片机控制的理解。
6.实验总结:通过本实验,我们了解到了数码管的动态显示原理和方法,并通过编写程序,成功实现了数码管的动态显示。
同时,我们还巩固了单片机控制的知识,提高了自己的动手能力和问题解决能力。
在今后的学习和工作中,我们将进一步掌握数码管的使用方法,并能够将其应用于更加复杂的应用场景中,实现更多有趣的功能。
数码显示实验报告
一、实验目的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)动态扫描显示原理:动态扫描显示是通过依次点亮各个数码管,使多位数码管同时显示。
单片机实验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
单片机实验报告——LED数码管显示实验
单⽚机实验报告——LED数码管显⽰实验(此⽂档为word格式,下载后您可任意编辑修改!)《微机实验》报告LED数码管显⽰实验指导教师:专业班级:姓名:学号:联系⽅式:⼀、任务要求实验⽬的:理解LED七段数码管的显⽰控制原理,掌握数码管与MCU的接⼝技术,能够编写数码管显⽰驱动程序;熟悉接⼝程序调试⽅法。
实验内容:利⽤C8051F310单⽚机控制数码管显⽰器基本要求:利⽤末位数码管循环显⽰数字0-9,显⽰切换频率为1Hz。
提⾼要求:在4位数码管显⽰器上依次显⽰当天时期和时间,显⽰格式如下:yyyy (年份)mm.dd(⽉份.⽇).asm;Description: 利⽤末位数码管循环显⽰数字0-9,显⽰切换频率为1Hz。
;Designed by:gxy;Date:2012117;*********************************************************$include (C8051F310.inc)ORG 0000H ;复位⼊⼝AJMP MAINORG 000BH ;定时器0中断⼊⼝AJMP TIME0MAIN: ACALL Init_Device ;初始化配置MOV P0,#00H ;位选中第⼀个数码管MOV R0,#00H ;偏移指针初值CLR PSW.1 ;标志位清零SETB EA ;允许总中断SETB ET0 ;允许定时器0中断MOV TMOD,#01H ;定时器0选⼯作⽅式1MOV TH0,#06HMOV TL0,#0C6H ;赋初值,定时1sLOOP: MOV A,R0ADD A,#0BH ;加偏移量MOVC +PC ;查表取,段码MOV P1,A ;段码给P1显⽰SETB TR0 ;开定时LOOP1: JNB PSW.1,LOOP1 ;等待中断CLR PSW.1INC R0 ;偏移指针加⼀CJNE R0,#0AH,LOOP3MOV R0,#00H ;偏移指针满10清零AJMP LOOP ;返回DB 0FCH,60H,0DAH,0F2H,66H ;段码数据表:0、1、2、3、4 DB 0B6H,0BEH,0E0H,0FEH,0F6H; 5、6、7、8、9 ;***************************************************************** ; 定时器0中断;***************************************************************** TIME0: SETB PSW.1 ;标志位置⼀MOV TH0,#06H ;定时器重新赋值MOV TL0,#0C6HLOOP3: CLR TR0 ;关定时RETI;***************************************************************** ;初始化配置;***************************************************************** PCA_Init:anl PCA0MD, #0BFhmov PCA0MD, #000hretTimer_Init:mov TMOD, #001hmov CKCON, #002hretPort_IO_Init:; P0.0 - Unassigned, Open-Drain, Digital ; P0.1 - Unassigned, Open-Drain, Digital ; P0.2 - Unassigned, Open-Drain, Digital ; P0.3 - Unassigned, Open-Drain, Digital ; P0.4 -Unassigned, Open-Drain, Digital ; P0.5 - Unassigned, Open-Drain, Digital ; P0.6 - Unassigned, Open-Drain, Digital ; P0.7 - Unassigned, Open-Drain, Digital ; P1.0 - Unassigned, Open-Drain, Digital ; P1.1 - Unassigned, Open-Drain, Digital ; P1.2 - Unassigned, Open-Drain, Digital ; P1.3 - Unassigned, Open-Drain, Digital ; P1.4 - Unassigned, Open-Drain, Digital ; P1.5 - Unassigned, Open-Drain, Digital ; P1.6 - Unassigned, Open-Drain, Digital ; P1.7 - Unassigned, Open-Drain, Digital ; P2.0 - Unassigned, Open-Drain, Digital ; P2.1 -Unassigned, Open-Drain, Digital ; P2.2 - Unassigned, Open-Drain, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov XBR1, #040hretInterrupts_Init:mov IE, #002hretInit_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_Initlcall Interrupts_Initretend提⾼部分:;*********************************************************;Filename: shumaguan2.asm;Description:在4位数码管显⽰器上依次显⽰当天时期和时间,显⽰格式如下:; 2012 (年份); 12.07(⽉份.⽇); 12.34(⼩时.分钟);Designed by:gxy;Date:2012117;*********************************************************$include (C8051F310.inc)ORG 0000HAJMP MAINORG 000BHAJMP TIME0MAIN: ACALL Init_DeviceMOV R0,#00H ;⽤于位选MOV R1,#00H ;⽤于段选MOV R2,#22H ;置偏移量,⽤于控制模式MOV R4,#8MOV R5,#250CLR PSW.1 ;标志位清零SETB EA ;允许总中断SETB ET0 ;允许定时器0中断MOV TMOD,#01H ;定时器0选⼯作⽅式1MOV TH0,#0FFHMOV TL0,#0C0H ;定时器赋初值1msBACK: MOV P0,R0 ;位选MOV A,R0ADD A,#40H ;选下⼀位MOV R0,AMOV A,R1ADD A,R2 ;加偏移量MOVC +PC ;查表取段码MOV P1,A ;段码给P1显⽰LOOP: SETB TR0 ;开定时HERE: JNB PSW.1,HERE ;等待中断CLR PSW.1DJNZ R5,BACKMOV R5,#250DJNZ R4,BACKMOV R4,#8 ;循环2000次(2s)MOV A,R2ADD A,#04H ;偏移量加04H,到下⼀模式段码初值地址 MOV R2,ACJNE R2,#2EH,LOOP2MOV R2,#22H ;加三次后偏移量回到初值LOOP2: AJMP BACK ;返回进⼊下⼀模式;段码数据表:DB 0DAH,60H,0FCH,0DAH ; 2102DB 0E0H,0FCH,61H,60H ; 701. 1DB 66H,0F2H,0DBH,60H ; 432. 1;*****************************************************************; 定时器0中断;***************************************************************** TIME0: MOV TH0,#0FFH MOV TL0,#0C0HCLR TR0SETB PSW.1INC R1 ;偏移指针加⼀CJNE R1,#04H,LOOPMOV R1,#00H ;偏移指针满04H清零RETI;***************************************************************** ; 初始化配置;***************************************************************** PCA_Init:anl PCA0MD, #0BFhmov PCA0MD, #000hretTimer_Init:mov TMOD, #001hmov CKCON, #002hretPort_IO_Init:; P0.0 - Unassigned, Open-Drain, Digital; P0.1 - Unassigned, Open-Drain, Digital; P0.2 - Unassigned, Open-Drain, Digital; P0.3 - Unassigned, Open-Drain, Digital; P0.4 - Unassigned, Open-Drain, Digital; P0.5 - Unassigned, Open-Drain, Digital; P0.6 - Unassigned, Open-Drain, Digital; P0.7 - Unassigned, Open-Drain, Digital; P1.0 - Unassigned, Open-Drain, Digital; P1.1 - Unassigned, Open-Drain, Digital; P1.2 - Unassigned, Open-Drain, Digital; P1.3 - Unassigned, Open-Drain, Digital; P1.4 - Unassigned, Open-Drain, Digital; P1.5 - Unassigned, Open-Drain, Digital; P1.6 - Unassigned, Open-Drain, Digital; P1.7 - Unassigned, Open-Drain, Digital; P2.0 - Unassigned, Open-Drain, Digital; P2.1 - Unassigned, Open-Drain, Digital; P2.2 - Unassigned, Open-Drain, Digital; P2.3 - Unassigned, Open-Drain, Digitalmov XBR1, #040hretInterrupts_Init:mov IE, #002hretInit_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_Initlcall Interrupts_Initretend六、程序测试⽅法与结果、软件性能分析软件调试总体截图:基础部分:软件运⾏时,我们发现P0端⼝为00H,P1端⼝以依次为FCH、60H、DAH、F2H、66H、B6H、BEH、E0H、FEH、F6H。
单片机数码管动态显示实验报告
单片机数码管动态显示实验报告单片机数码管动态显示实验程序(汇编)单片机数码管动态显示实验程序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的显示参数代码表要记清楚。
51单片机数码管显示实验报告
学号:20
void main()
{
while(1)
{
num();
display();
}
}
void display()
{
P2=0xff;//消隐P0连接段选,P1节位选
P1=0x00;//8个数码管同时显示
P2=table[i];//数码管显示数码0
delayms(1000);//延时5ms
}
void num()
CJNE R2,#10,LOOP ;只要数小于10就继续循环显示
MOV R2,#00H;如果加到10后重新从0开始
LJMP LOOP;进入循环函数
;******************************************
TAB1:DB 0C0H,0F9H,0A4H,0B0H,99H;数组
MOV R2,#0
AJMP LOOP
;******************************************
TAB1:DB 0C0H,0F9H,0A4H,0B0H,99H ;数组
DB 92H,82H,0F8H,80H,90H
RET
;******************************************
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);
{
if(i<9)
i+id delayms(uint x)
单片机数码管显示实验心得
单片机数码管显示实验心得
一、实验介绍
本次实验是单片机数码管显示实验,通过单片机控制数码管的显示,
学习单片机的基本操作和编程技巧。
二、实验器材
1. 单片机开发板
2. 数码管模块
3. 杜邦线
三、实验原理
数码管是一种数字显示器件,由多个发光二极管组成。
常见的数码管
有共阳极和共阴极两种类型。
共阳极数码管的所有阳极都连接在一起,而共阴极数码管的所有阴极都连接在一起。
在控制数码管时,需要根
据具体情况选择合适的驱动方式。
四、实验步骤
1. 连接硬件:将数码管模块与单片机开发板通过杜邦线连接。
2. 编写程序:使用Keil C51软件编写程序,实现对数码管的控制。
3. 下载程序:将程序下载到单片机开发板中。
4. 调试程序:通过调试工具观察程序运行情况,并进行调试修改。
五、编程要点
1. 数字转换:将需要显示的数字转换为对应的七段码。
2. 位选控制:根据具体情况选择共阳极或共阴极驱动方式,并实现位选控制。
3. 时序控制:通过延时函数或定时器实现数码管的动态显示效果。
六、实验心得
本次实验让我深入了解了单片机的基本操作和编程技巧,对数码管的控制有了更深入的了解。
在编写程序过程中,我遇到了一些问题,如数字转换不正确、位选控制不准确等,通过查阅资料和调试程序最终得以解决。
同时,在进行实验前需要认真检查硬件连接是否正确,避免出现连接错误导致无法正常工作的情况。
总之,本次实验让我收获颇丰,对单片机编程有了更深入的理解和掌握。
单片机实验报告二-数码管显示实验
单片机实验报告二-数码管显示实验摘要:本实验使用单片机控制数码管的显示,在实验过程中通过学习单片机的GPIO口的编程,调试程序、调节电路来达到正确的显示效果。
最终按照要求实现了单片机控制数码管的计数器。
关键词:单片机、数码管、GPIO口、计数器一、实验介绍数码管是一种介于机械仪表和液晶显示器之间的电子显示器件,广泛应用于计时器、计数器、仪表等电子产品中。
本实验旨在通过单片机控制数码管的显示来加深对GPIO口的使用和调试程序的理解,同时了解数码管的原理。
本实验主要分为两部分:数码管显示基础实验和数码管控制开关实验。
通过这两部分的实验可以了解数码管的工作原理和单片机的基本控制方式。
二、实验原理2.1 数码管的基本原理数码管显示器将数字显示为一组符号,例如“0”到“9”。
表示不同数字的符号被编码成一个数字码。
七段数码管用一个七段数码字母来表示数字,如下表所示:| 数字 | a | b | c | d | e | f | g || ---- | - | - | - | - | - | - | - || 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 || 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 || 2 | 1 | 1 | 0 | 1 | 1 | 0 | 1 || 3 | 1 | 1 | 1 | 1 | 0 | 0 | 1 || 4 | 0 | 1 | 1 | 0 | 0 | 1 | 1 || 5 | 1 | 0 | 1 | 1 | 0 | 1 | 1 || 6 | 0 | 0 | 1 | 1 | 1 | 1 | 1 || 7 | 1 | 1 | 1 | 0 | 0 | 0 | 0 || 8 | 1 | 1 | 1 | 1 | 1 | 1 | 1 || 9 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |通过控制数码管的七个LED灯的亮灭,可以实现不同符号显示。
51单片机数码管显示实验报告
51单片机数码管显示实验报告实验目的:1.学习51单片机的编程方法和硬件连接方法;2.掌握使用51单片机驱动数码管显示的方法。
实验器材:1.51单片机开发板;2.公共阳极共阳向数码管一个;3.若干杜邦线。
实验原理:数码管是一种数字显示器件,由7个发光二极管和若干个选通器件构成。
每个发光二极管可以发出两种颜色的光,通常使用红色和绿色。
这篇实验报告以共阳数码管为例,共阳数码管的每个发光二极管的阳极都连接到电源VCC上,而七个阴极分别用来选择一些数字进行显示。
当要选择一些数码管显示时,需要对对应的阴极进行低电平使能,而使能其他阴极保持高电平,这样就可以通过控制每个数码管的阴极低电平使能来选择要显示的数字。
实验步骤:1.将51单片机开发板上的数码管连接到51单片机开发板的P1口和P0口上,连接方式如下图所示:```-----------------VCC-P0.0--,a,-----------------P0.1--,b,------P0.2--,c,---,数字2P0.3--,d,------P0.4--,e,------P0.5--,f,---,数字1P0.6--,g,------P0.7--,h,-----------------------P1.0P1.1```2. 在Keil µVision中新建工程,编写程序。
3.利用P0口控制数码管的阴极,利用P1口选择数码管要显示的数字。
4.在主程序中循环选择每个数码管,并通过P0口设置要显示的数字。
实验结果:```---------------------------------P1.0P1.1P0.6P0.7空空数字2数字1abcdefgh---------------------------------```实验结论:通过本次实验,学习了51单片机的编程方法和硬件连接方法,并掌握了使用51单片机驱动数码管显示的方法。
同时,还了解了数码管的工作原理和编程的基本步骤。
数码管动态显示实验报告
数码管动态显示实验报告数码管动态显示实验报告一、引言数码管是一种常见的电子显示器件,广泛应用于各种仪器仪表、计时器、计算器等电子设备中。
数码管动态显示实验是电子技术实验中的一项基础实验,通过控制数码管的亮灭状态,可以实现数字的显示。
本实验旨在通过实际操作,加深对数码管工作原理的理解,并掌握数码管的动态显示方法。
二、实验原理数码管是由多个发光二极管(LED)组成的,每个发光二极管代表一个数字或字符。
通过对发光二极管的亮灭状态进行控制,可以显示不同的数字或字符。
数码管一般采用共阳极或共阴极的方式接线,共阳极的数码管的阳极连接在一起,而共阴极的数码管的阴极连接在一起。
在动态显示实验中,采用的是共阳极数码管。
数码管的亮灭状态是通过控制数码管的阳极与地之间的电压差来实现的。
当某个数码管需要亮时,将其对应的阳极与地连接,电流通过发光二极管,使其发光。
当某个数码管需要灭时,将其对应的阳极与电源正极连接,断开与地的连接,发光二极管不通电,不发光。
三、实验步骤1. 准备实验所需材料:共阳极数码管、面包板、电阻、导线等。
2. 将数码管与面包板连接,确保连接正确,数码管的阳极连接到面包板的相应引脚。
3. 连接电路:将电源正极与数码管的共阳极连接,电源负极与面包板的地引脚连接。
4. 编写程序:根据控制数码管显示数字的逻辑,编写相应的程序。
5. 将程序下载到单片机中,通过单片机控制数码管的亮灭状态。
四、实验结果经过实验,我们成功实现了数码管的动态显示。
在程序的控制下,数码管可以显示不同的数字或字符,实现了数字的动态变化。
通过调整程序中的参数,可以实现不同的显示效果,如闪烁、滚动、循环等。
五、实验总结本次实验通过实际操作,加深了对数码管工作原理的理解。
通过编写程序,我们掌握了控制数码管动态显示的方法。
在实验过程中,我们遇到了一些问题,如数码管显示不正常、程序错误等,但通过仔细检查和调试,最终解决了这些问题。
通过这次实验,我们不仅学到了知识,还培养了动手实践和问题解决的能力。
单片机数码管动态显示实验报告
单片机数码管动态显示实验报告实验名称:单片机数码管动态显示实验实验目的:1.了解数码管的动态显示原理;2.掌握单片机控制数码管动态显示的方法;3.培养对数字信号处理的能力。
实验器材:1.STC89C52单片机开发板;2.DC560A数码管模块;3.连接线。
实验原理:数码管是由多个发光二极管组成的,每个数字在数码管上的显示方式是通过快速地轮流点亮数码管的每个段来实现的。
在本实验中,采用时分复用的方法控制数码管动态显示相关数字。
实验步骤:1.连接单片机和数码管模块。
将数码管的共阳或共阴引脚分别连接到单片机的相应IO口上,并接上合适的电阻。
将数码管的A~G引脚连接到单片机的相应IO口上。
2.编写程序代码。
程序主要功能是通过切换数码管的显示段和位,实现数码管动态显示。
4.打开电源,观察行程显示的效果。
实验结果:在实验中,通过编写程序控制单片机,成功实现了数字的动态显示。
数码管能够按顺序显示出所要显示的数字,并且在多个数码管之间进行切换,显示效果非常理想。
实验分析:1.数码管动态显示的原理是通过快速地轮流点亮每个段来实现的。
这个过程发生的速度非常快,人眼无法察觉到。
2.单片机的IO口输出高或低电平,控制数码管的亮灭。
通过逐位切换和循环控制,实现了数字的动态显示。
3.单片机的频率和控制方式对动态显示效果有一定影响。
适当调整程序中的延时时间和控制方式,可以改变数码管的显示效果。
实验总结:本实验通过对单片机数码管动态显示的实现,加深了对数码管原理和单片机控制的认识。
掌握了数字信号动态显示的基本原理和方法。
在今后的学习和工作中,这将有助于对数字信号处理和显示技术的更深入理解和应用。
实验拓展:可以尝试在实验中通过按键按下的方式改变数码管显示的数字,进一步扩展单片机的应用范围和实用性。
此外,还可以尝试改变数码管的显示效果,比如实现数码管的闪烁、呼吸灯等特殊效果。
这将对单片机的编程和数码管的控制提出更高的要求,同时也增加了实验的趣味性和实用性。
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单片机的定时器和中断,了解了动态数码管的驱动原理和程序设计方法,为后续更复杂的单片机实验和应用打下了基础。
单片机原理 数码管动态显示实验-单片机原理-实验报告
实验报告
(2014—2015 学年 第 2 学期)来自课程名称单片机原理
实验名称 数码管动态显示实验
专 业计算机科学与技术(非师范)
年级
2012 级
学号 47 姓名 王 秋
指导教师
杨烈君
实验日期
实验目的: 1. 巩固 Proteus 软件和 Keil 软件的使用方法 2. 学习端口输入输出的高级应用 3. 掌握 7 段数码管的连接方式和动态显示法 4. 掌握查表程序和延时等子程序的设计
于电路中采用共阳极的数码管,所以当 P2 端口相应的引脚为 0 时,对 应的数码管段点亮。程序中预设了数字 0-9 的段码。由于是让八个数码管 显示不同的数值,所以要用扫描的方式来实现。因此可定义扫描函数,接 到单片机的 P3 口。
在实验中,预设的数字段码表存放在数组 LedCode 中,由于段码表是 固定的,因此存储类型可设为 code.在 Proteus 软件中按照要求画出电路, 再利用 Keil 软件按需要实现的功能编写 c 程序,生成 Hex 文件,把 Hex 文件导到 Proteus 软件中进行仿真。
2、在“库”下拉菜单中,选中“拾取元件”(快捷键 P),分别选择以下元
件:AT89C51、CAP、CAP-ELEC、CRYSTAL、RESPACK-8。
3、构建仿真电路:
连接图
显示 1-8
时钟自动计时 连接图
红绿灯效果图 1 红绿灯效果图 2
4、创建一个 Keil 应用程序:新建一个工程项目文件;为工程选择目标器 件(AT89C52);为工程项目创建源程序文件并输入程序代码;保存创建的 源程序项目文件;把源程序文件添加到项目中。
实验内容:
数码管动态显示技术 要求实现:
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、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与接口技术
实验报告
实验题目:动态数码显示设计
指导老师:朱铭琳
班级:计算机科学与技术系1201班
姓名:王丹(2012100141)
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、学到了很多知识,自己进行了设计和实验,在实验中出现很多
问题,课下和同学交流及时的解决了实验中出现的问题。