用单片机控制数码管显示数字 的设计与研究 毕业设计.docx

上传人:b****5 文档编号:5803698 上传时间:2023-01-01 格式:DOCX 页数:6 大小:24.45KB
下载 相关 举报
用单片机控制数码管显示数字 的设计与研究 毕业设计.docx_第1页
第1页 / 共6页
用单片机控制数码管显示数字 的设计与研究 毕业设计.docx_第2页
第2页 / 共6页
用单片机控制数码管显示数字 的设计与研究 毕业设计.docx_第3页
第3页 / 共6页
用单片机控制数码管显示数字 的设计与研究 毕业设计.docx_第4页
第4页 / 共6页
用单片机控制数码管显示数字 的设计与研究 毕业设计.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

用单片机控制数码管显示数字 的设计与研究 毕业设计.docx

《用单片机控制数码管显示数字 的设计与研究 毕业设计.docx》由会员分享,可在线阅读,更多相关《用单片机控制数码管显示数字 的设计与研究 毕业设计.docx(6页珍藏版)》请在冰豆网上搜索。

用单片机控制数码管显示数字 的设计与研究 毕业设计.docx

用单片机控制数码管显示数字的设计与研究毕业设计

用单片机控制数码管显示数字的设计与研究毕业设计

        毕业论文  用单片机控制数码管显示数字  的设计与研究    学生姓名:

    专  业:

    年  级:

    学  号:

    指导教师:

          职业技术学院毕业论文  目录  摘要.............................................................................................................................2设计背景与方案...........................................................................................................3第一章单片机介绍.....................................................................................................5单片机基础知识学习.......................................................................................5AT89S51单片机的主要性能参数...................................................................7AT89S51芯片内部结构简介...........................................................................7主要引脚功能...................................................................................................8第二章数码管的介绍...............................................................................................12数码管分类、结构及工作原理.....................................................................12数码管的引脚.................................................................................................13驱动方式.........................................................................................................14第三章KEIL软件简介............................................................................................16系统概述.........................................................................................................16整体结构简介.................................................................................................16建立项目步骤.................................................................................................17第四章程序设计及仿真...........................................................................................22设计要求.........................................................................................................22利用PROYEUS仿真软件画出电路图............................................................22流程图绘制以及说明....................................................................................23用KIEL设计程序及仿真结果........................................................................23心得体会.........................................................................................................29附录A..........................................................................................................................30附录B..........................................................................................................................31致谢.............................................................................................................................34

  

      职业技术学院毕业论文  寄存器的内容),在整个访问期间不改变。

Flash编程或校验时,P2亦接收高位地址和其它控制信号。

  P3口:

P3口是一组带有内部上拉电阻的8位双向I/0口。

P3口输出缓冲级可驱动4个TTL逻辑门电路。

对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。

作输入端时,被外部拉低的P3口将用上拉电阻输出电流。

P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表所示:

  表2具有第二功能的P3口引脚  端口引脚  第二功能RXDTXD/INT0/INT1T0T1/WR/RD外部数据存储器读选通)P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位可打开或关闭该功能。

DISRT0位缺省为RESET输出高电平打开状态。

  ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。

即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉冲。

对F1ash存储器编程期间,该引脚还用于输入编程脉冲。

如有必要,可通过对特殊功能寄存器区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只有一条M0VX和M0VC指令ALE才会被激活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。

  PSEN程序储存允许输出是外部程序存储器的读选通信号,    10  ————  ————  ————  职业技术学院毕业论文  当AT89S51外部程序存储器取指令时,每个机器周期两次PSEN有效,即输出两个脉冲。

当访问外部数据存储器,没有两次有效的PSEN信号。

  EA/VPP:

外部访问允许。

欲使CPU仅访问外部程序存储器,EA端必须保持低电平。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平,CPU则执行内部程序存储器中的指令。

F1ash存储器编程时,该引脚加上+12V的编程电压Vpp。

  XTAL1:

振荡器反相放大器及内部时钟发生器的输入端。

        11  ——  ————  ————  职业技术学院毕业论文    第二章数码管的介绍  数码管分类、结构及工作原理  一、数码管分类  数码管也称LED数码管,数码管是一种半导体发光器件,其基本单元是发光二极管.数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元;按能显示多少个“8”可分为1位、2位、3位、4位、5位、6位、7位等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

  共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。

