微机原理LED 显示大作业实验报告

合集下载

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 的接线图。

led数码显示实验报告

led数码显示实验报告

led数码显示实验报告
LED数码显示实验报告
实验目的:
通过本次实验,我们旨在探究LED数码显示器的工作原理及其在电子设备中的应用。

通过实际操作,加深对LED数码显示技术的理解,提高实验者对数字电路的设计和测试能力。

实验器材:
1. LED数码显示器
2. 电源
3. 逻辑开关
4. 电阻
5. 万用表
6. 连接线
实验步骤:
1. 将LED数码显示器连接到电源上,观察LED显示器的工作状态。

2. 使用逻辑开关控制LED数码显示器的显示内容,观察LED数码显示器的显示变化。

3. 通过改变电阻的阻值,调节LED数码显示器的亮度,观察LED数码显示器的亮度变化。

4. 使用万用表测量LED数码显示器的电压和电流,记录测量结果。

实验结果:
通过实验观察和测量,我们得出以下结论:
1. LED数码显示器能够根据输入的逻辑信号进行数字显示,显示内容可通过逻辑开关控制。

2. 通过改变电阻的阻值,可以调节LED数码显示器的亮度,但应注意不要超过LED数码显示器的最大工作电压和电流。

3. LED数码显示器的工作电压和电流与其显示状态有关,需要根据具体情况进行测量和计算。

实验结论:
LED数码显示器是一种常见的数字显示设备,具有低功耗、高亮度、长寿命等优点,广泛应用于数字电子设备中。

通过本次实验,我们深入了解了LED数码显示器的工作原理和特性,为今后的电子设计和测试工作奠定了基础。

同时,我们也加深了对数字电路和电子元器件的理解,提高了实验者的实践能力和动手能力。

希望通过本次实验,能够为大家对LED数码显示技术有更深入的了解和应用提供帮助。

微机接口原理--实验一 LED点阵显示实验

微机接口原理--实验一 LED点阵显示实验

② CPU与外设之间设臵接口的理由
CPU与外设两者的信号线不兼容,在信号线功能定义、逻 辑定义和时序关系上都不一致; 工作速度不一致,CPU速度高,外设速度低;
不通过接口,由CPU直接对外设操作实施控制,就会使 CPU处于应付与外设打交道之中,大大降低CPU效率;
若外部设备直接由CPU控制,也会使外设的硬件结构依赖 于CPU,对外设本身的发展不利。 因此,有必要设臵接口电路,作为CPU与外设之间的桥梁, 使数据信息传送之前能有“联络”,传递的信息有3方面内 容: 状态、数据及控制信息。
③选择F. 纯DOS模式&PURE DOS MODE ;
④选择盘符C盘,执行auto.bat批处理文件,启动BC; ⑤通过project菜单,打开已建立的工程文件,即可进行 程序的调试和运行等工作。 ⑥ 或者直接在DOS下,选择D盘,找到Led.EXE,执
行,即可在实验箱看到实验结果。
Borlandc 调试、运行界面
五、本单元实验要求
实验讲义中的程序1为 LED点阵显示汉字“实”的主程序; 本实验单元的要求为:
1. 修改该程序,让LED点阵从下至上滚动显示“实验室”字样;
2. 画出所编程序的流程图; 3. 给出程序修改部分的源代码;
4. 认真回答思考题,并附在实验报告里。
实验一 LED 点阵显示实验
主要内容
预备知识 锁存器(74LS273)的工作原理 汉字点阵取模的方法和原理 开发环境的设臵和使用方法
一、预备知识
1、计算机接口技术概述
① 意义
微机接口(Interface)就是微处理器CPU与各种外设之间的连接电路, 学习它需要掌握微机原理、汇编语言(或高级语言)程序设计、电 子技术、自控原理以及通信技术等多门课程的基础理论和专业知识。 随着集成电路集成化的不断增高,电子计算机向微型化方向发展, 已成为导弹、智能机器人、卫星等复杂系统必不可少的智能部件。 目前,微机不仅作为科学计算、实时监控、现代化通信和管理的手 段,而且也成为人类进行学习、看病、咨询、购物、旅游等生活服 务和娱乐的工具。 在微机系统中,微处理器的功能是通过外设得以实现,而外设与微 处理器之间的信息交换及通信又是靠接口来实现的。因此,微机应 用系统的研究和微机化产品的开发,从硬件角度来讲,就是接口电 路的研究和开发,接口技术已成为直接影响微机系统的功能和微机 推广应用的关键。微机的应用是随着外部设备的不断更新和接口技 术的发展而深入到各个领域的。因此,掌握微机接口技术就成为当 代的科技和工程技术人员应用微型计算机必不可少的基本技能。

微机原理实验1-LED显示实验

微机原理实验1-LED显示实验
XXH(2Y0):输出口,用作后两位LED显示译码驱动器4511 的锁存使能信号. XXH(2Y1):输出口, 用作前两位LED显示译码驱动器4511 的锁存使能信号. XXH(2Y3):输出口, 用作4位小数点锁存器74LS273的 控制CLK信号. (汇编语言中的out指令可以实现输出功能)

4位LED显示的操作为:
2Y1选中左边两个数码管
2Y0选中右边两个数码管
2Y3选中四个小数点
此处的8,4,2,1表示每 一位的权值,如果该位 亮,则加上该值
根据需要,小数点可以多位同时显示( 0~4位)
在LED上如何显示数字
1,要显示数字0,1,…,9的任一个,则送出 相应数字对应的十六进制数即可.例如要显示 12 12,则向EPP数据端口37CH送出12H; EPP 37CH 12H; 2,如果送出的数字为0AA~0FFH, 则LED灭;

LED显示实验电路 实验箱主板上的四位共阴极LED显示器采 用四片CD4511(BCD-七段锁存译码器) 来驱动 .其原理图如下:
CD4511
2Y1 D4~D7 D0~D7 2Y1
CD4511
2Y0 D0~D3
CD4ห้องสมุดไป่ตู้11
2Y0 D4~D7
CD4511
74LS273
2Y3
D0~D3
D0~D3
本实验共用到的端口地址及其功能介绍

LED显示演示程序
1,初始化EPP接口(即向控制寄存器写 初始化字节) MOV AL, 04H MOV DX, 37AH OUT DX, AL ;EPP初始化
LED显示演示(续)
2,选择外部设备(即向EPP地址端口写设备地 址) MOV AL, XXH MOV DX, 37BH OUT DX, AL ;选中左边两个LED

微机原理综合实验报告(LED横向滚动显示(方向修改)、电子钟修改实验)

微机原理综合实验报告(LED横向滚动显示(方向修改)、电子钟修改实验)

微机原理上机实验报告综合实验:1.LED 16x16点阵显示实验竖向显示改横向显示2.电子钟功能修改微机原理综合实验报告综合实验1:LED 16x16点阵竖向显示改横向显示实验一、实验目的1、熟悉8255的功能,了解点阵显示的原理及控制方法;2、学会使用LED点阵,通过编程显示不同字符;3、认真预习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。

二、实验内容1、编写程序,用B4区的二片74HC273控制16X16点阵的行;8255的PA、PB口控制16X16点阵的列;显示字符。

