51单片机数字秒表设计

合集下载

51单片机课程设计秒表

51单片机课程设计秒表

微控制器技术课程设计报告设计题目:秒表专业:供用电技术班级:供电141学号:*********姓名:***指导教师:**设计时间:2016.6.21微控制器技术课程设计任务书设计题目:秒表设计时间:2016.6.20设计任务:在单片机开发板或软件仿真,编制程序,实现以下功能1、利用定时器实现秒表功能,精确到0.1S;2、数码管显示当前计时时间;3、设定三个键,计时开始,停止计时和复位清零。

背景资料:1、单片机原理与应用2、检测技术3、计算机原理与接口技术进度安排:1、第1天,领取题目,熟悉设计内容,分解设计步骤和任务;2、第3天,规划设计软硬件,编制程序流程、绘制硬件电路。

3、第5天,动手制作硬件电路,或编写软件,并调试。

4、第7天,中期检查。

5、第9天,完善设计内容,书写设计报告。

6、第13天,提交设计报告,整理设计实物,等待答辩。

7、第14天,设计答辩。

目录一、设计任务和要求 (3)(1)设计任务 (3)(2)设计要求 (3)二、设计方案与论证 (3)三、单元电路设计与参数计算 (4)(1)时钟电路 (4)(2)按钮电路 (4)(3)显示电路 (5)(4)单片机 (5)四、原理图及器件清单 (6)( 1 )总原理图 (6)(2)PCB图 (7)(3)Proteus仿真图 (7)(4)元器件清单 (8)五、安装与调试 (8)(1)安装 (8)(2)调试 (8)六、性能测试和分析 (9)七、结论和心得 (9)八、参考文献 (9)题目:秒表二、方案设计与论证本设计分为时钟电路、按钮电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。

其模块电路如图2-1所示。

时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。

按钮电路中的“复位”按钮是按键手动复位,它有电平和脉冲两种方式,比较电路的复杂程度,本设计选择了按钮电平复位电路,其他几个按钮则是通过单片机判断高低电平的不同来控制按钮。

基于51单片机的数字秒表课程设计、毕业设计论文

基于51单片机的数字秒表课程设计、毕业设计论文

基于51单片机的数字秒表课程设计、毕业设计论文三、课题名称基于51单片的数字秒表设计二、目的和意义1、通过本次课程设计可以灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到电路搭建焊接,再到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。

2、本次课程设计还可以通过上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。

3、在这次课程设计中,我们运用到了很多一切所学的知识和一些很有用的软件和工具,如keil4编程软件、Proteus仿真软件、Visio软件、等。

4、通过独立完成一个小的数字秒表系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为日后的毕业设计及科研工作奠定良好的基础。

5、掌握51单片机软件编程知识、实现功能、设计方法,及KEIL软件使用方法;6、应用所学模拟电子线路的知识,掌握电路的设计与应用;7、熟悉PROTEUS的设计与仿真;8、STC——ISP的使用方法;9、掌握焊接电子元器件的方法以及查阅元件功能与参数的方法、步骤。

三、设计目标或任务要求1 、设计目标以单片机为核心,设计数字秒表。

通过硬件电路设计,软件设计,电路搭建,作品调试。

最后完成本次课程设计。

2 、设计要求1、计时范围:0~59分59.59秒,整数四位数和小数两位数显示;2、计时精度10毫秒;3、复位按钮,计时器清零,并做好下次及时准备;4、可以对三个对象(A、B)计时,具有启/停控制;5、设开始、停止A、停止B、显示A、显示B、复位按钮。

四、任务分析、设计方案1、任务分析数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。

本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。

设计中包括硬件电路的设计和系统程序的设计。

其硬件电路主要有主控制器,计时与显示电路和回零、启动和停表电路等。

主控制器采用单片机89C52显示电路采用共阳极LED数码管显示计时时间。

基于51单片机的数字秒表设计

基于51单片机的数字秒表设计

摘要本设计是基于AT89S51单片机的简易数字秒表设计,主要组成是以51单片机最小系统为核心,通过运用单片机的振荡电路实现计时同时用数码管同步显示。

本秒表最大计时为99秒。

本设计的特点是:大部分功能通过软件实现,使电路简单明了,系统稳定性好。

关键词:AT89S51 振荡电路计时数码管目录1设计概述 (1)1.1AT89S51概述 (1)1.2系统设计功能概述 (1)2系统设计 (2)2.1设计思路 (2)2.2硬件设计 (2)2.2.1单片机最小系统的设计 (2)2.2.2数码管显示电路设计 (3)2.3软件设计 (7)2.3.1软件设计流程图 (7)2.3.2消除开关抖动 (9)2.3.3数码管延时显示程序 (9)2.3.4延时1秒的程序 (10)3软件调试和结果 (10)3.1软件调试与下载 (10)3.2硬件仿真 (11)4心得体会 (12)参考文献 (14)附录 (15)I基于单片机的数字秒表设计主程序 (15)IIPCB电路图 (17)III实物图 (17)11 设计概述1.1 AT89S51概述AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In -system programmable)的可反复擦写1000次的Flash 只读程序存储器,器件采用ATMEL 公司的高密度、非易失性存储技术制造,兼容标准MCS -51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash 存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89S51具有如下特点:40个引脚,4k Bytes Flash 片内程序存储器,128 bytes 的随机存取数据存储器(RAM ),32个外部双向输入/输出(I/O )口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT )电路,片内时钟振荡器。

c51数字秒表课程设计

c51数字秒表课程设计

c51数字秒表课程设计一、课程目标知识目标:1. 学生能理解C51单片机的基本原理,掌握数字秒表的硬件设计及编程方法。

2. 学生能够运用C语言编写程序,实现秒表的启动、停止、计时的功能。

3. 学生了解数字秒表在实际应用中的重要性,如时间测量、实验数据记录等。

技能目标:1. 学生能够运用所学的C51知识,设计并实现一个具有基本功能的数字秒表。

2. 学生通过实际操作,提高动手实践能力,培养解决实际问题的能力。

3. 学生能够运用所学知识,对数字秒表进行调试和优化,提高程序运行效率。