共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就不亮。

  共阴数码管是指将所有发光二极管的阴极接到一起形成公共阳极(COM)的数码管。

共阴数码管在应用时应将公共极PWR接到电源输入PWR上,当某一字段发光二极管的阴极极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就不亮。

二、数码管结构  LED数码管是多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。

LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。

位数有半位、1、2、3、4、5、6、8、10位等等,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。

共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。

颜色有红,绿,蓝,黄等几种。

LED数码管广泛用于仪表,时钟,车站,家电等场合。

选用时要注意产品尺寸颜色,功耗,亮度,波长等。

三、数码管工作原理  数码管的每一段是发光二极管组成,所以在使用时跟发光二极管一样,也要连接限流电阻,否则电流过大会烧毁发光二极管的。

    12  职业技术学院毕业论文  共阳极数码管中8个发光二极管的阳极连接一起,即为共阳极接法,简称共阳数码管。

通常,公共阳极接高电平,其它管脚接段驱动电路输出端。

当某段驱动电路的输入端为低电平时,该端所连接的字段导通并点亮。

根据发光字段的不同组合可显示出各种数字或字符。

此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。

  共阴极数码管中8个发光二极管的阴极连接在一起,即为共阴极接法,简称共阴数码管。

通常,共阴极接低电平,其它管脚接段驱动电路输出端。

当某段驱动电路的输出端为高电平时,该端所连接的字符导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。

同样,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。

  数码管的引脚  数码管一般有七段或者八段(小数点DP段有就是八段,否则就是ABCDEFG七段)。

    图2-1共阳极数码管引脚图  数码管分共阴极和共阳极两种;共阴极则是把所有LED的阴极连接到共同接点COM,而每个LED的阳极分别为A、B、C、D、E、F、G及DP),引脚有a、c、d、e、f、g、h和公共端,如下图(h引脚也叫做DP引脚,接的就是小数点)      13  职业技术学院毕业论文      图2-2共阴极数码管引脚图  对于单个数码管来说,从它的正面看进去,左下角那个脚为1脚,以逆时针方向依次为1~10脚,左上角那个脚便是10脚了,上面两个图中的数字分别与这10个管脚一一对应。

注意,3脚和8脚是连通的,这两个都是公共脚。

  驱动方式  数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

  一、静态显示驱动  静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都一个单片机的I/O端口进行驱动,或者使用如BCD码二—十进制译码器译码进行驱动。

静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

二、动态显示驱动  数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a、b、c、d、e、f、g、dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通各自独    14

  

      职业技术学院毕业论文  立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

          15  职业技术学院毕业论文    第三章Keil软件简介  单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。

机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部份组合在一起。

运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。

  掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

  系统概述  KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

  KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

  整体结构简介  C51工具包的整体结构,如图3-1所示,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。

开发人员可用IDE本身或其它编辑器编辑C或汇编源文    16  职业技术学院毕业论文  件。

然后分别C51及A51编译器编译生成目标文件(.OBJ)。

目标文件可LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。

ABS文件OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

      图3-1C51工具包的整体结构图  建立项目步骤  点击Project菜单,选择弹出的下拉式菜单中的NewProject,如图3-2。

    图3-2  接着弹出一个标准Windows文件对话窗口,在“文件名”中输入您的第一个C程序项目名称,“保存”后的文件扩展名为uv2,这是KEILuVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。

  选择所要的单片机。

  首先我们要在项目中创建新的程序文件或加入旧程序文件。

如果你没有现成的程序,那么就要新建一个程序文件。

    17  职业技术学院毕业论文  点击保存新建的程序,也可以用菜单File-Save或快捷键Ctrl+S进行保存。

我们把第一个程序命名为,保存在项目所在的目录中,这时你会发现程序单词有了不同的颜色,说明KEIL的C语法检查生效了。

如图3-3,鼠标在屏幕左边的SourceGroup1文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。

        图3-3  C程序文件已被我们加到了项目中了,下面就剩下编译运行了。

如图3-4,图中1、2、3都是编译按钮,不同是1是用于编译单个文件。

2是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。

3是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。

在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。

在4中可以看到编译的错误信息和使用的系统资源情况等,以后我们要查错就靠它了。

6是有一个小放大镜的按钮,这就是开启\\关闭调试模式的按钮,它也存在于菜单Debug-Start\\StopDebugSession,快捷键为Ctrl+F5。

        图3-4    18  职业技术学院毕业论文  进入调试模式,软件窗口样式大致如图3-5所示。