2、按图连接线路;运行程序,观察实验结果,学会编程控制LED点阵显示字符。

三、实验原理图四、实验步骤2、运行程序,观察实验结果。

运行演示程序将会看到字符“欢迎使用星研实验仪”在点阵上自下而上循环移动显示。

五、实验代码对实验六中的代码做一定的修改,将原程序中使LED显示屏从上至下显示的功能改为从左至右滚动显示有框线部分为修改部分ADDR_8255_PA EQU 270H ;8255 PA口ADDR_8255_PB EQU 271H ;8255 PB口ADDR_8255_C EQU 273H ;8255控制口ADDR_273 EQU 230H ;IO区74HC273(16位I/O)LINE EQU A DDR_273 ;行线1, 行线2ROW1 EQU A DDR_8255_PA ;列线1ROW2 EQU A DDR_8255_PB ;列线2_STACK SEGMENT STACKDW 1024 DUP(?)_STACK ENDS_DATA SEGMENT WORD PUBLIC 'DATA'HUANDB 00H,0C0H,00H,0C0H,0FEH,0C0H,07H,0FFH,0C7H,86H,6FH,6CH,3CH,60H,18H,60HDB 1CH,60H,1CH,70H,36H,0F0H,36H,0D8H,61H,9CH,0C7H,0FH,3CH,06H,00H,00HYINGDB 60H,00H,31H,0C0H,3FH,7EH,36H,66H,06H,66H,06H,66H,0F6H,66H,36H,66HDB 37H,0E6H,37H,7EH,36H,6CH,30H,60H,30H,60H,78H,00H,0CFH,0FFH,00H,00HSHIDB 00H,00H,06H,30H,07H,30H,0FH,0FFH,0CH,30H,1FH,0FFH,3BH,33H,7BH,33HDB 1BH,0FFH,1BH,33H,19H,0B0H,18H,0E0H,18H,60H,18H,0FCH,19H,8FH,1FH,03HYONGDB 00,0,1FH,0FEH,18H,0C6H,18H,0C6H,18H,0C6H,1FH,0FEH,018H,0C6H,18H,0C6HDB 18H,0C6H,1FH,0FEH,18H,0C6H,18H,0C6H,30H,0C6H,30H,0C6H,60H,0DEH,0C0H,0CCH XINGDB 00H,00H,1FH,0FCH,18H,0CH,1FH,0FCH,18H,0CH,1FH,0FCH,01H,80H,19H,80HDB 1FH,0FEH,31H,80H,31H,80H,6FH,0FCH,01H,80H,01H,80H,7FH,0FFH,00H,00HYANDB 00H,00H,0FFH,0FFH,18H,0CCH,18H,0CCH,30H,0CCH,30H,0CCH,7FH,0FFH,7CH,0CCH DB 0FCH,0CCH,3CH,0CCH,3CH,0CCH,3DH,8CH,3DH,8CH,33H,0CH,06H,0CH,0CH,0CHSHI0DB 01H,80H,00H,0C0H,3FH,0FFH,3CH,06H,67H,0CCH,06H,0C0H,0CH,0C0H,07H,0C0HDB 06H,0C0H,7FH,0FFH,00H,0C0H,01H,0E0H,03H,30H,06H,18H,1CH,1CH,70H,18HYAN0DB 00H,00H,0FCH,60H,0CH,60H,6CH,0F0H,6CH,0D8H,6DH,8FH,6FH,0F8H,7EH,00HDB 06H,0C6H,07H,66H,3FH,0ECH,0E7H,0ECH,06H,18H,1FH,0FFH,0CH,00H,00H,00HYIDB 0CH,0C0H,0CH,60H,18H,7CH,1BH,6CH,33H,0CH,73H,18H,0F1H,98H,31H,98HDB 30H,0F0H,30H,0F0H,30H,60H,30H,0F0H,31H,98H,33H,0FH,3EH,06H,30H,00HNONEDB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00HCHANGE_RESULTDB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H_DATA ENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE, DS:_DATA,SS:_STACKMOV AX,_DATAMOV DS,AXNOPCALL INIT_IOCALL TEST_LED ;调用测试子程序,测试LED是;显示一个16*16点阵字子程序,字型码放在DPTR指出的地址DISP_CH PROC NEAR ;把每个汉字的32个字节读完PUSH CXMOV CX,8DISP_CH_1:CALL DISP1LOOP DISP_CH_1POP CXRETDISP_CH ENDP;显示一个16*16点阵字子程序,字型码放在显示缓冲区XBUFFDISP1 PROC NEARPUSH SIPUSH CXMOV CX,16MOV BL,0FEHMOV BH,0FFHREPEAT:MOV AX,BXOUT LODSBCALL ADJUSTMOV DX,ROW1OUT DX,ALLODSBCALL ADJUSTMOV DX,ROW2OUT DX,ALCALL DL10MSCALL CLEARSTCRCL BL,1RCL BH,1LOOP REPEATPOP CXPOP SIRETDISP1 ENDPINIT_IO PROC NEARMOV AL,80HOUT RETINIT_IO ENDPCLEAR PROC NEARMOV AX,0FFFFHMOV DX,LINEMOV AL,0MOV OUT DX,ALMOV DX,ROW2OUT DX,ALRETCLEAR ENDP;测试LED子程序,点亮LED并延时1STEST_LED PROC NEARMOV DX,LINEXOR AX,AXOUT DX,AXMOV AL,0FFHMOV DX,ROW1OUT DX,ALMOV DX,ROW2OUT DX,ALCALL DL500msCALL DL500msRETTEST_LED ENDP;调整AL中取到的字型码的一个字节,将最高位调整位最低位,最低位调整为最高位ADJUST PROC NEARPUSH CXMOV CX,8ADJUST1:RCL AL,1XCHG AL,AHRCR AL,1XCHG AL,AHLOOP ADJUST1MOV AL,AHPOP CXRETADJUST ENDPDL10ms PROC NEARPUSH CXMOV CX,133LOOP $POP CXRETDL10ms ENDPDL500ms PROC NEARPUSH CXMOV CX,0FFFFHLOOP $POP CXRETDL500ms ENDPSTART ENDPCODE ENDSEND STARTCODE SEGMENTSTART PROC NEARASSUME CS:CODE, DS:_DATA,SS:_STACKMOV AX,_DATAMOV DS,AXMOV ES,AXNOPCALL INIT_IOCALL TEST_LED实验十四:电子钟一、实验目的进一步熟悉8253、8259、8279二、实验内容1、使用8253定时功能,产生0.5S的定时中断给82592、在F5区的数码管上显示时间3、允许设置时钟初值三、实验步骤2、运行程序,按F5区的F键,设置时钟初值。

led显示实验报告

led显示实验报告

led显示实验报告LED显示实验报告引言:LED(Light Emitting Diode)即发光二极管,是一种能够将电能转化为光能的半导体器件。

由于其低功耗、长寿命和高亮度等优点,LED在各个领域得到广泛应用。

本实验旨在探究LED显示的原理和应用,并通过实验验证LED的工作特性。

一、LED的工作原理LED的工作原理基于半导体材料的光电效应。

