当前位置:文档之家› 数字电子计数器课程设计论文

数字电子计数器课程设计论文

目录绪论 (2)一.《微机原理与接口技术》课程设计任务书(二) (3)1.1.课程设计任务 (3)1.2.课程设计目的 (3)1.3.课程设计要求 (4)1.4.课程设计容 (4)1.5.课程设计报告要求 (4)二.设计方案: (6)三.Protues仿真图及相应部分工作原理: (7)3.1总的仿真图 (7)3.2显示部分 (8)3.3按键部分 (10)3.4计数报警部分 (11)四.程序清单及流程图 (12)4.1.电子器件清单 (12)4.2.程序流程图 (13)五.调试、运行及其结果 (14)六.课程设计的心得体会 (16)七.参考文献 (18)附录 (19)绪论随着计数器技术的不断发展与进步,计数器的种类越来越多,应用的围越来越广,随之而来的竞争也越来越激烈。

过硬的技术也成为众多生产厂商竞争的焦点之一。

厂商为了在竞争中处于不败之地,从而不断地改进技术,增加产品的种类。

现计数器的种类以增加到:电磁计数器、电子计数器、机械计数器(拉动机械计数器、转动机械计数器、按动机械计数器、测长机械计数器)、液晶计数器等。

计数器的应用围也遍布各个行业。

从单片机发展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出较微处理器更具个性的发展趋势。

单片机的应用在后PC时代得到了前所未有的发展,但对处理器的综合性能要求也越来越高。

综观单片机的发展,以应用需求为目标,市场越来越细化,充分突出以“单片”解决问题,而不像多年前以MCS51/96等处理器为中心,外扩各种接口构成各种应用系统。

单片机系统作为嵌入式系统的一部分,主要集中在中、低端应用领域(嵌入式高端应用主要由DSP、ARM、MIPS等高性能处理器构成),在这些应用中,目前也出现了一些新的需求,主要体现在以下几个方面:(1)以电池供电的应用越来越多,而且由于产品体积的限制,很多是用钮扣电池供电,要求系统功耗尽可能低,如手持式仪表、水表、玩具等。

(2)随着应用的复杂,对处理器的功能和性能要求不断提高。

既要外设丰富、功能灵活,又要有一定的运算能力,能做一些实时算法,而不仅仅做一些简单的控制。

(3)产品更新速度快,开发时间短,希望开发工具简单、廉价、功能完善。

特别是仿真工具要有延续性,能适应多种MCU,以免重复投资,增加开发费用。

(4)产品性能稳定,可靠性高,既能加密保护,又能方便升级。

一.《微机原理与接口技术》课程设计任务书(二)题目:电子计数器1.1.课程设计任务本课题要求应用以51单片机为核心设计电子计数器,能设置起始数值,通过加、减键实现计数功能,设计复位按钮。

数字通过数码管显示,计数结束发出警报。

1.2.课程设计目的通过本次课程设计使学生掌握:1)掌握以单片机为核心的控制系统的分析和设计的基本方法;2)控制程序的设计及实现方法;3)提高学生对单片机实时控制系统的设计和调试能力。

1.3.课程设计要求开机后,设置计数器的初始值,通过加、减键实现向下,或向上计数,通过数码管显示结果,计数结束发出警(可播放一段音乐),暂停按钮,按下暂停按钮,停止计数,再按下暂停按钮,开始计数。

并设置有复位按钮,回到初始状态1.4.课程设计容1、计数程序;显示程序;2、按键,中断程序;3、硬件电路原理图、软件清单。

1.5.课程设计报告要求报告中提供如下容:1、目录2、正文(1)课程设计任务书;(2)总体设计方案(3)电子计数器部分,要有操作使用说明,以便用户能够正确使用本产品;(4)硬件原理图,以便厂家生成产(可手画也可用protel软件);(5)程序流程图及清单(子程序不提供清单,但应列表反映每一个子程序的名称及其功能);(6)调试、运行及其结果;3、收获、体会4、参考文献二.设计方案:本设计为累加计数的专用计数器,应用AT89C51芯片作为核心,8位的LED数管显示。

这种实现方法的优点是电路简单,性能可靠,实时性强,操作简单,编程容易。

图1.原理框图本设计的电子计数器的重要功能为:1.通过up和down按键设定计数预置值。

2.通过stop键开始进入计数。

3.按下计数按键开始逐次累加计数。

4.累加至预定值报警播放一段音乐。

5.音乐结束后按两次stop键可以继续计数。

6.按rset键复位,重新开始循环。

三.Protues仿真图及相应部分工作原理:3.1总的仿真图图1 总体仿真图本设计主要由最小单片机系统、按键部分、显示部分、和计数报警部分组成。

主要用了六个按键、一个电阻排、两个数码管、一个报警器。

首先对计数器进行设定初值:数码管显示初值设定为00,但并不是计数的值。

所以要预设定一个计数值。

按下up键,显示器上能够逐次加1,按下down键,显示器上能够逐次减1,以此来给出一个计数预置值。