情感态度价值观目标:1. 学生培养对单片机编程的兴趣,提高学习主动性和积极性。

2. 学生通过合作完成任务,培养团队协作能力和沟通能力。

3. 学生在解决问题的过程中,培养坚持不懈、勇于探索的精神。

本课程针对高年级学生,结合C51单片机课程内容,注重理论与实践相结合。

课程设计旨在帮助学生巩固所学知识,提高动手实践能力,培养解决实际问题的能力。

通过数字秒表的设计与实现,让学生充分体会单片机编程的乐趣,激发学生的学习兴趣,为后续课程学习打下坚实基础。

同时,课程强调团队协作和情感态度的培养,使学生在学习过程中形成积极向上的人生态度。

本章节教学内容主要包括以下几部分:1. C51单片机原理回顾:复习C51单片机的硬件结构、工作原理及编程基础,重点掌握I/O口编程、定时器/计数器等知识点。

2. 数字秒表的硬件设计:介绍数字秒表的硬件组成,包括单片机、时钟电路、显示电路等,分析各部分功能及相互关系。

3. 数字秒表的编程实现:学习如何使用C语言编写程序,实现数字秒表的功能。

内容包括:- 定时器/计数器的配置与使用;- 按键扫描程序编写;- 数码管显示程序编写;- 秒表功能模块设计(启动、停止、计时)。

4. 教学案例分析与实践:结合教材案例,分析数字秒表的设计过程,引导学生动手实践,完成一个具有基本功能的数字秒表设计。

5. 调试与优化:介绍程序调试方法,指导学生运用调试工具,对数字秒表程序进行调试和优化,提高程序运行效率。

51单片机实验 秒表设计

51单片机实验 秒表设计

实验报告一、实验名称10秒计时的秒表设计二、实验内容精确到0.1秒的秒表三、相关模块led数码管、usb、独立键盘四、实验代码#include "reg52.h"typedef unsigned int u16; //对数据类型进行声明定义typedef unsigned char u8;sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;sbit k1=P3^1;sbit k2=P3^0;sbit k3=P3^2;sbit k4=P3^3;u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};u16 s,sec;unsigned int i;unsigned int j;unsigned int a,b,c,d;u8 mb[2];void Timer0Init(){TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。

TH0=0XFC; //给定时器赋初值,定时1msTL0=0X18;TR0=0;//打开定时器}void delay(u16 n){while(n--);}void DigDisplay1(u16 i){switch(i){case(0):LSA=0;LSB=0;LSC=0; break;case(1):LSA=1;LSB=0;LSC=0; break;case(2):LSA=0;LSB=1;LSC=0; break;case(3):LSA=1;LSB=1;LSC=0; break;case(4):LSA=0;LSB=0;LSC=1; break;case(5):LSA=1;LSB=0;LSC=1; break;case(6):LSA=0;LSB=1;LSC=1; break;case(7):LSA=1;LSB=1;LSC=1; break;}if (i==1){P0=smgduan[mb[i]]+0x80;//发送段码}else{P0=smgduan[mb[i]];}delay(1); //间隔一段时间扫描P0=0x00;//消隐}void DigDisplay2(u16 i){i=i+3;switch(i){case(0):LSA=0;LSB=0;LSC=0; break;case(1):LSA=1;LSB=0;LSC=0; break;case(2):LSA=0;LSB=1;LSC=0; break;case(3):LSA=1;LSB=1;LSC=0; break;case(4):LSA=0;LSB=0;LSC=1; break;case(5):LSA=1;LSB=0;LSC=1; break;case(6):LSA=0;LSB=1;LSC=1; break;case(7):LSA=1;LSB=1;LSC=1; break;}if (i==4){P0=smgduan[a]+0x80;}else{P0=smgduan[b];}delay(1);P0=0x00;}void DigDisplay3(u16 i){i=i+6;switch(i){case(0):LSA=0;LSB=0;LSC=0; break;case(1):LSA=1;LSB=0;LSC=0; break;case(2):LSA=0;LSB=1;LSC=0; break;case(3):LSA=1;LSB=1;LSC=0; break;case(4):LSA=0;LSB=0;LSC=1; break;case(5):LSA=1;LSB=0;LSC=1; break;case(6):LSA=0;LSB=1;LSC=1; break;case(7):LSA=1;LSB=1;LSC=1; break;}if (i==7){P0=smgduan[c]+0x80;}else{P0=smgduan[d];}delay(1);P0=0x00;}void key1(){delay(10);if(k1==0){TR0=!TR0;while(!k1);}}void key2(){delay(10);if(k2==0){s=0;sec=0;while(!k2);}}void key3(){delay(10);if(k3==0){if (j==0) j=1;else j=0;if (j==1){a=mb[1];b=mb[0];}if (j==0){c=mb[1];d=mb[0];}while(!k3);}}void key4(){delay(10);if(k4==0){s=0;sec=0;a=0;b=0;c=0;d=0;while(!k2);}}void main(){Timer0Init();i=0;j=0;while(1){delay(10);key1();if(TF0==1){TF0=0;TH0=0XFC; //给定时器赋初值,定时1msTL0=0X18;s++;}if(s==60){s=0;sec++;if(sec==100)sec=100;}key2();mb[0]=sec%10;mb[1]=(sec/10)%10;key3();DigDisplay1(i);DigDisplay2(i);DigDisplay3(i);i++;i=i%2;key4();}}五、实验效果K1作用:启动、开始或暂停计时K2作用:计数位清零K3作用:记录当前时间并显示K4作用:清零所有的数码管六、实验遇到的问题经过前几次的实验,0到10秒的计数已经不成问题,本次实验的难点主要在几个按键的功能实现上。

基于51单片机的数字秒表课程设计

基于51单片机的数字秒表课程设计