当电流通过半导体材料时,电子与空穴结合,释放出能量。

这些能量以光的形式辐射出来,形成可见光。

LED 的发光颜色取决于半导体材料的能带结构,不同的材料会发出不同波长的光。

二、LED的结构和组成LED由多个组件构成,包括P型半导体、N型半导体和发光材料。

P型半导体富含正电荷,N型半导体富含负电荷。

当P型和N型半导体通过电极连接时,形成PN结。

发光材料位于PN结的中心位置,当电流通过PN结时,发光材料受到激发,发出光线。

三、LED的实验装置本实验所用的实验装置包括电源、电阻、LED和万用表。

电源提供电流,电阻用于限制电流的大小,万用表用于测量电流和电压。

四、实验步骤1. 将电源的正极与LED的长脚连接,负极与电阻连接,再将电阻的另一端与LED的短脚连接。

2. 打开电源,调节电阻的阻值,观察LED的亮度变化。

3. 使用万用表测量电流和电压的数值,记录下来。

4. 更换LED的颜色,重复步骤2和3。

五、实验结果与分析通过实验,我们观察到LED的亮度随电流的增大而增大,但当电流过大时,LED会烧坏。

这是因为LED的亮度与电流成正比,但LED的工作电流有一个上限。

当电流超过这个上限时,LED无法散热,导致烧毁。

因此,在实际应用中,需要根据LED的参数选择合适的电流值。

此外,我们还发现LED的亮度与电压无直接关系,LED的工作电压是一个固定值。

当电压低于工作电压时,LED无法正常发光;当电压高于工作电压时,电流会剧增,导致LED烧毁。

因此,合理控制电压的大小也是保证LED正常工作的重要因素。

微机原理 LED灯实验

微机原理 LED灯实验

实验5 可编程并行接口8255芯片一.实验目的1.了解8255芯片的结构和功能2.掌握8255初始化程序的设计方法3.学会8255和CPU信号的连接方法4.重点掌握方式0的控制字和A,B,C端口的使用二.实验内容1.实验4的第3个内容用8255方式0实现,其中A口输入,B口输出DATA SEGMENTLED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HIOA EQU 200HIOB EQU 202HIOC EQU 206HIOCON EQU 206HDATA ENDSCODE SEGMENT PUBLICASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DX,AXMOV DX,IOCONMOV AL,10010000BOUT DX,ALMOV BX,OFFSET LEDREP1:MOV DX,IOBMOV AL,0C0HOUT DX,ALMOV AL,01HMOV SI,1MOV CX,10LOP1:READ1:MOV DX,IOAIN AL,DXTEST AL,01HJNZ READ1READ2:MOV DX,IOAIN AL,DXTEST AL,01HJZ READ2MOV AX,SIXLATMOV DX,IOBOUT DX,ALINC SILOOP LOP1JMP REP1CODE ENDSEND START实验结果为按一下按钮,数码管跳变一次,从1到9,到9后再按输出0,循环下去。

2.完成8255方式1选通式查询输出,要求采用查询式输出,不断检测输出缓冲区满信号OBF,当OBF为高电平时,轮流电亮8个LED灯。

DATA SEGMENTORG 0100HLED DB 01HIOA EQU 200HIOB EQU 202HIOC EQU 204HIOCON EQU 206HDATA ENDSCODE SEGMENT PUBLICASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV DX,IOCONMOV AL,10100000BOUT DX,ALNEXT:MOV DX,IOAMOV AL,LEDOUT DX,ALMOV DX,IOAWAIT_A:MOV DX,IOCIN AL,DXTEST AL,10000000BJZ WAIT_AROL LED,1CALL DELAYJMP NEXTDELAY PROC NEARPUSH BXPUSH CXMOV BX,200LP1:MOV CX,496LP2:LOOP LP2DEC BXJNZ LP1POP CXPOP BXRETDELAY ENDPCODE ENDSEND START实验结果为按一次按钮,LED灯从左到右点亮一盏,如果按住按钮不松开,则LED 灯自动从左向右循环点亮。

微机原理实验1-LED显示实验

微机原理实验1-LED显示实验

实验一基于EPP接口的LED显示一、实验目的1.掌握EPP接口的输入/输出及读/写操作。

-2.熟悉整个综合实验板的地址分配。

3.掌握七段LED显示器与硬件的接口方法。

4. 熟悉LED显示操作。

二、实验任务1.分析实验电路图,指出各输入/输出口地址。

2.编写LED显示的程序并调试通过。

三、实验原理本实验板上的LED可以显示四位数字,实验的原理图如图1-8所示。

数据线图1-8 七段LED显示原理图七段LED显示器由a、b、c、d、e、f、g及小数点h八个发光二极管构成。

根据内部结构可分为共阴、共阳两种方式,如图所示。

七段显示器可显示16进制数(0~F),还可显示部分英文字母和专用字符。

对于共阴方式,下面列出了16进制数0~F的七段代码:表1-3 七段LED显示代码根据所要显示的字符到显示代码的转换,可由硬件来完成。

本实验电路用CD4511(BCD-七段锁存译码器)来完成代码转换。

LED显示驱动方式可分为静态和动态两种,在静态显示方式下,每一位七段显示占用一个8位输出口。

而在动态显示方式下,若干个显示位共用一个输口,根据人眼视觉残余效应快速的逐位显示(扫描),而达到感觉上连续显示的效果。

因此,静态显示的硬件开销较大,而软件简单,一般用于显示位数少的场合;动态显示的硬件较简单,因为需要进行动态扫描而软件较复杂,一般用于显示位数较多的场合。

本实验电路板采用的是静态显示的方法,动态显示大家有兴趣可以去查相关资料。

如图1-8 所示的四位静态LED显示原理图,前两位的锁存使能来自同一个信号ADO1,数据的高四位送入第一位的锁存译码器中,低四位送入第二位的锁存译码器中;后两位的锁存使能来自同一个信号ADO0,数据的高四位送入第三位的锁存译码器中,低四位送入第四位的锁存译码器中。

因此每次同时点亮两位LED。

ADO3为用于控制小数点的4位锁存器4076的时钟信号,数据的低四位用来选择点亮哪一位小数点。

本实验电路共用到了三个端口地址:0x00H:ADO0(输出口),用作后两位显示译码驱动器4511的锁存使能信号。

led数码显示实验报告

led数码显示实验报告

led数码显示实验报告LED数码显示实验报告引言:在现代电子技术领域中,LED(Light Emitting Diode)作为一种重要的光电器件,被广泛应用于数码显示、照明和通信等领域。

本实验旨在通过对LED数码显示的实验研究,深入了解其工作原理和特性。

一、实验目的本实验的主要目的是通过实际操作,掌握LED数码显示的原理和应用。

具体目标包括:1. 理解LED数码显示的基本工作原理;2. 掌握LED数码显示的驱动电路设计;3. 学会使用Arduino等开发板进行LED数码显示的控制。

二、实验原理1. LED数码显示的基本工作原理LED数码显示是利用LED的发光特性,通过控制不同的LED点亮或熄灭,来显示数字或字符。

