数码管显示实验报告
数码管的显示的实验报告
数码管的显示的实验报告数码管的显示的实验报告引言:数码管是一种常见的数字显示装置,广泛应用于各种电子设备中。
本实验旨在通过实际操作,了解数码管的原理和工作方式,并通过一系列实验验证其显示效果和功能。
实验一:数码管的基本原理数码管是由多个发光二极管(LED)组成的,每个发光二极管代表一个数字或符号。
通过对不同的发光二极管进行点亮或熄灭,可以显示出不同的数字或符号。
本实验使用的是共阳数码管,即共阳极连接在一起,而阴极分别连接到控制芯片的输出引脚。
实验二:数码管的驱动电路为了控制数码管的显示,需要使用驱动电路。
常见的驱动电路有共阴极驱动和共阳极驱动两种。
本实验使用的是共阳极驱动电路。
驱动电路由控制芯片、电阻和电容组成。
控制芯片通过控制输出引脚的高低电平来控制数码管的点亮和熄灭。
实验三:数码管的显示效果通过控制芯片的输出引脚,可以实现数码管的显示效果。
本实验使用的是四位数码管,可以显示0-9的数字。
通过改变控制芯片输出引脚的电平,可以控制数码管显示不同的数字。
实验中通过编写程序,使数码管显示从0到9的数字循环显示,并通过按键控制数字的增加和减少。
实验四:数码管的多位显示除了显示单个数字外,数码管还可以实现多位显示。
通过控制不同位数的数码管,可以显示更多的数字或符号。
本实验使用的是四位数码管,可以同时显示四个数字。
通过编写程序,可以实现四位数码管的多位显示,例如显示当前时间、温度等信息。
实验五:数码管的亮度调节数码管的亮度可以通过改变驱动电路中的电阻值来实现。
本实验通过改变电阻值,调节数码管的亮度。
实验中通过编写程序,通过按键控制数码管的亮度增加和减少,从而实现亮度的调节。
结论:通过本次实验,我们深入了解了数码管的原理和工作方式。
数码管可以通过驱动电路的控制,实现数字和符号的显示。
同时,数码管还可以实现多位显示和亮度调节。
数码管作为一种常见的数字显示装置,具有广泛的应用前景,可以应用于各种电子设备中。
通过进一步的研究和实践,我们可以更好地利用数码管的功能,满足不同应用场景的需求。
实验报告格式 3-数码管显示实验
实验报告格式 3-数码管显示实验实验报告一、实验目的1. 学习如何使用数码管,并能实现数码管的显示2. 了解基本的数字显示方式,可以显示0~9的十进制数字二、实验原理数码管是一种在电子显示器中用来表示数字和其他字符的一种元件。
数码管又称LED 数码管或数字显示管,其主要功能是在打击某一输入触发器时,接到其输出端的数字会正常的显示在数码管上。
在本实验中,我们使用7段共阳数码管,7段共阳数码管由7个发光二极管组成,每个发光二极管通过与阴极接触制停止电流,结束发光。
因此,为了让数码管亮起来,必须将数码管的对应某一位的阴极端接地,同时将要显示的数码(即需要点亮的发光二极管)的阳极端与电源相连。
三、实验器材和实验步骤1. 实验器材数字计数器、7个共阳数码管、4026计数器集成电路2个、电磁继电器、电源和多根杜邦线。
2. 实验步骤(1) 将实验器材按照实验原理连接起来,具体如下图所示:(2) 实验电路接通电源,通过数字计数器发出个、十、百位的计数信号,信号由两个数字计数器发出,计数器的数量可以根据自己的需要进行添加或减少。
(3) 分别连接7个共阳数码管的7个端口,通过对应的杜邦线分别连接到2个4026计数器集成电路中的CLOCK端口,其中一个4026计数器集成电路的RESET端口连接电磁继电器。
(4) 根据需求,调整数字计数器的数据代码,在7个共阳数码管中正确显示出计数器计数的数码。
(5) 实验结束,关闭电路电源。
四、实验结果及分析本实验需要的器材比较简单,难度较小并且有初步的操作指南,实验过程中调整计数器的数据代码,可以从实验中学到如何控制数码管数字显示、数据代码调整等一系列操作,虽然实验难度较低,但重在理解数码管的使用过程以及计数器的工作原理。
在实验结束后,数码管正确显示出了计数器计数的数码。
五、实验小结本实验中,使用了数字计数器、7个共阳数码管、4026计数器集成电路、电磁继电器、电源和多根杜邦线,实验中主要学习了如何使用数码管,能够实现数码管的显示,了解基本的数字显示方式,可以显示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.实验原理:数码管是由许多发光二极管(LED)组成的,每个数码管有7个发光二极管组成7段,再加上一个小数点(或8段数码管),通过控制每个发光二极管的亮灭状态,可以显示出数字、字母等字符。
本实验使用的是共阴极数码管,在通常情况下,数码管引脚为低电平时亮灯,为高电平时灭灯。
3.实验器材:-STC89C52单片机-共阴极数码管-电阻-面包板及连接线-电源4.实验步骤:步骤1:连接电路将数码管的7个引脚分别连接到单片机的7个I/O引脚上,并通过电阻限流。
连接电路后,确认连接无误。
步骤2:编写程序使用C语言编写程序,实现数码管的动态显示。
可以使用延时函数和位操作函数控制数码管的亮灭,通过改变每个数码管引脚的高低电平状态,实现显示不同的数字、字母。
步骤4:实验观察与分析观察数码管的显示效果,通过改变程序中的参数,可以实现不同的显示效果。
5.实验结果与分析:经过实验,我们成功实现了数码管的动态显示。
通过编写程序,我们可以实现数码管显示数字、字母等不同的字符。
调整程序中的参数,可以实现不同的动态显示效果,如流水灯、闪烁等。
数码管的动态显示是通过改变每个数码管引脚的高低电平实现的,通过快速改变引脚电平状态的时间间隔,创建了肉眼无法察觉的视觉效果,从而实现了动态显示。
此外,通过实验我们还了解到了单片机控制数码管的原理和方法,加深了对单片机控制的理解。
6.实验总结:通过本实验,我们了解到了数码管的动态显示原理和方法,并通过编写程序,成功实现了数码管的动态显示。
同时,我们还巩固了单片机控制的知识,提高了自己的动手能力和问题解决能力。
在今后的学习和工作中,我们将进一步掌握数码管的使用方法,并能够将其应用于更加复杂的应用场景中,实现更多有趣的功能。
数码显示控制实验报告(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)动态扫描显示原理:动态扫描显示是通过依次点亮各个数码管,使多位数码管同时显示。
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显示器进行初始化和设置显示模式。
led数码管显示控制实验报告
led数码管显示控制实验报告实验名称:LED数码管显示控制实验实验目的:1.了解LED数码管及其工作原理。
2.学习如何控制LED数码管显示数字。
3.加强对单片机控制IO口的编程能力。
实验器材:1.STC89C52RC单片机开发板2.数码管(共阳、共阴)3.杜邦线实验原理:LED数码管是一种数字显示组件,在工业控制、计算机等领域都有广泛应用。
LED数码管在显示数字时,通过LED管来显示数字,根据不同的管脚状态,控制LED管的导通和隔离,间隔时间来控制亮和灭的时间,从而显示出不同的数字。
在STC89C52RC单片机上,通过控制IO的高低电平来控制数码管的显示。
当要显示的数字为0~9时,需要将相应的IO输出低电平,同时将其他IO输出高电平,从而实现数字的显示。
实验步骤:1.将共阳数码管的正极连接到P0口(注意极性),并将共阴数码管的负极连接到P0口(注意极性)。
2.将STC89C52RC单片机开发板连接到电源,将USB转串口线连接到电脑。
3.打开Keil uVision5软件,创建一个新工程,配置完工程后编写控制代码(具体代码见附录)。
4.编写完成后,将代码下载到单片机中,开始实验。
实验结果:成功实现了数字0到9的显示。
通过实验,我们了解了LED数码管的工作原理,学会了控制单片机IO口进行数字的显示,加强了对单片机编程的掌握能力。
附录:代码如下:```#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit dula = P2^6;sbit wela = P2^7;uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=114;y>0;y--);}void Display(){uchar i;for(i=0;i<10;i++){P0 = table[i]; dula = 0;dula = 1;delay(500);}}。
(完整word版)数码管动态显示实验报告
实验四数码管动向显示实验一一、实验要求1.在 Proteus 软件中画好 51 单片机最小核心电路,包括复位电路和晶振电路2.在电路中增加四个7 段数码管 ( 共阳 / 共阴自选 ), 将 P1 口作数据输出口与 7 段数码管数据引脚相连, P2.0~P2.3 引脚输出选控制信号3.在 Keil 软件中编写程序 , 采用动向显示法 , 实现数码管分别显示数字1,2, 3, 4二、实验目的1.坚固 Proteus 软件和 Keil 软件的使用方法2.学习端口输入输出的高级应用3.掌握 7 段数码管的连接方式和动向显示法4.掌握查表程序和延时等子程序的设计三.实验说明本实验是将单片机的P1 口做为输出口,将四个数码管的七段引脚分别接到至P1.7 。
由于电路中采用共阳极的数码管,因此当P1 端口相应的引脚为0 时,对应的数码管段点亮。
程序中预设了数字0-9 的段码。
由于是让四个数码管显示不同样的数值,因此要用扫描的方式来实现。
因此定义了scan 函数,接到单片机的p2.0 至在实验中,预设的数字段码表存放在数组TAB中,由于段码表是固定的,因此储藏种类可设为 code。
在 Proteus 软件中依照要求画出电路,再利用Keil软件按需要实现的功能编写 c 程序,生成 Hex 文件,把Hex 文件导到Proteus 软件中进行仿真。
为了可以更好的考据明验要求,在编写程序时需要延时0.5s ,能让人眼更好的分辨;89C51 的一个机器周期包括12 个时钟脉冲,而我们采用的是12MHz晶振,每一个时钟脉冲的时间是1/12us ,因此一个机器周期为 1us。
在 keil程序中,子函数的实现是用void delay_ms(int x),其中x为1时是代表1ms。
四、硬件原理图及程序设计〔一〕硬件原理图设计电路中 P1.0 到 P1.7 为数码管七段端口的控制口,排阻 RP1阻值为 220Ω,到为数码管的扫描信号。
数码管显示实验 实验报告
数码管显示实验实验报告一、实验目的本次数码管显示实验的主要目的是深入了解数码管的工作原理和显示控制方式,通过实际操作掌握数码管与微控制器的接口技术,并能够编写相应的程序实现各种数字和字符的显示。
二、实验原理数码管是一种由多个发光二极管组成的显示器件,常见的有共阴数码管和共阳数码管两种类型。
共阴数码管是将所有发光二极管的阴极连接在一起,当阳极接高电平时,相应的二极管发光;共阳数码管则是将所有发光二极管的阳极连接在一起,当阴极接低电平时,相应的二极管发光。
在控制数码管显示时,通常采用动态扫描的方式,即依次快速地给每个数码管的段选端送入相应的字形码,同时使位选端选通对应的数码管,利用人眼的视觉暂留效应,使人看起来好像所有数码管同时在显示。
三、实验设备与材料1、实验开发板2、数码管模块3、杜邦线若干4、电脑5、编程软件四、实验步骤1、硬件连接将数码管模块与实验开发板进行连接,确定好段选和位选引脚的连接。
检查连接是否牢固,确保电路无短路或断路现象。
2、软件编程打开编程软件,选择相应的开发板型号和编程语言。
定义数码管的段选和位选引脚。
编写控制程序,实现数字 0 到 9 的循环显示。
3、编译与下载对编写好的程序进行编译,检查是否有语法错误。
将编译成功的程序下载到实验开发板上。
4、观察实验现象接通实验开发板的电源,观察数码管的显示情况。
检查显示的数字是否正确,显示的亮度和稳定性是否符合要求。
五、实验结果与分析1、实验结果数码管能够正常显示数字 0 到 9,并且能够按照设定的频率循环显示。
显示的数字清晰、稳定,没有出现闪烁或模糊的现象。
2、结果分析程序编写正确,能够准确地控制数码管的段选和位选信号,实现数字的显示。
动态扫描的频率设置合理,既保证了显示的稳定性,又不会出现明显的闪烁。
六、实验中遇到的问题及解决方法1、问题数码管显示出现闪烁现象。
解决方法调整动态扫描的频率,增加扫描的速度,减少每个数码管的点亮时间,从而减轻闪烁现象。
实验四 七段数码管显示实验报告
实验四七段数码管显示实验一、实验目的掌握数码管显示数字的原理。
二、实验内容1.静态显示:数码管为共阴极,通过BCD码译码驱动器CD4511驱动,其输入端A~D输入4位BCD码,位码输入低电平选中。
按图4-1连接好电路,将8255的A口PA0~PA3与七段数码管LED1的BCD码驱动输入端A1~D1相连,8255的A口PA4~PA7与七段数码管LED2的BCD码驱动输入端A2~D2相连,8255的B口PB0~PB3与七段数码管LED3的BCD码驱动输入端A3~D3相连,8255的B口PB4~PB7与七段数码管LED4的BCD码驱动输入端A4~D4相连,8255的C口PC0~PC3分别与七段数码管LED4~LED4的位驱动输入端DG1~DG4相连。
编程从键盘上每输入4个0~9数字,在七段数码管LED4~LED4上依次显示出来。
图4-12.动态显示:数码管为共阴极,段码采用相同驱动,输入端加高电平,选中的数码管对应段点亮,位码采用同相驱动,位码输入端低电平选中,按图4-2连接好电路,图中只画了2个数码管,实际是8个数码管,将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~g相连(32TCI0模块上的J1连32LED8模块J2),8255的C口的PC0~PC7接七段数码管的段码驱动输入(32TCI0模块上的J3连32LED8模块J1),跳线器K1连2和3。
编程在8个数码管上显示“12345678”。
按任意键推出运行。
图4-2三、编程提示1.由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不用,编程时需要了解当前的微机使用那段IO地址并进行处理。
2.对实验内容1,七段数码管字型代码与输入的关系如下表:四、参考流程图1.实验内容一的参考流程图图4-3 2.实验内容二的参考流程图图4-4五、参考程序1.内容一的参考程序源程序清单如下:data segmentioport equ 0c400h-0280hio8255a equ ioport+288hio8255b equ ioport+289hio8255c equ ioport+28ahio8255k equ ioport+28bhled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1 db 0dh,0ah,'Input a num (0--9),other key is exit:',0dh,0ah,'$'bz db ?cz db 04hdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8255k ;使8255的A口为输出方式mov ax,80hout dx,alsss0: mov si,offset bzmov cx,04hsss1: mov dx,offset mesg1 ;显示提示信息mov ah,09hint 21hmov ah,01 ;从键盘接收字符int 21hcmp al,'0' ;是否小于0jl exit ;若是则退出cmp al,'9' ;是否大于9jg exit ;若是则退出sub al,30h ;将所得字符的ASCII码减30Hmov [si],al ;存入显示缓冲区inc si ;显示缓冲区指针加1dec cx ;判断输入满4个数字吗?jnz sss1 ;不满继续mov si,offset bz ;从显示缓冲区取第一个数字的BCD 码mov al,[si]and al,0fh ;屏蔽高四位暂存ALinc si ;显示缓冲区指针加1mov ah,[si] ;取第二个数字的BCD码到AHsal ah,4h ;右移4次到高四位add al,ah ;两个BCD码合并成一个字节mov bl,al ;暂存入BLinc simov al,[si] ;取第三个数字的BCD码and al,0fhinc simov ah,[si] ;取第四个数字的BCD码到AHsal ah,4hadd ah,almov al,ahmov dx,io8255a ;从8255的A口输出(后两个数字)out dx,almov al,blmov dx,io8255b ;从8255的B口输出(前两个数字)out dx,almov al,0f0hmov dx,io8255c ;从8255的C口输出位码out dx,almov dl,0ffhmov ah,06int 21hje sss0 ;有键按下则退出exit: mov ah,4ch ;返回int 21hcode endsend start2.内容二的参考程序源程序清单如下:data segmentioport equ 0C400h-0280hio8255c equ ioport+28ahio8255k equ ioport+28bhio8255a equ ioport+288hled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码buffer1 db 01h,02h,03h,04h,05h,06h,07h,08h ;存放要显示的十位和个位con db ? ;位码data endscode segmentassume cs:code, ds:datastart: mov ax,datamov ds,axmov dx,io8255k ;将8255设为A口C口输出mov al,80hout dx,alloop2: mov al,08h ;设置数码管位计数器初值到CON mov byte ptr con,almov si,offset buffer1 ;置显示缓冲器指针SImov ah,7fh ;置位码初值disp0: mov cx,0ffffhmov bl,ds:[si] ;取显示缓冲区显示值存BXmov bh,0hpush simov dx,io8255c ;位码从C口输出mov al,ahout dx,almov dx,io8255amov si,offset led ;置led数码表偏移地址为SIadd si,bx ;求出对应的led数码mov al,byte ptr [si]out dx,al ;段码从A口输出disp1: loop disp1 ;延时mov cx,0ffffhdisp2: loop disp2ror ah,01h ;位码右移1位pop siinc si ;显示缓冲区指针加1mov al,byte ptr condec almov byte ptr con,aljnz disp0 ;数码管位计数器减1为0吗?,不为0继续mov dx,io8255a ;为0,关数码管显示mov al,0out dx,almov dl,0ffhmov ah,06int 21hje loop2 ;有键按下则退出mov ah,4ch ;返回int 21hcode endsend start实验总结:通过这次试验,我了解到自定义数据类型可以根据自己的需要方便设定,有很大的灵活性。
数码管显示实验报告
数码管显示实验报告数码管显示实验报告引言:数码管是一种常见的数字显示设备,广泛应用于各种计数、计时和显示系统中。
本实验旨在通过实际操作,了解数码管的工作原理和使用方法,并探索其在电子领域中的应用。
实验原理:数码管是由多个发光二极管组成的,每个发光二极管代表一个数字或字母。
通过控制发光二极管的亮灭来显示不同的字符。
数码管通常分为共阳极和共阴极两种类型,其差别在于亮灭控制信号的电平极性。
实验步骤:1. 准备实验材料:数码管、电路连接线、电阻、开关、电源等。
2. 按照电路图连接电路:将数码管的引脚与其他元件连接,确保电路正确无误。
3. 接通电源,观察数码管的显示效果:根据电路连接的不同,数码管将显示不同的数字或字母。
4. 通过改变电路中的元件参数,如电阻的阻值、开关的状态等,观察数码管的显示变化:可以发现数码管的亮度、显示内容等会随之改变。
实验结果与分析:经过实验,我们发现数码管的显示效果与电路连接方式、元件参数等因素密切相关。
当数码管为共阳极时,需要给对应的引脚施加高电平信号才能使其亮起;而当数码管为共阴极时,则需要给对应的引脚施加低电平信号才能使其亮起。
此外,数码管的亮度也与电阻的阻值有关。
通过改变电阻的阻值,我们可以调节数码管的亮度,使其适应不同的环境要求。
数码管还可以通过组合显示不同的字符。
例如,通过同时点亮数码管的多个发光二极管,我们可以显示出数字、字母、符号等。
这为数码管的应用提供了更多的可能性。
应用领域:数码管广泛应用于各个领域,如计时器、计数器、温度显示器、电子钟等。
在计算机硬件中,数码管也常用于显示硬盘容量、CPU温度等信息。
结论:通过本次实验,我们深入了解了数码管的工作原理和使用方法,并通过实际操作探索了其在电子领域中的应用。
数码管作为一种常见的数字显示设备,具有简单、可靠、易于控制等优点,在现代电子技术中扮演着重要的角色。
通过进一步的研究和应用,我们可以更好地利用数码管的特性,推动电子技术的发展。
数码管的动态显示实验报告
数码管的动态显示实验报告数码管的动态显示实验报告一、引言数码管是一种常见的数字显示器件,广泛应用于计算机、电子仪器和仪表等领域。
本实验旨在通过动态显示的方式,展示数码管的工作原理和应用。
二、实验目的1. 了解数码管的基本结构和工作原理;2. 学习使用单片机控制数码管进行动态显示;3. 掌握数码管的编码方式和显示原理。
三、实验器材和原理1. 实验器材:数码管、Arduino开发板、面包板、杜邦线等;2. 实验原理:数码管是由多个发光二极管组成的,每个发光二极管可以通过控制其阳极和阴极来实现亮灭。
通过快速切换不同的发光二极管,可以实现数码管的动态显示。
四、实验步骤1. 连接电路:将数码管的阳极和阴极分别连接到Arduino开发板的数字输出引脚和地线上;2. 编写程序:使用Arduino开发环境,编写程序控制数码管的动态显示;3. 上传程序:将编写好的程序上传到Arduino开发板;4. 运行实验:观察数码管的动态显示效果。
五、实验结果和分析经过实验,我们成功实现了数码管的动态显示。
通过控制不同的数字和显示时间间隔,我们可以展示各种数字、字母、符号等。
数码管的动态显示效果生动鲜明,能够吸引人的注意力。
六、实验心得通过本次实验,我深入了解了数码管的工作原理和应用。
数码管作为一种常见的显示器件,在现代电子领域扮演着重要的角色。
掌握数码管的编码方式和显示原理,对于今后的学习和工作都具有重要意义。
七、实验应用数码管广泛应用于各种计算机和电子设备中,如电子钟、电子秤、数字仪表等。
其动态显示效果可以提高用户体验,增加信息传递效果。
同时,数码管的低功耗、易控制等特点也使其成为电子产品中不可或缺的一部分。
八、实验展望数码管作为一种显示器件,随着科技的发展,其在分辨率、显示效果、节能等方面还有很大的发展空间。
未来,我们可以期待更加智能化、高清晰度的数码管产品的出现,为人们的生活和工作带来更多的便利和乐趣。
九、结论通过本次实验,我们深入了解了数码管的动态显示原理和应用。
数码管实验报告
数码管实验报告数码管实验报告引言:数码管是一种常见的电子显示器件,广泛应用于各种电子设备中。
本实验旨在通过对数码管的实际操作,了解其工作原理以及应用场景。
一、实验目的通过本次实验,我们的目标是掌握数码管的基本原理和使用方法,进一步了解数字电路的工作原理,并能够通过搭建简单的电路实现数字显示。
二、实验器材和原理实验所需器材包括:数码管、电阻、开关、电源等。
数码管是一种由发光二极管组成的显示器件,它可以显示数字0-9。
电阻用于限流,开关用于控制电路的通断,电源为实验提供所需的电能。
数码管的工作原理是通过控制发光二极管的通断状态来实现数字的显示。
数码管一般由7个发光二极管组成,其中6个用于显示数字的每个段,而第7个用于显示小数点。
通过控制不同的发光二极管通断,可以显示不同的数字或符号。
三、实验步骤1. 搭建基本电路:将数码管与电阻、开关、电源连接起来,保证电路的通断正常。
2. 确定数码管的工作电压:通过调节电源电压,观察数码管的亮度变化,找到最适合的工作电压。
3. 实现数字的显示:通过对不同的发光二极管通断的控制,依次显示数字0-9。
4. 实现数字的循环显示:通过控制开关的状态,使得数字可以按照一定的顺序不断循环显示。
5. 实现小数点的显示:通过控制第7个发光二极管的通断状态,实现小数点的显示。
四、实验结果和分析通过实验,我们成功地搭建了数码管电路,并实现了数字的显示和循环显示。
在调节电源电压的过程中,我们发现数码管的亮度会随着电压的增加而增加,但当电压过高时,数码管可能会受损,因此需要找到一个合适的工作电压。
在实现数字的显示和循环显示的过程中,我们发现通过对不同的发光二极管通断的控制,可以显示不同的数字。
而通过控制开关的状态,可以实现数字的循环显示,使得显示的数字可以按照一定的顺序不断变化。
通过实验,我们还成功地实现了小数点的显示。
通过控制第7个发光二极管的通断状态,我们可以在数字显示的基础上添加小数点,实现更加丰富的显示效果。
数码管实验报告实验原理(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. 了解数码管的工作原理和驱动方式。
单片机数码管动态显示实验报告
单片机数码管动态显示实验报告单片机数码管动态显示实验报告一、实验目的本实验旨在通过单片机控制数码管的动态显示,掌握单片机的基本操作和数码管显示原理,培养实际动手能力和编程技能。
二、实验原理数码管是一种常用的电子显示器件,通过单片机控制可以实现数字、字母等多种形式的显示。
本实验采用共阴极数码管,通过单片机控制选通哪个LED灯亮,从而在数码管上显示出相应的数字或字母。
三、实验步骤1.硬件搭建首先,将单片机、数码管、电源等硬件连接起来。
注意数码管的引脚与单片机的连接方式,确保正确连接。
2.编程环境设置打开单片机编程软件,如Keil uVision等,配置相应的编译器和调试器选项。
3.编写程序在编程环境中,编写程序以实现数码管的动态显示。
本实验采用C语言进行编程。
程序主要包括初始化、显示函数等。
4.编译程序将编写的程序进行编译,生成可执行文件。
5.调试程序通过调试器对程序进行调试,观察数码管的显示效果是否符合要求。
如有问题,及时修改程序并重新编译和调试。
6.测试结果确保程序运行无误后,对数码管的显示效果进行测试,观察是否达到预期效果。
四、实验结果与分析1.实验结果通过本次实验,我们成功实现了单片机对数码管的动态显示。
在数码管上成功显示了数字和字母,效果良好。
2.结果分析通过本次实验,我们深入了解了单片机的基本操作和数码管显示原理。
同时,我们也学会了如何编写程序、编译和调试程序。
此外,我们还学会了如何解决实验过程中遇到的问题。
这些技能对于后续的电子设计和开发具有重要意义。
五、实验总结与展望1.实验总结本次实验通过单片机控制数码管的动态显示,我们成功掌握了单片机的基本操作和数码管显示原理。
在实验过程中,我们学会了如何编写程序、编译和调试程序。
同时,我们也学会了如何解决实验过程中遇到的问题。
这些技能对于后续的电子设计和开发具有重要意义。
2.实验展望在本次实验的基础上,我们可以进一步探索如何实现更复杂的显示效果,如多位数码管的动态显示、彩色显示等。
数码管动态显示实验报告
数码管动态显示实验报告数码管动态显示实验报告一、引言数码管是一种常见的电子显示器件,广泛应用于各种仪器仪表、计时器、计算器等电子设备中。
数码管动态显示实验是电子技术实验中的一项基础实验,通过控制数码管的亮灭状态,可以实现数字的显示。
本实验旨在通过实际操作,加深对数码管工作原理的理解,并掌握数码管的动态显示方法。
二、实验原理数码管是由多个发光二极管(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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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(V6.85I)烧写应用程序
3、Keil应用程序
四、实验内容(算法、程序、步骤和方法):
#include<STC15F2K60S2.h> //此文件中定义了STC15系列的一些特殊功能寄存器
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit TM1668R_DIO_H = P4^4; //左边数码管宏定义
sbit TM1668R_CLK_H = P2^0;
sbit TM1668R_STB_H = P2^1;
sbit TM1668L_DIO_H = P2^2; //左边数码管宏定义
sbit TM1668L_CLK_H = P2^3;
sbit TM1668L_STB_H = P2^4;
sbit LIGHT = P0^1;
uchar Today_data[8];
uint temp,kk;
const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void Send_Data(uchar dat,uchar n);
void DIS_data_1668(uchar data1,uchar data2,uchar data3,uchar data4,uchar n);
/****************************************************************************** *
* 函数名: Send_Data
* 函数功能: TM1668发送一字节数据函数
* 输入: 无
* 输出: 无
******************************************************************************/ void Send_Data(uchar dat,uchar n)
{
uchar i;
for(i = 0;i<8;i++) //1个字节
{
if(n==0)
TM1668R_CLK_H = 0;
else
TM1668L_CLK_H = 0;
if(dat&(1<<i))
{
if(n==0)
TM1668R_DIO_H = 1;
else
TM1668L_DIO_H = 1;
}
else
{
if(n==0)
TM1668R_DIO_H = 0;
else
TM1668L_DIO_H = 0;
}
_nop_();
_nop_();
_nop_();
_nop_();
if(n==0)
TM1668R_CLK_H = 1;
else
TM1668L_CLK_H =1;
}
}
void DIS_data_1668(uchar data1,uchar data2,uchar data3,uchar data4,uchar n) {
if(n==0)
TM1668R_STB_H = 0;
else
TM1668L_STB_H = 0;
Send_Data(0x00,n); //设置显示模式4位13段
if(n==0)
TM1668R_STB_H = 1;
else
TM1668L_STB_H = 1;
_nop_();
_nop_();
_nop_();
_nop_();
if(n==0)
TM1668R_STB_H = 0;
else
TM1668L_STB_H =0;
Send_Data(0x40,n); // 写数据自动地址加一
if(n==0)
TM1668R_STB_H = 1;
else
TM1668L_STB_H = 1;
_nop_();
_nop_();
_nop_();
_nop_();
if(n==0)
TM1668R_STB_H = 0;
else
TM1668L_STB_H = 0;
Send_Data(0xc0,n); //发送地址指令从0x00开始
_nop_();
_nop_();
Send_Data(data1,n);
Send_Data(0x00,n);
Send_Data(data2,n);
Send_Data(0x00,n);
Send_Data(data3,n);
Send_Data(0x00,n);
Send_Data(data4,n);
Send_Data(0x00,n);
if(n==0)
TM1668R_STB_H = 1;
else
TM1668L_STB_H = 1;
_nop_();
_nop_();
_nop_();
_nop_();
if(n==0)
TM1668R_STB_H = 0;
else
TM1668L_STB_H = 0;
Send_Data(0x88,n);
if(n==0)
TM1668R_STB_H = 1;
else
TM1668L_STB_H = 1;
}
/****************************************************************************** *
* 函数名: Timer0Init
* 函数功能: 定时器0初始化
* 输入: 无
* 输出: 无
******************************************************************************/
void Timer0Init(void) //25微秒@11.0592MHz
{
AUXR |= 0x80; //定时器时钟1T模式1T和12T模式选择
TMOD &= 0xF0; //设置定时器模式
TL0 = 0xEC; //设置定时初值
TH0 = 0xFE; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1; //使能定时器0 IE.1
EA = 1; //使能全局中断IE.7
}
/****************************************************************************** *
* 函数名: main
* 函数功能: 主函数
* 输入: 无
* 输出: 无
******************************************************************************* /
void main(void)
{
Timer0Init();
LIGHT = 1;
while(1)
{
DIS_data_1668(table[6],table[1],table[0],table[2],0);
DIS_data_1668(table[1],table[5],table[0],table[8],1);
}
}
五、实验结论(结果):
本实验实现了XXX功能,核心算法采用了XXX的方式,达到了预期目的。
六、实验心得与小结:
(自行填写,如:功能是否实现;整个过程中存在哪些问题;如何解决的….)。