单片机实训项目:秒表设计及实现
第1部分 课程实训目的
本课程实训是本门课程课堂教学的延伸和发展,是理论知识与工程实践之间的衔接。通过本课程实训,使学生进一步学习与理解计算机控制系统的构成原理、接口电路与应用程序,进一步巩固与综合专业基础知识和相关专业课程知识,提高学生运用理论知识解决实际问题的实践技能;培养学生独立自主、综合分析的思维与创新能力,使学生初步具有设计小型计算机控制系统的硬件及软件的能力。同时,通过资料搜集、方案分析、系统设计与报告撰写的一系列过程,使学生得到一次科学研究工作的初步训练。从而,在专业知识与研究方法方面为日后的毕业设计乃至毕业后的工作奠定良好的基础。
1.灵活运用单片机的基础知识,依据课程实训内容,能够完成从硬件电路图设计,再到软件编程及系统调试实现系统功能,完成课程实训,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。
2.能够上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。
3.独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力。
第2部分 课程实训内容与要求
题目:秒表系统的设计
设计任务:
(1)设计一个精度为0.01s的秒表系统。
(2)设计启动按钮、暂停按钮及清零按钮。
(3)设计每到一秒钟有声音提醒功能,可通过按钮打开及关闭该提醒音。
秒表系统设计内容提要
本实验利用单片机的定时器/计数器定时和记数的原理,结合LED数码管以及原理图上的按键来设计秒表计时。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本实验设计了一个按键:按第一下按键秒表开始计时(本实验中当开关从1变为0时开始计时),按第二下按键秒表暂停计时,即秒表停留在原先的计时(本实验中当相应开关从1变为0时即停止计时),按第三下按键秒表归零(本实验中当相应开关从1变为0时即停止计时)。
用AT89C51设计一个2位LED数码显示动态秒表,最大显示时间为99分99秒00.00。另设计一个按键模块,“停止/开始”按键说明:第一次按下按键,秒表开始计数,数码管显示从00分00秒.00,开始计时;第二次按下按键,秒表停止计时改为保持当时数码管上显示的数值;第三次按下按键,秒表归零,数码管再次显示00分00秒.00;第四次按下按键,秒表再次开始计数,数码管再次显示从00分00秒.00开始计时,以此循环。
“暂停”按键说明:第一次按下暂停计时,秒表停止计时改为保持当时数码管上显示的数值;再次按下继续计时。
“提示音”按键说明:按下“提示音”按键,每一秒钟提示一次。
“复位”按键说明:按下“复位”按键,数码管计时清零。
需要完整内容的5元点击链接添加:https://qm.qq.com/q/IZMApzh36W可提供相关文件。
第3部分 系统硬件设计
3.1 器件选择
单片机:
图3.1-1
AT89C51是一款经典的8位单片机如图3.1-1所示,由Motorola公司(现归于飞思卡尔)生产。其性能特点主要包括:
1. 低功耗:采用CMOS工艺,支持掉电保护,适合电池供电应用。
2. 内置Flash:具有8KB的可编程Flash存储器,用于程序存储。
3. 数据RAM:128B的数据RAM用于处理和临时数据存储。
4. 丰富的I/O口:有4个8位端口,支持中断系统。
5. 高性能定时器:两个16位定时/计数器,可用于精确的时间控制。
作用上,AT89C51主要用于简单控制系统的开发,如家用电器、工业设备、嵌入式系统等,它的灵活性和易用性使其在教育和入门级项目中被广泛使用。
按钮(BUTTON):
图3.1-2
单片机的按钮通常是一个简单的机械开关如图3.1-2,具有低功耗、低成本、可靠性高和单向控制等性能特点。按钮的作用主要包括用户输入、触发事件、电源控制和功能选择等方面。
蜂鸣器(BUZZER):
图3.1-3
单片机的蜂鸣器是一种用于产生声音的器件如图3.1-3,具有简单易用、声音响亮的特点。通过控制蜂鸣器的信号,可以实现提醒、报警、状态指示等功能。在电子设备中,蜂鸣器常用于提供音频反馈,帮助用户操作和了解设备状态。
电容(CAP):
图3.1-4
单片机中的 CAP(电容)是一种用于存储电荷和调节电压的元件如图3.1-4。其功能特点包括快速响应、稳定性高和体积小等。在单片机电路中,CAP 通常用于滤波、去噪和稳压等功能,可以提供稳定的电源电压,并消除电路中的干扰信号。
七段数码管(7SEG-MPX1-CA):
图3.1-5
是一种7段数码管模块,用于显示数字和字符如图3.1-5。在单片机系统中,它通常用于显示各种数字、字母、符号等信息,提供直观的输出界面,方便用户观察和交互。
晶振(CRYSTAL):
图3.1-6
是单片机中用于提供精确时钟信号的元件如图3.1-6。它能稳定产生特定频率振荡信号,用于同步和控制单片机的运行速度,确保系统的稳定性和准确性,适用于时序控制、数据采样等需求。
红绿双色发光二极管(LED-GREEN):
图3.1-7
红绿双色 LED如图3.1-7。在电子设备中,红色和绿色 LED 可用于显示不同状态。红色表示停止、错误或警告,绿色表示正常、通过或成功。通过红绿双色 LED,用户可以直观了解设备的状态,提高交互体验。
红色发光二极管(LED-RED):
图3.1-8
红色 LED 灯如图3.1-8,用于指示、照明或显示。在电子产品中,红色 LED 可用于显示电源状态、警示信息或指示特定操作,并常见于指示灯、显示屏和装饰灯等场景,提供视觉提示和信息展示功能。
黄色发光二极管(LED-YELLOW):
如图3.1-9
黄色LED灯如图3.1-9,常用于指示交通信号灯、警告器具和显示面板。其明亮且耐用的特点使得黄色LED在需要引起注意或指示特定状态的场合中发挥作用,提供清晰可见的视觉提示。
晶体管(PNP):
图3.1-10
PNP晶体管如图3.1-10通常用于构建各种电子开关和放大器电路。其作用包括作为开关控制输入输出端口,进行信号放大处理,以及实现功率输出等。PNP晶体管的高输入阻抗和开关特性使其在处理微弱信号和控制电流方面表现出色。
电阻(RES):
图3.1-11
分压,限流,过滤,阻抗匹配。
复位管理芯片(RESPACK-8):
图3.1-12
是一种用于单片机的复位管理芯片如图3.1-12,它提供稳定的复位信号,确保系统在启动时能够正确初始化。RESPACK-8的设计使得系统在电源波动或异常情况下能够可靠复位,增强系统的稳定性和可靠性。
源程序清单
#include <reg51.h>
#define false 0
#define true 1
#define uchar unsigned char //0-255
#define uint unsigned int //0-65535
#define ulong unsigned long //0-4294967295
sbit start_key = P3^0; //启动
sbit pause_key = P3^1; //暂停
sbit beep_key = P3^3; //提示音
sbit start_led = P3^4; //启动指示灯
sbit pause_led = P3^5; //暂停指示灯
sbit beep_led = P3^6; //喇叭指示灯
sbit beep = P3^7; //喇叭
uchar disCode[10] = {0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09}; //段码 0~9
uchar locCode[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //位码
void displayTime(void); //刷新时间显示
void disPlay(uchar num, uchar loc); //数码管显示韩函数
void Delay1ms(unsigned int n); //延时1ms
uchar state; //状态:0-停止,1-启动,2-暂停
ulong ms = 0; //存储毫秒值
uchar fen = 0; //分钟数
uchar miao; //秒数
uchar ms2; //毫秒数的10位
bit isBeep = false; //是否开启蜂鸣器
作者:小码本码