每个LED都是由一个发光二极管和一个驱动电路组成。

当驱动电路给LED提供足够的电流时,LED会发光。

而当电流不足时,LED则熄灭。

2. LED数码显示的驱动电路设计LED数码显示的驱动电路通常采用多路复用方式。

以共阳极七段数码管为例,其驱动电路设计如下:- 使用NPN型晶体管作为开关,控制每个LED的点亮和熄灭;- 使用限流电阻限制LED的电流,避免过流损坏;- 使用Arduino等开发板产生控制信号,实现对LED数码显示的控制。

三、实验步骤1. 准备实验材料和设备,包括七段数码管、NPN型晶体管、限流电阻、Arduino开发板等;2. 按照电路图连接实验电路,确保连接正确无误;3. 编写Arduino程序,控制各个LED的点亮和熄灭,实现数字显示;4. 上传程序到Arduino开发板,并观察LED数码显示的效果;5. 调整程序,实现不同数字或字符的显示。

四、实验结果与分析通过实验,我们成功实现了LED数码显示的控制。

通过编写程序,我们可以控制每个LED的点亮和熄灭,从而实现数字或字符的显示。

同时,我们还观察到LED数码显示的亮度和颜色随电流的变化而变化。

通过调整限流电阻的值,我们可以控制LED的亮度,而通过改变驱动电流的方向,我们可以改变LED的颜色。

led 显示控制实验报告

led 显示控制实验报告

led 显示控制实验报告LED显示控制实验报告引言:LED(Light Emitting Diode)是一种半导体器件,具有发光效果,广泛应用于各种电子设备和照明领域。

在本次实验中,我们将研究和探索LED显示控制的相关技术和原理。

一、实验目的本次实验的目的是通过控制LED的亮度和颜色,实现不同的显示效果。

通过实验,我们将学习和掌握LED显示控制的基本原理和方法。

二、实验材料1. Arduino开发板2. LED灯3. 面包板4. 电阻5. 连接线三、实验步骤1. 搭建电路:将LED灯连接到Arduino开发板的数字引脚上,并通过电阻限流。

2. 编写代码:使用Arduino IDE编写代码,控制LED的亮度和颜色。

3. 上传代码:将编写好的代码上传到Arduino开发板。

4. 运行实验:通过修改代码中的参数,观察LED的亮度和颜色变化。

四、实验结果与分析通过实验,我们发现LED的亮度和颜色可以通过控制电流和PWM(脉冲宽度调制)信号来实现。

1. 控制亮度:通过改变电流的大小,可以调节LED的亮度。

当电流增大时,LED的亮度也随之增大;当电流减小时,LED的亮度也随之减小。

这是因为LED的亮度与电流呈线性关系。

2. 控制颜色:通过控制RGB(红绿蓝)三种颜色的亮度,可以实现LED的颜色变化。

通过改变RGB三个通道的PWM信号的占空比,可以调节每种颜色的亮度。

例如,当R通道的PWM信号占空比为100%,G通道和B通道的PWM信号占空比为0%,LED显示的颜色就是纯红色;当R通道和G通道的PWM信号占空比都为100%,B通道的PWM信号占空比为0%,LED显示的颜色就是黄色。

五、实验总结通过本次实验,我们了解了LED显示控制的基本原理和方法。

LED的亮度和颜色可以通过控制电流和PWM信号来实现。

在实际应用中,LED显示控制技术被广泛应用于各种领域,如室内照明、汽车灯光、电子屏幕等。

掌握LED显示控制技术对于我们深入理解和应用电子技术具有重要意义。

微机原理与接口技术-键盘LED显示【课程设计报告】

微机原理与接口技术-键盘LED显示【课程设计报告】

微机原理与接口技术-键盘LED 显示【课程设计报告】重庆大学课程设计报告课程名称:微机原理与接口技术设计题目:键盘LED显示院系:电气信息学院班级:2007级设计时间:2009年12月第一章概述 (2)1.1学习目的 (2)1.2 计算机的应用 (3)1.3学习计算机的意义 (3)1.4课程设计目的 (4)第二章总体方案设计 (4)2.1 设计注意问题 (4)2.2 总体思路 (5)第三章硬件设计 (5)3.1 8255工作原理 (5)3.2 键盘工作原理 (7)3.3 键特征值的形成 (8)3.4段值的形成 (9)3.5 8255接线图 (11)第四章软件设计 (12)4.1 8255初始化 (12)4.2 键盘扫描的处理方法 (12)4.2.1. 判断是否有键被按下的方法 (12)4.2.2. 判断是否有键被按下的源程序 (13)4.2.3 防抖动 (13)4.2.4.防抖动的延时子程序 (14)4.3 程序核心部分 (14)4.3.1 逐行扫描 (14)4.3.2逐行扫描的源程序 (15)第五章源程序代码 (15)5.1 根据整体思路以及软件设计得到的代码. 155.2 以上代码存在问题分析 (19)第六章难点分析 (20)第七章体会感慨建议 (25)第八章参考文献 (26)第一章概述1.1学习目的“微机原理与接口技术”是电气工程及其自动化专业的一门重要的专业基础课程。

我们通过该门课的学习,知道了微机的工作原理,微型计算机的基本结构,接口技术及汇编语言程序设计,为后续的课程的学习和今后的工作打下坚实的基础。

通过实验可以培养学生利用计算机技术和编程手段分析,解决专业领域的各种问题的能力和意识,并进一步感受微机发展的微机发展的新技术和新方法。

1.2 计算机的应用目前计算机的应用已经遍布各个行业,如科学计算、数据处理、过程控制、人工智能、网络应用等。

科学和工程计算:科学和工程计算的特点是计算量大,而逻辑关系相对简单,它是计算机重要应用领域之一。

2020年实验四LED数码管显示实验报告

2020年实验四LED数码管显示实验报告

《微机实验》报告7实验名称 LED数码管显示实验指导教师曹丹华专业班级光电122班姓名陈敬人学号联系电话一、任务要求实验目的理解LED七段数码管的显示控制原理,掌握数码管与MCU的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。

实验内容基础部分利用C851F31单片机控制数码管显示器。

利用末位数码管循环显示数字-F,显示切换频率为1Hz。

提高部分在数码管上显示→199计数,计数间隔为.5秒。

设计思路基础部分C851F31单片机片上晶振为25MHz,采用8分频后为625MHz ,输入时钟信号为48个机器周期,T1采用定时器工作方式1,单次定时最长可达27s,可以实现1s定时要求。

定时采用软件查询工作方式,利用JNB TF, HERE实现。

置P.6和P.7端口为,位选信号选定末位数码管。

通过MOVC A, @A+DPTR指令,利用顺序查表法取出显示段码数据。

寄存器R自增1,并赋给A以取出下一个显示段码数据。

为减短代码长度,利用CJNE指令实现循环结构。

当寄存器R增至FH后,跳转至开头,重新开始下一轮显示。

提高部分定时方式及查表方式同基础部分,由于要实现三个数码管同时显示,因此采用动态扫描显示法。

