51单片机秒表计时器课程设计报告(含C语言程序)..
51单片机c语言的秒表设计
学号:1108421065课程设计报告基于AT89C51单片机的秒表设计院系电子信息工程学院专业电子信息工程班级 1姓名张远远摘要本设计是设计一个单片机控制的多功能秒表系统。
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。
秒表的出现,解决了传统的由于人为因素造成的误差和不公平性。
本设计的秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及按键电路来设计计时器。
将软、硬件有机地结合起来,使得系统能够正确地进行计数,并且结合相应的显示驱动程序,使数码管能够正确地显示时间,暂停和中断。
可谓功能强大。
其中软件系统采用c语言编写程序,包括显示程序,计数程序,中断,延时程序,按键消抖程序等,硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。
关键字:单片机秒表目录摘要 (I)目录 (II)引言 (III)1.课程设计目的 (1)2.课程设计题目描述和要求 (1)3.课程设计报告内容 (1)3.1设计思路(方案) (1)3.2系统总体方案及硬件设计(方案论证、设计、调试) (1)3.2.1系统总体方案 (1)3.2.2硬件电路设计 (2)3.3 软件设计 (5)3.3.1软件设计概述 (5)3.3.2程序流程图 (5)3.3.3子程序模块设计 (6)4.Protues软件仿真 (7)5.秒表c语言程序 (9)6.焊接实物图 (11)7.总结(设计后的体会和建议) (11)8.参考文献: (12)引言中国使用单片机的历史只有短短的30年,在初始的短短五年时间里发展极为迅速。
纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。
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单片机实验 秒表设计
实验报告一、实验名称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单片机秒表课程设计一、课程目标知识目标: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单片机基础知识学习;第二课时:秒表功能需求分析与电路设计;第三课时:定时器/计数器的应用;第四课时:程序编写与调试;第五课时:教学案例与实战。
基于51单片机的秒表设计报告
课程名称:微机原理课程设计题目:基于51单片机的秒表设计随着社会的发展,单片机已经渗透到我们生活中的各个领域,广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等。
本设计就是由单片机STC89C52RC芯片和四位一体LED数码管为核心,辅以必要的电路,构成了一个单片机电子秒表。
秒表是一种常用的测试仪器,它可以用在百米赛跑等需要精确计时的地方,为人们的生活提供了很大的方便。
该单片机电子秒表布置合理,全部器件分布在7*9cm洞洞板上,看起来小巧精简。
采用的是单片机内部定时/计数器计时,走时非常精确而且不易出错。
0.56英寸的四位数码管发出红光,可以直观地显示时间。
一个控制按键就可以控制秒表的计数与停止,按一下控制键,秒表工作状态就由计时变为计时变为停止或停止变为计时,按一下清零键就可以清零,操作非常简单。
由于是四位数码管,它的计时周期为100秒,显示满刻度为99:99秒,从左往右数共四位,前两位显示整数部分,后两位显示小数部分,中间两个个秒闪灯(秒闪灯一直亮)。
关键词:秒表,51单片机,C语言一、设计任务与要求 (18)1.1 设计任务 (18)1.2 设计要求 (18)二、方案总体设计 (19)2.1 方案一 (19)2.2 方案二 (19)2.3 系统采用方案 (19)三、硬件设计 (21)3.1 单片机最小系统 (21)3.2 数码管显示模块 (21)3.3 系统电源 (22)3.4 整体电路 (22)四、软件设计 (24)4.1 keil软件介绍 (24)4.2 系统程序流程 (24)五、仿真与实现 (27)5.1 proteus软件介绍 (27)5.2 仿真过程 (27)5.3 实物制作与调试 (29)5.4 使用说明 (30)六、总结 (32)6.1设计总结 (32)6.2经验总结 (20)七、参考文献 (21)一、设计任务与要求1.1 设计任务1).对更多小器件的了解2).巩固51单片机和C语言的知识,熟悉单片机和C语言的实际操作运用3).掌握仿真软件的运用和原理图的绘制4).加深焊接的技巧,提高焊接的能力5).熟悉调试方法和技巧,提高解决实际问题的能力6).熟悉设计报告的编写过程1.2 设计要求1).清零键进行清零2).一个独立按键进行停止与运行的操作3).秒闪灯一直亮二、方案总体设计设计一个基于51单片机的秒表。
c51电子秒表课程设计
c51电子秒表课程设计一、课程目标知识目标:1. 学生能够理解C51单片机的基础知识,掌握其编程方法。
2. 学生能够掌握电子秒表的基本原理,包括计时、暂停、清零等功能。
3. 学生能够了解并掌握电子秒表中的中断处理、定时器/计数器等硬件资源的使用。
技能目标:1. 学生能够运用C语言编写C51单片机程序,实现电子秒表的计时功能。
2. 学生能够通过实验操作,学会使用开发板、编译器等工具进行程序编写和调试。
3. 学生能够培养实际动手能力,独立完成电子秒表的搭建和调试。
情感态度价值观目标:1. 学生能够培养对电子制作的兴趣和热情,提高学习积极性。
2. 学生能够培养团队协作意识,学会与他人共同解决问题。
3. 学生能够认识到科技发展对社会进步的重要性,增强科技创新意识。
课程性质:本课程为实践性课程,注重培养学生的动手能力和实际操作技能。
学生特点:学生具备一定的C语言基础,对单片机有一定了解,但实践经验不足。
教学要求:教师需引导学生通过实际操作,掌握C51单片机编程和电子秒表制作技能,同时注重培养学生的情感态度价值观。
将课程目标分解为具体学习成果,以便在教学设计和评估中逐一实现。
二、教学内容1. 理论部分:- C51单片机基础知识:介绍C51单片机的结构、工作原理和编程环境。
- 中断处理和定时器/计数器:讲解中断的概念、中断处理过程,以及定时器/计数器的使用方法。
- 电子秒表原理:阐述电子秒表的计时原理、功能模块及其相互关系。
2. 实践部分:- C51编程实践:指导学生使用C语言编写电子秒表程序,掌握程序结构、函数调用等。
- 硬件搭建与调试:学生动手搭建电子秒表电路,学习电路连接、元件识别等,并进行程序下载和调试。
- 综合应用:结合所学知识,学生独立完成一个具有计时、暂停、清零等功能的电子秒表项目。
3. 教学大纲安排:- 第一课时:C51单片机基础知识学习,介绍教材相关章节内容。
- 第二课时:中断处理和定时器/计数器原理学习,结合教材实例进行讲解。
单片机0-99计数器 秒表报告
姓名班级指导老师时间信息工程学院图1 硬件电路连接图(二)显示电路两位数码管循环显示00~99电路数码管只要就是用于数字得显示.数码管有共阴与共阳得区分,单片机都可以进行驱动,但就是驱动得方法却不同。
两位数码管循环电路就是由电阻、二极管与数码管组成,电源+5V通过560得电阻直接给数码管得7个段位供电,P0、0—P0、7对应了两个接数码管得A,B,C,D,E,F,G与小数点位,P2、6接显示个位数得数码管得3、8引角,P2、7则接十位数得。
P2、6与P2、7端口分别控制数码管得十位与个位得供电,当相应得端口变成低电平时,驱动相应得三极管会导通,+5V通过二极管与驱动三极管给数码管相应得位供电,这时只要P0口送出数字得显示代码,数码管就能正常显示需要得数字。
图2 十位显示动态数码管(共阳数码管)图3 个位显示静态数码管(共阴数码管)(三)时钟电路时钟电路得晶振频率越高,系统得时钟频率越高,单片机得运行速度也越快。
晶振频率根据设计需要设为12MHz,又根据谐振性质,电路中得电容应选择为30pF左右。
图4 时钟电路(四)复位电路MCS—51单片机得复位就是靠外部电路实现得。
MCS—51单片机工作之后,只要在她得RST引线上加载10ms以上得高点平,单片机就能有效地复位。
MCS-51单片机通常采用上电自动复位与按键复位两种方式。
最简单得复位电路如图5:图5 复位电路上电瞬间,RC电路充电,RST引线出现正脉冲,只要RST保持10ms以上得高电平,就能使单if(i++==100)//如果i=0{i=0;count++;P0=CODE[count/10];P2=~CODE[count%10];if(count==99)count=0; //如果到了99,则重新从0开始计数}}结果与分析(可以加页):(一)调试结果1.初始状态图7:初始状态结果图2.开始计时后按下按键暂停图8:中间状态图示(二)问题分析及解决措施1、一开始时没有分清楚数码管就是共阴数码管还就是共阳数码管,C语言程序中默认数码管就是共阴,所以两个P接口得值都就是按照共阴去写得,导致数码管选段及位显有问题,后来经过老师得指点,将共阳数码管P2得接口改成了共阴。
单片机嵌入式实验报告51秒表
单片机及嵌入式设计姓名:班级:信息工程学号:学院:信息科学与技术学院一、题目51秒表二、设计要求我们设计的是一个1602液晶显示的秒表,计时精度达到0.1秒,另外有两个独立的按键对秒表进行控制,一个键控制计时的开始,一个键控制计时的停止。
三、使用的系统平台软件平台:keil51keil51是美国keil software出品的51系列兼容单片机C语言软件开发系统,是众多单片机开发软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真于一体,同时还支持PLM、汇编、和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有强大的功能。
硬件平台:STC89C52单片机、1602液晶显示器、按钮、发光二极管 STC89C52单片机:STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
1602液晶显示器:1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
单片机秒表课程设计(C语言)
课程设计(论文)课程名称 MCS-51单片机题目名称单片机秒表设计学生学部(系)机电学部专业班级 08自动化一班2010年 12 月 10 日目录1实验设计的目的和任务1.1 单片机秒表实验的概述1.2系统设计思路及描述1.3 系统设计任务和要求2软件与硬件设计2.1系统硬件方案设计2.2软件方案设计3 程序流程及实验效果3.1源程序及说明3.2原理图分析3.3实验效果4 参考文献1. 实验设计的目的和任务1.1单片机秒表实验的概述一、实验题目秒表系统设计——用STC89C52RC设计一个3位LED数码显示“秒表”,显示时间为00.0~59.9秒,每毫秒自动加一,每十毫秒自动加一秒。
二、增加功能增加一个“复位00.0”按键(即清零),一个“暂停”和“开始”按键,一个“复位60.0”按键(用来60秒倒计时),一个倒计时“逐渐自减”按键。
三,实验难点单片机电子秒表需要解决三个主要问题,一是有关单片机定时器(一个控制顺序计时,一个控制倒计时)的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程。
四、实验内容提要本实验利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED 数码管以及实验箱上的按键来设计计时器。
将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。
其中本实验设计了四个开关按键:其中key2按键按下去时开始计时,即秒表开始键(同时也用作暂停键),key1按键按下去时数码管清零,复位为“00.0”,key3按键按下去时数码管复位为“60.0”(用于倒计时),key4按键按下去则是数码管开始“逐渐自减”倒计时。
实验的意义1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2)掌握定时器、外部中断的设置和编程原理。
3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
4)该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义实验仪器集成电路芯片8051,七段数码管,TX-1C单片机开发板,MCS-51系列单片机微机仿真实验系统中的软件(Keil uvision2)1.2系统设计思路及描述该实验要求进行计时并在数码管上显示时间,则可利用MCS-51系列单片机的芯片AT89C52的P3.4,P3.5,P3.6,P3.7作为按键的入口;定时器T0作为每0.1秒减一的定时器;定时器T1作为每0.1秒加一的定时器。
51单片机秒表计时器课程设计报告(含C语言程序).
XXXXXX学院51单片机系统设计课程设计报告题目:秒表系统设计专业、班级:学生姓名:学号:指导教师:分数:[摘要]本设计是一个秒表计时器,采用51单片机实现。
电路包括以下几部分:单片机最小系统部分,数码管显示部分,摁键开关部分部分。
电路选用共阴型4位数码管组成时钟显示电路;时钟的增减控制以及清零部分主要由轻触开关构成的摁键系统组成;信号接收和处理部分主要由单片机来执行。
接通电源后,秒表计时器处于初始状态,4位数码管显示000.0。
当摁下“开始”开关时,秒表开始计时,数码管显示当前状态的时间。
当再次摁下开关时,数码管停止计时。
摁下“清零”键后,系统重新回到初始状态。
[关键词]单片机最小系统秒表计时摁键控制1、任务设计一个秒表计时器,在51单片机的控制作用下,采用4个LED数码管显示时间,计时范围设置为00.0~60.0秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。
2、设计要求(1)开始时显示00.0。
每按下S1键一次,数值加1s;(2)每按下S2键一次,数值减1s;(3)每按下S3键一次,数值清零;(4)每按下S4键一次,启动定时器使数值开始自动每秒加1,再次按下S4键,数值停止自动加1,保持显示原数。
3、发挥部分(1)开关按键3:“复位60.0”按键(用来60秒倒计时)。
按键按下去时数码管复位为“60.0”(用于倒计时)。
(2)开关按键4:倒计时“逐渐自减”按键。
按键按下去则是数码管开始“逐渐自减”倒计时。
(3)开关按键5:倒计时初始值“增加”按键。
(4)开关按键6:倒计时初始值“减小”按键。
4、课程设计的难点单片机电子秒表需要解决三个主要问题,一是有关单片机定时器(一个控制顺序计时,一个控制倒计时)的使用;二是如何实现LED 的动态扫描显示;三是如何对键盘输入进行编程。
基于51单片机的电子秒表实训报告(含有程序和图)
山东英才学院08本科实训报告计算机学院实训报告题目:基于AT89C51单片机的电子秒表的设计与制作专业:计算机科学与技术班级: 08级计算机科学与技术本科班姓名:赵娜娜学号: 200801030128组长:王晓晓时间:2010年12月4日目录1 单片机版图及模块简介 (2)1.1 LED点阵屏(8*8点阵) (3)1.2 单片机以及LED数码管显示 (3)1.3 EEPROM模块时钟模块 (4)1.4 串口通信 (5)1.5 电源模块 (5)1.6 下载线接口、蜂鸣器、按键模块 (6)2 本项目组的设计 (7)2.1 实验项目及要求 (7)2.1.1 项目原理及完成的功能 (7)2.1.2 模块框图 (7)2.2 电路图的绘制 (9)2.1.2 元件的选取及元件功能简介 (9)2.2.2 proteus电路图及连线原因 (11)2.3 程序的编写 (12)2.3.1 程序框图(流程) (12)2.3.2 keilc的使用步骤 (13)3 印刷板的焊接及流程 (16)4 调试及遭遇的问题解决方法 (16)5 总结体会 (17)6 附录 (17)6.1程序代码 (17)内容提要:本次实训通过电子秒表的设计与制作,学到了单片机最小系统的概念与设计,对单片机中断、定时等功能模块有了进一步的了解,并利用这个实力对单片机的编程方法有了一定程度的深入了解,并对51单片机有了深入的了解。
关键字:单片机、定时、中断、数码管显示单片机版图及模块简介1.1 LED点阵屏(8*8点阵)LED显示屏是由LED发光二极管以点阵的形式组合而成的。
以64个发光二极管排成8*8的矩阵形式,由于具有多个LED而只适用于动态扫描方式,相当于行列都是公共端,无共阴或共阳。
1.2 单片机以及LED数码管显示89c51是一个40引脚的芯片,其中继承了运算器、控制器、存储器,是一个高度集成的芯片,可将编写编译后的程序下载到芯片中去,实现某一功能。
单片机课程设计报告-秒表设计
前言本设计主要是对51单片机的一个方面的扩展,是能实现一般定时功能的设计。
系统采用单片机AT89C51作为本设计的核心元件,在其基础上外围扩展芯片和外围电路,附加时钟电路,复位电路,键盘接口及LED显示器,键盘采用独立连接式。
外围设备有LED显示驱动器及相应的显示数字电子钟设计与制作可采用数字电路实现,也可以采用单片机来完成。
若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。
若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计与制作中采用单片机AT89C51,它是低功耗、高性能的CMOS型8位单片机。
片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。
另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。
在LED显示器中,分成静态显示和动态显示两类,在这个设计的最小系统中主要用了它的动态显示功能,动态显示器利用了人视觉的短暂停留,在数据的传输中是一个一个传输的,且先传输低位。
按键电路设有四个按键:从上往下为k1,k2,k3和k4键。
按下k1键用于启动和暂停秒表;k2键用于复位;k3键用于当秒表暂停时,增加其显示值;k4键用于秒表暂停时减少其显示值。
目录一、设计任务和要求 (3)(1)设计任务 (3)(2)设计要求 (3)二、设计方案与论证 (3)三、硬件设计 (4)(1)时钟电路 (4)(2)按钮电路 (4)(3)显示电路 (5)(4)动态显示原理 (7)(5)80C51中断的控制 (7)(6)定时/计数器的控制 (7)(7)单片机 (9)四、原理图及器件清单 (9)( 1 )总原理图 (9)(2)PCB图 (10)(3)元器件清单 (11)五、实验效果图 (11)六、结论和心得 (11)七、参考文献 (12)八、附录 (12)秒表设计一、设计任务和要求(1)设计任务用AT89C51设计一个3位的LED数码作为“秒表”。
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单片机秒表计时器课程规划设计报告(含C语言知识程序)
+-XXXXXX学院51单片机系统设计课程设计报告题目:秒表系统设计专业、班级:学生姓名:学号:指导教师:分数:[摘要]本设计是一个秒表计时器,采用51单片机实现。
电路包括以下几部分:单片机最小系统部分,数码管显示部分,摁键开关部分部分。
电路选用共阴型4位数码管组成时钟显示电路;时钟的增减控制以及清零部分主要由轻触开关构成的摁键系统组成;信号接收和处理部分主要由单片机来执行。
接通电源后,秒表计时器处于初始状态,4位数码管显示000.0。
当摁下“开始”开关时,秒表开始计时,数码管显示当前状态的时间。
当再次摁下开关时,数码管停止计时。
摁下“清零”键后,系统重新回到初始状态。
[关键词]单片机最小系统秒表计时摁键控制1、任务设计一个秒表计时器,在51单片机的控制作用下,采用4个LED数码管显示时间,计时范围设置为00.0~60.0秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。
2、设计要求(1)开始时显示00.0。
每按下S1键一次,数值加1s;(2)每按下S2键一次,数值减1s;(3)每按下S3键一次,数值清零;(4)每按下S4键一次,启动定时器使数值开始自动每秒加1,再次按下S4键,数值停止自动加1,保持显示原数。
3、发挥部分(1)开关按键3:“复位60.0”按键(用来60秒倒计时)。
按键按下去时数码管复位为“60.0”(用于倒计时)。
(2)开关按键4:倒计时“逐渐自减”按键。
按键按下去则是数码管开始“逐渐自减”倒计时。
(3)开关按键5:倒计时初始值“增加”按键。
(4)开关按键6:倒计时初始值“减小”按键。
4、课程设计的难点单片机电子秒表需要解决三个主要问题,一是有关单片机定时器(一个控制顺序计时,一个控制倒计时)的使用;二是如何实现LED 的动态扫描显示;三是如何对键盘输入进行编程。
51单片机秒表实验报告
江西理工大学应用科学学院信息工程系单片机原理与应用课程设计报告设计题目:基于51单片机的秒表设计专业:电子信息工程班级:电信121学号: 08060312109参与人员:贺佳、周代元、周昶旭、张浥中指导老师:王苏敏完成日期: 2015年1月20日目录1 设计任务和性能指标 (1)1.1 课题内容 ....................... 错误!未定义书签。
1.2 课题要求 ........................ 错误!未定义书签。
2 设计方案............................. 错误!未定义书签。
2.1 需求分析 (3)2.2 方案论证 (3)3系统软件设计 (5)4.1 系统软件流程图................... 错误!未定义书签。
4.2 实验程序清单 .................... 错误!未定义书签。
4 系统硬件设计 (10)5.1 调试步骤 (11)5.2 性能分析 ........................ 错误!未定义书签。
5系统硬件设计.......................... 错误!未定义书签。
参考文献.. (14)1 设计任务和性能指标1 课题内容要求及目的1.1课题内容用AT89C51设计一个秒表,该秒表课可显示0.0~99.9秒的时间,进行相应的单片机硬件电路的设计并进行软件编程利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。
综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
通过本次系统设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握。
本系统利用单片机的定时器/计数器定时和记数的原理,通过采用proteus仿真软件来模拟实现。
模拟利用AT89C51单片机、LED 数码管以及控件来控制秒表的计数以及计位!其中有三位数码管用来显示数据,显示秒(两位)和十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。
51单片机电子计时秒表C程序
//如果sec1值为99,向秒进位 //变量sec1的值重新被初始化 //秒加1 { sec2=0; min++; if (min==60) { min=0; }
}
} }
//显示"-"
//显示"-"
{ P2=buf[i]; P3=wk; delay(); wk=_crol_(wk,1); P3=0xff; } } button() 数 { if (key1==0) {
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单片机编程及应用,注重理论与实践相结合,培养学生的实际操作能力。
C51单片机秒表计时(C语言)
C51嵌入式软件设计(C语言)
题目:计时秒表
功能描述:本设计实现在99秒内的秒表计时,一个按键实现开始、暂停、复位。
原理概述:P1接四位七段数码管,P3.2接一按键产生外部中断0,P3.4-P3.7控制扫描显示。计时使用定时器0产生10ms中断累计。按键不同次序决定了对应的控制功能,因为第一次按键必定为开始计时,所以第二次按键判断为暂停,依次第三次为置零。主程序调用显示程序,显示程序实时显示计时时间。
P35=1;
p=mm/10; //ms的高位
P36=0;
P1=Tab[p];delay();
P36=1;
P37=0;//显示单位:S
P1=Tab[5]; delay();
P37=1;
}
/*********主程序********************/
void main()
{
IT0=1;
EX0=1;
mm=0;
a++; }
else if(a==1) //暂停计时
{ TR0=0;
a++;}
else//置零
{ a=0;
mm=0;
cout=0;}
}
/*********定时器子程序****************/
void time0() interrupt 1
{
TH0=0xD8;
TL0=0xF0;
mm++;
效果显示
图一(电路总图)
图二(效果显示)注:第四位显示为单位:S
程序清单
#include<reg51.h>
#include<stdio.h>
unsigned char Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F };
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XXXXXX学院51单片机系统设计课程设计报告题目:秒表系统设计专业、班级:学生姓名:学号:指导教师:分数:[摘要]本设计是一个秒表计时器,采用51单片机实现。
电路包括以下几部分:单片机最小系统部分,数码管显示部分,摁键开关部分部分。
电路选用共阴型4位数码管组成时钟显示电路;时钟的增减控制以及清零部分主要由轻触开关构成的摁键系统组成;信号接收和处理部分主要由单片机来执行。
接通电源后,秒表计时器处于初始状态,4位数码管显示000.0。
当摁下“开始”开关时,秒表开始计时,数码管显示当前状态的时间。
当再次摁下开关时,数码管停止计时。
摁下“清零”键后,系统重新回到初始状态。
[关键词]单片机最小系统秒表计时摁键控制1、任务设计一个秒表计时器,在51单片机的控制作用下,采用4个LED数码管显示时间,计时范围设置为00.0~60.0秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。
2、设计要求(1)开始时显示00.0。
每按下S1键一次,数值加1s;(2)每按下S2键一次,数值减1s;(3)每按下S3键一次,数值清零;(4)每按下S4键一次,启动定时器使数值开始自动每秒加1,再次按下S4键,数值停止自动加1,保持显示原数。
3、发挥部分(1)开关按键3:“复位60.0”按键(用来60秒倒计时)。
按键按下去时数码管复位为“60.0”(用于倒计时)。
(2)开关按键4:倒计时“逐渐自减”按键。
按键按下去则是数码管开始“逐渐自减”倒计时。
(3)开关按键5:倒计时初始值“增加”按键。
(4)开关按键6:倒计时初始值“减小”按键。
4、课程设计的难点单片机电子秒表需要解决三个主要问题,一是有关单片机定时器(一个控制顺序计时,一个控制倒计时)的使用;二是如何实现LED 的动态扫描显示;三是如何对键盘输入进行编程。
5、课程设计仪器集成电路芯片STC89C52,八段数码管,MCS-51系列单片机微机仿真课程系统中的软件(keil uvision2)。
摘要 (2)关键词 (2)任务书 (3)1、设计任务目的 (5)2、设计方案选取与论证 (5)2.1 系统总体设计方案 (5)2.2 系统整体框图 (5)3、电路设计 (6)3.1 单片机最小系统设计 (6)3.2 数码管显示模块设计 (6)3.3 摁键控制系统模块设计 (6)3.4 程序设计 (6)4、制作及调试过程 (11)5、结果分析和总结 (12)参考文献 (12)附录a 秒表计时器原理图 (13)附录b 元器件清单 (14)附录c 秒表计时器实物图 (15)1、设计任务目的1.根据单片机课程所学内容,结合其他相关课程知识,设计电子秒表,以加深对单片机知识的理解,锻炼实践动手能力,为以后的毕业设计和工作打下坚实基础;2. 熟悉汇编语言或C 语言的程序设计方法,熟悉51系列单片机的使用;3. 掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O 口、串行口通讯等功能;4. 掌握单片机应用系统的软硬件设计过程、方法及实现。
2、 设计方案选取与论证2.1系统总体设计方案使用STC89C51单片机作为核心控制部件,采用12M 晶体振荡器及30PF 微小电容构成振荡电路;用1个四位一体共阴极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的计时、清零、停止、增减初始时间等各项功能。
2.2 系统总体整体框图图2.2 系统设计框图3、 电路设计3.1 单片机最小系统设计图3.1 单片机最小系统STC89C52单片机最小系统模块独立摁键控制模块4位数码管显示模块1. 时钟电路在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。
在本设计中采用的12M 的石英晶振。
和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。
当采用石英晶振时,电容可以在20 ~ 40pF 之间选择。
2. 复位电路复位操作通常有两种基本形式:上电自动复位和开关复位。
上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。
随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。
并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。
3. EA/VPP(31 脚)的功能和接法51 单片机的EA/VPP(31 脚)是内部和外部程序存储器的选择管脚。
当EA 保持高电平时,单片机访问内部程序存储器;对于现今的绝大部分单片机来说,其内部的程序存储器(一般为flash)容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器。
4. P0 口外接上拉电阻51 单片机的P0 端口为开漏输出,内部无上拉电阻。
所以在当做普通I/O 输出数据时,由于V2 截止,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必须外接上拉电阻。
3.2 数码管显示模块设计显示部分采用动态显示。
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的共阴极增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的位选通端,就使各个数码管轮流受控显示,这就是动态驱动。
动态显示是利用人眼视觉暂留特性来实现显示的。
事实上,显示器上任何时刻只有一个数码管有显示。
由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因此看到的是连续显示的现象。
为防止闪烁延时的时间在1ms左右,不能太长,也不能太短。
3.3 摁键控制系统模块设计由P1口作为独立摁键信号的输入端控制时钟的加1s、减1s、复位60.0s等操作。
用外部中断0作为秒表计时器的开启和暂停的操作。
且所有摁键均为低电平有效。
其中部分摁键为单刀双掷开关用于控制增计时或减计时以及限60.0s计时和60.0s外计时。
3.4 程序设计如下:#include<reg52.h> //包含52单片机寄存器定义的头文件unsigned char Tab1[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //段码表unsigned char Tab2[ ]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; //个位段码表unsigned int x;unsigned char k;sbit int0=P3^2;sbit int1=P3^3;sbit SUB60=P1^1;sbit S60=P1^2;sbit K5=P1^3;sbit K6=P1^4;sbit K7=P1^5;sbit K8=P1^6;/***************************延时1ms基准******************************************/void delay1ms(unsigned int i){unsigned char j;while(i--){for(j=0;j<125;j++) //1ms基准延时程序12MHZ晶振{;}}}/******************************************************************** ******************************数码管显示程序***********************************************/void Display(unsigned int x){P2=0xfe; //P2.0引脚输出低电平,DS6点亮P0=Tab1[x/1000]; //显示百位delay1ms(6);P2=0xfd; //P2.1引脚输出低电平,DS6点亮P0=Tab1[x%1000/100]; //显示十位delay1ms(6);P2=0xfb; //P2.2引脚输出低电平,DS6点亮P0=Tab2[x%100/10]; //显示个位delay1ms(6);P2=0xf7; //P2.3引脚输出低电平,DS7点亮P0=Tab1[x%10]; //显示0.1位delay1ms(6);P2=0xff;}/*******************************************函数功能:主函数******************************************/void main(void){x=0;TMOD=0x01; // TMOD=0000 0001B,使用计数器T0的工作方式1EA=1; //开起总中断ET0=1; //允许定时器T0的中断EX0=1; //允许外中断INT0IT0=1; //INT0为下负脉冲触发方式TH0=(65536-50000)/256; //计数器T0高8位赋初值TL0=(65536-50000)%256; //计数器T0低8位赋初值TF0=0; //溢出标志位清零while(1){/****************************************************************************K5 P1.3按一次加1开关S1***************************/ if(K5==0){delay1ms(20);if(K5==0){x=x+10;}while(!K5); //摁键关断摁一次触发一次}/***********************************************************************K6 P1.4按一次减1开关S2**************************/ if(K6==0){delay1ms(20);if(K6==0){if(x==0){x=10; //在00.0的时候停止}x=x-10;}while(!K6); //摁键关断摁一次触发一次}/******************************************************************** *******************K7 P1.5初始值赋值为60.0秒开关S5********************/if(K7==0){delay1ms(20);if(K7==0){x=600; //赋初值60.0秒}while(!K7); //摁键关断摁一次触发一次}/******************************************************************** *******************S60 控制60S停止开关P1.2****************************/if(x==600){if(S60==0) //如果P1.2口是低电平,秒表变化范围00.0~60.0{TR0=0;}}/******************************************************************** ******************K8 P1.6清零clear0摁键开关S3************************/ if(K8==0){delay1ms(20); //延时消震if(K8==0){x=0; //数据清0 数码管显示000.0TR0=0; //溢出标志位清0}}/************数码管显示***************************************/ Display(x);}}/**********INT0中断函数用于开始或暂停开关S4****************** **************************************************************/ void begin_stop() interrupt 0{if(int0==0){delay1ms(30); //延时消震if(int0==0){TR0=~TR0; //按键摁一次读秒开始或暂停if(x==0&&SUB60==0){TR0=0;}}}}/***************************************************************T0 计数器中断控制每隔加0.1秒***********************/ void add_one0() interrupt 1{k++;if(k==2){k=0;TF0=0;if(SUB60==1) //当P1.1口是高电平时秒表加0.1s//当P1.1口是低电平时秒表减0.1s{x=x+1; //秒表加0.1s}else{x=x-1; //秒表减0.1s}if(x==0){TR0=0;}if(x==9999){TR0=0;}}TH0=(65536-50000)/256; //计数器T0高8位赋初值TL0=(65536-50000)%256; //计数器T0低8位赋初值}4、制作及调试过程4.1 电路的制作(1) 分析各单元电路图,并分析其各部分的功能;(2) 用仿真软件仿真电路的功能,并检查是否有错,无误后进行下步工作;(3) 查找有关文献了解各元件的功能及引脚和有关的资料;(4) 分别焊接单片机最小系统、数码管显示电路和摁键控制电路,与此同时检查各元器件是否可用,并分辨其引脚;(5) 对照事先设计好的原理图仔细检查在实物中是否有接错的地方(主要检查集成电路的引脚与导线是否出错接错和是否出现了短路),若发现有,就立即改正。