电气与自动化工程学院卓越工程师培养计划暑期实训报告题目秒表系统的设计年级11级专业自动化班级卓越班学号*********姓名俞雷地点大学生创新实验室日期2012年8月12日~2012年8月20日目录一、单片机简介............................................................................- 2 -二、设计目标................................................................................- 3 -1、设计目的: (3)2、具体操作: (3)三、硬件设计................................................................................- 4 -原理图:. (4)四、系统的软件设计....................................................................- 5 -1、软件整体设计思路: (5)2、软件流程图: (5)3、程序: (6)(1)数码管秒表显示程序: ...................................................- 6 -(2)1602液晶秒表显示程序:............................................ - 13 -五、系统的调试及设计结果..................................................... - 18 -1602液晶——秒表显示效果图:. (18)LED数码管——秒表显示效果图: (18)六、创新实验室课程设计小结................................................. - 19 -一、单片机简介单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。

51单片机秒表课程设计

51单片机秒表课程设计

51单片机秒表课程设计一、课程目标知识目标:1. 理解51单片机的基本原理,掌握其编程方法;2. 学习并掌握定时器/计数器在51单片机中的应用,理解其工作原理;3. 了解秒表的功能需求,掌握秒表的程序设计方法。

技能目标:1. 能够独立完成51单片机的程序编写,具备基本的编程能力;2. 能够运用定时器/计数器进行计时,完成秒表的实时显示功能;3. 能够分析和解决程序运行过程中出现的问题,具备一定的调试能力。

情感态度价值观目标:1. 培养学生的团队协作精神,提高沟通与交流能力;2. 增强学生对电子制作的兴趣,激发创新意识;3. 培养学生严谨、细心的学习态度,养成良好的编程习惯。

分析课程性质、学生特点和教学要求,将课程目标分解为以下具体学习成果:1. 学生能够掌握51单片机的基本原理和编程方法;2. 学生能够运用定时器/计数器实现秒表的计时功能;3. 学生能够通过团队协作,共同完成秒表的程序设计和调试;4. 学生能够对编程过程中遇到的问题进行分析和解决,提高自身调试能力;5. 学生能够体验电子制作的乐趣,培养创新意识和严谨、细心的学习态度。

二、教学内容根据课程目标,教学内容主要包括以下几部分:1. 51单片机基础知识:- 单片机概述与51单片机的结构原理;- 51单片机的寄存器、I/O口及其编程方法;- 定时器/计数器的工作原理与应用。

2. 秒表功能需求分析:- 秒表的功能定义与需求分析;- 电路设计与硬件连接;- 软件设计框架及流程图。

3. 定时器/计数器的应用:- 定时器/计数器的工作模式;- 定时器/计数器的编程实现;- 秒表计时功能的具体实现。

4. 程序编写与调试:- 51单片机程序结构;- 程序编写技巧与调试方法;- 秒表程序编写与功能测试。

5. 教学案例与实战:- 案例分析:经典秒表程序剖析;- 实战练习:学生分组进行秒表的程序编写与调试;- 成果展示与评价。

教学内容安排和进度:第一课时:51单片机基础知识学习;第二课时:秒表功能需求分析与电路设计;第三课时:定时器/计数器的应用;第四课时:程序编写与调试;第五课时:教学案例与实战。

c51电子秒表课程设计

c51电子秒表课程设计

c51电子秒表课程设计一、课程目标知识目标:1. 学生能够理解C51单片机的基础知识,掌握其编程方法。

2. 学生能够掌握电子秒表的基本原理,包括计时、暂停、清零等功能。

3. 学生能够了解并掌握电子秒表中的中断处理、定时器/计数器等硬件资源的使用。

技能目标:1. 学生能够运用C语言编写C51单片机程序,实现电子秒表的计时功能。

2. 学生能够通过实验操作,学会使用开发板、编译器等工具进行程序编写和调试。

3. 学生能够培养实际动手能力,独立完成电子秒表的搭建和调试。

情感态度价值观目标:1. 学生能够培养对电子制作的兴趣和热情,提高学习积极性。

2. 学生能够培养团队协作意识,学会与他人共同解决问题。

3. 学生能够认识到科技发展对社会进步的重要性,增强科技创新意识。

课程性质:本课程为实践性课程,注重培养学生的动手能力和实际操作技能。

学生特点:学生具备一定的C语言基础,对单片机有一定了解,但实践经验不足。

教学要求:教师需引导学生通过实际操作,掌握C51单片机编程和电子秒表制作技能,同时注重培养学生的情感态度价值观。

将课程目标分解为具体学习成果,以便在教学设计和评估中逐一实现。

二、教学内容1. 理论部分:- C51单片机基础知识:介绍C51单片机的结构、工作原理和编程环境。

- 中断处理和定时器/计数器:讲解中断的概念、中断处理过程,以及定时器/计数器的使用方法。

- 电子秒表原理:阐述电子秒表的计时原理、功能模块及其相互关系。

2. 实践部分:- C51编程实践:指导学生使用C语言编写电子秒表程序,掌握程序结构、函数调用等。

- 硬件搭建与调试:学生动手搭建电子秒表电路,学习电路连接、元件识别等,并进行程序下载和调试。

- 综合应用:结合所学知识,学生独立完成一个具有计时、暂停、清零等功能的电子秒表项目。

3. 教学大纲安排:- 第一课时:C51单片机基础知识学习,介绍教材相关章节内容。

- 第二课时:中断处理和定时器/计数器原理学习,结合教材实例进行讲解。

基于51单片机的数字秒表设计

基于51单片机的数字秒表设计

单片机系统课程设计成绩评定表设计课题:数字秒表学院名称:电气工程学院专业班级:自动1204学生:学号:指导教师:王黎设计地点:31-630设计时间:2013-12-29~2013-1-9单片机系统课程设计课程设计名称:数字秒表专业班级:自动1204学生姓名:学号:指导教师:王黎课程设计地点:31-630课程设计时间:2013-12-29~2013-1-9单片机系统课程设计任务书目录1绪论 (3)2系统概述 (4)2.1数字式秒表的设计意义 (4)2.2设计要求与分析 (5)3 硬件电路设计 (6)3.1基准脉冲的获取 (6)3.2键盘及控制电路 (12)3.3计数、译码及显示电路 (14)4 数字秒表系统软件设计 (16)4.1 主程序软件设计 (16)4.2 中断服务程序设计 (16)5调试与仿真 (19)5.1软件调试与烧写 (19)5.2 硬件仿真 (20)6. 结论 (21)参考文献: (23)附录 (24)附录一系统原理图 (24)附录二源程序代码 (25)1绪论21世纪,单片机的发展非常的迅速。