三、资源分配基础部分P.6: 位选信号端口P.7 位选信号端口P1 输出段码数据R 存放显示数据DPTR 指向段码数据表首提高部分P.6 位选信号端口P.7 位选信号端口R 存放个位显示数据R5 存放十位显示数据R6 存放百位显示数据P1 输出段码数据DPTR: 指向段码数据表首四、流程图基础部分提高部分五、源代码(含文件头说明、语句行注释)基础部分;******************基础部分源代码*************************** ;Filename: test.asm;Decription: 末位数码管循环显示数字-F,显示切换频率为1Hz。

;Designed by: 陈敬人;Date: 2119;;- Generated Initialization File --;$include (C851F31.inc)ORG HLJMP MAINORG 1HMAIN: LCALL Init_Device ;设备初始化MOV SP, #4H ;合理设置堆栈位置MOV DPTR, #TABLE ;DPTR指向段码数据表首MOV TMOD, #1H ;定时器T工作方式1 MOV TH, #6H ;赋计数初值,定时1s MOV TL, #C6HCLR P.6 ;位选信号,选定末位数码管亮CLR P.7START: MOV R, #HMOV A, R ;取显示数据MOVC A, @A+DPTR ;查表取段码数据MOV P1, A ;送显示数据SETB TR ;启动定时器HERE: JNB TF, HERE ;等待定时CLR TR ;停止定时CLR TF ;溢出位清零MOV TH, #6H ;重装计数初值MOV TL, #C6HCJNE R, #FH, CHANGE ;判断数据是否显示完毕,未完则跳转至CHANGE SJMP START ;显示完毕,重新开始CHANGE: INC RMOV A, R ;取下一个显示数据MOVC A, @A+DPTR ;查表取段码数据MOV P1, A ;送输出显示数据SETB TR ;重新启动定时器SJMP HERETABLE: DB FCH, 6H, DAH ;段码数据表DB F2H, 66H, B6HDB BEH, EH, FEH, F6HDB EEH, 3EH, 1AHDB 7AH, 9EH, 8EH; Peripheral specific initialization functions,; Called from the Init_Device labelPCA_Init:anl PCAMD, #BFh。

计控实验报告LED动态显示

计控实验报告LED动态显示

计控实验报告LED动态显示第一篇:计控实验报告LED动态显示实验 LED动态显示主要教学目标:掌握LED动态显示的方法。

教学的方法及教学手段:讲授法,讨论法,练习法,实验法教学重点及难点:LED动态显示实验内容1.LED用动态显示123456;2.时间切换开关K1,可切换动态扫描时间间隔,1ms和50ms。

(一)作法微型机定时地对显示器件扫描。

显示器件分时工作,每次只能有一个器件显示。

1.LED用动态显示123456;2.时间切换开关K1,可切换动态扫描时间间隔,1ms和50ms。

(二)1、8155 的PA口输出显示码,PB口用来输出位选码。

2、74LS07为6 位驱动器,为LED提供一定的驱动电流3、8155的PB 口经75452缓冲器/驱动器反向后,作为位控信号。

4、75452内部包括两个缓冲器/驱动器,它们各有两个输入端。

(三)显示原理 1、8155初始化,建立显示缓冲区为 DISBUF, 存放待显示数据。

2、用软件译码法求出待显示的数对应的七段显示码,由PA口输出,并经过74LS07驱动后送到各显示器3、由PB口输出位选码。

各位从左至右依次显示,每个数码管显示1ms。

显示完最后一位数后,再重复上述过程,(四)电路图(五)参考程序#include #include #include #define uint unsigned int #define uchar unsigned char /*8155控制字和PA,PB 口地址定义*/ #define CON_8155 XBYTE[0x7F00] #define PA_8155 XBYTE[0x7F01] #define PB_8155 XBYTE[0x7F02] //数码管字型定义uchar LEDDATA[]={0x3F,/*0*/0x06, /*1*/0x5B, /*2*/0x4F, /*3*/0x66, /*4*/0x6D, /*5*/0x7D, /*6*/0x07, /*7*/0x7F, /*8*/0x6F, /*9*/0x77, /*A*/0x7C, /*b*/0x39,/*C*/0x5E,0x79,0x71,};/*d*/ /*E*/ /*F*/ //动态扫描时间间隔50ms标志位bit g_delay50ms = 0;//函数原型声明void Delay1ms(void);void Delay50ms(void);void main(){uchar i, selectLED;IT0 = 1;EX0 = 1;EA = 1;CON_8155 = 0x03;selectLED = 0x20;while(1){for(i=1;i<7;i++){PA_8155 = LEDDATA[i];PB_8155 = selectLED;//从8155 A口输出显示码//PA口、PB口基本输入输出 //LED位选,从左到右扫描//外部中断0,边沿触发//从8155 B口输出位选码//准备显示下一位selectLED = _cror_(selectLED, 1);if(selectLED == 0x80){ }if(g_delay50ms){ } else { } PB_8155=0x00;//消隐 Delay1ms();Delay50ms();selectLED = 0x20;//动态扫描时间间隔50ms//动态扫描时间间隔1ms} } }void Int0(void)interrupt 0 { } void Delay1ms(void){ uchar i, j, k;for(j=142;j>0;j--)for(i=1;i>0;i--)} void Delay50ms(void){unsigned char a,b;for(b=173;b>0;b--)for(a=143;a>0;a--);}for(k=2;k>0;k--);g_delay50ms =!g_delay50ms;第二篇:六位7段LED显示器动态显示任务:利用8155的PA口和PB口实现6位7段LED显示器动态显示(硬件电路参见6XLED_8155.DSN)。

led 显示控制实验报告

led 显示控制实验报告

led 显示控制实验报告LED显示控制实验报告引言:LED(Light Emitting Diode)是一种半导体发光器件,具有高效、耐用、节能等特点,广泛应用于显示屏、照明等领域。

本实验旨在研究LED显示控制的原理和方法,进一步探索其在实际应用中的优势和限制。

一、LED显示控制原理LED显示控制的原理主要包括两个方面:电路控制和信号控制。

电路控制是指通过电路设计和布线来实现LED的亮度和颜色控制;信号控制是指通过输入特定信号来控制LED的显示内容。

1. 电路控制LED的亮度控制可以通过调节电流的大小来实现。

一般情况下,使用恒流源电路来驱动LED,通过改变电流源的电流大小来控制LED的亮度。

此外,还可以通过PWM(Pulse Width Modulation)技术来实现对LED亮度的调节,即通过改变LED的通断比例来改变其亮度。

LED的颜色控制可以通过调节不同颜色的LED的亮度来实现。

通常,使用RGB (Red, Green, Blue)三原色的LED来实现全彩LED显示,通过调节三种颜色的亮度来实现对各种颜色的显示。

2. 信号控制LED的信号控制主要包括输入信号的形式和处理方式。

常见的输入信号形式有数字信号和模拟信号两种。

数字信号是通过二进制代码来表示,可以通过编程控制来改变LED的显示内容;模拟信号是通过连续的变化来表示,可以通过模拟电路来处理和控制。

LED的信号处理方式包括静态显示和动态显示。

静态显示是指LED显示内容不变,一直保持在某种状态;动态显示是指通过改变显示内容,实现LED的动态效果,如滚动、闪烁等。

