第一篇:《一位LED数码管显示0-9》大全
成都理工大学工程技术学院
单片微机原理及应用课程设计
《一位LED数码管显示0-9》
学生姓名:
学
号:
专
业:
班
级:
指导教师:
完成日期:
目
录
一 实验目的与任务…………………………………2 二 实验要求…………………………………………2 三 实验内容…………………………...……………2 四 元器件清单………………………………………2 五 LED数码管的结构及工作原理…………………2 六 关于PLC控制LDE介绍………………………4 七 原理图绘制说明…………………………………5 八 流程图绘制以及说明……………………………9 九 电路原理图与仿真………………………………10 十 源程序……………………………………………12 十一 心得体会………………………………………12 十二 参考文献………………………………………13
一、实验与任务
结合实际情况,编程设计、布线、程序调试、检查与运行,完成一个与接近实际工程项目的课题,以培养学生的实际操作能力,适应生产一线工作的需要。做到能检查出错误,熟练解决问题;对设备进行全面维修。通过实训对PLC的组成、工作原理、现场调试以及基于网络化工作模式的基本配置与应用等有一个一系列的认识和提高。
利用51单片机、1个独立按键及1位7段数码管等器件,设计一个单片机输入显示系统,要求每按一下独立按键数码管显示数据加1(数码管初始值设为0,计到9后再加1,则数码管显示0)。
本次设计采用12MHz的晶体振荡器为单片机提供振荡周期,外加独立按键,复位电路和显示电路组成。
二、实验要求
1、了解七段LED数码管的结构、分类以及数码管的显示码。
2、学习1位LED数码管静态显示与动态显示的编程方法。
3、掌握可编程序控制器技术应用过程中的一些基本技能。
4、了解可编程控制器的装备、调试的全过程。
三、实验内容
1、练习设计、连接、调试控制电路;
2、学习PLC程序编程;
四、元器件清单
从PROTUES库中选择元器件(1)AT89C51;单片机。(2)RES、RX8;电阻、8排阻。
(3)7SEG-COM-CAT-BLUE;带公共端共阴极七段蓝色数码管。(4)CAP/CAP-ELEC;电容、电解电容。(5)CRYSTAL:晶振。
五、LED数码管的结构及工作原理 led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位0,1,2,3,4,5,6,8,10位等等....,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图1
图1 10引脚的LED数码管
图2 LED数码管引脚定义
LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。
A、静态显示驱动:
静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二-十进位*器*进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5×8=40根I/O口来驱动,要知道一个89S51单片机可用的I/O口才32个呢。故实际应用时必须增加*驱动器进行驱动,增加了硬体电路的复杂性。B、动态显示驱动:
数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp ”的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。
透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。
六、关于PLC控制LED介绍
PLC可编程控制器:它采用一类可编程的存储器,用于其内部存储程序、执行逻辑运算、顺序控制、定时、计数与算数操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。
用PLC控制LED直接进行数据显示,可以降低成本,使得数据显示直观。传统数显有两种方法:
1、由PLC编制程序进行译码,来控制显示a-g段;
2、利用 译码组合电路产生a-g各段译码信号实现LED数码管显示。前一种方法逻辑译码关系复杂,后一种方法译码电路冗长,都不利于显示的实现。传统数显逻辑译码关系复杂,而用PLC的位组合元件和译码功能指令方法来实现LED数显.前一种方法将表示十进制数的4位BCD码的位元件成组使用,形成位组合元件数显;后一种方法用7段译码指令把指定元件的低4位对应的十六进制数译码后,驱动数显.这两种方法逻辑简单,易于理解,便于实现。
设计任务:LED数码管显示:0到9
七、原理图绘制说明
本次设计主要用到单片机AT89C51、晶振时序电路。AT89C51是一种带4KB闪烁可编程可擦出只读存储器的低电压、高性能CMOS微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微处理器,为很多嵌入式控制系统提供了一种灵活性高且廉价的方案,AT89C51的管脚分配(如图1)。
图1 AT89C51芯片及管脚图
AT89C51单片机主要由4个输入输出端口(P0口、P1口、P2口、P3口)及个控制引脚组成的,本次设计用到P1、P2的部分引脚,及18、19脚外接晶振电容为单片机提供时钟,9管脚为复位引脚,外接复位电路。
晶振时序电路:XTAL1和XTAL2分别为片内反相放大器的输入和输出端,当单片机采用外部时钟信号时,前者接地,后者引入外部输入信号,本次设计采用12M的石英晶体振荡器为单片机提供时钟(如图2)。
图2 AT89C51的晶振时序电路图
本次设计的原理图是在PROTEUS ISIS中绘制的,其工作界面分为原理图编辑窗口(Editing window)、预览窗口(Overview window)和工具栏。
1、新建*.dsn 打开绘图界面后,首先新建一个绘图文件,选择“【文件】——【新建设计】”,并保存成.dsn型文件。
2、绘制原理图
6(1)添加元器件:元件拾取共有两种办法,一种是按类别查找和拾取元件,另一种是直接查找和拾取元件。我采用的是前一种方法,元件通常以其英文名称或器件代号在库中存放。我们在取一个元件时,首先要清楚它属于哪一大类,然后还要知道它归属哪一子类,这样就缩小了查找范围,然后在子类所列出的元件中逐个查找,根据显示的元件符号、参数来判断是否找到了所需要的元件。双击找到的元件名,该元件便拾取到编辑界面中了。右侧列表中自上而下分别为元件图形和元件封装。具体如图3所示:
图3 分类拾取元件示意图
(2)元件的放置
在原理图编辑区的蓝色方框内,单击鼠标左键即完成元件的释放。具体如图4所示:
图4 元件的放置示意图
(3)电路连线
PROTEUS的连线是非常智能的,它会判断你下一步的操作是否想连线从而自动连线,而不需要选择连线的操作,只需用鼠标左键单击编辑区元件的一个端点拖动到要连接的另外一个元件的端点,先松开左键后再单击鼠标左键,即完成一根连线。如果要删除一根连线,右键双击连线即可。根据设计完成连线后即可得到完整的电路原理图,具体如图5:
图5 连线后的完整电路原理图
八、流程图绘制以及说明
主程序设计说明
主程序主要分为四部分,包括复位电路部分、独立按键的判别部分、单片机控制主程序部分和译码显示部分,模块流程图如图6所示:
图6 数码管显示程序流程图
九、电路原理图与仿真
1、Hex文件的导入过程
在仿真前,须先在KEIL4中生成.HEX文件。编译完源程序并且没有错误后,选择“Project-Options for Target ‘Target1’-Output”,在“Create HEX File”前面的空挑勾,再“确定”,即可生成HEX文件,如图7所示 :
图7 生成HEX文件示意图
在进入PROTEUS ISIS中,双击AT89C51芯片,出现如图8所示的对话框。在“Program File”一项中查找“seg.hex”文件的路径并加上该文件即可开始仿真,如图8所示:
图8 keil的seg.hex文件载入单片机的示意图
2.在导入hex文件后,便可运行该设计系统,打开仿真开关,显示如图
十、源程序清单
org 0000h
sjmp main
org 000bh
sjmp t0_isr
org 0030h main:clr a
mov dptr,#table
movc a,@a+dptr
mov p0,a
mov tmod,#01h
mov th0,#0d8h
mov tl0,#0efh
setb et0
setb ea
setb tr0 pd: cjne r0,#100,$
inc dptr
clr a
movc a,@a+dptr
cjne a,#00h,aaa
mov dptr,#table
;如果花样数据完应重新循环
clr a
movc a,@a+dptr aaa: mov p0,a
mov r0,#00h
sjmp pd t0_isr:
clr tr0
mov th0,#0d8h
mov tl0,#0efh
inc r0
setb tr0
reti table:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h
end
十一、心得体会
通过此次课程设计,使我更加扎实的掌握了有关单片机知识,用汇编语言在KEIL4中编程,在PROTEUS中绘制原理图并进行仿真,通过对这两个软件的学习,了解了其功能的强大,掌握了AT89C51的内部结构及工作原理,对于我们以后的 学习和实践有很大的指导意义,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。此次设计也让我明白了团队精神的重要性,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。
十一、参考文献
[1]高钦和.可编程控制器应用技术与设计实例.北京:人民邮电出版社,2004 [2]虞鹤松编.可编程序控制器原理及应用.南京:东南大学出版社,1995 [3]田庭主编.常用可编程序控制器编程器及编程软件使用手册.北京:机械工业出版社,1994
第二篇:LED数码管介绍范文
供应LED数码管
LED-3006 LED数码管
灯体尺寸:L1000*W50*H95MM mm
净重: 1.0 Kg
分类: LED数码管系列LED
LED 光源:48红/48绿/48蓝(1000mm long)
高度智能化产品,特别适应高楼大厦外墙及高级娱乐场所使用,效果可实时设定。
专为大厦、酒店、桥梁轮廓装饰而设计的最具灯光效果的灯具,以超高亮LED为光源,PC管材,防紫外线、抗老化、防水、防潮。色彩艳丽,具有流水扫描等千变万化效果,同时也可根据用户实际需求进行效果设计。
型号与技术参数:
灯体尺寸:L1000*W50*H95MM mm
净重: 1.0 Kg
LED 光源:48红/48绿/48蓝(1000mm long)
材料: 乳白色聚碳酸酯(抗紫外线)
控制模式:DMX 512
电压: AC 90-240V/50-60HZ(开关电源, 90V-240V 自动转换)
操作温度::-20℃ ~ +45℃
Net/Gross Weight:1.0kg/1.5kg
Size: L 1000*W50 *H 95MM
IP:44
型号: LED 3006C LED数码管控制器
带DMX 512通信功能
自动走灯模式25种
有单独可调走灯模式29种
最少可以控制4000跟LED数码管
自动存储模式参数
预置参数设置模式
全彩六段护栏管,采取进口PC 材料,可以根据客户要求设计各种LED程序变化,以实现美化效果,产品广泛应用于户可以根据客户要求设计各种LED程序变化,以实现美化效果外工程、城市景观、娱乐场所。是采用进口台湾超高亮度LED芯片及进口PC管材,其基本特性是以RGB三基色及PCB电路板串(并)联混合连接,内置微处理器,执行主机传送的各种程序命令,能使众多光源组合时产生色彩和动态上的变化,有纵向分层追逐扫描、流水、扩张、渐变、同步等几十种变化程序,灯光效果有单色(红,黄,蓝,绿,白)、三色变化、七色变化、三段变化、六段变化、九段变化、十二段变化等循环切换,除了推荐的几十种变化程序外,还可以根据客户的要求随机进行变幻花样的设计,七彩流水型护拦灯是通过新型的电
脑编程控制,使其变化多达几十种,还可以根据客户需求而设定或自动变化。每米功率不超过12W,电压12V,PC管材直径可以为26mm,30mm,50mm,80mm,110mm, 灯泡粒数可以为96粒、108粒、120粒、144粒,150粒,亮度高、寿命长达100000小时。广泛适用于桥梁、广场、大楼轮廓、跨街空中走廊、建筑物轮廓、道路灯饰、各种灯光广告牌、橱窗、舞台、大厦、酒店等场所装饰,是城市亮化工程的主导产品,夜晚效果格外醒目,并能引导车辆行进方向,可有效的防治交通事故的发生,并且对美化城市、塑造景观有着特别重要的意义
LED护栏管——介绍:
以RGB三基色及PCB电路板串(并)联混合连接,内置微处理器,执行主机传送的各种程序命令,能使众多光源组合时产生色彩和动态上的变化,有纵向分层追逐扫描、流水、扩张、渐变、同步等几十种变化程序,灯光效果有单色、三色变化、七色变化、三段变化、六段变化、八段变化、十二段、十六段变化等循环切换,除了推荐的几十种变化程序外,还可以根据客户的要求随机进行变幻花样的设计,七彩流水型护拦灯是通过新型的电脑编程控制,使其变化多达几十种,还可以根据客户需求而设定或自动变化。
LED护栏管——用途:
主要应用于桥梁栏杆,楼体轮廓,招牌,酒吧KTV等场所。广泛应用于舞台、酒吧、酒店、的士高、KTV歌舞厅、桥梁、花园、沟道河岸、各交通立交桥、建筑物轮廓、建筑物的装饰及轮廓勾勒。是取代传统霓虹灯和荧光灯的新一代照明解决案。
LED护栏管——技术参数:
光源:采用进口台湾超高亮度LED芯片
材质:进口PC管材
功率:每米功率不超过12W
电压:12V
PC管材直径:50mm,80mm,110mm
灯泡粒数:108粒、120粒、144粒,150粒
工作寿命:长达100000小时。
LED护栏管——其它说明:
包装方式:每件LED护栏管都是独立环保包装
品质保证:本产品严格按照ISO9001:2000国际质量管理体系标准进质量 控制,确保LED护栏管质量符合国家标准,完全达到设计要求。
2.LED护栏管需要解决的可靠性问题
2.1防水
以前的LED护栏管是在外罩接口处用硅胶密封,内部LED、电路都是裸露的,由于昼夜温差大,外罩的端头与外罩热胀冷缩不同,导致硅胶密封处出现缝隙,下雨后雨水渗进内部,可想而知结果会怎么样。要解决这个问题,一定要求对内部电路和LED灌胶处理,外面外罩硅胶密封固然简单,但可靠性达不到在户外大规模应用的要求。
另一个问题就是电气连接的接头问题。很多厂家为了便宜往往选择塑胶接头,或者选择质量较差的金属接头,短时间的测试和使用,塑胶还没有变形,防水是没有问题,但是经过太阳的照射和昼夜温差变化,四季气候变化,塑胶就会变形,从而导致防水胶圈失效,雨水渗进接头内部导致电线短路,特别在带电状态,电线的腐蚀比不带电状态下高若干个数量级。本人曾经做的实验,信号线接触水后在8个小时通电状态下就已经腐蚀的象铁锈一样。较差的金属接头的价格只有正规厂家的几分之一,由于表面处理和本身材料问题,也容易被雨水腐蚀,导致信号短路。
2.2防紫外线
LED护栏管由于要求混光,在外面都会加上外罩,外罩的材料选择是很多不规范公司降低成本的又一个手段,质量好的产品都会使用增加了抗紫外线的材料,如GE,拜尔等材料,而质量不好的LED护栏管很多使用混合了水口料的材料,谈不上抗紫外线,太阳光比较大的地方,不到一个月,外罩就变成$的了,从而出光效果变差,透光率也大大减小。
2.3防开裂
这个问题,还是外罩的问题,如果选择的是带水口料的材料,材料内应力很难去除,导致材料开裂。即使选择比较好的材料,如果设计,生产工艺不合理,也会产生很多内应力,有经验的公司都会在注塑时选择恒温保护,尽量减少内应力,还有一个去除内应力很好的办法,如果对此有兴趣的读者可以咨询材料方面的专家。
2.4线损
铜是一些厂家节省成本的地方,大家都知道,一般好的生产厂家都会在内部使用1mm2以上的导线,而且导线使用的是符合国标的产品。如果导线面积不够,电阻较大,前面的护栏管和后面的护栏管就有较大的电压差,为了让后面的LED电流与前面的一致,一定需要增加输入电压,这样无形中就增加了功耗,很多电能不是驱动LED,而是浪费在导线和恒流芯片上。一般来说如果设计的产品前后电压超过15%,问题就很严重了,因为现在通用的恒流芯片都是有功耗要求的,如果功耗太大,热量散不出去就会导致芯片烧毁。大家现在应该明白为什么很多级连的LED护栏管都是前面坏的多了。
2.5散热
这个问题不仅体现的成本问题上,更多的是体现一个厂家的技术实力上,现在有些LED护栏管外罩和低座完全是一体的,都是塑胶材料,而且LED排布很密,这样当达到热平衡时,LED的结温已经很高了,如果工作时的环境温度较高,LED的寿命会急剧减少。实力强的LED护栏管公司肯定会有热设计人员,在设计护栏管时要将LED的热量和恒流芯片的热量有效的导到大气中去。大家应该想到使用铝材是比较好的解决方案,铝的导热系数高,可以有效的将内部热量导出。另外在设计时也要尽量将PCB靠近铝底座,从而减少灌封胶部分产生的热阻。这个问题又涉及到另一个问题,即灌封胶的选择上,好的灌封胶不仅要求硬度适中,也要求有比较高的导热系数,目前很多护栏管厂家借鉴LED大屏的经验,使用韩国的灌封胶,这是个不错的选择,本人综合的比较后发现某家德国公司的灌封胶在综合性能上更胜一筹。
一、LED外控和内控护栏管安装方法及常见问题
主要材料:
LED护栏灯;护栏灯安装卡子,防水变压器,LED护栏灯主控器,LED护栏灯分控器,辅助材料:
公母插头,超五类网线,两芯电源线,自攻螺丝,胶粒等
LED外控护栏灯安装步骤:
第一步:先将LED护栏灯安装到墙体上:在墙体上打孔,装膨胀螺钉,再装LED护栏灯,用自攻螺丝锁住;护栏灯之间的距离根据客户的要求而定;一般是1CM到3CM之间。
第二步:检查接头上是否有防水胶圈,一般为白色或红色硅胶圈.然后将LED护栏灯的信号线、电源线对接起来,一定要对接紧密,然后把螺母扭紧.(最好外面再打上玻璃胶或黑色胶布绕一下,这样对防水更有好处.)不要因为马虎或难扭紧而没有扭紧,造成进水,给后来维护带来不少麻烦.信号线公司采用的一般两芯的小公母插头;电源线是两芯的大公母插;
第三步:安装电源(变压器或开关电源);
根据变压器的功率以及护栏灯的功率来计算每台变压器可以带多少条护栏灯;比如108灯的LED七彩护栏灯是10W/M;144灯的LED护栏灯是12W/M;若用400W的防水变压器,则可以带108灯36M管;144灯的则带32 M管。若变压器可以带36M管;变压器则放在第18和19条中间,接两条线出来,再接几个分接口,每边各带18条。
注:1.变压器一般只用到80%到90%的功率;
2.不管变压器的功率再大,每边接的管最好不要超过8M;高压220V的连接最好不要超过10米;因为电源导线有功率损耗;越到后面的LED护栏灯亮度越低;而且电流过大对线路板,灯珠,线头都会有影响。
第四步:LED护栏灯控制器的安装;
先装分控器,直接将分控器接在LED护栏灯上;分控器两端一般有三个出线头,一端一条的一般是电源线接24V或12V,注意这个电源线只是分控器的供电,护栏管的供电要另外联接,另外一端两条接线头一条是从主控器输入的信号线,一条是接护栏管的输出的信号线,分控器上会标出哪条接主控哪条接分控!
信号接信号(目前公司主要采用两芯公母插小头),电源接电源(两芯公母插大头);然后将分控器与主控器的信号对接,如果分控与主控的距离将远时可以用超五类网线连接起来,这样信号比较好;每个分控只能带固定数量的LED数码管,一般可以带到100M;现在公司用的两芯数码管数据线,可控制1000米,也可订做到2000米,信号强.易安装.做楼体轮廓时,每一个分控带一路;具体的情况根据LED效果图安装(公司会帮您算好要多少分控,每个分控带哪一路,一般会有安装图纸)。分控与主控之间亦采用超五线网线连接;网线都是八条线的,采用公母信号插与网线对接起来,先接到分控上;不同回路的数码管之间的信号线需要断开。
第五步:通电,通信号。
将变压器全部接到一条220V主电源上,然后采用一个空气开关和时间开关;控制LED数码管(LED护栏灯)统一通电;然后将主控器上的变压器插头插在220V的电源上。
LED内控,单色常亮护栏管的安装:
单色护栏管直接按护栏管的电压接电就行了,内控护栏灯的安装,直接接在对应的电源上就行了;这里还要提到就是内控编号LED护栏灯的安装:内控编号护栏灯的安装必须按管的顺序一个一个安装;如果不按顺序安装最后会出现整体不同步现像。内控和内控编号护栏管必须同时通电,才能保证变化效果同步!低压的必须接变压器或开关电源,变压器或开关电源装在护栏管的中间,这样护栏管的效果才会更统一!
二、常见问题:
1.若LED数码管不能正常走程序,如果为外控管,首先确认此管是否信号线有问题,请把不能运作的管换下,还有一个问题,这条管的可能信号线只有输入没有输出,导致后面的管变化效果不能同步,这种情况下可以把装在最后一条护栏管装在这里,把这条护栏管装在最后面那边,可以恢复正常!若恢复正常,就确认是此管问题,若不行可以换个分控试试,若无法解决安装中出现的问题请与厂家联系。如果为内控管,首先确定公母接头有没有接反,现在经过改良后的新管子和程序,一般公母接头的顺序,根据公司配的接头接就行了。然后把电断开几分钟,再送电,看是否正常。也可及时与公司联系,分析是什么问题。
2. LED护栏灯一般安装要的楼体上,安装成本比较高,具有一定的危险性;如果
有坏管了,需要吊人或架手脚架上去拆换;所以公司把品质放到第一位,请各位客户和朋友放心,公司出厂产品都是经过老化,检验合格才出厂的,若安装时仍有不良品,请及时给公司联系,我们会用最快的速度解决问题。
3.最后再提醒安装时,一定检查是否有防水胶圈,要把公母接头对紧,把螺母扭紧接好。工程主管要培训,监督做好。
第三篇:单片机数码管显示实验
实验一
数码管实验
一、实验目的
1.了解数码管的显示原理;2.掌握JXARM9-2440 中数码管显示编程方法
二、实验仪器
JXARM9-2440教学实验箱、ADT1000仿真器和ADT IDE集成开发环境、串口连接线、PC机。
三、实验原理
7段LED由7个发光二极管按“日”字形排列,所有发光二极管的阳极连在一起称共阳极接法,阴极连在一起称为共阴极接法。
LED显示器的接口一般有静态显示与动态显示接口两种方式。
本实验中采用的是动态显示接口,其中数码管扫描控制地址为0x20007000,位0-位5每位分别对应一个数码管,将其中某位清0 来选择相应的数码管,地址0x20006000 为数码管的数据寄存器。数码管采用共阳方式,向该地址写一个数据就可以控制LED 的显示,数据中的1对应的不亮,0对应的亮,数码管各位从高到低排列为dp-g-f-e-d-c-b-a,例如当数据寄存器是11111111时则不亮,当是01111111时则显示8,其原理图如图所示。
四、实验内容
1、编程实现:六个数码管同时正向显示0-F,然后反向显示F-0。
2、编程实现:在六个数码管上依次显示与自己姓名有关的内容,可分辨出轮流显示。
3、编程实现:在六个数码管上依次显示与自己姓名有关的内容,分辨不出轮流显示。
4*、编程实现:在每个数码管上递增显示0—9。5*、自行开发。
五、实验程序
1, /****************************************************************************/ /*文件名称: LEDSEG7.C
*/ /*实验现象: 数码管依次显示出0、1,2、„„
9、a、b、C、d、E、F
*/ /****************************************************************************/ #define U8 unsigned char unsigned char seg7table[16] = {
/* 0
7*/
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,/* 8
A
B
C
D
E
F*/
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e, };void Delay(int time);/****************************************************************************/ /* 函数说明: JXARM9-2410 7段构共阳数码管测试
*/ /* 功能描述: 依次在7段数码管上显示0123456789ABCDEF
*/ /* 返回代码: 无
*/ /* 参数说明: 无
*/ /****************************************************************************/ void Test_Seg7(void){
int i;
*((U8*)0x20007000)=0x00;/*6个数码管都亮*/ for(;;){
/*数码管从0到F依次将字符显示出来*/
for(i=0;i<0x10;i++)
{
*((U8*)0x20006000)=seg7table[i];
Delay(10000);
}
/*数码管从F到0依次将字符显示出来*/
for(i=0x0f;i>0x00;i--)
{
*((U8*)0x20006000)=seg7table[i];
Delay(10000);
} }
// TODO } /****************************************************************************/
/* Function name : 循环延时子程序
*/ /* Description : 循环 'time' 次
*/ /* Return type :void
*/ /* Argument
: 循环延时计数器
*/ /****************************************************************************/ void Delay(int time){
int i;int delayLoopCount=10000;
for(;time>0;time--);
for(i=0;i 2, /****************************************************************************/ /*文件名称: LEDSEG7.C */ /*实验现象: 数码管依次显示ZHAngg,并能看出轮流显示 */ /****************************************************************************/ #define U8 unsigned char unsigned char seg7table[16] = { /* Z H A n g g 7*/ 0xa4,0x89,0x88,0xc8,0x90,0x90,0x82,0xf8,/* 8 A B C D E F*/ 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,/* H I N*/ 0x89,0xcf,0x48 };void Delay(int time);/****************************************************************************/ /* 函数说明: JXARM9-2410 7段构共阳数码管测试 */ /* 功能描述: 在六个数码管上分别显示字母,与姓名有关 */ /* 返回代码: 无 */ /* 参数说明: 无 */ /****************************************************************************/ void Test_Seg7(void){ int i; *((U8*)0x20007000)=0x00; for(;;) { *((U8*)0x20007000)=0x1f; *((U8*)0x20006000)=seg7table[0]; Delay(10000); *((U8*)0x20007000)=0x2f; *((U8*)0x20006000)=seg7table[1]; Delay(10000); *((U8*)0x20007000)=0x37; *((U8*)0x20006000)=seg7table[2]; Delay(10000); *((U8*)0x20007000)=0x3b; *((U8*)0x20006000)=seg7table[3]; Delay(10000); *((U8*)0x20007000)=0x3d; *((U8*)0x20006000)=seg7table[4]; Delay(10000); *((U8*)0x20007000)=0x3e; *((U8*)0x20006000)=seg7table[5]; Delay(10000);} // TODO } /***************************************************************************/ /* Function name : 循环延时子程序 */ /* Description : 循环 'time' 次 */ /* Return type :void */ /* Argument : 循环延时计数器 */ /****************************************************************************/ void Delay(int time){ int i;int delayLoopCount=10000; for(;time>0;time--); for(i=0;i 3, /****************************************************************************/ /*文件名称: LEDSEG7.C */ /*实验现象: 数码管依次显示出ZHAngg,并看不出轮流显示 */ /****************************************************************************/ #define U8 unsigned char unsigned char seg7table[16] = { /* Z H A n g g 7*/ 0xa4,0x89,0x88,0xc8,0x90,0x90,0x82,0xf8,/* 8 A B C D E F*/ 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,/* H I N*/ 0x89,0xcf,0x48 };void Delay(int time);/****************************************************************************/ /* 函数说明: JXARM9-2410 7段构共阳数码管测试 */ /* 功能描述: 在六个数码管上分别显示字母,与姓名有关 */ /* 返回代码: 无 */ /* 参数说明: 无 */ /****************************************************************************/ void Test_Seg7(void){ int i; *((U8*)0x20007000)=0x00; for(;;) { *((U8*)0x20007000)=0x1f; *((U8*)0x20006000)=seg7table[0]; Delay(10000); *((U8*)0x20007000)=0x2f; *((U8*)0x20006000)=seg7table[1]; Delay(10000); *((U8*)0x20007000)=0x37; *((U8*)0x20006000)=seg7table[2]; Delay(10000); *((U8*)0x20007000)=0x3b; *((U8*)0x20006000)=seg7table[3]; Delay(10000); *((U8*)0x20007000)=0x3d; *((U8*)0x20006000)=seg7table[4]; Delay(10000); *((U8*)0x20007000)=0x3e; *((U8*)0x20006000)=seg7table[5]; Delay(1);} // TODO } /***************************************************************************/ /* Function name : 循环延时子程序 */ /* Description : 循环 'time' 次 */ /* Return type :void */ /* Argument : 循环延时计数器 */ /****************************************************************************/ void Delay(int time){ int i;int delayLoopCount=10000; for(;time>0;time--); for(i=0;i 4, /****************************************************************************/ /*文件名称: LEDSEG7.C */ /*实验现象: 数码管依次显示出0、1,2、„„ 9、a、b、C、d、E、F */ /****************************************************************************/ #define U8 unsigned char unsigned char seg7table[16] = { /* 0 7*/ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,/* 8 A B C D E F*/ 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e, };void Delay(int time);/****************************************************************************/ /* 函数说明: JXARM9-2410 7段构共阳数码管测试 */ /* 功能描述: 依次在7段数码管各自递增显示0—9 */ /* 返回代码: 无 */ /* 参数说明: 无 */ /****************************************************************************/ void Test_Seg7(void){ int i;for(;;){ for(i=0;i<=0x09;i++) { *((U8*)0x20007000)=0x1f; *((U8*)0x20006000)=seg7table[i]; Delay(10000); } for(i=0;i<=0x09;i++) { *((U8*)0x20007000)=0x2f; *((U8*)0x20006000)=seg7table[i]; Delay(10000); } for(i=0;i<=0x09;i++) { *((U8*)0x20007000)=0x37; *((U8*)0x20006000)=seg7table[i]; Delay(10000); } for(i=0;i<=0x09;i++) { *((U8*)0x20007000)=0x3b; *((U8*)0x20006000)=seg7table[i]; Delay(10000); } for(i=0;i<=0x09;i++) { *((U8*)0x20007000)=0x3d; *((U8*)0x20006000)=seg7table[i]; Delay(10000); } } // TODO } /****************************************************************************/ /* Function name : 循环延时子程序 */ /* Description : 循环 'time' 次 */ /* Return type :void */ /* Argument : 循环延时计数器 */ /****************************************************************************/ void Delay(int time){ int i;int delayLoopCount=10000; for(;time>0;time--); for(i=0;i 六、实验结果与分析 实验一结果:六个数码管同时显示相同的符号,从0-F再由F-0之间的循环变换。 分析:在数码管扫描控制地址处选中六个数码管,使其同时亮,在给其数码管的数据寄存器存入不同符号对应的数值,加上相应的延迟,就 可以是轮流变换的循环的符号变换。 实验二结果:第一个数码管显示Z后,第二个显示H,接着第三个显示A,接着第四个显示n,接着第五个显示g,接着第六个显示g,接着第一个再显示Z…..如此循环。 分析:设置控制地址使其单独并且循环显示,每个数码管的数据寄存器送入不同的符号的数值,并设置较大的延迟时间即可产生该现象。 实验三结果:六个数码管一起显示“ZHAngg”。 分析:原理同实验二,只是将延迟时间改小到人眼无法分辨的地步即使一起显示。 实验四结果:第一个数码管显示0—9之后,第二个接着显示0—9,接着第三个,第四个….分析:设置循环使六个数码管循环单独显示,在每个数码管显示中再加入循环,使其递增显示0—9,设置较大的延迟,是我们可以看清实验现象。 七、实验总结与心得体会 本次试验需要了解数码管的基本工作原理,基于C语言设计编程完成实验,实验的关键在于把握实现各种现象的本质上的差异,在程序上作出修改。通过本次试验对于实验的严谨性有了进一步的体验,稍有不小心实验结果就适得其反,以后要更加用心,更加认真的做实验。 单片机数码管显示课程设计 目录引言...............设计任务和要求.............1 2.1 设计目的............1 2.2 设计意义............1总原理图及主要模块的流程图......1 3.1 总原理图及元器件清单..............1 3.2 主要流程图..........1性能测试与分析.............35 结论与心得..........4致谢...........4 参考文献.............4 单片机数码管显示课程设计引言 从上世纪70年代第一批单片机问世,短短二三十年时间,单片机技术已经成为计算机技术的一个重要分支,广泛运用到工业控制、仪器、仪表、消费产品,汽车、办公自动化和通信等领域。因此,单片机技术已经成为电子、测控、自动化、通信等许多工科专业学生的必备技能。 我用AT89C51芯片来设计一个简单的数码管显示。此设计给出了源代码,通过仿真测试,其性能指标达到了设计要求。 关键词:单片机,AT89C51,数码管设计任务和要求 2.1 设计目的1.学习基本理论在实践中综合运用的初步经验,掌握模拟电路设计的基本方法、设计步骤,培养综合设计与调试能力。 2.了解AT89C51这个芯片的使用和性能指标测试方法。 3.培养实践技能,提高分析和解决实际问题的能力。 2.2 设计意义 为了更好地熟悉和掌握单片机的基本功能和编程,掌握数码管动态扫描显示原理及实现方法。自我动态扫描显示电路驱动程序的编写方法。通过课程设计,达到理论与实际应用相结合,提高学生对微机硬件结构的软件设计方法的理解,使学生能够根据实际应用,初步实现硬件及软件的设计,对硬件开发有更深层的认识,为今后打软硬件开发,打下坚实的基础。总原理图及及主要模块的流程图 3.1 总原理图及元器件清单 (1)我用Proteus 7 professional来画出我设计的总原理图,如图3-1。 如图3-1 此电路图就用到AT89C51这个芯片,和一个数码管。 3.2 主要流程图(四号宋体加粗) 1.主程序的流程图 图3.2-1主流程图 2.子程序的流程图 图3.2-2子流程图性能测试与分析 主程序和子程序都存放在AT89C51单片机中。主程序的功能是:显示数字。子程序的功能有:延时。程序代码: ORG 0000H;初始化 LJMP START;转入主程序 ORG 0010H;初始化 START: CLR P2.7;P2.7←00H MOVR0,#00H;R0←00H MOV R2,#10;R2←10 MAIN: MOV DPTR,#TAB;DPTR←TAB MOV A,R0;A←(RO) MOVC A,@A+DPTR;A←((A)+(DPTR)) MOV P0,A;P0←(A) LCALL DELAY;调用延时程序 INC R0;RO←(R0)+1 DJNZR2,MAIN;判断 JMP START;循环 DELAY:;延时程序 MOV R3,#11 D1: MOV R4,#100 D2: MOV R5,#100 DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 RET TAB: DB 00101000B;0 DB 11101011B;1 DB 00110010B;2 DB 10100010B;3 DB 11100001B;4 DB 10100100B;5 DB 00100100B;6 DB 11101010B;7 DB 00100000B;8 DB 10100000B;9 END 我用Proteus 7 professional 软件来测试我设计的电路图。当运行时,数码管显示0。如图4-1。 图4-1 当221ms后,数码管显示1。如图 4-2.图4-2 我的程序是一个循环的,一直到显示9,之后又重新开始显示0。在此不一一列出来。 为了能在实际在到应用,我用开发板来验证我所设计的电路图。其结果如下: 图4-3显示1 图4-4显示8 从仿真的结果可以看出,我的设计是满足我设计的要求的。结论与心得 通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。 这个设计过程中,我遇到过许多次失败的考验,就比如,我在软件上仿真软件上能实现其功能,但是把它写进开发板就无法运行,我不停地找原因。最后我找到了答案,这样我明白,做设计不但是软件可以运行,用在硬件上一样是那么重要的。我做的这个设计主要是用AT89C51这个芯片来实现,这个芯片具有很多优点,程序简单易读,结构清楚,最重要的是成本低。很适合我们学生用来学生。在做这个设计的过程中,我也了解到了自己的不足,在日后的学习中,我还需加倍努力学习。 参考文献) [1]梁炳东.单片机原理与应用。北京:人民邮电出版社,2009 [2] [3]http://wenku.baidu.com/album/view/702db2c7aa00b52acfc7cae7 致谢(小三号 宋体 加粗) 在此次课程设计中,我遇到不懂的问题,老师和同学都帮我,让我把问题顺利地得到解决,最后完成此次课程设计报告。从中我学到了很多东西,在此,谢谢我的老师和同学,感谢你们在我遇到难题的时候帮我解答。 LED数码管的简单介绍 厦门华炜电子工贸有限公司是一家集研发、生产、销售的LED灯具厂家,生产基地位于厦门湖里工业区,办公处基地位于厦门市湖里区坂上社573号。公司技术力量雄厚,经验持久、检测设备完善,得到厦门市技术质量监督中心的检测认证,荣获中国消费者协会推荐的产品,2004年通过IS9001;2003国际质量体系认证,并拥有各种照明加工设备100多台。【质量认证】:过3C、CE、CB、ROHS认证。 LED数码管、日光灯、格栅灯是华炜主打的产品。LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用 LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 LED数码管的特点 1.LED数码管以发光二极管作为发光单元,颜色有单红,黄,蓝,绿,白,七彩效果。单色,分段全彩管可用大楼,道路,河堤轮廓亮化,LED数码管可均匀排布形成大面积显示区域,可显示图案及文字,并可播放不同格式的视频文件。通过电脑下flash、动画、文字等文件,或使用动画设计软件设计个性化动画,播放各种动感变色的图文效果; 2.可放在PCB电路板上按红绿兰顺序呈直线排列,以专用驱动芯片控制,构成变化无穷的色彩和图形。外壳采用阻燃PC塑料制作,强度高,抗冲击,抗老化,防紫外线,防尘,防潮。LED护栏管具有功耗小,无热量,耐冲击,长寿命等优点,配合控制器,即可实现流水,渐变,跳变,追逐等效果。如果应用于大面积工程中,连接电脑同步控制器,还可显示图案,动画视频等效LED数码全彩灯管可以组成一个模拟LED显示屏,模拟显示屏可以提供各种全彩效果及动态显示图像字符,可以采用脱机控制或计算机连接实行同步控制;可以显示各式各样的全彩动态效果。控制系统采用三泰VISS专用灯光编程软件编辑,数码管控制花样更改方便,只需将编辑生成的花样格式文件复制进CF卡即可,数码管控制器可以单独控制,也可多台联机控制,数码管安装编排方式任意,适合各种复杂工程需求。数码管、控制器以及电源等以标准公母插头连接,方便快捷,并具有独特的外形设计,全新的户外防水结构。第四篇:单片机数码管显示课程设计
第五篇:LED数码管的简单介绍