单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。

它是一种集计数和多种接口于一体的微控制器,被广泛应用在智能产品和工业自动化上,而51单片机是个单片机中最为典型和最有代表性的一种。

51单片机是对所有兼容Intel 8031指令系统的单片机的统称。

该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是Atmel的AT89系列,它广泛应用于工业测控系统之中。

很多公司都有51系列的兼容机型推出,今后很长的一段时间将占有大量市场。

本次的设计任务是一个数字秒表,而秒表与普通的钟表不同,它的目的是对从某一时刻到另一时刻的时间间隔进行计时。

秒表的数字化常给人们的生活带来极大的方便,它广泛应用于社会的各个领域。

基于51单片机的秒表设计

基于51单片机的秒表设计

单片机课程设计课程题目:基于51单片机的秒表设计专业:电子信息工程班级:电信121学号:姓名:1 课题内容要求及目的1.1课题内容用AT89C51设计一个秒表,该秒表课可显示0.0~99.9秒的时间,进行相应的单片机硬件电路的设计并进行软件编程利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。

综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。

通过本次系统设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握。

本系统利用单片机的定时器/计数器定时和记数的原理,通过采用proteus仿真软件来模拟实现。

模拟利用AT89C51单片机、LED 数码管以及控件来控制秒表的计数以及计位!其中有三位数码管用来显示数据,显示秒(两位)和十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。

计秒数码管采用三位的数码管,当计数超过范围是所有数码管全部清零重新计数。

1.2课题要求本课题是基于单片机的秒表系统设计,它的具体要求有以下几点:(1)用单片机AT89C51实现;(2)以0.1秒为最小单位进行显示;(3)秒表量程为0.0-99.9秒,用LED显示;(4)有清零、开始、停止功能。

1.3课题目的通过课程设计,进一步熟悉和掌握AT89C51单片机的结构及工作原理,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。

通过完成一个包括电路设计和程序开发的完整过程,进一步了解开发一单片机应用系统的全过程,通过此综合训练,为以后毕业设计打下一定的基础。

(1)利用单片机定时器计数器中断设计秒表,从而实现秒、十分之一秒的计时。

(2)综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力,加深对单片机课程的全面认识。

51单片机数字秒表设计报告论文

51单片机数字秒表设计报告论文

51单片机数字秒表设计报告目录摘要 (I)ABSTRACT (II)第一章引言 (1)1.1秒表的概述 (1)1.2本设计任务 (1)1.3系统主要功能 (2)第二章硬件设计 (3)2.1总体方案的设计 (3)2.2单片机的选择 (4)2.3各部分电路设计 (5)2.3.1系统时钟电路的设计 (5)2.3.2系统复位电路的设计 (6)2.3.3 按键与按钮电路设计 (7)2.4显示电路的选择与设计 (7)2.4.1数码管的内部结构 (8)2.4.2 数码管的外部结构 (8)2.5系统总体电路的设计 (9)第三章软件设计 (11)3.1主程序设计 (11)3.2中断程序设计 (12)第四章系统调试 (16)第五章总结 (17)参考文献 (18)摘要近年来随着科学技术的发展,单片机的应用正在不断发展。

本文阐述了基于51单片机的数字秒表的设计。

计时秒表是一种先进的电子计数器,较多的应用在教学器材、比赛计时等,而且采用数字显示,具有直观、读取方便、功能方便等诸多优点。

本设计是由硬件电路和软件程序两部分组成,硬件电路由AT89C51单片机、按键控制电路、数码显示电路、晶振电路以及复位电路组成,它使用元件少,电路结构简单,功能强大;软件采用C语言程序设计,使用keil编译源程序,产生的可执行性文件能够让单片机快速执行。

该设计充分利用单片机内部资源,通过程序利用定时器中断服务程序对计时秒表开始、暂停、清零等操作进行处理,提高单片机的工作效率,使得系统能实现0~99秒的计时。

关键字:51单片机;秒表;定时器;中断服务程序ABSTRACTadvanced electronic counter, more application in teaching equipment, timing, etc., and adopts digital display, intuitive, easy to read, convenient features, and many other advantages. This design is consists of two parts, hardware circuit and software program, the hardware circuit is controlled by AT89C51, key circuit, digital display circuit, crystals circuit and reset circuit, it USES less component, the circuit structure is simple, powerful; Software using C language program design, use the keil compiler source code, can let the enforceability file microcontroller rapid execution. This design make full use of the single chip microcomputer internal resources, through the application using the timer interrupt service routine for timing stopwatch start, pause, reset operations such as processing, improve the work efficiency of the single chip microcomputer system can realize the timing of 0 ~ 99 seconds.Key words:51 single chip,microcomputer A stopwatch,The timer,Interrupt service routin第一章引言20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

51单片机秒表程序设计

51单片机秒表程序设计

51单片机秒表程序设计1. 简介秒表是一种用于测量时间间隔的计时器,常见于体育比赛、实验室实验等场合。

本文将介绍如何使用51单片机设计一个简单的秒表程序。

2. 硬件准备•51单片机开发板•LCD液晶显示屏•按键开关•连接线3. 程序流程3.1 初始化设置1.设置LCD液晶显示屏为8位数据总线模式。

2.初始化LCD液晶显示屏。

3.设置按键开关为输入模式。

3.2 主程序循环1.显示初始界面,包括“00:00:00”表示计时器初始值。

2.等待用户按下开始/暂停按钮。

3.如果用户按下开始按钮,则开始计时,进入计时状态。

4.如果用户按下暂停按钮,则暂停计时,进入暂停状态。

5.在计时状态下,每隔1毫秒更新计时器的数值,并在LCD液晶显示屏上显示出来。

6.在暂停状态下,不更新计时器的数值,并保持显示当前数值。

3.3 计时器控制1.定义一个变量time用于存储当前的计时器数值,单位为毫秒。

2.定义一个变量running用于标记计时器的状态,0表示暂停,1表示运行。

3.定义一个变量start_time用于存储计时器开始的时间点。