二、LED显示控制实验方法本实验采用Arduino开发板作为控制器,通过编程控制LED的亮度和颜色,并实现LED的动态显示。

1. 硬件准备准备一块Arduino开发板、LED模块、面包板、杜邦线等硬件设备。

将LED模块连接至面包板上,并将面包板与Arduino开发板通过杜邦线连接。

2. 软件编程使用Arduino开发环境进行编程,编写控制LED亮度和颜色的程序代码。

微机原理数码显示实验报告

微机原理数码显示实验报告

广东海洋大学寸金学院学生实验报告书实验名称数码显示课程名称微机原理与接口技术系机电工程系专业机械设计制造及其自动化班级14机械2班学生姓名陈瑞玲学号20141032102 实验地点实验楼103 实验日期一、实验目的:了解LED数码管动态显示的工作原理及编程方法。

二、实验内容:编制程序,使数码管显示“GOOD88”字样。

三、实验结果:实验程序框图实验步骤联机模式:(1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击S6.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。

(2)数码管显示“GOOD88”字样。

脱机模式:1、在P.态下,按SCAL键,输入2DF0,按EXEC键。

2、数码管显示“GOOD88”字样。

实验程序清单CODE SEGMENT ;S6.ASM display "GOOD88"ASSUME CS:CODEORG 2DF0HSTART: JMP START0PA EQU 0FF20H ;字位口PB EQU 0FF21H ;字形口PC EQU 0FF22H ;键入口BUF DB ?,?,?,?,?,?data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH,0F0HSTART0: CALL BUF1 ;缓冲区写初值CON1: CALL DISP ;调显示子程序JMP CON1 ;循环DISP: MOV AL,0FFH ; 位码MOV DX,PA ;数码管字位口OUT DX,AL ;关位码MOV CL,0DFH ; 最高位位码;显示子程序 ,5msMOV BX,OFFSET BUF ;取缓冲区首址DIS1: MOV AL,[BX] ;取缓冲区数字MOV AH,00H ;清零PUSH BX ;压栈MOV BX,OFFSET DATA1 ;字表首址ADD BX,AX ;加偏移量MOV AL,[BX] ;取字形代码POP BX ;出栈MOV DX,PB ;字形口OUT DX,AL ;送字形码MOV AL,CL ;取位码MOV DX,PA ;位口OUT DX,AL ;送位口PUSH CX ;压栈DIS2: MOV CX,00A0H ;点亮延时LOOP $POP CX ;出栈成绩指导教师日期第页,共页。

微机原理实验四LED数码管显示实验

微机原理实验四LED数码管显示实验

微机原理实验四LED数码管显示实验LED数码管显示实验是微机原理中的一项重要实验,通过该实验可以学习到数码管的工作原理以及如何通过控制数字信号来实现数字的显示。

本文将详细介绍实验所需材料和步骤,并解析实验原理。

一、实验材料1.STM32F407开发板2.数码管模块3.面包板4.连接线5.杜邦线二、实验原理数码管是一种能够显示数字的装置,它由七个发光二极管组成,分别代表数字0-9、通过控制这七个发光二极管的亮灭,可以显示出不同的数字。

在实验中,我们使用STM32F407开发板来控制数码管。

数码管模块通过引脚与STM32F407开发板进行连接,其中共阴数码管的引脚与开发板的GPIO引脚相连,通过控制GPIO引脚的高低电平来控制数码管的亮灭。

三、实验步骤1.在面包板上连接数码管模块。

将数码管模块的引脚与STM32F407开发板的相应引脚通过杜邦线连接。

具体连接方式可以参考数码管模块和开发板的引脚定义。

2. 打开STM32CubeMX软件,创建一个新工程。

选择适合的开发板型号,并进行引脚配置。

将引脚配置为通用输出模式,并将相应的引脚定义为控制数码管的引脚。

3. 在生成的代码中找到main.c文件,在其中添加控制数码管的代码。

首先需要引入相应的头文件,并定义控制数码管的引脚宏定义。

4. 在main函数中,初始化控制数码管的引脚为输出模式。

然后通过控制引脚的高低电平来实现数码管的亮灭。

四、实验结果与分析经过以上步骤,我们成功控制了数码管的显示。

数码管显示的数字由控制引脚的高低电平确定,通过改变控制引脚的电平可以实现不同的数字显示。

值得注意的是,数码管的亮灭是通过切换引脚的电平来实现的,当引脚为高电平时,数码管熄灭;反之,当引脚为低电平时,数码管亮起。

在实际应用中,可以通过编写代码来改变控制引脚的电平,从而实现字母、字符、动画等更加复杂的显示效果。

五、实验总结本次实验通过控制STM32F407开发板的GPIO引脚,成功实现了LED数码管的显示。

实验报告——LED显示控制

实验报告——LED显示控制

实验一LED显示控制一、硬件介绍1)C28X芯片提供了56个多功能引脚,用户可以将这些引脚作为片内外设的输入输出引脚,当不使用片内外设时,也可以将他们作为数字I/O口。

本实验是将其用作GPIO口,如图1所示。

图1 GPIO口应用2)74HC164是一个8位的串并行数据转换的芯片,其时序图如图2所示。

图2 74164工作时序图由图2知,输入端A和B相与是74HC164的输出,若输入信号只有一个(A端),则可以将其中一个输入端置1(B端),则可将输入的串行信号(A端)转化成并行输出(QA--QH)。

CLEAR是低电平有效的复位信号,即CLEAR为低电平时,输出端(QA—QH)全部置0,其为高电平时芯片可正常工作。

CLOCK是上升沿有效的时钟信号,即每来一个上升沿,输入的数据就会传一位,输出端QA会输出最新的输入信号,而QB则重复前一个时钟的QA,QC则重复前一个时钟的QB,……待满8个上升沿时,一个输入的8位串行数据就被转换成8位的并行数据输出。

3)8×8 LED的显示模块如图3所示。

图3 8×8 LED的显示模块由图3可知,若要是LED正常发光,将LED的正向加高电平,负向加低电平即可。

显示图像或字可通过动态扫描得到结果。

二、硬件连接实验模块控制模块G LED DISPLAY A DSP SECTIONLED_A2(J32) SPISIMOA(J34)LED_B2(J32) SPISOMIA(J34)CLKIN2(J32) SPICLKA(J34)/CLR2(J32) SPISTEA(J34)LED_A1(J5) PWM7(J35)LED_B1(J5) PWM8(J35)/CLKIN1(J5) PWM9(J35)/CLR1(J5) PWM10(J35)除此之外,通过用跳线头短接J6(G LED DISPLAY )的VCC和U2VCC为LED DISPLAY 模块供电。

用跳线头短接J61(A DSP SECTION)的GND和1DIR以及J62(A DSP SECTION)的GND 和2DIR,将A DSP SECTION模块的缓冲设为输出。

(完整版)LED数码管显示实验

(完整版)LED数码管显示实验

® P L 信息工程学院实验报告课程名称:单片机原理及接口 实验项目名称:LED 数码管显示实验 实验时间:2016年3月11 班级:通信141姓名:学号:一、 实验目的:熟悉keil 仿真软件、proteus 仿真软件、软件仿真板的使用 多位LED 数码管的电路结构、与单片机的连接方法及其应用原理。