再按下stop键一次,up键和down键停止工作。

进入计数环节。

通过按下计数键进行计数,计数过程中可以暂停计数,通过按下stop键即可暂停。

同样再按一下stop键则可以继续进行计数。

直到计数到达预设定的初值后报警器工作,播放一段音乐。

然后stop键需要按两次才能再进行计数。

因为播放音乐子函数是一个时间段的函数。

所以不能够在音乐播放的过程中给它任何指令,只有等音乐结束后按下stop键计数器恢复计数。

或者按下复位键,重新开始设定计数值开始下一轮计数;3.2显示部分图2数码管显示显示部分:显示部分由两个数码管一个电阻排组成。

通过P0口P1口连接数码管。

其中P0口要外接上拉电阻,这里用一个电阻排代替八个电阻。

数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP)这个小数点可以更精确的表示数码管想要显示的容;按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位等数码管。

按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。

数码管的驱动方式主要由静态和动态两种。

静态驱动也称直流驱动。

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

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

本次用的就是静态显示!3.3按键部分图3按键部分按键部分:按键部分连接的是地端和P1口,由四个按键组成。

Up键和down键设定计数初值。

Stop键进入中断,rset键复位。

分别接P1.0 P1.3 P1.6 P1.7口。

首先对计数器进行设定初值:数码管显示初值设定为00,但并不是计数的值。

所以要预设定一个计数值。

按下up键,显示器上能够逐次加1,按下down键,显示器上能够逐次减1,在按下stop键一次,可以按下计数键进行计数。

计数到达预设定的初值后报警器工作,播放一段音乐。

此时计数器不能继续工作,等到音乐结束后按下stop键计数器恢复计数,按下复位键,重新开始设定计数值开始下一轮计数;3.4计数报警部分图4计数报警部分计数报警部分:计数报警部分由报警器和计数按键组成。

分别接P3.7和P3.2口。

计数次数达到后报警器开始工作播放一段音乐。

当计数到达预设定的初值后报警器工作,播放一段音乐。

此时计数器不能继续工作,等到音乐结束后按下stop键计数器恢复计数,按下复位键,重新开始设定计数值开始下一轮计数;四.程序清单及流程图4.1.电子器件清单设计的电子计数器所需的元器件的代号为1、单片机代号为:AT89C512、电容C1、C2的代号为:CERAMIC22P3、电容C3的代号为:MINELECT10U16V4、晶振X1的代号为:CRYSTAL5、电阻R1、R2的代号分别为:CHIPRES 10K、CHIPRES 100R6、上拉电阻RP1的代号为:RESPACK-87、显示器的代号为:7SEG-MP*1-CC8、开关六个的代号为BUTTON4.2.程序流程图图4流程图工作流程:首先对计数器进行设定初值:数码管显示初值设定为00,但并不是计数的值。

所以要预设定一个计数值。

按下up键,显示器上能够逐次加1,按下down键,显示器上能够逐次减1,在按下stop键一次,可以按下beep键进行计数。

计数到达预设定的初值后报警器工作,播放一段音乐。

此时计数器不能继续工作,等到音乐结束后按下stop键计数器恢复计数,按下复位键,重新开始设定计数值开始下一轮计数;五.调试、运行及其结果刚开始程序设计中基本上是完好的,程序可以实现设定预置值的加减计数。

然后通过数码管显示预置值。

程序在执行的过程中按下stop键开始允许计数。

通过右边的计数键开始重新计数显示,依然用的刚刚的数码管。

一切功能都进行的很顺利,但是等到一遍程序执行完的时候,按下复位键,数码管归零。

本以为一切都正常的时候重新试了下计数。

发现不能动,没有恢复到初始状态。

最后思考了一下,在rset 程序里面加了一个子函数init。

调试了一下果然可以了。

刚开始只设计了报警,也就是简单的让报警器恒等于一。

但是看了任务书,觉得给它加上一段音乐,感觉这个想法不错。

虽说满足了老师的基本要求,但是总觉得可以做的更好,所以我在此基础上给它加了一段音乐,但是乐谱自己真的是没有编过,于是就在网上百度了乐谱,然后结合自己的程序整合了一下,最终选了一个简单的生日歌添加进自己的程序。

只要计数数值达到设定的值就开始播放一段音乐,比起刺耳的报警声和谐了不少!图5.程序调试运行成功图六.课程设计的心得体会这次单片机课程设计进行了两周的时间,学校安排在学期末带给了我们很多的怨言。

人家都考完试回家了,我们却还得呆在这进行两周的实训。

没办法咬咬牙坚持就是胜利。

还好带我们实训的老师在开学的时候就给了我们实训的题目,于是我们早就开始提前在做,这也生了我们好多接下来的时间。

虽说每个人都是抱着不情愿的态度留在这里实训,但是事情存在就是合理的。

一切事物有利就有弊,有弊就有利。

时间虽短,但是可以让我们能高效的完成实训。

即此课程设计。

这次我分到的题目是电子计数器,相对其它的几个课题我这算是最简单的在我看来。

相关主题