4.定义一个变量pause_time用于存储计时器暂停的时间点。

5.在计时状态下,每隔1毫秒更新time的值为当前时间与start_time的差值,并将其转换为小时、分钟、秒的表示形式。

6.在暂停状态下,保持time的值不变。

3.4 按键检测1.检测按键开关是否被按下。

2.如果按键被按下,判断是开始/暂停按钮还是复位按钮。

3.如果是开始/暂停按钮,并且当前处于计时状态,则将计时状态设置为暂停状态,并记录暂停时间点为pause_time;如果当前处于暂停状态,则将计时状态设置为运行状态,并记录开始时间点为当前时间减去暂停时间的差值。

4.如果是复位按钮,则将计时器数值重置为0,并将计时状态设置为暂停。

4. 程序代码示例#include <reg51.h>// 定义LCD控制端口和数据端口sbit LCD_RS = P1^0;sbit LCD_RW = P1^1;sbit LCD_EN = P1^2;sbit LCD_D4 = P1^3;sbit LCD_D5 = P1^4;sbit LCD_D6 = P1^5;sbit LCD_D7 = P1^6;// 定义按键开关端口sbit START_PAUSE_BTN = P2^0;sbit RESET_BTN = P2^1;// 定义全局变量unsigned int time = 0; // 计时器数值,单位为毫秒bit running = 0; // 计时器状态,0表示暂停,1表示运行unsigned long start_time = 0; // 开始时间点unsigned long pause_time = 0; // 暂停时间点// 函数声明void delay(unsigned int ms);void lcd_init();void lcd_command(unsigned char cmd);void lcd_data(unsigned char dat);void lcd_string(unsigned char *str);void lcd_clear();void lcd_gotoxy(unsigned char x, unsigned char y);// 主函数void main() {// 初始化设置lcd_init();while (1) {// 显示初始界面lcd_clear();lcd_gotoxy(0, 0);lcd_string("00:00:00");// 等待用户按下开始/暂停按钮while (!START_PAUSE_BTN && !RESET_BTN);// 判断按钮类型并处理计时器状态if (START_PAUSE_BTN) {if (running) { // 当前处于计时状态,按下按钮将进入暂停状态 running = 0;pause_time = time;} else { // 当前处于暂停状态,按下按钮将进入计时状态running = 1;start_time = get_current_time() - pause_time;}} else if (RESET_BTN) { // 复位按钮按下,重置计时器time = 0;running = 0;}}}// 毫秒级延时函数void delay(unsigned int ms) {unsigned int i, j;for (i = ms; i > 0; i--) {for (j = 110; j > 0; j--);}}// LCD初始化函数void lcd_init() {lcd_command(0x38); // 设置8位数据总线模式lcd_command(0x0C); // 显示开,光标关闭lcd_command(0x06); // 光标右移,不移动显示器lcd_command(0x01); // 清屏}// 向LCD发送指令函数void lcd_command(unsigned char cmd) {LCD_RS = 0;LCD_RW = 0;LCD_EN = 1;LCD_D4 = cmd >> 4 & 1;LCD_D5 = cmd >> 5 & 1;LCD_D6 = cmd >> 6 & 1;LCD_D7 = cmd >> 7 & 1;delay(1);LCD_EN = 0;LCD_D4 = cmd >> 0 & 1;LCD_D5 = cmd >> 1 & 1;LCD_D6 = cmd >> 2 & 1;LCD_D7 = cmd >> 3 & 1;delay(1);LCD_EN = 0;}// 向LCD发送数据函数void lcd_data(unsigned char dat) { LCD_RS = 1;LCD_RW = 0;LCD_EN = 1;LCD_D4 = dat >> 4 & 1;LCD_D5 = dat >> 5 & 1;LCD_D6 = dat >> 6 & 1;LCD_D7 = dat >> 7 & 1;delay(1);LCD_EN = 0;LCD_D4 = dat >> 0 & 1;LCD_D5 = dat >> 1 & 1;LCD_D6 = dat >> 2 & 1;LCD_D7 = dat >> 3 & 1;delay(1);LCD_EN = 0;}// 向LCD发送字符串函数void lcd_string(unsigned char *str) {while (*str) {lcd_data(*str++);delay(5);}}// 清屏函数void lcd_clear() {lcd_command(0x01);}// 设置光标位置函数void lcd_gotoxy(unsigned char x, unsigned char y) {unsigned char addr;if (y == 0)addr = x | (0x80 + y);else if (y == 1)addr = x | (0xC0 + y);lcd_command(addr);}5. 总结本文介绍了使用51单片机设计一个简单的秒表程序。

基于51单片机的数字秒表设计(最新整理)

基于51单片机的数字秒表设计(最新整理)
本设计在选取单片机时,充分借鉴了许多成型产品使用单片机的 经验。并根据自己的实际情况,选用了 ATMEL 公司的 AT89S52。
ATMEL 公司的 89 系列单片机以其卓越的性能、完善的兼容性、 快 捷 便 利 的 电 擦 写 操 作 、 低 廉 的 价 格 完 全 替 代 了 87C51/62 和 8751/52,低电压、低功耗,有 DIP、PLCC、QFP 封装,是目前性 能最好、价格最低、最受欢迎的单片机之一。
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST/VPD P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
XTAL2 XTAL1
VSS
VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 VPP ALE PSEN P2.7 P2.6 P2.5 P2.4 P2.3
AT89S52 为 40 脚双列直插封装的 8 位通用微处理器,采用工业 标准的 C51 内核,在内部功能及管脚排布上与通用的 8XC52 相同, 其主要用于汇聚调整时的功能控制。功能包括对汇聚主 IC 内部寄存 器、数据 RAM 及外部接口等功能部件的初始化,汇聚调整控制,汇 聚测试图控制等。 单片机外部结构 AT89S52 单片机采用 40 脚的 DIP 封装,如下所示。
数码管显示可以分为静态显示和动态显示两种。由于本设计需要 采用四位数码管显示时间,如果静态显示则占用的口线多,硬件电路 复杂,所以采用动态显示。
动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示
器的方式称为位扫描。通常各位数码管的段选线相应并联在一起,由 一个 8 位的 I/O 口控制;各位的公共阴极位选线由另外的 I/O 口线控 制。动态方式显示时,各数码管轮流选通,要使其稳定显示必须采用 扫描方式,即在某一时刻只选通一位数码管并送出相应的段码,在另 一时刻选通另一数码管,并送出相应的段码,依次规律循环,即可以 使各位数码管显示将要显示的字符,虽然这些字符是在不同时刻分别 显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可 以给人同时显示的感觉。