学习proteus 构建LED 数码管显示电路的方法,掌握C51中单片机控制LED 数码管动态显示的原理与编程方法。

二、 实验设备与器件硬件:微机、单片机仿真器、单片机实验板、连线若干软件:KEIL C51单片机仿真调试软件,proteus 系列仿真调试软件三、 实验原理LED 显示器是由发光二极管显示字段的显示器件。

在单片机应用系统中通常使用的是七 段LED 这种显示器有共阴极与共阳极两种共阴极LED 显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发 光二极管则点亮;共阳极LED 显示器的发光二极管阳极并接。

七段LED 数码管与单片机连接时,只要将一个 8位并行输出口与显示器的发光二极管引成绩:日 ___________________指导老师(签名):了解并熟悉一位数码管与1 1 1 1 110 98 7 6/d / * dp 1 2 34 5I' 2 1 11(c)管脚配置(b)共阳极 g f a be d c dp脚相连即可。

8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制 发光二极管的8位字节数据称为段选码。

多位七段LED 数码管与单片机连接时将所有 LED 的段选线并联在一起,由一个八位I / O 口控制,而位选线分别由相应的I /O 口线控制。

如:8位LED 动态显示电路只需要两个八位 I /O 口。

其中一个控制段选码,另一个控制位选。

由于所有位的段选码皆由一个I /0控制,因此,在每个瞬间,多位LED 只可能显示相同 的字符。

要想每位显示不同的字符,必须采用动态扫描显示方式。

微机原理实验四LED数码管显示实验_图文(精)

微机原理实验四LED数码管显示实验_图文(精)

实验名称 LED数码管显示实验指导教师专业班级姓名学号联系方式一实验要求:实验四 LED数码管显示实验实验目的:理解LED七段数码管的显示控制原理,掌握数码管与MCU的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。

实验内容:利用C8051F310单片机控制数码管显示器基本要求:利用末位数码管循环显示数字0-F,显示切换频率为1Hz。

提高要求:在数码管上显示0→199计数,计数间隔为0.5秒。

二、设计思路1 基本要求:对F310信号频率进行8分频,再对定时器进行48分频,以使在一次定时时间范围内实现1s定时。

采用查询方式进行定时。

P0.6,P0.7作为位选信号来一直选择末位数码管输出信号。

再利用R0作为相对寻址来储存数据并赋值给A。

通过MOVCA, @A+DPTR指令,利用顺序查表法取出显示段码数据。

寄存器R0自增1,并赋给A以取出下一个显示段码数据。

2 提高要求:依然对信号频率八分频,对定时器进行48分频,通过P0,6,P0.7进行位控选择数码管输出,定时器定时0.5s,当溢出时进入中断,并通过中断程序将段位控制按序加一,R3,R6,R7分别储存第一第二第三位数码管段位码,利用A 为中间变量,通过P1输出储存的值,查表输出数码管值,达到119时结束。

