1、第六届电信杯武汉纺织大学电子设计竞赛设计报告内容摘要:近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。本任务是个简易的六位数的四则运算,程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。本任务重在设计构思与团队合作,使得我们用专业知识、专业技能分析和解决问题全面系统的得到锻炼。关键词:单片机 计算器 加减乘除 数制转换 实时显示时间第一章 引言1.1 命题背景本小组秉着结合实际,融入兴趣,
2、适当挑战的选题原则,经过反复的论证,选定电子计算器作为我们的课程设计的设计项目。 1.2 命题研究的意义由于我们现在是大四学生,要准备从理论知识向专业知识转变的时期,培养我们对专业的了解,对未来从事行业有个直观的认识,促进自身自主创新精神和能力的培养,提高自身针对实际问题进行电子设计制作的能力。第二章 设计要求、方案论证及开发过程2.1 设计要求2.1.1基本要求(1)具备4位十进制数的加减乘除操作,除法可四舍五入。(2)计算初值、和结果需显示。2.1.2 发挥部分(1)带小数点的除法。(2)十进制与二进制、十六进制的转换。(3)实时显示时间(不计算数据时,需显示当前时间)。(4)其他。2.1
3、.3说明(1)计算器电池自备,要求8节1.2伏电池。(2)竞赛时将会验收计算器计算时所需的时间。(3)设计报告正文中应包括系统总体框图、核心电路原理图、主要流程图、主要的测试结果。完整的电路原理图、重要的源程序和完整的测试结果用附件给出。2.2系统基本方案选择和论证 2.2.1 核心控制模块方案论证 (1)用纯模电,数电实现: 鉴于我们现有的知识水平、工程能力和经验都不足,而且如果要用纯数电,模电去实现电子计算器的核心控制,工程量大,知识储备和调试经验要求很高,显然我们现阶段不具备这样的条件。 (2)用单片机,数电,模电混合实现: 虽然我们这学期刚学单片机,要很好地运用单片机结合数模电去完成一
4、个项目,需要我们对单片机有较深入的理解。但是,如果用单片机去实现电子计算器的核心控制,将会大大缩小工程量,而且单片机的项目应用网络上有很多实例,可以借以参考和引用。 该模块总结:综上所述,方案一可行性差,方案二缺点在于我们的单片机刚学,知识储备不够。讨论后决定通过提前自学和结合单片机教学视频超过老师的教学安排去自己深入了解单片机去弥补方案二的缺点。鉴于此,本小组特意买了一块单片机的开发板结合教学视频学习单片机。2.2.2 显示模块方案论证 (1) 静态显示LED接口 1)连接方法 各数码管的公共极固定接有效电平,各数码管的字形控制端分别由各自的控制信号控制。 2)优点 LED显示亮度温度,容易
5、调节,编程容易,工作时占用CPU时间短。 3)缺点 若直接用单片机输出各位数码管的字形信号时,占用单片机的I/O口线较多。一般仅适用于 显示位数较少的应用场合。 (2) 动态显示LED接口 1)连接方法 各位数码管的字形控制端对应地并在一起,由一组I/O端口进行控制,各位的公共极相互独 立,分别由不同的I/O控制信号控制。 2)优点 节省I/O端口线 3)缺点 显示亮度不够稳定,影响因素较多;编程较复杂,占用CPU时间较多。 该模块总结:综上所述,两个方案各有其优缺点,讨论后也较难取舍,最终决定做两个不同显示和驱动模式下的电子计算器,通过这样的方法深刻的领会静态显示和动态显示对系统编程,驱动设
6、备的要求等等的影响,从而深刻地理解相互间的关系。 2.2.3 键盘模块方案论证(1)采用独立式按键作为输入模块,其特点是直接用I/O口构成单个按键电路,接口电路配置灵活,按键识别和软件结构简单。但是当键数较多时,占用I/O口较多,比较浪费资源。(2)采用用矩阵式键盘作为输入电路。其特点是电路和软件稍复杂,但相比之下,当键数越多时越节约I/O口.比较较节省资源。 该模块总结:本设计使用键盘输入预置用于计算或计时,按键较多。若采用独立按键,需频繁按键,会软件设计增加负担,且操作界面不友好。若采用矩阵式按键,可以方便地输入一个数值,且操作界面更具人性化,节约了宝贵的I/O口资源.通过对比,故采用方案
7、二作为系统输入模块。 2.3电路设计最终方案决定 小组讨论后决定采用两套方案,理由有:一是通过两套显示模块和驱动模块不同的方案来深刻理解相互间的关系,二是准备两套方案,即使其中一套没能完成其功能,也有第二套方案能顺利上交作品。 方案一:选用STC89C52RC单片机作为控制核心,六个共阴数码管作为显示,六个74LS373锁存器作为数码管的驱动,键盘模块折采用矩阵式键盘模式。 方案二:选用STC89C52RC单片机作为控制核心,六个共阴数码管作为显示,八个8050NPN三极管作为数码管的驱动,键盘模块则采用矩阵式键盘模式。2.4单片机应用系统设计开发 2.4.1 STC89C52RC单片机基本数
8、据资料 最高时钟频率080MHZ,Flash程序存储器8K,ROM数据存储器512字节。 2.4.2 单片机最小系统设计 复位电路:10K电阻,复位电路的极性电容22UF。外部时钟电路:晶振12MHZ ,22PF瓷片电容。 第三章 硬件电路结构的设计与实现 3.1电路设计框图 3.2系统硬件概述 两方案共有硬件: (1)STC89C52RC 最高时钟频率080MHZ,Flash程序存储器8K,ROM数据存储器512字节 封装引脚图如下: (2)共阴数码管 LED数码管有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳的,相反的,就叫
9、共阴的,那么应用时这个脚就分别的接VCC和GND。再把多个这样的8字装在一起就成了多位的数码管了。 找公共共阴和公共共阳。首先,我们找个电源(3到5伏)和1个1K(几百的也欧的也行)的电阻,VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的,找到一个就够了,然后用GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED发光(一般是8个),那它就是共阴的了。相反用VCC不动,GND逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阳的了。引脚图如下: (3)矩阵键盘 键盘是单片机系统中最常用的人机对话输入设备,用户通过键盘向单片机输入数据或指令。键盘控制
10、程序需完成的任务有:监测是否有键按下,有键按下时,在无硬件去抖的动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按键持续多长时间,仅执行一次按键功能程序。矩阵按键扫描程序是一种节省IO口的方法,按键数目越多节省IO口就越可观,思路:先判断某一列(行)是否有按键按下,再判断该行(列)是那一只键按下。但是,在程序的写法上,采用了最简单的方法,使得程序效率最高。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的CPU时间。本键盘扫描程序的优点在于:不用专门的按键延时程序,提高了CPU效率,也不用中断来扫描键盘,节省
11、了硬件资源。另外,本键盘扫描程序,每次扫描占用CPU时最短,不论有键按下或者无键按下都可以在很短的时间完成一次扫描。 键盘连接图如下: 方案一独有硬件: (1)74LS373锁存器 74LS373是一个带有输出三态们的8位锁存器,具有8个输入端D0D7,8个输出端Q0Q7,LE为数据锁存控制端,高电平有效,OE为输出允许端,低电平时把锁存器中的内容通过输出端输出,74LS373还有加强驱动能力的作用。 引脚图如下: 方案二独有硬件: (1)8050三极管 NPN三极管,起放大电流驱动数码管的作用。 引脚图如下: 3.3硬件电路结构的设计 3.3.1显示模块的设计 方案一:采用LED静态显示,六
12、个COM口接地,每个数码管的段码接对应的锁存器,由锁存器控制其显示信号。 电路图如下: 方案二:采用LED动态显示,P3口接段码、P2口的P2.0P2.5接位码,与位码间还要接220欧的限流电阻。 电路图如下:3.3.2键盘模块设计 方案一:采用矩阵键盘,共十六个,四行接P3口的低四位,四列接P3口的高四位,每列都接一个限流电阻10K和一个5V电源。电路图如下:方案二:采用矩阵键盘,共十六个,P1口接键盘端,每列都接一个限流电阻10K和一个5V电源。 电路图如下:3.3.3驱动电路设计 方案一:采用74LS373锁存器作为驱动器件,6个数码管对应6个锁存器,锁存器的六个控制端LE接P2的低六位
13、,输入端接P1口,输出端接数码管的段码。 方案二:采用8050NPN三极管作为驱动器件,其中C极接5V电平,B极接P3口,E极接数码管的段码。 3.4扩展电路及器件的连接3.4.1 电源组件 电源由5V电源直接供电,需要接5V电源的位有:各器件的电源端,单片机的EA端,键盘的每一列。3.4.2晶振电路及XTALI,XTAL2引脚的连接 其中晶振12MHZ ,瓷片电容22PF。连接如图所示:3.4.3复位电路及复位引脚RST的连接 其中10K电阻,复位电路的极性电容22UF复位电路连接如图所示:第四章 软件设计 4.1主程序流程图 4.2基础程序设计 由于我们考虑到现阶段我们还没有足够的能力完全
14、自己去编写一个项目的程序,所以我们在基础程序的设计上主要是照搬网上的值得有价值和可信的程序。但是尽管这样,网上的程序在我们的实践中还是出现了不少的小问题或者说是小缺陷,而这些都是由我们自己一一完善了。4.3附加子程序的设计 4.2.1 实时显示时间子程序 这个附加的实时显示时间是整个作品中最难实现的功能,不是说它的程序难编,而是难在如何很好地与现有硬件条件相融合,在不破坏现有程序完整和功能的基础上去实现这个显示时间。这个附加功能在第一个方案中完成了,完成的过程很曲折,犯了很多错误。这个子程序关键在于显示那个环节怎样和原程序结合。我简要介绍下:首先是走时必须要计时,所以就定义了一个中断和一个计时
15、函数去实现计时,程序见附录注释。4.2.2 数制转换子程序 这个附加功能难度在于我们原来设计的硬件并没有安排按键用于数制的转换,而且是两对数制间的转换,我们再三考虑也只能腾出原来的复位按键用于数制的转换,但是又如何用一个按键去控制两对数制间的转换呢?后来不断地尝试中,完成了用一个按键,按一下表示一对数制的转换,按两下表示令一对数制的转换。这个过程就涉及到了一个等待的时间,所以显示前一对数制转换时会有延时,这个延时是用于等待是否进行后一对数制的转换,程序见附录注释。第五章 理论分析与计算 5.1 理论计算 本项目没有涉及太多的理论计算,涉及到的一些器件的数值更多的是经验值。主要的还是依赖出色的编
16、写程序去控制既有的硬件条件。可能涉及到的计数的就是那些限流电阻不能太大,不然可能使器件无法获得足够电压进行工作,这样会导致例如数码管不够亮等等的现象。至于复位电路和时钟电路所用电阻电容的数值本小组没有做深入探究,只根据书本和网络上主流的经验值结合各器件的说明来确定。5.2 测量与控制方法 本项目也没有涉及太多测量与控制的方法,因为项目的功能有没有实现会很直观地显示出来,不需要太多的测量与控制。结论与感想结尾在此次实践中,自己觉得获得了很大的提高和进步,不仅仅是知识上的丰富,更重要的是动手能力得到了很好的锻炼,同时还有一个很深刻的体会,那就是团队意识,我自己觉得这点非常重要,因为有的时候遇到一些问题,自己也许要想漫长时间才能想到,但和同伴一交流,经过一番讨论,不仅问题得到了解决,而且印象深刻,而且充分感受到了在实践中学习的乐趣!参考文献1. 谢维成. 单片机原理与应用及C51程序设计. 北京:清华大学出版社,20062. 阎 石. 数字电子技术基础. 北京:高等教育出版社,20063. 童诗白. 模拟电子技术基础. 北京:高等教育出版社,2006
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1