51单片机秒表程序设计报告

51单片机秒表程序设计报告

单片机程序设计报告题目: 秒表设计班级:姓名:学号:指导老师:时间:一、课题任务要求用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。

即数码显示管在原先的计数上快速加一。

二、设计思路1、使用单片机,设计秒表,能显示分分秒秒;2、使用三个按键停止,开始,复位,其中“开始”按键当开关由上向下拨时开始计时,此时若再拨“开始”按键则数码管暂停;“清零”按键当开关由上向下拨时数码管清零,此时若再拨“开始”按键则又可重新开始计时;3、使用液晶或数码管显示;4、使用定时器中断。

三、硬件设计3.1、单片机介绍单片机:AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS 8位微处理器。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

AT89C51主要特性:·与MCS-51 兼容·低功耗的闲置和掉电模式·4K字节可编程闪烁存储器·全静态工作:0Hz-24MHz·寿命:1000写/擦循环·数据保留时间:10年·三级程序存储器锁定·128×8位内部RAM·片内振荡器和时钟电路·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道3.2管脚说明:VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

51单片机数字秒表设计

51单片机数字秒表设计

标准文档单片机系统单片机系统课程设计目录第 1 章数字式秒表的设计介绍⋯⋯⋯⋯⋯⋯⋯⋯⋯51.1 设计任务及功能要求说明⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯51.2 工作原理及其方法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 5 第 2 章数字式秒表硬件系统的设计⋯⋯⋯⋯⋯⋯⋯72.1 数字式秒表硬件系统各模块功能简要介绍⋯⋯⋯72.1.1 AT89S52 简介⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.72.1.2 时钟电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.82.1.3 键盘电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯82.1.4 复位电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..92.1.5 驱动及显示电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯92.1.6 单片机下载口电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯102.2 数字式秒表的硬件系统设计图⋯⋯⋯⋯⋯⋯⋯11.2.2.1 电路原理图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.11.2.2.2 PCB 图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯11. 第 3 章数字式秒表软件系统的设计⋯⋯⋯⋯⋯⋯⋯.11.3.1 数字式秒表使用单片机资源情况⋯⋯⋯⋯⋯⋯113.2 主程序流程图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12.3.3 中断服务程序流程图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯123.4 显示程序流程图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯143.5 软件系统程序清单⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..14 第 4 章设计总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯154.1 数字式秒表的设计结论及使用说明⋯⋯⋯⋯⋯154.2 程序仿真与结果⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.154.3 误差分析及解决方法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯16.. 总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯16 参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯17 附录⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯17第 1 章数字式秒表的设计介绍1.1 设计任务及功能要求说明由单片机接收小键盘控制递增计时,由LED 显示模块计时时间,显示格式为XX (分):XX(秒).XX ,精确到0.01s 的整数倍。

51单片机时钟秒表课程设计

51单片机时钟秒表课程设计

51单片机时钟秒表课程设计
这个是我写的作业的方案,单片机课程结课作业,以下是我写的设计方案,写的不咋滴欢迎拍砖。

一、详细功能设计
1、基于51 单片机倒计时秒表,最大值为9999 秒,计时单位为0.1 秒;
2、计时的初始值为组员学号后4 位,键盘启动/停止计时;
3、设计多个按键,使用键盘选择不同成员的学号作为初始值。

二、8031 最小系统设计
1、最小系统设计原理图如图1.0 所示:
2、8031 最小系统概述;
8031 最小系统包含晶振电路与复位电路。

晶振选择12MHZ 晶振,晶振电容使用30pf 电容瓷片电容。

复位电路选择上电复位。

三、硬件设计
1、数码管电路
在本设计中,使用7 段共阴极数码管,选择数码管的型号为7SEG-MPX6- CC;
2、数码管片选电路;
由于本设计需要显示五位数字,同时为了驱动数码管,使用了74HC154 芯片。

与此同时,使用74HC154 芯片还可以扩展数码管显示数字的个数。

三、软件设计
1、程序流程图如图3.0 所示:
图3.0 程序流程图
2、程序流程说明
数码管显示和扫描键盘子函数放在0.1 秒的定时器中断里,而主函数的while(1)函数向数码管显示数据变量送数据。

数码管显示函数接受键盘状态,根。

51单片机秒表课程设计

51单片机秒表课程设计

51单片机秒表课程设计一、课程目标知识目标:1. 学生能理解51单片机的基本原理,掌握其编程方法。

2. 学生能掌握秒表功能的基本组成部分,如计时、暂停、复位等。

3. 学生能理解并应用中断、定时器等51单片机的相关知识。

技能目标:1. 学生能运用C语言编写51单片机程序,实现秒表功能。

2. 学生能通过实验操作,调试并优化程序,解决实际问题。

3. 学生能熟练使用相关开发工具和调试设备,如编译器、仿真器等。

情感态度价值观目标:1. 学生培养对单片机编程的兴趣,激发创新意识和实践欲望。

2. 学生培养良好的团队合作意识,学会互相交流、协作解决问题。

3. 学生培养严谨的科学态度,注重实验数据的真实性,勇于面对和克服困难。

课程性质:本课程为实践性课程,以项目为导向,结合理论知识与实际操作,培养学生的动手能力和编程思维。

学生特点:学生具备一定的电子基础和编程基础,对51单片机有一定了解,但对中断、定时器等高级功能尚不熟悉。

教学要求:教师需引导学生运用已学知识,通过实际操作,逐步掌握51单片机的编程和应用。

在教学过程中,注重培养学生的实际操作能力、问题解决能力和团队协作能力。

课程目标的设定旨在使学生在完成本项目后,能够独立设计并实现简单的单片机应用系统。

