综合课程设计(二)系 系 教育学院 信息与技术学院 专业名称 信息工程班 1403 班级名称 ** 数码管动态显示指导教师 完成时间 2016 年 6 月 25 日 数码动态管显示 1 设计内容要求 本课程设计内容确定数码管动态扫描显示模块,具体内容如下: 掌握动态扫描显示电路驱动程序的编写方法。 3、总体设计思路 LED数码动态显示的基本方法是分时轮流选通数码管的公共端,使每个数码管轮流开启。 相应的数码管选通后,显示区就会显示字形代码。 这样,数码管的发光效率高,而且由于各数码管的场线是并行使用的,所以硬件电路大大简化。 动态扫描显示接口是单片机系统中应用最广泛的显示方式。 接口电路将所有显示器的8个笔画段a~dp的同端并联连接,每个显示器的公共极COM独立接受I/O线控制,CPU将场形码发送到场输出端口。 显示器具有相同的端子并连接以接收相同的字形代码,但哪个显示器打开取决于COM端子,并且该端子由I/O控制,因此您可以决定何时显示哪一位。 所谓动态扫描是指采用分时的方式依次控制各个显示器的COM端,使各个显示器轮流点亮。 在本课程设计中,使用两个74HC573锁存器来实现其段选择和位选择。 U1元件74HC573锁存器的数据输出端相连,锁存器的数据输入端用于凝结单片机的P0口。 端口加了上拉电阻。
数码管中的WE1、WE2、WE3、WE4、WE5、WE6、WE7、WE8是它们的位选择端,接下面U2器件74HC573的数据输出端的低8位,数据输入U2端也连接到单片机,两个锁存器的P0口分别连接到单片机的P2.6和P2.7,因为单片机可以控制锁存器的锁存端,并且然后控制锁存器的数据输出。 采用分时控制方式,可以方便地控制任意数码管显示任意数字。 第一个数码管显示1,时间设置为n秒,然后关闭,立即让第二个数码管显示2,时间仍然是n秒,然后关闭,直到最后一个数码管显示8 ,时间也是n秒,关闭最后返回显示第一个数码管,不断循环,实现动态扫描显示的功能。 4 方案演示 硬件电路中设计8个数码管,每个数码管的8段a、b、c、d、e、f、g、h(h为小数点)分别连接到SEG0~SEG7, 8 每个数码管有8个选通信号DIG0~DIG7可供选择。 选通的数码管显示数据,其余的数码管关闭。 例如,某时刻DIG2为低电平“0”,其他选通信号为高电平“1”,此时只有DIG2对应的数码管显示来自段码信号端的数据,而其余七位数码管显示关闭状态。 根据这个电路状态,如果想让8个数码管全部显示出想要的数据,即8个选通信号DIG0~DIG7必须分别选通。 然后,管上显示的数据与选通信号一起被扫描以用于显示目的。
在依次点亮和扫描的过程中,每个显示屏的点亮时间极短,但由于人的视觉暂留以及发光二极管的余辉效应,虽然实际上各个显示屏在点亮时并不亮。同时,只要扫描的速度足够快,影响的是一组稳定的显示数据,不闪烁。 5 设计流程 5.1 硬件设计 单片机是大规模集成电路技术发展的产物,属于第四代电子计算机。 具有高性能、高速度、体积小、价格低、稳定可靠、应用广泛等特点。 数码管是一种价格便宜、使用方便的器件。 它广泛应用于电器领域,特别是家电领域,如显示屏、空调、热水器、冰箱等。热水器大多采用数码管,其他家电也采用液晶显示屏。 可见屏幕、荧光屏在生活中也发挥着重要的作用。 该单片机具有强大的控制功能和灵活的编程特点。 它已经融入了现代人的生活,成为不可替代的一部分。 显示器的外观设计显示,它采用了8个共阴极数码管。 按照通常的做法,8个数码管水平排列在产品的顶部,如图1所示。这样的设计可以方便地控制控制系统的控制状态。 显示:AT89C52显示的控制核心是AT89C52单片机,如图2所示,AT89C52是一款低电压、高性能CMOS 8位单片机,它含有8kbytes可重写Flash只读程序存储器和256bytes随机存取数据存储器(RAM),该器件采用ATMEL高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52微控制器可以提供许多更复杂的系统控制应用。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,并包含2个外部中断端口,3个16位可编程定时计数器,2个全双工串行通信端口,2个读写端口线, AT89C52可以按照常规方法进行编程,但不能在线编程(仅S系列支持在线编程)。 它结合了通用微处理器和Flash存储器,特别是可重复擦除的Flash存储器,可以有效降低开发成本。 显示控制电路设计 该显示器的控制电路包括电源模块、驱动模块、显示模块、程序下载模块等模块。 设计电路原理图如图3所示:显示控制电路原理图。 串口下载器对显示器充电,驱动模块保证共阴数码管正常显示。 对于共阴极数码管来说,当我们给数码管的任意一个阳极加高电平时,对应的发光二极管级管就会点亮。 将八个数码管水平排列,公共端由锁存器控制,数据段连接到单片机的端口线,构成本显示器的显示模块。 5.2 软件程序设计 1、显示信息处理 动态显示是通过显示方法控制数码管的显示位置和相应的显示字符的高效显示。 当显示器上需要显示某些信息时,必须先取消该信息对应的段码。 它作为要显示的数据存储在相应的数组中。 在发送显示段码之前,需要将对应数码管的共阴极接地,然后通过P0口向数码管发送显示码,在数码管上显示该码要显示的信息展示。
2、具体软件设计 本设计采用8个共阴极数码管来实现动态扫描显示。 使用C语言编程设计共阴数码管显示码表如下: 需要注意的是,刚进入主函数后,进行了一位选择保存命令,然后直接进入大循环,让8-位数码管同时显示。 位选命令只执行一次,所有数码管位选都被选中,即所有数码管显示同时打开,不需要进行位选操作。 该监视器的显示效果如图 4 所示: 数码管显示效果 5.2.1 主程序流程图 显示主程序流程图 5.2.2 子程序流程图 显示子程序流程图 6 电路仿真及结果分析 6.1 电路仿真设计原理 仿真电路图设计原理 数字扫描 图6.2 仿真过程结果分析 仿真过程中,使用Proteus 绘图软件没有出现大的问题。 它们是相对简单的操作。 用keil写程序有很多错误。 原因之一是这个软件如果操作不熟练的话很容易错过一些步骤。 还有一个就是程序的问题,不过都是比较简单的问题。 最后根据仿真结果可以看出,本次课程设计能够准确、彻底地完成设计要求。 利用单片机实现8位8段动态数码管从数字“1”到“8”的扫描显示,通过调节可以达到放慢扫描速度来演示动态显示的目的。程序中的延迟时间。 经过多次操作就可以掌握了。 原则。 7 设计体会 课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要组成部分。 是对学生实际工作能力的具体训练和检验过程。
随着科学技术的飞速发展,微控制器已经成为当今计算机应用中空前活跃的领域,可以说在生活中无处不在。 因此,掌握单片机的开发技术对于21世纪的大学来说非常重要。 对于本次课程设计,我们选择使用微控制器来实现。 虽然我们还没有学习单片机的相关知识,但在老师的指导下,我们查阅了相关资料并进行了相关研究,最终达到了设计要求。 总的来说,这次课程设计让我们收获颇多。 虽然我们在课程设计过程中遇到了很多困难和问题,但最终还是完成了设计任务和要求。 具体可以分为以下几点:第一,自己不够细心,不够严谨。 主要是焊接电路板的时候,由于我是第一次焊接,所以连接的时候很容易接错线,从而出现问题。 这导致了整个电路的故障; 其次,由于对课本理论掌握不够,又是第一次使用Keil软件,操作时容易漏掉一些步骤,导致编程错误; 第三,硬件方面,一开始看仿真图的时候,我觉得不难,觉得很快就能完成。 然而,焊接过程中会出现各种困难,一个小错误就会导致整个电路的故障。 对于一些硬件来说,在物理生产过程中会焊接大量的布线,同时对整体元件的布局也有非常高的要求。 但向同学请教后,各方面都有了不同程度的提高; 第四,在生活方面,我们认识到,无论做什么,只要你足够坚强,有足够的毅力和决心,有足够的克服困难的勇气,没有什么是不可能的。
以本课程设计中焊接电路板为例。 由于是第一次自己做,所以有很多不明白的地方。 焊接前我仔细看了电路原理图,但前两次还是失败了。 我觉得没有什么问题,于是我又仔细检查自己哪里出错了,同时也问同学哪里出错了。 第三次焊接时就可以避免前两次的错误。 第三次焊接后,仍然存在一些小问题。 当时我不相信还有错误,但还是从头开始认真讲解原理图和电路板。 又看了一遍,终于找到了问题的根源; 其实每一个焊接过程都是为了熟悉整个电路的流程。 在本次课程设计中,通过我们的努力,我们在仿真软件和实际物体中都实现了数字动态扫描功能,并且扫描速度可以任意调节,这给了我们一定的成就感,也让我们进一步熟悉了掌握了单片机的内部结构和工作原理,了解了单片机应用系统设计的基本方法和步骤,初步掌握了单片机仿真软件Proteus的使用,还掌握了课程设计报告的编写方法。 总之,通过这次课程设计,我们不仅学到了一些关于单片机的理论知识,但是这些理论知识往往是不够的,尤其是硬件方面,而且我们还有很强的动手能力,即使我们自己做了模拟和代码。 但有时候制作真实的物体并不像想象的那么简单。 在自己动手之前,任何简单的想法都是不合理的。
8 缺点:这个课程设计总体来说是很成功的,但是还有一个小问题,就是模拟的时候会出现下图所示的情况。 我以为代码有问题,但实际对象没有显示错误。 ,如果把时间延迟改成稍微长一点的时间,延迟就不会很明显了,但是问题依然存在。 尝试了多种方法后,仍然无法解决问题的根源。 参考文献《微控制器原理与应用技术》。 中国矿业大学出版社. 2008年6月第1期 [3]康华光. 电子技术基础,高等教育出版社。 第五版。 [4]徐直军. EDA技术和PLD设计。 人民邮电出版社. 第一版,2006年2月。[5]李朝清。 微控制器原理和接口技术。 北京航空航天大学出版社。 [6] 胡汉才. 微控制器原理及其接口技术。 清华大学出版社。 2004 附件完整电路及完整程序:#include reg52.h #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2 ^7; uchar码表[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; 无效延迟(uint); void main() dula=1;P0=表[1]; 杜拉=0; P0=0xff; 韦拉=1; P0=0xfe; 韦拉=0; 延迟(600); 杜拉=1; P0=表[2]; 杜拉=0; P0=0xff; 韦拉=1; P0=0xfd; 韦拉=0; 延迟(600); 杜拉=1; P0=表[3]; 杜拉=0; P0=0xff; 韦拉=1; P0=0xfb; 韦拉=0; 延迟(600); 杜拉=1; P0=表[4]; 杜拉=0;