当前位置:文档之家› 《一位LED数码管显示0-9》

《一位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、绘制原理图(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 0000hsjmp mainorg 000bhsjmp t0_isrorg 0030h main:clr amov dptr,#tablemovc a,@a+dptrmov p0,amov tmod,#01hmov th0,#0d8hmov tl0,#0efhsetb et0setb easetb tr0pd: cjne r0,#100,$inc dptrclr amovc a,@a+dptrcjne a,#00h,aaamov dptr,#table ;如果花样数据完应重新循环clr amovc a,@a+dptraaa: mov p0,amov r0,#00hsjmp pdt0_isr:clr tr0mov th0,#0d8hmov tl0,#0efhinc r0setb tr0retitable:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00hend十一、心得体会通过此次课程设计,使我更加扎实的掌握了有关单片机知识,用汇编语言在KEIL4中编程,在PROTEUS中绘制原理图并进行仿真,通过对这两个软件的学习,了解了其功能的强大,掌握了AT89C51的内部结构及工作原理,对于我们以后的学习和实践有很大的指导意义,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。

过而能改,善莫大焉。

在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。

相关主题