二、教学内容1. 理论知识:- 51单片机结构及工作原理- C语言编程基础:数据类型、运算符、控制语句等- 中断和定时器的原理与应用- 键盘输入与数码管显示原理2. 实践操作:- 使用Keil软件编写和编译程序- 使用STC89C52RC单片机进行程序下载和调试- 设计并实现秒表功能,包括计时、暂停、复位等3. 教学大纲:- 第一周:回顾51单片机基本原理,学习C语言编程基础- 第二周:学习中断和定时器知识,分析秒表功能需求- 第三周:设计程序框架,编写中断处理程序和定时器程序- 第四周:编写键盘输入和数码管显示程序,实现秒表功能- 第五周:项目调试、优化和展示4. 教材章节及内容:- 第一章:51单片机概述,了解单片机的发展及其应用- 第二章:C语言编程基础,掌握基本语法和数据类型- 第三章:中断和定时器,学习中断处理和定时器编程方法- 第四章:输入输出接口,学习键盘输入和数码管显示技术教学内容的选择和组织旨在保证学生能够系统地掌握51单片机编程及应用,注重理论与实践相结合,培养学生的实际操作能力。

基于51单片机的秒表设计

基于51单片机的秒表设计

51单片机秒表设计程序清单#include<reg52.h>#define uint unsigned int#define uchar unsigned charvoid delay(uint); //延时程序sbit k1=P3^4; //定义开始键sbit k2=P3^5; //定义暂停键sbit k3=P3^6; //定义清零键sbit dula=P2^6;sbit wela=P2^7;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uchar tt,i,j,k,l;void display(uchar i,uchar j,uchar k,uchar l); //数码管显示数void main(){tt=0;i=0;j=0;k=0;l=0; //数码管显示0TMOD=0x01; //设置定时器为模式1TH0=(65536-5000)/256; //给定时器赋定时初值TL0=(65536-5000)%256;EA=1; //开总中断ET0=1;TR0=0;while(1){if(k1==0) //判断是否按下开始键{delay(10); //消抖if(k1==0)TR0=1;}if(k2==0) //判断是否按下暂停键{delay(10); //消抖if(k2==0)TR0=0;}if(k3==0) //判断是否按下清零键{delay(10);if(k3==0){i=0;j=0;k=0;l=0;TR0=0; //清零}}display(i,j,k,l); //数码管显示}}void delay(uint z){uint x,y;for(x=100;x>0;x--)for(y=z;y>0;y--); //延时}void exter0() interrupt 1 //定时器溢出中断{TH0=(65536-5000)/256; //重装计时初值TL0=(65536-5000)%256;tt++;if(tt==2){tt=0;i++; //溢出两次,0.01秒位加1if(i==10){i=0;j++; //0.01秒位到10,0.1位加1 }if(j==10){j=0;k++; //0.1秒位到10,1秒位加1 }if(k==10){k=0;l++; //1秒位到10,10秒位加1 }if(l==10){l=0; //10秒位到10,清零}}}void display(uchar i,uchar j,uchar k,uchar l){dula=1;P0=table[i]; //显示数值dula=0;wela=1;P0=0xf7; //0.01秒位显示wela=0;delay(1);dula=1; //数值显示P0=table[j];dula=0;wela=1;P0=0xfb; //0.1秒位显示wela=0;delay(1);dula=1; //数值显示P0=table[k]|0x80; //始终在1秒位后面显示小数点dula=0;wela=1;P0=0xfd; //1秒位显示wela=0;delay(1);dula=1;P0=table[l]; //数值显示dula=0;wela=1;P0=0xfe; //10秒位显示wela=0;delay(1);}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

标准文档单片机系统单片机系统课程设计目录第 1 章数字式秒表的设计介绍⋯⋯⋯⋯⋯⋯⋯⋯⋯51.1 设计任务及功能要求说明⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯51.2 工作原理及其方法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 5 第 2 章数字式秒表硬件系统的设计⋯⋯⋯⋯⋯⋯⋯72.1 数字式秒表硬件系统各模块功能简要介绍⋯⋯⋯72.1.1 AT89S52 简介⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.72.1.2 时钟电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.82.1.3 键盘电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯82.1.4 复位电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..92.1.5 驱动及显示电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯92.1.6 单片机下载口电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯102.2 数字式秒表的硬件系统设计图⋯⋯⋯⋯⋯⋯⋯11.2.2.1 电路原理图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.11.2.2.2 PCB 图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯11. 第 3 章数字式秒表软件系统的设计⋯⋯⋯⋯⋯⋯⋯.11.3.1 数字式秒表使用单片机资源情况⋯⋯⋯⋯⋯⋯113.2 主程序流程图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12.3.3 中断服务程序流程图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯123.4 显示程序流程图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯143.5 软件系统程序清单⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..14 第 4 章设计总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯154.1 数字式秒表的设计结论及使用说明⋯⋯⋯⋯⋯154.2 程序仿真与结果⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.154.3 误差分析及解决方法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯16.. 总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯16 参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯17 附录⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯17第 1 章数字式秒表的设计介绍1.1 设计任务及功能要求说明由单片机接收小键盘控制递增计时,由LED 显示模块计时时间,显示格式为XX (分):XX(秒).XX ,精确到0.01s 的整数倍。

绘制系统硬件接线图,并进行系统仿真和实验。

画出程序流程图并编写程序实现系统功能。

使用单片机AT89S52作为主要控制芯片,以四位一体共阳极数码显示管通过三极管驱动作为显示部分,设计一个具有特定功能的数字式秒表。

该数字式秒表上电或按键复位后能自动显示系统提示符“ P. ”,进入准备工作状态。

该数字式秒表通过按键控制可实现开始计1 时、暂停计时、连续计时、清零和停止功能。

1.2 工作原理及其方法使用AT89S52单片机作为核心控制部件,采用12M晶体振荡器及微小电容构成振荡电路;采用S8550作为数码管的驱动部分;用两个四位一体共阳极或共阴极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的复位、计时、连续、清零、停止各项功能。

对于时钟,它有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/ 计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法。

LED 数码显示器有如下两种连接方法:共阳极接法:把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。