图中1为运行,当程序处于停止状态时才有效,2为停止,程序处于运行状态时才有效。

3是复位,模拟芯片的复位,程序回到最开头处执行。

按4我们可以打开5中的串行调试窗口,这个窗口我们可以看到从51芯片的串行口输入输出的字符,这里的第一个项目也正是在这里看运行结果。

首先按4打开串行调试窗口,再按运行按钮。

要停止程序运行回到文件编辑模式中,就要先按停止按钮再按开启\\关闭调试模式按钮。

然后我们就可以进行关闭KEIL等相关操作了。

  生成HEX文件。

HEX文件格式是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示,常用来保存单片机或其他处理器的目标程序代码。

它保存物理程序存储区中的目标代码映象。

一般的编程器都支持这种格式。

        图3-5  打开目录,找到的文件就可以打开先前的项目了。

然后右击图3-6中的1项目文件夹,弹出项目功能菜单,选OptionsforTarget’Target1’,弹出项目选项设置窗口,同样先选中项目文件夹图标,这时在Project菜单中也有一样的菜单可选。

    19

  

      职业技术学院毕业论文        图3-6  打开项目选项窗口,转到Output选项页图3-7所示,图中1是选择编译输出的路径,2是设置编译输出生成的文件名,3则是决定是否要创建HEX文件,选中它就可以输出HEX文件到指定的路径中。

        图3-7  选好后再将它重新编译一次,很快在编译信息窗口中就显示HEX文件创建    20  职业技术学院毕业论文  到指定的路径中了,如图3-8这样我们就可用自己的编程器所附带的软件去读取并烧到芯片了,再用实验板看结果。

        图3-8          21  职业技术学院毕业论文    第四章程序设计及仿真  设计要求  要求利用单片机中断功能控制数码管显示,状态:

当无外中断时,主程序运行状态为七段数码管的A到G段依次点亮,不断循环,有外中断输入时,显示为0到9,然后返回主程序原断点,继续执行,数码管继续段点亮。

  利用proyeus仿真软件画出电路图  首先添加元器件:

元件拾取共有两种办法,一种是按类别查找和拾取元件,另一种是直接查找和拾取元件。

然后在原理图编辑区单击鼠标左键即完成元件的释放。

最后电路连线:

用鼠标左键单击编辑区元件的一个端点拖动到要连接的另外一个元件的端点,先松开左键后再单击鼠标左键,即完成一根连线,以此类推最终结果如图4-2所示。

  图4-2      22  职业技术学院毕业论文    流程图绘制以及说明  主程序主要分为四部分,包括复位电路部分、独立按键的判别部分、单片机控制主程序部分和译码显示部分,模块流程图如图4-1所示:

      结束返回重新检测按键将单片机处理的数据进行显示单片机主控制电路计数加1,向单片机申请显示该数值。

向单片机申请显示0Y是否按键?

N开始    图4-1主程序流程图    用keil设计程序及仿真结果  一、程序如下:

    ORG  0000H  ;从0000H单元开始  23      职业技术学院毕业论文  LJMPSTARTSTART:

  MOV  MOV  SP,#5FH  ;跳转到真正的程序起点  ;堆栈初始化  20H,#00H  ;20H作为计数器  LOOP:

    CALLDISP  ;调用显示程序  ;调用延时程序;计数器加1  ;将计数器中的值送到A中  CALLDELAY  INC  MOV  20H  A,20H  CJNE  A,#0AH,L1;A中的值到了10吗?

未到转L1  MOV      20H,#00H      ;转LOOP继续循环;A中的值到了10让其回0  L1:

  LJMPLOOP    DISP:

  ;显示子程序  ;硬件电路要求  ;取出计数器中的值送A  CLR    MOV  MOV  A,20H  DPTR,#50H;将字形码表的首地址送到DPTR中  MOVCA,@A+DPTR;根据A中的值查表  MOV  RET    P0,A      ;查出相应字形码送到P0口  ;返回  DELAY:

  ;延时子程序  ;R7=10  MOVR7,#10  D1:

  MOVD2:

  MOVD3:

  DJNZ    DJNZ  DJNZ  RET  R6,#250  ;R6=250R5,#250  ;R5=250R5,D

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1