您好,欢迎访问三七文档
基于单片机的产品计数器设计专业及班级姓名学号指导老师包实训地点田家炳工学院实训时间2013年11月18日至12月6日目录目录................................................................1摘要................................................................31.方案论证..........................................................41.1电路设计分析.................................................41.2整体方案论证.................................................41.3设计步骤.....................................................42.硬件电路设计......................................................52.1系统搭建.....................................................52.2计数器设计...................................................52.2.1原理...................................................52.3锁存器.......................................................72.3.1锁存器作用.............................................72.3.274HC573................................................72.4显示器设计...................................................72.5完整电路图...................................................93.软件设计.........................................................104.项目测试.........................................................125.心得体会.........................................................13参考文献............................................错误!未定义书签。摘要本课题主要是采用低成本的MCS-51系列单片机构成具有高可靠性的技术器设计。系统利用AT89C52作为主控芯片设计的一个通用信号计数器,详细说明了其实现过程。本系统使用汇编语言编写,用AT89C52单片机来实现各模块功能,使用PROTEUS进行仿真。本文描述使用C语言和PROTEUS仿真实现函数信号计数器的基本功能,本文重点介绍了以AT89C52单片机为控制器的测量方法,采用单片机智能控制,结合外围电路进行计数,并用十进制数字来显示计数。关键词:单片机AT89C52电路原理计数显示1.方案论证1.1电路设计分析经分析,此次设计可用软硬件结合,通过软件控制、硬件实现的方式实现。1.2整体方案论证整个课程设计要求我们设计三个部分:计数器、BCD译码器、七段数码管,系统原理方框图如图1所示。根据设计任务指出的要求,我们照旧设计出相应的3个基本原理图:①计数部分原理图;②译码部分原理图;③显示部分电路图整个系统通过计算脉冲进入的个数,在计数器电路中进行计数,将得出的信息通过软件设计使所得的BCD码数据转变为一个十进制的数字并传递给下一级电路锁存器,并驱动显示部分电路工作,即对七段数码管接通相应的管脚电流。1.3设计步骤①检测开发板是否规范、电路能否导通、能否写进程序;②软件编程设计,实现十进制计数;③软件编译、调试、运行;④观察分析结果,保存数据计数器锁存器显示器控制键2.硬件电路设计2.1系统搭建①单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。②对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。③单片机AT89c52原理图及各元件接法:2.2计数器设计2.2.1原理89C52单片机有2个16位的定时/计数器,即定时器0(T0)和定时器1(T1)。T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。这些功能都由特殊功能寄存器TMOD和TCON所控制。当设置为定时工作方式时,定时器计数89C51片内振荡器输出经12分频后的脉冲,即每个机器周期使定时器(T0或T1)的数值加1直至计满溢出。当89C51采用12MHz晶振时,一个机器周期为1μs,计数频率为1MHz。当设置为计数工作方式时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的下降沿时,定时器的值加1。在每个机器周期的S5P2期间采样T0和T1引脚的输入电平,若前一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。此后的机器周期S3P1期间,新的数值装入计数器。所以,检测一个1至0的跳变需要二个机器周期,故最高计数频率为振荡频率的1/24。对输入信号的占空比无特殊要求,但为了确保某个电平在变化之前至少被采样一次,要求电平保持时间至少是一个完整的机器周期,对输入脉冲的基本要求如下图所示,Tcy为机器周期。对输入脉冲宽度的要求2.374HC573锁存器2.3.1锁存器作用锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个I/O口既能输出也能输入的问题。TcyTcy2.3.274HC57374HC573的八个锁存器都是透明的D型锁存器,当使能LE为高时,Q输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器。内部原理图真值表2.4显示器设计显示器工作原理:数码管一种是半导体发光器件,其基本单元是发光二极管,通过对其不同的管脚输入相对的电流,使其发亮,从而显示出数字,能够显示时间、日期、温度等所有可用数字表示的参数的器件。七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,下面给出共阴极的字形码见表数字对应数码管显示控制转换字节(共阴编码)显示--HGFE,DCBA--编码0--0011,1111--3FH;1--0000,0110--06H;2--0101,1011--5BH;3--0100,1111--4FH;4--0110,0110--66H;5--0110,1101--6DH;6--0111,1101--7DH;7--0000,0111--07H;8--0111,1111--7FH;9--0110,1111--6FH;七段数码管驱动方式:直流驱动,即每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。优点是编程简单,显示亮度高,缺点是占用I/O端口多。数码管结构:数码管正面图4连排8段数码管2.5完整电路图3.软件设计ORG0000HSJMPMAINORG0030HMAIN:MOVSP,#60HMOV40H,#0MOV41H,#0MOV42H,#0LOOP:LCALLDISPJNBP3.4,STAR;开关按下转移STARSJMPLOOPSTAR:MOVR5,#100;给个延时LP:LCALLDISPDJNZR5,LP;寄存器非0则转移LP,继续减LP2:JNBP3.4,LP1;开关按下转移LP1,开关抬起就执行下一条INCR6LCALLH2BCDSJMPLOOPLP1:LCALLDISPSJMPLP2DISP:MOVDPTR,#TAB;显示MOVA,40HMOVCA,@A+DPTRMOVP0,ASETBP2.6CLRP2.6MOVP0,#0FEHSETBP2.7CLRP2.7LCALLDELYMOVA,41HMOVCA,@A+DPTRSETBP2.6MOVP0,ACLRP2.6SETBP2.7MOVP0,#0FDHCLRP2.7LCALLDELYMOVA,42HMOVCA,@A+DPTRSETBP2.6MOVP0,ACLRP2.6SETBP2.7MOVP0,#0FBHCLRP2.7LCALLDELYRETTAB:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHH2BCD:MOVA,R6MOVB,#100DIVAB;商给A,余数给BMOV40H,AMOVA,BMOVB,#10DIVABMOV41H,AMOV42H,BRETDELY:MOVR7,#200NOPDJNZR7,$RETEND4.项目测试图表1实物图图表2效果图5.心得体会为期三周的单片机课程设计终于结束了,通过紧张的工作,完成了我们的设计计数器。总的来说,这次课程设计是比较成功的。当然,这其中也经历了许多坎坷,但是在我的坚持不懈下,在老师的细心指导下,在同学们的热情帮助下,最终克服了种种困难,取得了成功。刚开始接到这个课程设计任务时,因为以前做过类似的题目,于是在脑海中初步构建了编写程序的一些控制程序。但是由于缺乏编写大量程序的经验,不能如行云流水般的将全部的各部分代码写出,于是去网上查找相关资料,了解计数器的输入控制原理、运算处理以及显示的原理。了解之后自己尝试编写程序,在此过程中,其中键盘扫描和动态扫描显示扫描程序困扰了我很久,经过三四天的辛苦工作,终于初步把所需要的程序编好了,经过反复的编译差错,仿真编译通过后,再经过反复的仿真调试,并且在同学的帮助和自己对程序进行仿真观察下,终于在课设快结束时成功的调试出结果了。这就是我这三周实训的经过,看似简单,过程却曲折艰辛。通过这次单片机实训,我进一步加深了对单片机的了解。并在编写程序的过程中,遇到了很多问题,使我发现自己以前学习上存在的不足,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不够好。通过与同学探讨和请教老师,终于把问题都解决了,并加深了对计数器工作的原理的了解。同时也掌握了做课程设计的一般流程,为以后的设计积累了一定的经验。做课程设计时,先查阅相关知识,把原理吃透,确定一个大的设计方向,在按照这个方向分模块的把要实现的功能用流程图的形式展示。学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。总之,通过这次的设计,进一步了解了单片微型计算机及应用原理,收获很大,对软件编程、排错调试、查阅资料等方面得到较全面的锻炼和提高。同时通过本次课程设计的学习,掌握了一种系统的研究方法,可以进行一些简单的编程,我还深深的体会到设计课的重要性和目的性所在。为了完成项目,在网络上找到了许多相关的资料,大大扩充自己的知识面,使许多以前想解决却无法解决的困难迎刃而解。将书本上的理论知识和实际有机地结合起来,从理论中得出
本文标题:计数器实训报告
链接地址:https://www.777doc.com/doc-7191397 .html