三、资源分配1 基本要求:P0.6: 位选信号端口P0.7:位选信号端口P1:输出段码数据R0:存放显示数据DPTR:指向段码数据表首2 提高要求:P0.6: 位选信号端口P0.7:位选信号端口P1:输出段码数据DPTR:指向段码数据表首R3,R6,R7:分别储存第三第二第一位数码管数据四、流程图1 基本要求2 提高要求: 主程序接--2 提高要求:动态扫描程序中断程序五、源代码(含文件头说明、语句行注释1 基本要求:ORG 0000HLJMP MAINORG 0100HMAIN:LCALL Init_DeviceMOV SP,#40HMOV DPTR,#TAB ;将DPTR地址指向表头MOV TMOD,#01H ;定时器采用T0定时方式一MOV TH0,#06H ;定时器赋予初值MOV TL0,#0C6HCLR P0.6 ;选择末位数码管CLR P0.7START:MOV R0,#00H ;赋初值0CLR AMOVC A,@A+DPTR ;查表输出MOV P1,ASETB TR0 ;定时器开始工作HERE:JNB TF0,HERE ;等待溢出CLR TR0CLR TF0MOV TH0,#06H ;重新赋予初值MOV TL0,#0C6HCJNE R0,#0FH,NEXT ;等待末位数码管到FSJMP STARTNEXT:INC R0 ; R0加一MOV A,R0MOVC A,@A+DPTRMOV P1,A ;P1输出SETB TR0SJMP HERE ;踏步org 1000hTAB:DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H DB0FEH,0E6H,0EEH,3EH,1AH,7AH,9EH,8EH;------------------------------------;- Generated Initialization File --;------------------------------------$include (C8051F310.incpublic Init_DeviceINIT SEGMENT CODErseg INIT; Peripheral specific initialization functions, ; Called from the Init_Device label PCA_Init:anl PCA0MD, #0BFhmov PCA0MD, #000hretTimer_Init:mov 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, Push-Pull, Digital ; P1.1 - Unassigned, Push-Pull, Digital ; P1.2 - Unassigned, Push-Pull, Digital ; P1.3 - Unassigned, Push-Pull, Digital ; P1.4 - Unassigned, Push-Pull, Digital ; P1.5 - Unassigned, Push-Pull, Digital ; P1.6 - Unassigned, Push-Pull, Digital ; P1.7 - Unassigned, Push-Pull, 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 P1MDOUT, #0FFhmov P2MDOUT, #0C0hmov XBR1, #040hret; Initialization function for device,; Call Init_Device from your main program Init_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_InitretEND2 提高部分:ORG 0000HLJMP STARTORG 000BHLJMP TI00ORG 0300HSTART:LCALL Init_DeviceMOV R3,#00H ;百位数码管赋予初值MOV R6,#00H ;十位数码管赋予初值MOV R7,#01H ;个位数码管赋予初值MOV 60H,#00H ;设置位控码MOV 61H,#40HMOV 62H,#80HMOV TMOD, #01H ;选择定时器T0方式一SETB ET0 ;开外中断T0SETB EAMOV TH0, #131 ;定时器赋予初值MOV TL0, #99MAIN:LJMP DISP ;跳入动态输出子程序MAIN1:LCALL COUNTERAJMP MAIN ;重新扫描;=================动态输出子程序================== DISP:MOV SP,#30H ;设置堆栈指针MOV R1,#60H ;位选指针赋初值MOV P1,#00H ;灯全灭;=================LD0:MOV A,@R1 ;取出位选码ANL P0,#3FH ;将P0端口高两位置零(这样做的目的是为了避免用MOV指令影响到P0端口的低6位ORL P0,A ;输出位选信号MOV A,R7 ;取出段选码MOV DPTR,#TAB ;DPTR指向段选码表第一个数据MOVC A,@ A+DPTR ;查表,取出段选码MOV P1,A ;输出段选码LCALL DL1MS ;延时1ms,灯亮1msMOV P1,#00H ;灯全灭INC R1 ;位选指针加一MOV A,@R1 ;取出位选码ANL P0,#3FH ;将P0端口高两位置零(这样做的目的是为了避免用MOV指令影响到P0端口的低6位ORL P0,A ;输出位选信号MOV A,R6 ;取出段选码MOV DPTR,#TAB ;DPTR指向段选码表第一个数据MOVC A,@ A+DPTR ;查表,取出段选码MOV P1,A ;输出段选码LCALL DL1MS ;延时1ms,灯亮1msMOV P1,#00H ;灯全灭INC R1MOV A,@R1 ;取出位选码ANL P0,#3FH ;将P0端口高两位置零(这样做的目的是为了避免用MOV指令影响到P0端口的低6位ORL P0,A ;输出位选信号MOV A,R3 ;取出段选码MOV DPTR,#TAB ;DPTR指向段选码表第一个数据MOVC A,@ A+DPTR ;查表,取出段选码MOV P1,A ;输出段选码LCALL DL1MS ;延时1ms,灯亮1msMOV P1,#00H ;灯全灭LJMP MAIN1 ;返回主程序;===============延时1ms子程序=============ORG 0050HDL1MS:MOV R4,#4 ;延时程序通过R4,R5 实现D1:MOV R5,#253NOPDJNZ R5,$DJNZ R4,D1RETORG 0100HCOUNTER:SETB TR0 ;定时器开启RET;中断程序TI00:MOV TH0, #133 ;中断程序重新赋予初值MOV TL0,# 99INC R7 ;个位加一CJNE R7,#0BH,S1 ;判断个位是否进位MOV R7,#01H ;重新将个位归零CJNE R6,#00H,S2 ;判断此时十位是否显示MOV R6,#01H ;若不显示则开启显示S2:INC R6 ;十位加一CJNE R6,#0BH,S1 ;判断十位是否进位CJNE R3,#00H,S3 ;判断百位是否显示MOV R3,#01HS3:INC R3 ;百位加一MOV R6,#01H ;十位重新归零CJNE R3,#03H,S1 ;判断百位是否到2MOV P1,#00H ;如果到200则数码管全熄灭SJMP $ ;踏步停止S1:RETI ;中断返回ORG 0200H;===============段选码表==============;TAB: DB 00H,0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H; $include (C8051F310.incpublic Init_DeviceINIT SEGMENT CODErseg INIT; Peripheral specific initialization functions,; Called from the Init_Device labelPCA_Init:anl PCA0MD, #0BFhmov PCA0MD, #000hretTimer_Init:mov 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, Push-Pull, Digital ; P0.7 - Unassigned, Push-Pull, Digital; P1.0 - Unassigned, Push-Pull, Digital ; P1.1 - Unassigned, Push-Pull, Digital ; P1.2 - Unassigned, Push-Pull, Digital ; P1.3 - Unassigned, Push-Pull, Digital ; P1.4 - Unassigned, Push-Pull, Digital ; P1.5 - Unassigned, Push-Pull, Digital ; P1.6 - Unassigned, Push-Pull, Digital ; P1.7 - Unassigned, Push-Pull, 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 P0MDOUT, #0C0hmov P1MDOUT, #0FFhmov XBR1, #040hret; Initialization function for device,; Call Init_Device from your main programInit_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_InitretEND六程序测试方法与结果、软件性能分析1 基本要求:测试方法:观察P1端口输出波形由图可知,LED数码管切换频率为1HZ,跑完一轮经过16s,满足定时要求。

广东海洋大学微型计算机基础LED数码管静态驱动实验报告

广东海洋大学微型计算机基础LED数码管静态驱动实验报告
班级
软件xx
学生姓名
xxx
学号
xxxxxxxx
实验地点
科技楼402
日期
2014
实验目的:1.掌握静态显示的工作原理及硬、软件的设计、调试方法
2.了解数码管的使用方法
实验内容:练习数码管静态显示使其显示
详细功能介绍:
利用AT89S52单片机的P0端口的P0.0-P0.7连接到一个共阳数码管的a-h的笔段上,数码管的公共端通过三极管8550选通。在数码管上循环显示0-9数字,延时时间为1s,时钟晶振按照12M计算。
ORG 000H
LOOP2: CLR P2.7
CLR P1.0
MOV DPTR ,#TABLE;“0”的基地址赋值给DPTR
MOV R2LOOP1: MOVC A,@A+DPTR;查表
MOV P0,A
LCALL DELAY;转延时
INC R1
MOV A,R1
画总线是选中左边工具栏中的 图标,然后选中BUS WIRE即可,或者直接选中左边工具栏中的 如下第二图
写程序是P2.7应该清零,关闭液晶使能,同时P1.0清零,给数码管供电。
实验过程:
1、打开Keil uVision3,
(1)新建一个工程,在工程里面新建一个文件。
(2)在文件里编写代码,代码如下所示:
成绩
指导教师
日期
注:请用A4纸书写,不够另附纸。第页,共页
DB 092H , 082H , 0F8H ,080H ,090H
END
(3)编写完成之后进行编译,编译后要设置生成.HEX后缀的文件,如下图所示:
2、打开proteus7.8
(1)根据实验内容的图进行画电路图。
(2)双击AT89C51,导入代码生成的.HEX后缀的文件,点击确定。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

杭州电子科技大学实验报告
课程名称:计算机原理与接口技术
实验序号: 1
实验名称:LED 显示
姓名:
学号:
班级:
专业:
指导教师:
实验日期:
一、项目内容
LED显示,1、2、3、4、5、6、7、8巡回显示。

二、原理图
三、程序设计
要使LED显示器显示出相应的字符,必须使段数据口输出相应的字形编码。

字形编码与硬件电路连接形式有关。

如果段数据口的的低位与a相连,高位与dp 相连,七段LED字形码是按格式
形成的,假若要显示数字3,共阴LED字形编码为4FH,共阳LED字形编码为B0H。

反之,如果段数据口的高位与a相连、低位与dp相连,七段LED字形码的格式是
数字3的字形码为0F2H(共阴)或0DH(共阳)。

显示器的亮度与导通电流有关,也与点亮时间和间隔时间的比例有关。

调整电流和时间参数,可实现亮度较高且较稳定的显示。

若显示器的位数不大于8位,则控制显示器公共极电位只需8位口,控制各位显示器所显示的字形也需一个8位口。

8255的A口扫描输出总是只有一位为高电平,即8位显示器中仅有一位公共阴极为低电平,其他位为高电位,8255的B口输出相应位的显示数据。

设8255A 占用的端口地址位208H-20BH,要进行显示的数据存储在BUF以下连续的存储单元,且按任意键程序结束。

四、程序代码
五、运行结果
显示“1”
显示“2”
显示“3”
显示“4”
显示“5”
显示“6”
显示“7”
显示“8”
六、项目心得
这次LED数码管巡回显示的实验,总体来说进展顺利,得到了预期的结果。

但在实验中遇到的主要问题是:8086微处理器的指令有很多,有的时候总是把它们记混。

如果是自己单独写程序,总会写不对,计算机也运行不了。

唯一的解决办法就是看教材上的程序进行模仿编写,但是自己的编程能力没有得到有效的提高。

虽然如此,但这次实验加深了我对PROTEUS软件的认识,锻炼了我画电路图、阅读编写程序的基本能力。

相关文档
最新文档