共阴极接法:把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。

每个发光二极管的阳极通过电阻与输入端相连。

键盘部分方案:键盘控制采用独立式按键,每个按键的一端均接地,另一端直接和P1口相连,在按键和P1口之间通过10K电阻与+5V电源相连。

键盘通过检测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单,比较适合按键较少或操作速度较高的场合,这种独立式接口的应用很普遍。

显示部分方案:显示部分采用动态显示。

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8 个显示笔划"a,b,c,d,e,f,g,dp" 的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

动态显示是利用人眼视觉暂留特性来实现显示的。

事实上,显示器上任何时刻只有一个数码管有显示。

由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因此看到的是连续显示的现象。

为防止闪烁延时的时间在1ms左右,不能太长,也不能太短。

本设计可采用P0 口直接驱动八段数码管显示。

此方案成本低,而且单片机的I/O 口占用较少,可以节约单片机接口资源,而且功耗更低。

此电路采用单片机的P0 口作为数码显示管的段控,采用P2 口作为数码管的位控。

8 个独立式键盘分别接在单片机的P1口上,以及其他部分构成数字式秒表的硬件电路。

通过编写程序使用单片机的定时计数器,以及软件延时,中断资源来实现秒计时和相关控制。

此数字式秒表的硬件整体结构如图1-1 所示。

图1-1数字式秒表的硬件结构图第 2 章数字式秒表硬件系统的设计2.1 数字式秒表硬件系统各模块功能简要介绍2.1.1 AT89S52 简介(1) 与MCS-51产品相兼容;(2) 具有8KB可改写的Flash 内部程序存储器,可写/ 擦1000次;(5) 256 字节内部RAM;(6) 32 根可编程I/O 口;(7) 3 个16 位定时器/ 计数器。

(8) 8 个中断源;(9) 可编程中串行口;(10) 低功耗空闲和掉电方式。

它的价格便宜,功能强大,能耗低。

很大程度上减少总电路的复杂性,提高了所设计系统的稳定性。

其芯片引脚图如图2-1 所示。

图 2-1 单片机 AT89S52 引脚图2.1.2 时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。

在AT89S52芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚TXAL2,在芯片的外部通过这两个引角跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。

此电路采用12MHz的石英晶体。

时钟电路如图2-2 :图 2-2 时钟电路2.1.3 键盘电路本设计使用独立式键盘接在单片机的P1 口上但通过软件赋予其中三个按键功能,其中S2 是计时开始按键,第二功能为停止,S3为计时暂停按键,第二功能为继续计时按键,S4 是清零按键。

注意使用时只有在暂停状态下才能继续计时,只有在停止状态下才能清零,在停止时不能继续计时,在暂停时不能清零。

键盘电路如图2-3 :2.1.4 复位电路复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。

除了进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。

RST 引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2 个机器周期)以上,若使用频率为6MHz的晶振,则复位信号持续时间应超过4us 才能完成复位操作。

复位操作有上电自动复位和按键手动复位两种方式。

上电自动复位是通过外部复位电路的电容充电来实现的。

按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。

在本设计中采用了按键电平复位方式,其复位电路如图2-4 所示:2.1.5 驱动及显示电路数码管实际上是由二极管构成发光二级管正常工作时,其两端正向压降约为1.6v ,正向电流约为10mA,为了使数码管达到一定的亮度而又不至于由于电流过大而损坏,我们使用三极管S8550作为数码管的驱动,同时在P0口和P2口上串上470 欧姆的电阻。

此处使用四位一体共阴极数码管,由于驱动电路决定了此处共阴极数码管和共阳极数码管均可以采用而且均采用共阳极代码来编写显示程序,具体电路如图2-5 所示。

图 2-5 数码管驱动及显示电路图2.1.6 单片机下载口电路下载口主要是一个十芯的座子,可以通过使用USB下载线对单片机进行程序下载。

方便整个软件的设计,也能让我们使用起来更加方便。

图 2-6 单片机下载口电路图2.2 数字式秒表的硬件系统设计图2.2.1 电路原理图此处电路原理图以及PCB原理图的绘制均使用protel99 软件完成,Protel99 是基于Win95/Win NT/Win98/Win2000 的纯32 位电路设计制版系统。

Protel99 提供了一个集成的设计环境,包括了原理图设计和PCB布线工具,集成的设计文档管理,支持通过网络进行工作组协同设计功能。

根据硬件接线要求设计绘制电路原理图及PCB。

具体电路图见附录A 与附录B。

2.2.2 PCB 图PCB 图设计时,首先要使元器件尽量少,这样既可以节约材料,又可以是布线更加短,减少干扰,同时还应注意尽量减少线路之间的寄生电容和电感,布线时需要将线宽设置得比较宽这样可以提高腐蚀电路板时的成功率,焊盘大小也要设置的比较大,这样在腐蚀环节和焊接环节比较容易成功。

不易出现短线的现象和焊盘剥离的现象。

双面布线时芯片和针脚多的元件需将焊接点置于底层,这样才能比较方便的焊接。

制作电路板PCB图见附录B。

第 3 章数字式秒表软件系统的设计3.1 数字式秒表使用单片机资源情况本次电子钟设计除了了使用单片机工作所必须的硬件资源 (如连接晶振的引脚XTAL1和XTAL2,复位引脚RESE)T 外,对单片机的硬件资源还做了具体的安排。

(1) .P0 口:P0.0-P0.7 作为数码管显示器的段控。

(2) .P1 口:P1.0-P1.3 作为独立式键盘的输入端。

(3) .P2 口:P2.0-P2.7 分别控制数码管LED0-LED7的位控码驱动。

(4) . 定时/计数器:使用定时器0 工作方式2 实现数字式计数器的运行。

(5) . 专用寄存器:定时器控制寄存器TCON,通过设置该寄存器TR0 位的状态来控制定时/计数器0的启动/ 停止;中断允许寄存器IE,通过设置该寄存器EA/ET0 位的状态来设置定时/计数器0 中断允许/禁止;定时/计数器工作方式寄存器TMO,D设置定时/计数器0的工作方式。

相关文档
最新文档