为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

数码管动态显示

2017-10-07 19页 doc 185KB 16阅读

用户头像

is_574951

暂无简介

举报
数码管动态显示数码管动态显示 题 目 数码管动态显示 _ 姓 名 专 业 学 号 指导教师 郑州科技学院电气工程学院 目 录 摘 要 .................................................................................................. I 1背景 ................................................................................................
数码管动态显示
数码管动态显示 题 目 数码管动态显示 _ 姓 名 专 业 学 号 指导教师 郑州科技学院电气工程学院 目 录 摘 要 .................................................................................................. I 1背景 ................................................................................................. 1 1.1介绍 ....................................................................................... 1 1.2设计步骤 ............................................................................... 2 2 设计思路 ........................................................................................ 3 2.1对比 ............................................................................... 3 3元件的选择 ..................................................................................... 6 3.1单片机 ................................................................................... 6 3.2 显示元器件的选择 .............................................................. 6 4 设计原理及功能说明 .................................................................... 8 4.1 各部分功能说明 .................................................................. 8 5 装配与调试 .................................................................................. 14 5.1装配 ..................................................................................... 14 5.2调试 ..................................................................................... 14 6 .............................................................................................. 15 附 录 ................................................................................................ 17 附录一:元件清单 ................................................................... 17 附录二:电路源程序 ............................................................... 17 数码管动态显示的设计 摘 要 本文介绍了一种基于AT89C51单片机的8个数码管滚动显示单个数字的设计,让八位数码管滚动显示0、1、2、3、4、5、6、7,我们以液晶显示技术的发展为背景,选择了比较常用的液晶数码管显示模块,利用了单片机控制数码管模块的显示机理。 研究学习AT89C51单片机其功能,对学习过的单片机,C语言课程进行巩固,设计一款在8只数码管上流动显示单个数字的程序,并用PROTEUS进行电路设计和实时仿真。 该电路有两部分组成:AT89C51单片机和显示模块组成。AT89C51单片机具有超低功耗和CPU外围的高度整合性;显示模块数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极,方便易用。实际应用中不需要外部任何元器件即可实现,具有接口电路简单、可靠,易于编程的特点,抗干扰性好等特点。 单片机技术使我们可以利用软硬件实现数码管准确显示各种数码。而且这种技术相对简单,性价比较高,在我们生活中应用很广泛,具有一定的发展前景。 关键词:AT89C51单片机;数码管;滚动显示 I 数码管动态显示 1背景 1.1介绍 随着电子技术的发展,特别是新型集成电路、分立元件的不断投入市场,使得人们对电子技术应用的关注程度已大大超过了电子技术本身。在计时,自动报时及自动控制等领域发挥着重要的作用,在人们的日常生也愈加离不开数字化的各种生活用品,电子技术深入到社会生活的各个角落。 工业生产中许多地方都需要对电器设备进行自动控制,这样单片机便显得特别重要。具有很高的实用价值,像现在的一些家电如全自动洗衣机、空调等都需要实现开关定时控制这样的功能。还有一些设备如果在设计时加上单片机技术便会更加提高设备的性能,使之更加自动化、智能化。 单片机是一门实践性和应用性都很强的课程,因此在学习课程理论知识的同时,要注重对技术应用能力的培养,使理论和实践紧密结合,通过本次课程设计还学到了分析、查寻、和排除故障的方法。 为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。通过设计使学生在所学知识的基础之上具有初步的单片机系统设计与应用能力。培养我们的能力: (1)加强我们对模拟电子技术,电子工艺的理解和巩固,将自己所学习的知识应用到实践当中。 1 数码管动态显示 (2)同时通过这次的研究能让同学进一步地了解LED灯,而不是仅局限与课本知识以内。从小的突破点入手,掌握又一项科技知识,从而实现课堂外的又一次提高。 (3)通过对实用电路的设计、安装、调配、总结,能清晰的认识到自己的不足,培养自己的开发性思维,提高自己的想象力动手能力,为以后的工作做好铺垫。 1.2设计步骤 (1)设计8个数码管滚动显示单个数字,能够在对应程序下显示对应的数字,为人们的生活和工作提供方便。 (2)设计几种不同的电路,并做出对比,选出最合适的电路设计。 (3)调试电路 (4)总结自己小组的电路,对其中不合适的进行修改调换。 (5)对电路进行包装 (6)对所做的电路总结,写出设计。 随着微电子技术的不断创新,以及大规模集成电路工艺水平 [3]的不断提高,出现了大量的低功耗、高性价比的微处理器。采用微处理器作为系统控制芯片,结合其相应的特点,使得整个系统设计成本降低,而且测量精度也大大提高,满足便携式系统的设计要求。 2 数码管动态显示 2 设计思路 2.1方案对比 方案一:电路设计比较合理,复杂程度适宜,容易调控和使用。而且电路图一目了然,清清楚楚。 图2.1 设计图一 方案二:电路过于简单,虽然电路所需要的电源不大,比较节能。可是不够稳定,过于简单,在使用过程中不能很好的发挥作用。 3 数码管动态显示 图2.2 设计图二 方案三:虽然电路各方面都比较完整,但是电路显得过于复杂,不容易操作、在焊接过程中会出现比较多的不必要的麻烦。在调试过程中,也会让人很费力,效果却不一定好。 4 数码管动态显示 图1.3 设计图三 在这几个方案中,由于我在学校学了微机原理,以及单片机。而且这个方法比较简单,又实用,能充分体现出我在校期间对所学知识掌握的程度,然而此系统成本低、易于实现为恒流电路,如果采用恒压电路则电压高不稳定,故此我选择了第三种方案。 5 数码管动态显示 3元件的选择 3.1单片机 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单 【】1片机。40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52。 3.2 显示元器件的选择 在系统中要显示时间,就必需有显示无器件,目前市场上显示元器件很多,有LCD、点阵显显、7段数码管显示等。LED显示器与LCD显示器相比,LED在亮度、功耗、可视角度和刷新速 6 数码管动态显示 【】2率等方面,都更具优势。LED与LCD的功耗比大约为10:1,而且更高的刷新速率使得LED在视频方面有更好的性能现,能提供宽达160?的视角,可以显示各种文字、数字、彩色图像及动画信息,也可以播放电视、录像、VCD、DVD等彩色视频信号,多幅显示屏还可以进行联网播出。有机LED显示屏的单个元素反应速度是LCD液晶屏的1000倍,在强光下也可以照看不误,并且适应零下40度的低温。利用LED技术,可以制造出比LCD更薄、更亮、更清晰的显示器,拥有广泛的应用前景。由此可知LCD缺点是比较耗电,而且成本也较高。从节约成本和节约能源的角度作为出发点,我们选择两组4位7段共阴数码管作为时间显示,以便节约成本和功耗。 在轮流显示过程中,每位数码管的点亮时间为1,2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。 为了充分利用单片机I/O口本设计采用动态显示,单片机P0口接段码,P2口接位选,然而P0不能直接驱动数码管,所以我们选择9015 - PNP外延型晶体管(三极管)作为驱动它是一种小电压,小电流,小信号的PNP型硅普通三极管。 7 数码管动态显示 4 设计原理及功能说明 4.1 各部分功能说明 设计原理如图所示: 时钟电路 信号放大 译码显示 控制电路 图4.1 设计原理 控制部分: P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时, 输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 8 数码管动态显示 此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能 P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1” 9 数码管动态显示 时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 图4.2 复位电路及时钟电路 10 数码管动态显示 ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高, 【】3 单片机执行外部程序时,应设置ALE禁止位无效。 PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行内部程序存储 11 数码管动态显示 器的指令。 FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。 图4.3 89C51单片机 显示部分: 数码管的驱动方式: 12 数码管动态显示 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的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增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,显示字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM 【】4 端,就使各个数码管轮流受控显示,这就是动态驱动。 为了充分利用单片机I/O口本设计采用动态显示,单片机P0口接段码,P2口接位选,然而P0不能直接驱动数码管,所以我们选择9015 - PNP外延型晶体管(三极管)作为驱动它是一种小电压,小电流,小信号的PNP型硅普通三极管。 13 数码管动态显示 5 装配与调试 5.1装配 (1)焊接:先焊接所有跳线:先确定好跳线长度,两端剥去绝缘层。拧好,上锡,再焊接。也可以用剪下来的元件引脚做跳线。再焊接集成电路插座和其它元件。 注意:所给的数码管插槽和电路板所需要的有所不同,所以要进行改进。 (2)检查、排错:根据网络表(或电路原理图)用万用表检查铜膜线有无短路、断路,发现错误,及时排除。比如,8个三极管的正负极是否接对,电容的正负极是否接正确等等。 (3)确定无错误后,可以插上集成电路器件。 (4)注意芯片引脚脚的位置,不能接错,否则将损坏。 5.2调试 (1)掌握正确的调试方法,一是要多实践,二是要弄清楚该电路各部分的原理。 (2)通电前,用万用表的欧姆档(1K档)检查电路中有无短路,若短路,应排除故障后在通电; (3)装载以下程序: 14 数码管动态显示 6 总结 电子课程设计,这对于我们学生来说是一个全新的学习内容。当老师把课题分发下来之后,我们就开始查阅资料。认真了解课程设计的相关知识及技巧。确定小组成员之后,我们便确定电子课程设计题目。为了做到学以致用,我们决定做8个数码管滚动显示单个数字这个课题。我们可以用本次实验的课程设计来验证书本中所学习的内容,能够让我们巩固以前的知识,更能让我们学习到许多课本以外的知识。 通过制作低成本8只数码管滚动显示单个数字结合了所学的许多知识,深刻地的体会到了将理论联系到实际的真实含义。当电路板做好并能够实现定时功能,就能够进一步了解其原理了。 同时,通过这次设计性实验,对于单片机有关接口电路的设计有了更清楚的了解。而对于protel 99se这个软件有了一定的掌握,知道了该软件的强大功能:能够在电脑上进行各种电路和电路板的设计,大大避免了用实际电路进行设计中可能出现的错误 该设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更深层次的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流得到解决。 还有数码管是我们生活中非常常见的一种东西,对于我们学以致用的这种能力得到了很好锻炼,能够为我们以后的工作于学习打下基础。 15 数码管动态显示 参考文献 [1] 皮大能《单片机课程设计》..北京:北京理工大学出版社,2010,101~120. [2] 罗伟.《单片机应用》.北京:北京人民邮电出版社,2010,128~142. [3] 王兆安.《电力电子技术》.北京:机械工业出版社,2007,50~67. [4] 苏文平.《新型电子电路应用实例精选》.北京:北京航空航天大学出版社,2010,37~52. 16 数码管动态显示 附 录 附录一:元件清单 序号 名称 值 个数 1 ---- 1 86C51单片机 2 22pf 2 电容 3 12mHZ 1 晶振 4 ---- 1 液晶显示屏 5 220 8 电阻 6 ---- 8 NPN三极管 7 10k 1 电阻 8 10uf 1 极性电容 附录二:电路源程序 #include #include #define uchar unsigned char #define uint unsigned int uchar code DSY_CODE[]= { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 }; void DelayMS(uint x) { uchar i; while(x--) { for(i=200;i>0;i--); } } 17 数码管动态显示 void main() { uchar i,k=0x80; while(1) { for(i=8;i>0;i--) { P2=0xff; k=_crol_(k,1); P0=DSY_CODE[8-i]; P2=k; DelayMS(3); } } } 18
/
本文档为【数码管动态显示】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索