单片机秒表设计课程设计报告2

更新时间:2023-11-17 12:17:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于52单片机的简易秒表课程设计

摘要

自20世纪70年代单片微型计算机(简称单片机)诞生以来,单片机以其功能强、体积小、质量轻、价格低、可靠性高、可塑性好等优点得到了广泛的应用,成为目前世界上数量最多的计算机和工程师们开发嵌入式应用系统和小型智能化产品的首选控制器。 一. 设计任务及要求

1、 题目

基于51单片机的简易秒表课程设计 2、 基本要求

1) 使用51系列单片机作为主控芯片构建最小系统,熟练掌握晶振与复位电路;

2) 用LED数码管来显示倒计时; 3) 用按键来实现起动与停止等功能;

4) 设计一完整电路,要求应用Protues软件进行仿真验证,并要求焊接实物后进行功能调试。

3、 设计目的

1) 掌握单片机的接口技术及外围芯片的工作原理及控制方法; 2) 进一步掌握单片机程序编写及调试过程,掌握模块化程序设计方法; 3) 掌握LED数码管的工作原理;

4)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解;

4) 掌握定时器、外部中断的设置和编程原理;

5) 通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

4、 设计任务

1) 用STC89C52RC单片机的定时器/计数器定时和计数的原理,通过proteus仿真软件模拟设计一个2位LED数码显示“秒表”,显示时间为00-99秒,每秒自动加一或减一。

2) 另设计一个“开始(正计数)”按键和一个“倒计数”按键,再增加一个“暂停”

按键。按键说明:按“开始”按键,开始正计数,数码管显示从00开始,每秒自动加一;按“暂停”按键,系统暂停计数,数码管显示当时的计数;按“倒计数”按键,系统在原先的计数上自动减一秒。按“总开关”按键,结束计数;再按一下,

系统清零,数码管显示00。

二、总体方案设计 1、硬件方案设计

1)时钟电路模块

时钟电路由一个晶体振荡器12MHZ和两个22pF的瓷片电容组成。引线XTAL1

和XTAL2分别是放大器的输入端和输出端。

时钟电路用于产生单片机工作所需的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地工作。其电路如图3.4所示:

2)时间显示电路模块

发光二极管简称为LED,导体二极管的一种,按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

本设计中采用共阴极数码管,共有1个二位的LED 数码管,道口通行剩余时间采用红色7段数码管显示,P2.0,P2.1来控制两个方向数码管的位。其显示电路如图3.8所示:

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

LED显示器工作方式有两种:静态显示方式和动态显示方式。

1.静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。 静态显示特点是每个数码管的段选必须接一个8位数据线来保持显示的字形

码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。 2、电源数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划\的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。

3)电源模块

本设计有供电方式是usb供

电。

4)主控制系统模块/最小系统

主控制器采用STC89C52RC,STC89C52RC 单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单 片机,指令代码完全兼容传统 8051 单片机,12 时钟/机器周期和 6 时钟/机器周 期可以任意选择。

其特点如下:

1. 增强型 8051 单片机,6 时钟/机器周期和 12 时钟/机器周期可以任 意选择,指令代码完全兼容传统 8051.

2. 工作电压:5.5V~3.3V(5V 单片机)/3.8V~2.0V(3V 单片机) 3. 工作频率范围:0~40MHz,相当于普通 8051 的 0~80MHz,实际工 作频率可达 48MHz

4. 用户应用程序空间为 8K 字节 5. 片上集成 512 字节 RAM

6. 通用 I/O 口 (32 个) 复位后为: , P1/P2/P3/P4 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。

7. ISP(在系统可编程)/IAP(在应用可编程) ,无需专用编程器,无 需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片

8. 具有 EEPROM 功能 9. 具有看门狗功能

10. 共 3 个 16 位定时器/计数器。即定时器 T0、T1、T2

11. 外部中断 4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒

12. 通用异步串行口(UART) ,还可用定时器软件实现多个 UART 13. 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级) 14. DIP 封装 2、软件方案设计

1)主程序流程图 2)中断服务程序流程图 3)运行程序,如附录所示 三、系统测试 1)原件清单

基于单片机的简易秒表元器件清单

名称 型号 单片机 STC89C52 IC座 DIP40 万能板 9*15CM 数码管 共阴(两位数码管) 排阻 1K*8 晶振 12M 电容 22pF(晶振电路) 电容 10uF电解电容(复位) 按键 6*6*5mm 自锁开关 8*8mm DC35(USB接头) USB母座 USB线 细导线 焊锡 2)调试结果

如图所示:keil的调试结果图和proteus仿真图,实物 3)测试结果分析

数量 1 1 1 1 1 1 2 1 3 1 1个 1个 若干 若干 因定时/计数器的定时时间为50ms,中断20,即1s后执行一次刷新显示子程序。程序只考虑硬件延时,并没有将中断服务子程序的运行时间计算在内,所以在秒表运行时,会出现计时显示时间滞后于标准时间的现象。

据中断服务子程序以及指令周期表可知,刷新显示子程序运行时间最小的情况为:不带进位的秒计数加1,运行时间最大的情况为:满60自动从0开始。据此可推算其最大最小

运行时间分别为196μs和169μs。经proteus仿真测试,运行一小时将会出现大约1s的误差,且随着时间推移,误差将会累积增大。在实际的计时中,也会因环境以及设备的不完善,影响计时的精确性。

在对秒计时影响不大的情况下,适当增大定时/计数器初值,以及提高制板工艺的方法尽可能的减小误差。

四、总结

通过此次 对秒表的设计与制作,我的收获挺大的。从搜索资料到硬件、软件的调试,每一步、每一个细节自己都经过思考,并与同伴一起努力取得了最后的成功。在做的过程中不但加深了我对在课程上所学到的单片机理论知识的认识和理解,重新让自己认识到了这门学科的在应用方面的广阔前景,而且也增强了自我的动手能力。

秒表看似简单,但当自己着手设计与制作的时候才发现其实不然。因为要考虑好多因素,比如1)程序的编写:要做到在没有复位开关的条件下,还能正确

编译,使秒表正常工作,该程序并不是很容易;2)硬件的布局:要作到最能节约焊锡,且使连接的线路最短,也没有想象中的那么容易;而且在焊接过程中稍不注意就会出现管脚的错位、焊接不紧、线路粘连等一些细小的问题,就会使整个电路不能正常工作,这无疑是令人崩溃的。因为此次焊接中,我就由于没仔细审视布局特点,导致电容短路,从而使得整个电路板刚开始不工作。终于在同伴的帮助下,经过一番细心检查,才发觉问题所在。

另一方面,我们的成功,也离不开老师的教导有方,让我们有方向的,高效率的查到自己所需的资料,为此次的实训也节省了大量的时间。因此,感谢老师及帮助过我的伙伴们,

本文来源:https://www.bwwdw.com/article/s42v.html

Top