基于单片机的电子跑表设计
单片机实现电子计时跑表的设计实验报告

一、设计要求: 1、 能显示分、秒、1/100 秒,显示器用七段数码管(也可选
LCD) 2、 具有清零、计时、冻结功能,功能转换用一位非锁紧按
键开关。 3、 CPU 选用 89C51/MSP430,定时器芯片自选,也可用 CPU
内部的定时器。 4、 先写设计报告(要有仿真结果) 5、 编程语言可用 51 汇编/51C。 6、 焊接、调试、做出实物(也可制作 PCB) 7、 调试,误差分析,并补充到设计报告中。 二、方案设计:
D
1 0 1 1 1 1 0 5EH
A1H
E
1 1 1 1 0 0 1 79H
86H
F
1 1 1 0 0 0 1 71H
8EH
(4) 单片机的选择
根据初步设计方案的分析,设计这样一个简单的应用系 统,可以选择带有 EPROM 的单片机,应用程序直接存储 在片内,不用在外部扩展程序存储器,电路可以简化。 本系统选用 AT89C51 单片机。该芯片的功能与 MCS-51 系列单片机完全兼容。
INIT: CLR 00H MOV P3,#0FFH MOV P2,#00H MOV P0,#3FH MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H SETB EA SETB ET0 SETB TR0 MOV DPTR,#TAB MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H RET ;/////////////显示子程序
仿真图:
是
秒位增 1
增到 60?
是
分位增 1
增到 100?
单片机课程设计电子跑表

电子跑表一.个人任务在本次课程设计中,本人负责跑表的C语言程序编程部份和开发板调试。
另一人负责proteus仿真。
二.设计要求以51开发板为核心设计一个多功能电子表。
利用AT89C52作为主控器组成一个具有跑表功能的4位LED显示器的电子跑表。
跑表的-999.9秒并具有跑表启动和跑表复位功能键。
跑表的显示范围:;当按下启动按钮跑表开始计时,按下停止按停止计时,当按下复位按钮跑表回零。
三.设计思路1.计时单元由单片机内部的按时器/记数器来实现。
2.跑表的显示功能是由LED数码管动态扫描来实现。
这能够利用专用的键盘/显示器接口芯片来实现对键盘/显示器的动态扫描。
3.跑表的启动/复位/清零功能由软件来实现。
P1.0接启动键,P1.1接停止键,P1.2接清零键。
四.设计方案在单片机中,按时功能既能够由硬件实现,也可通过软件按时实现。
硬件按时是利用单片机内按时器按时,启动以后按时器可与CPU并行工作,不占用CPU时刻,CPU有较高的工作效率。
采纳硬件按时和软件按时并用的方式,即用T0出中断功能实现50ms按时,通过软件延时程序实现1s按时。
按时器的有关的寄放器有工作方式寄放器TMOD和操纵寄放器TCON。
依照设计要求和设计思路,硬件电路有两部份组成,即单片机按键电路,LED 显示器电路,以下图为系统电路设计流程图。
图1 电路设计流程图依照课程设计要求,决定计时单元由单片机内部的按时器/记数器89C52芯片来实现。
跑表显示功能通过LED数码管动态扫描来实现。
能够利用专用的键盘/显示器接口芯片可实现对键盘/显示器的动态扫描。
五.硬件设计1. 单片机型号选择由于咱们利用的单片机开发板上的单片机的型号是SCT89C52,因此咱们只能选择这款型号的单片机。
可是这款单片机和SCT89C51是一样的,也是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处置器,器件采纳ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
基于51单片机的跑表设计

//中断函数 采用定时器0
• void main() • { • IE=0x82; • TMOD=0x01; • TR0=0; • TH0=64536/256; • TL0=64536%256; • while(1) • { • display(); • key_scan(); • } • }
//开启定时器0中断 //定时器T0,方式1
//延时程序
void display() {
//数码管显示函数 P0= DuanMa [mm/10]; //显示分十位 P2= WeiMa [0]; //第一位显示 Delay(1); P0=DuanMa [mm%10]; //显示分个位 P2= WeiMa [1]; //第二位显示 Delay(1); P2= WeiMa [2]; P0=0x7f; Delay(1); P0= DuanMa [ss/10]; P2= WeiMa [3]; Delay(1); P0= DuanMa [ss%10]; P2= WeiMa [4]; Delay(1); //第三位显示 //显示 —
sbit S1=P1^0; sbit S2=P1^1; unsigned char mm,ss; unsigned int ms; void Delay(int m) { unsigned int i,j; for (i=0; i<m; i++) for(j=0; j<800;j++); } //位变量定义
#include<reg51.h> unsigned char code // 显示段码 DuanMa[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char code // 显示位码 WeiMa[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};
基于单片机的电子跑表设计--毕业设计

毕业设计基于单片机的电子跑表设计此设计还有以下资料,有需要的朋友下载了文档后留下你的邮箱,方便我传给你。
目录第一部分过程管理资料一、毕业设计课题任务书 (3)二、本科毕业设计开题报告 (6)三、本科毕业设计进展情况记录 (10)四、本科毕业设计中期报告 (12)五、毕业设计指导教师评阅表 (13)六、毕业设计评阅教师评阅表 (14)七、毕业设计答辩及最终成绩评定表 (15)第二部分设计说明书八、设计说明书 (16)第一部分过程管理资料****届毕业设计课题任务书院(系):专业:本科毕业设计开题报告说明:开题报告作为毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一,此报告应在导师指导下,由学生填写,将作为毕业设计(论文)成绩考查的重要依据,经导师审查后签署意见生效。
本科毕业设计进展情况记录毕业设计题目:基于单片机的电子跑表设计班级:自本0302学号:46030216学生:刘正武指导教师:廖代文注:教师监督学生如实记录毕业设计(论文)过程中根据《课题任务书》拟定的进度与进展情况以及毕业设计(论文)撰写过程中遇到的问题和困难,并签署意见。
注:教师监督学生如实记录毕业设计(论文)过程中根据《课题任务书》拟定的进度与进展情况以及毕业设计(论文)撰写过程中遇到的问题和困难,并签署意见。
本科毕业设计中期报告院(系):电气与信息工程学院院、系:电气与信息工程学院毕业设计答辩及最终成绩评定表院、系(公章):说明:最终评定成绩=a+b+c,三个成绩的百分比由各院、系自己确定。
第二部分毕业论文摘要本次毕业设计的课题是基于单片机的电子跑表设计,设计要求为电子跑表能显示正确的时间并能作秒表使用。
设计的主要内容包括单片机最小系统(电源电路,复位电路,时钟电路),键盘电路,驱动电路,显示电路和电子跑表的程序设计。
我选用的单片机型号为AT89S52,采用两片74LS244为驱动电路,显示采用两个4位一体的七段数码显示管,通过制作实物,编程,下载程序,制作的电子跑表能够实现正确的时间显示,并且可以实时调整时间显示,作秒表使用时计时范围为000.0秒到999.9秒,通过检测,发现误差不大。
基于STC90C51单片机的电子跑表课程设计

基于STC90C51单片机的电子跑表课程设计物理与电子信息学院课程设计Ⅳ设计报告书基于STC90C51单片机的电子跑表姓名:XXX班级:09电信本学号:090802011指导老师:XXX时间:2011-12-20目录内容摘要 1关键词1Abstract 1Keywords 11绪论 12 系统设计 22.1 设计任务与要求 22.2 方案的选择与论证23 系统硬件设计 33.1 单片机模块 43.2 按键模块73.3 最小系统基本模块83.4 数码管显示模块103.5 驱动电路模块 113.6 硬件元件清单 114软件设计与仿真124.1主程序设计124.2 仿真软件简介 134.3 仿真结果144.4 系统调试与编译15结束语17附录一:程序清单18附录二:电路板实物图22参考文献23内容摘要:该系统以STC90C51单片机为核心控制芯片,实现电子跑表的方案。
设计使用4个NPN三极管作为驱动电路驱动四位数码管的位选,用四位数码管显示000.0到999.9秒。
另外该方案通过按键实现跑表的启动和停止,清零重启功能。
关键词:驱动 STC90C51 四位数码管Abstract:The system is based on STC90C51 single-chipmicrocomputer as the core control chip, electronic stopwatch program. Design using 4 PNP three transistor as a driving circuit for driving the four digital tube of a selected, with four digital tube display 0 to 999.9 seconds. In addition to the program through the realization of the stopwatch button start and stop, reset restart function Keywords:driveSTC90C51four digital tube1绪论近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
基于单片机的电子跑表设计

段码输入端
位码输 入端
图1接 线 图 2.2 动 态显 示 原理
位 LED数码 管 ,此 外再 加 上 小数 点dp,共 8个 。原则 上 , “8”字 形 的 数 码 显示 块 均 采 用A、B、c、D、E、F、G以及DP这8个 发光 二 极 管 。每 个发 光 二 极管 称 为 一个 字段 。8字形 的显 示块 有 共 阴极 和 共 阳极 两 种结 构 。
过字段输 出 口由CPU送 出时,所 有的LED显示器 会接 收到 同样的字 形 码,但 最终是 由COM端来 决定哪个 LED显示 器变亮 , 由上述 可知 ,I/ 0口可 以控* ̄COM端 ,因此我们很容 易通过控制l,0口从而实现对显 示 器变化情况 的控制 。这种通 过分时 的方 式来控制每个 显示器的I/O口达 到依次点亮 每个显示器 的方法就称之为动态 扫描。
动态 显示指 的是这 四位LED数码管 的段选均 以并联 的方式 连接 , 通 过 对位码输 入端 的控制 进而实 现对哪 一位数码 管亮灭 情况 的控 制 。 在 单 片机 的众 多显示 方式 中 ,动 态扫 描 显示 接 口无 疑是 其 中应 用最 普遍 的一 种。所 有显 示器 的8个笔划 段a.h同名端相 连 ,构 成它 的接 口 电路 。l/O线可 以 独立的控 制每 一个 显示 器的公 共极COM。字 形码通
ELECTRO NICS W ORLD ·
合肥 师 范学院魂 芯DsP产业化研 究院 乔 玲 陈兵兵 周元 元
51单片机跑表课程设计

51单片机跑表课程设计一、课程目标知识目标:1. 学生能理解51单片机的基本原理,掌握其编程方法。
2. 学生能掌握跑表功能实现的硬件设计,包括定时器/计数器的工作原理和应用。
3. 学生能了解并运用中断系统,实现跑表的精确计时功能。
技能目标:1. 学生能够运用C语言编写程序,实现对51单片机的控制。
2. 学生能够设计并搭建简单的跑表电路,进行功能调试和优化。
3. 学生能够通过课程学习,培养动手实践能力,提高问题解决技巧。
情感态度价值观目标:1. 学生在课程学习中,培养对电子技术和编程的兴趣,提高学习积极性。
2. 学生在团队协作中,学会相互沟通、合作,培养集体荣誉感。
3. 学生通过课程实践,认识到科技对社会发展的作用,树立正确的价值观。
课程性质:本课程为实践性较强的课程,注重培养学生的动手能力和实际问题解决能力。
学生特点:学生具备一定的电子技术基础和C语言编程能力,对单片机有一定了解。
教学要求:结合学生特点,注重理论与实践相结合,引导学生通过动手实践掌握课程内容,提高学生的综合运用能力。
在教学过程中,关注学生的个体差异,因材施教,确保每位学生能够达到课程目标。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 51单片机基础原理回顾:包括51单片机的内部结构、工作原理,重点复习定时器/计数器、中断系统等关键知识点。
相关教材章节:第一章《单片机概述》和第二章《51单片机结构及原理》。
2. C语言编程基础:回顾数据类型、运算符、控制语句等基础语法,为编写跑表程序打下基础。
相关教材章节:第三章《51单片机C语言编程基础》。
3. 跑表功能硬件设计:讲解跑表电路的设计方法,包括时钟电路、复位电路、显示电路等。
相关教材章节:第四章《51单片机接口技术》。
4. 跑表程序设计:教授如何利用定时器/计数器、中断系统编写跑表程序,实现计时功能。
相关教材章节:第五章《51单片机定时器/计数器与中断系统》。
单片机电子跑表课程设计

单片机电子跑表课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握其编程方法。
2. 学生能掌握电子跑表的工作原理,了解各部分功能及其相互关系。
3. 学生能运用所学知识设计并实现一个简单的单片机电子跑表。
技能目标:1. 学生能够运用C语言或汇编语言进行单片机编程,实现电子跑表的基本功能。
2. 学生能够运用电路设计软件绘制电子跑表的原理图和PCB图。
3. 学生能够运用调试工具对单片机程序进行调试,解决常见问题。
情感态度价值观目标:1. 学生培养对电子制作的兴趣,激发创新意识和动手能力。
2. 学生在团队协作中,学会沟通与交流,培养合作精神。
3. 学生能够关注单片机技术在生活中的应用,认识到科技发展对生活的影响。
课程性质:本课程为实践性较强的课程,结合理论知识与实际操作,培养学生动手能力。
学生特点:学生具备一定的电子基础知识,对单片机有一定了解,但编程和实际操作经验不足。
教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,培养学生解决问题的能力。
在教学过程中,关注学生的个体差异,提供个性化指导。
通过课程学习,使学生能够独立完成单片机电子跑表的设计与制作。
二、教学内容1. 单片机原理与编程基础- 单片机结构及工作原理- C语言或汇编语言基础- 单片机编程环境搭建2. 电子跑表原理与设计- 电子跑表功能需求分析- 电路设计原理及元件选择- 原理图和PCB图绘制方法3. 单片机与外围电路接口技术- 按键输入接口设计- 数码管显示接口设计- 定时器/计数器应用4. 程序设计与调试- 程序框架设计- 功能模块编写- 程序调试与优化5. 实践操作- 电子跑表组装与调试- 故障分析与排除- 课程项目展示与评价教学内容安排和进度:第一周:单片机原理与编程基础第二周:电子跑表原理与设计第三周:单片机与外围电路接口技术第四周:程序设计与调试第五周:实践操作(含课程项目展示与评价)教学内容与教材关联性:本教学内容紧密结合教材,按照教材章节逐步展开,使学生能够循序渐进地掌握单片机电子跑表的设计与制作。
设计题目电子跑表

一、设计题目:电子跑表二、设计要求:1、利用8031作为主控制器组成一个电子跑表,采用4位LED显示器。
2、上电或RESET后能启动显示当前(时:分):首次上电复位显示为0时0分,以后各次RESET均显示正确的当前时间。
3、当按下START键时,作为跑表使用,显示范围是:000.0-999.9秒,当按下STOP键时,跑表停止运行,并保留所停位置的时间显示不变。
4、利用H键作为时钟校正,即当按下H键时,显示的当前小时值以每秒加一的速度递增(24点即为0点),利用N键作为分校正,使用方法同H键,但60分钟即为0分。
三、设计的作用及目的:1、利用单片机定时器中断和定时器计数方式实现跑表和时钟功能。
2、通过该次课程设计熟悉8031、CD4511与LED的接口技术。
3、熟悉LED功能显示的控制过程。
4、熟悉键盘扫描原理。
5、熟悉8031定时器中断和定时器计数方式的功能使用,为以后的工作和学习打下坚实的基础。
6、学会如何编制含定时器中断、键盘扫描和LED静态显示等多种功能的综合程序初步体会大型程序的编制和调试技巧。
四、所用仪器设备:单片机(8031)、PROM(2764)、锁存器(74LS373)、锁存/译码/驱动块(CD4511)、LED数码管(四个)、按键(4个)五、具体设计:(1)、设计原理:在讲设计原理之前我们先来介绍一下8031。
8031是INTEL公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。
它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,标准MCS-51单片机的体系结构和指令系统。
8031内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
但8031片内并无程序存储器,需外接ROM。
电子跑表单片机课程设计报告

目录第一章课题设计内容及要求 (2)1.1 内容 (2)1.2 要求 (2)第二章系统方案设计 (3)2.1设计方案 (3)2.2 设计原理 (3)第三章系统硬件设计 (4)3.1 硬件电路的设计方案及框图 (4)3.2 单片机的选择 (4)3.3 时钟与复位电路的设计 (5)3.3.1 时钟电路 (5)3.3.2 复位电路 (6)3.4 LED显示电路的设计 (7)3.4.1 控制方式 (7)3.4.2 段驱动芯片选择 (8)3.5 按键电路 (8)第四章系统软件设计 (9)4.1 主程序的设计 (10)4.2 时钟、跑表计时程序模块的设计 (12)4.3 T1断程序流程图如下: (16)4.4 代码转换程序: (18)4.5 显示程序 (19)第五章系统的安装调试说明 (21)第六章总结与体会 (22)参考文献 (23)附录 (24)1.程序原理图 (24)2.程序清单 (24)第一章课题设计内容及要求1.1 内容(1)本课题以单片机为核心,设计出电子跑表,具有以下功能:(2)具有电时钟和跑表功能;(3)做时钟时在4位LED 显示器上显示分、秒;(4)做跑表时显示范围000.0秒~999.9秒;(5)当按下启动按钮跑表开始计时,按下停止按钮停止计时,当按下复位按钮跑表回零。
1.2 要求用伟福编译程序,用Proteus画出电路图进行仿真。
第二章系统方案设计2.1设计方案电子跑表的设计有多种方法,例如,可用中小规模集成电路组成电子跑表;也可用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子跑表;还可以利用单片机来实现等等。
本次单片机综合实验需要进行硬件设计与软件设计。
2.2 设计原理(1)本系统采用AT89C51单片机、4位LDE显示、两块块74LS244芯片、4个调节按钮、共同构成我的单片机电子跑表的硬件。
(2)计时单元由单片机内部的定时器/记数器来实现。
(3)时间显示功能通过LED数码管动态扫描来实现。
基于51单片机的跑表设计

4种工作方式 (方式0-方式3):
选用方式1——16位定时 /计数器,由TH的8位和TL的 8位组成。选用工作方式1, 则为16位的定时/计数器, 其最长计时为65536。若要 定时时间为50ms,则初值为
TH0=(65536-50000)/256;
TR0、TR1——计数运行控制位
TL0=(65536-50000)%256;
P0=b[ms/10];
//十位
P2=0xfd;
//11111101
delay(2);
P0=b[ms%10];
//个位
P2=0xfe;
//11111110
delay(2);
}
பைடு நூலகம்
相关程序:(中断-定时器0程序)
void time0_TSR(void) interrupt 1 {
TF0=0; TH0=(65536-10000)/256; //高4位 TL0=(65536-10000)%256; //低4位 ms++; if(ms==100) { ms=0; s++; if(s==60) { s=0; m++; if(m==60) m=0; } }
任务要求:
1.使用6位数码管显示时间,时间包括分、秒、 0.01秒,格式如下:mm.ss.ms 2.可以通过按键启动或者停止跑表。按键只能使 用四个独立键。 3.时间通过定时器产生
数码管显示原理:
数码管由7个发光二极管组 成,形成一个日字形,它们可以 共阴极,也可以共阳极,通过解 码电路得到的数码接通相应的发 光二极管而形成相应的字。
动态显示的亮度比静态显示要差一些,所 以在选择限流电流时应小于静态显示电路中的。
按键识别原理:
单片机简易跑表课程设计

单片机简易跑表课程设计一、课程目标知识目标:1. 学生能够理解单片机的基本原理,掌握跑表程序设计的基础知识。
2. 学生能够描述跑表的工作流程,了解跑表程序中的各个模块功能及其相互关系。
3. 学生掌握跑表计时器的启停、复位等功能实现所需的基本指令和程序结构。
技能目标:1. 学生能够运用C语言编写简单的跑表程序,实现计时、显示等功能。
2. 学生能够通过实验调试,解决跑表程序运行过程中出现的问题,提高程序调试能力。
3. 学生能够对跑表程序进行优化,提高程序运行效率。
情感态度价值观目标:1. 学生在课程学习中,培养对单片机编程的兴趣,激发学习主动性和创新精神。
2. 学生通过合作交流,培养团队协作能力和沟通能力,形成良好的学习氛围。
3. 学生在学习过程中,认识到编程对实际生活的意义,增强学以致用的意识。
本课程针对单片机简易跑表的设计,结合学生年级特点和教学要求,旨在帮助学生掌握单片机编程基础知识,提高实际操作能力,培养创新精神和团队协作能力,使学生在学习过程中形成积极的情感态度和价值观。
通过分解课程目标为具体的学习成果,为后续教学设计和评估提供明确方向。
二、教学内容1. 单片机基本原理:介绍单片机的组成、工作原理,使学生了解单片机的基础知识,为编程打下基础。
(对应教材第1章)2. C语言编程基础:回顾C语言的基本语法,重点讲解与单片机编程相关的内容,如数据类型、运算符、控制语句等。
(对应教材第2章)3. 跑表程序设计:详细讲解跑表程序的工作流程、模块划分,以及各模块的功能实现。
(对应教材第3章)4. 程序编写与调试:指导学生编写跑表程序,学习如何使用开发工具进行程序编译、下载和调试。
(对应教材第4章)5. 程序优化与升级:讨论如何优化跑表程序,提高运行效率,以及如何实现程序功能的升级。
(对应教材第5章)教学内容安排和进度:第一周:单片机基本原理学习,C语言编程基础回顾。
第二周:跑表程序设计,模块划分,功能实现讲解。
单片机跑表课程设计

单片机跑表课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理,掌握跑表程序的设计方法;2. 使学生掌握跑表程序中的计时、显示等模块的功能和使用方法;3. 让学生了解跑表程序在实际应用中的重要性。
技能目标:1. 培养学生运用所学知识设计并实现单片机跑表程序的能力;2. 培养学生分析问题、解决问题的能力,提高编程技巧;3. 提高学生的团队协作能力,学会与他人共同完成项目。
情感态度价值观目标:1. 培养学生对单片机编程的兴趣,激发学习热情;2. 培养学生勇于尝试、不怕失败的精神,树立自信心;3. 培养学生的创新意识,学会珍惜时间,养成良好的学习习惯。
课程性质:本课程为实践性较强的课程,要求学生在理论学习的基础上,动手实践,完成单片机跑表的设计与实现。
学生特点:学生处于高年级阶段,已具备一定的单片机基础知识,有较强的学习能力和动手能力。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调实践操作,培养学生实际编程能力。
在教学过程中,将目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. 单片机基本原理回顾:包括单片机的结构、工作原理、指令系统等,重点复习与跑表程序设计相关的基础知识。
参考教材章节:第一章 单片机概述、第二章 单片机结构与原理。
2. 跑表程序设计:a. 计时模块:学习定时器/计数器的工作原理,掌握计时功能的实现方法。
参考教材章节:第三章 定时器/计数器、第四章 中断系统。
b. 显示模块:学习LED数码管或LCD液晶显示的基本原理,掌握显示部分的设计方法。
参考教材章节:第五章 显示与键盘接口、第六章 液晶显示接口。
3. 跑表程序实现:a. 程序框架设计:学习跑表程序的整体结构,明确各模块功能及其相互关系。
b. 编程实践:根据跑表功能需求,动手编写程序代码,实现跑表的基本功能。
c. 调试与优化:分析程序运行过程中的问题,学会调试程序,提高程序性能。
4. 项目实践:a. 学生分组进行项目实践,按照教学要求完成单片机跑表的设计与实现。
基于单片机实现的电子跑表设计

目录第1章绪论 (1)1.1 单片机简介 (1)1.2 89C51单片机介绍 (1)第2章系统总体方案设计 (3)2.1 课题设计内容及思路 (3)2.1.1 设计内容 (3)2.1.2 设计思路 (3)2.2 系统总体设计方案 (3)第3章电子跑表的设计 (5)3.1 控制系统硬件设计 (5)3.1.1 单片机型号选择 (5)3.1.2 键盘电路设计 (5)3.1.3 数码管显示原理 (5)3.1.4 74LS244芯片 (6)3.2 控制系统软件设计 (7)3.2.1 时钟计时程序模块的设计 (7)3.2.2 跑表模块的设计 (8)3.3主程序设计 (11)3.4 PROTEUS 仿真图 (13)3.5 系统的安装调试说明 (13)课程设计总结与体会 (15)参考文献 (16)附录 (17)附录A 系统原理图 (17)附录B 源程序清单 (18)电气与信息工程系课程设计评分表 (30)第1章绪论1.1 单片机简介单片机称为单片机微型计算机。
从应用领域来看,单片机主要用来控制,所以又称为微控制器(Microcontroller Unit)或嵌入式控制器。
单片机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。
单片机还具有如下特点:1.单片机的存储器ROM和RAM时严格区分的。
ROM称为程序存储器,只存放程序,固定常数,及数据表格。
RAM则为数据存储器,用作工作区及存放用户数据。
2.采用面向控制的指令系统。
为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力。
3.单片机的I/O口通常时多功能的。
由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或由机器状态来区分。
4.单片机的外部扩展能力很强。
在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。
基于单片机的电子跑表设计--毕业设计

毕业设计基于单片机的电子跑表设计此设计还有以下资料,有需要的朋友下载了文档后留下你的邮箱,方便我传给你。
目录第一部分过程管理资料一、毕业设计课题任务书 (3)二、本科毕业设计开题报告 (6)三、本科毕业设计进展情况记录 (10)四、本科毕业设计中期报告 (12)五、毕业设计指导教师评阅表 (13)六、毕业设计评阅教师评阅表 (14)七、毕业设计答辩及最终成绩评定表 (15)第二部分设计说明书八、设计说明书 (16)第一部分过程管理资料****届毕业设计课题任务书院(系):专业:本科毕业设计开题报告说明:开题报告作为毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一,此报告应在导师指导下,由学生填写,将作为毕业设计(论文)成绩考查的重要依据,经导师审查后签署意见生效。
本科毕业设计进展情况记录毕业设计题目:基于单片机的电子跑表设计班级:自本0302学号:46030216学生:刘正武指导教师:廖代文注:教师监督学生如实记录毕业设计(论文)过程中根据《课题任务书》拟定的进度与进展情况以及毕业设计(论文)撰写过程中遇到的问题和困难,并签署意见。
注:教师监督学生如实记录毕业设计(论文)过程中根据《课题任务书》拟定的进度与进展情况以及毕业设计(论文)撰写过程中遇到的问题和困难,并签署意见。
本科毕业设计中期报告院(系):电气与信息工程学院院、系:电气与信息工程学院毕业设计答辩及最终成绩评定表院、系(公章):说明:最终评定成绩=a+b+c,三个成绩的百分比由各院、系自己确定。
第二部分毕业论文摘要本次毕业设计的课题是基于单片机的电子跑表设计,设计要求为电子跑表能显示正确的时间并能作秒表使用。
设计的主要内容包括单片机最小系统(电源电路,复位电路,时钟电路),键盘电路,驱动电路,显示电路和电子跑表的程序设计。
我选用的单片机型号为AT89S52,采用两片74LS244为驱动电路,显示采用两个4位一体的七段数码显示管,通过制作实物,编程,下载程序,制作的电子跑表能够实现正确的时间显示,并且可以实时调整时间显示,作秒表使用时计时范围为000.0秒到999.9秒,通过检测,发现误差不大。
基于单片机的电子跑表设计

目录1 设计内容及要求 (1)1.1 设计内容与要求: (1)1.2设计要求: (1)2 系统总体方案设计 (1)2.1 总体方案设计 (1)2.2 设计说明 (1)3 各部分方案选定及接口设计 (2)3.1 主控制器单片机的选择 (2)3.2 时钟电路 (2)3.3显示接口电路 (3)3.4 键盘接口电路 (3)4 系统软件的设计 (4)4.1 设计说明 (4)4.2 主程序设计 (5)4.3 时间处理模块 (6)4.5 键盘扫描模块 (8)5 系统的调试与使用说明 (10)6 总结 (11)7 参考文献 (12)附录: (13)1 设计内容及要求1.1 设计内容与要求:具有时钟和电子跑表的功能。
开机为时钟功能,用4位LED数码管显示时、分,以24小时计时方式;用按键控制切换到电子跑表功能:可用3位数码管从00.0开始计时的功能。
1.2设计要求:1)确定系统设计方案;2)进行系统的硬件设计;3)完成必要元器件选择;4)完成应用程序设计;5)进行应用程序的调试;2 系统总体方案设计2.1 总体方案设计电子跑表的设计有多种方法,例如,可用中小规模集成电路组成电子跑表;也可用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子跑表;还可以利用单片机来实现等等。
为求结构简单,本次设计利用单片机组成数字电子跑表。
2.2 设计说明本系统采用AT89C51单片机、4位LDE数码管显示、一个排阻、4个调节按钮、2个电容与1个晶体振荡器共同构成本的单片机电子跑表的硬件。
时钟模块与计时模块则分别由单片机内部的定时器/记数器T0与T1来实现。
时间显示功能通过LED数码管动态扫描来实现。
电子跑表的启动/暂停/清零功能由软件来实现。
P1.0实现时钟与秒表的切换功能,P1.1接开始计时键,P1.2接计时暂停键,P1.3接计时重新计时键。
本系统软件部分则采用C51编写,功能模块结构化强,共利用了6个功能函数,2个中断服务函数和1个主函数构成了本次电子跑表的软件部分。
电子跑表的设计与实现—(单片机)

图3 主程序设计框图
1)程序的起始地址:MCS-51单片机复位后,(PC)=0000H,而0003H-002BH分别是各中断源的入口地址。所以,编程时应在0000H
处写一条跳转指令。当CPU接收到中断请求信号并予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入响应的中断服务程序入口处执行。
跑表程序如下:
WATCH: Y
CLR RS0
CLR RS1
CJNE R6,#0FFH,TP ;跑表程序
MOV R6,#0H ;清标志位
INC R4
CJNE R4,#100,TP ;判是否到10s N
MOV 41H,R4 ;送41H单元
MOV R4,#0H Y
INC R5
CJNE R5,#100H,TP ;判是否到1000s
中断返回后,判断F0,若F0=0,即作为时钟使用时,则R7=10为一秒,60秒则清零。若F0=1,即作为跑表使用时,将R5 R6的值进行十进制调整,即为跑表显示值,到9999则R5 R6清零,重新开始计数。若STOP键按下,则R5 R6停止计数。在跑表停止状态下,则返回显示当前时间。
2软件设计与说明
PUSH DPL
PUSH ACC
MOV DPTR,#Z8279
MOV A,#LEDMOD ;置8279工作方式
MOVX @DPTR,A
MOV A,#LEDFEQ ;置键盘扫描速率
MOVX @DPTR,A
MOV A,#LEDCLS ;清除LED显示
MOVX @DPTR,A
POP ACC
POP DPL
POP DPH
RET
2.3 跑表计时程序模块的设计
1)60分钟与1000秒时间的产生。选择定时器T0,用工作方式1,定时 50ms,R7先置2,T0定时50ms中断一次,利用R7寄存器减1,当R7寄存器的值=0时,时间正好是0.1s,再利用R0寄存器计数,当R0=10时,时间刚好是1s,再利用R1寄存器计数60s,依次类推,累计60分钟的是时间值,需要用到以下几个寄存器:
电子跑表的设计

湖南工程学院课程设计课程名称单片机原理与应用课题名称电子跑表设计专业电气工程班级0901学号23姓名刘俊廷指导教师肖锋2012年6 月13 日湖南工程学院课程设计任务书课程名称单片机原理与应用课题电子跑表的设计专业班级电器0901学生姓名刘俊廷学号23指导老师肖锋审批任务书下达日期 2012年6 月11 日任务完成日期2012年6 月18 日目录1.课题的设计要求、目的、意义----------------7 1.1 课程设计的要求--------------------------------------71.2 课题设计的目的与意义--------------------------------72.系统总体方案选择与说明 -----------------------8 2.1课程设计要求有多种功能--------------------------------82.2系统方案说明与分析------------------------------------93.系统结构框图与工作原理-----------------------103.1系统结构框图------------------------------------------10 3.2工作原理----------------------------------------------114.各单元硬件说明及计算方法--------------------13 4.1、AT89C51---------------------------------------------13 4.2、晶振电路--------------------------------------------14 4.36、位7段共阳显示器-----------------------------------154.4、8255芯片--------------------------------------------155.软件设计与说明-----------------------------------17 5.1.1、Keil uVision2-------------------------------------17 5.1.2 、proteus------------------------------------------185.2软件设计及流程图--------------------------------------196.调试与运行------------------------------------------217.使用说明---------------------------------------------258.总结---------------------------------------------------289.参考文献---------------------------------------------3010.附表--------------------------------------------------31第1章、课题的设计要求、目的、意义1.1 课程设计的要求1)确定系统设计方案;2)进行系统的硬件设计;3)完成必要的参数计算与元器件选择;4)完成应用程序设计;*5)进行部分单元电路及应用程序的调试;。
单片机设计案例——跑表

分频器参考程序(续)
t2: process(clk_1k) variable q: std_logic_vector(3 downto 0); begin if clk_1k'event and clk_1k='1' then if q=9 then q:="0000"; else q:=q+1; end if; end if; clkout100<=q(3); end process; clkout1k<=clk_1k; end structure;
architecture structure of fdiv is signal clk_1k:std_logic:='0'; begin
16
分频器参考程序
t1:process(clkin) variable q : integer range 1 to 24000:=1; begin if clkin'event and clkin='1' then if q=24000 then q:=1; clk_1k<= not clk_1k; else q:=q+1; end if; end if; end process;
in std_logic; in std_logic; out std_logic_vector(3 downto 0); out std_logic_vector(3 downto 0); out std_logic_vector(3 downto 0); out std_logic_vector(3 downto 0); out std_logic_vector(3 downto 0); out std_logic_vector(3 downto 0));
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1 设计内容及要求 (1)1.1 设计内容与要求: (1)1.2设计要求: (1)2 系统总体方案设计 (2)2.1 总体方案设计 (2)2.2 设计说明 (2)3 各部分方案选定及接口设计 (3)3.1 主控制器单片机的选择 (3)3.2 时钟电路 (3)3.3显示接口电路 (3)3.4 键盘接口电路 (4)4 系统软件的设计 (5)4.1 设计说明 (5)4.2 主程序设计 (5)4.3 时间处理模块 (6)4.5 键盘扫描模块 (9)5 系统的调试与使用说明 (11)6 总结 (12)7 参考文献 (13)附录: (14)1 设计内容及要求1.1 设计内容与要求:具有时钟和电子跑表的功能。
开机为时钟功能,用4位LED数码管显示时、分,以24小时计时方式;用按键控制切换到电子跑表功能:可用3位数码管从00.0开始计时的功能。
1.2设计要求:1)确定系统设计方案;2)进行系统的硬件设计;3)完成必要元器件选择;4)完成应用程序设计;5)进行应用程序的调试;2 系统总体方案设计2.1 总体方案设计电子跑表的设计有多种方法,例如,可用中小规模集成电路组成电子跑表;也可用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子跑表;还可以利用单片机来实现等等。
为求结构简单,本次设计利用单片机组成数字电子跑表。
2.2 设计说明本系统采用AT89C51单片机、4位LDE数码管显示、一个排阻、4个调节按钮、2个电容与1个晶体振荡器共同构成本的单片机电子跑表的硬件。
时钟模块与计时模块则分别由单片机内部的定时器/记数器T0与T1来实现。
时间显示功能通过LED数码管动态扫描来实现。
电子跑表的启动/暂停/清零功能由软件来实现。
P1.0实现时钟与秒表的切换功能,P1.1接开始计时键,P1.2接计时暂停键,P1.3接计时重新计时键。
本系统软件部分则采用C51编写,功能模块结构化强,共利用了6个功能函数,2个中断服务函数和1个主函数构成了本次电子跑表的软件部分。
图2.1为本系统方框图。
图2.1系统框图3 各部分方案选定及接口设计3.1 主控制器单片机的选择本次设计采用AT89C51单片机,以下为其标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
3.2 时钟电路单片机工作的时间基准是由时钟电路提供的。
在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路,如图3.2所示。
电路中,电容器C1和C2对振荡频率有微调作用,本次设计中电容器取值为20pF,石英晶体选择12MHz,故单片机的机器周期为1us。
图3.1 内部时钟电路3.3显示接口电路本次设计中使用了4位共阴数码显示管,显示控制采用动态显示,即数据的显示是由段和位选信号共同配合完成的。
为了实现显示器的动态扫描,我们需要对显示器进行段控和位控,因此在显示器接口电路中需要有两个输出口,其中一个用于输出8条段控线;另一个用于输出位控线,位控线的数目等于显示器的位数。
本次设计中用P1口与显示器的8条段控线相接,用P2.4~P2.7与显示器的4条位控线相接。
如图3.2所示。
图3.2 显示接口电路3.4 键盘接口电路本设计的键盘接口电路中使用了4个按键分别与单片机的P1.1~P1.3口相连如图3.3所示,分别实现时钟/秒表切换、开始计时、暂停计时、重新计时的功能。
按键的开关状态通过一定的电路转换为高、低电平状态。
按键闭合过程在相应的I/O端口形成一个负脉冲。
闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。
抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。
为了避免键的一次处理闭合,应采CPU多次按用措施消除抖动。
图3.3 键盘接口电路4 系统软件的设计4.1 设计说明在进行应用软件设计时应采用模块化结构设计,其优点是:每个模块的程序结构简单,任务明确,易于编写,调试和修改,程序可读性好,对程序的修改可局部进行,其他部分可以保持不变,便于功能扩充和版本升级,是便于多个模块的调用和分工合作。
因此为了达到功能结构模块化,易读,简单,易移植的特点,故本次设计采用C51编写。
系统编写时可分为键盘扫描程序模块,时间处理模块,显示模块。
如图4.1所示。
将这些事先划分好的模块用C51编成不同的子函数,再将它们有机的结合起来从而达到系统的整体功能。
图4.1 软件设计模块4.2 主程序设计本程序可分为4个模块,共定义了7个子函数,其中键盘扫描模块包括键盘扫描函数,数码管显示模块包括时钟显示函数、秒表显示函数,时间处理模块包括时钟系时间处理函数、秒表系时间处理函数、延迟函数,,另本程序还利用了两个定时/计数器分别为T0、T1,故还需定义两个中断函数T0中断服务函数和T1中断服务程序。
本程序中由于涉及时钟与秒表互切问题,故定义了一控制变量Numb并赋其初值0,若在仿真过中切到秒表则Numb取反为1,切到时钟则Numb重新为0。
因此在程序运行过程中便可控制各按键功能及屏蔽在时钟模式或秒表模式下不相干功能键的影响。
图4.2为主程序流程图。
4.3 时间处理模块时钟处理函数用定时器T0定时10ms ,其计数初值为12*2tfosc X M -=,由于T0选用工作方式1,故M 为162即65536,fosc为晶振频率为12MHZ ,t 为定时时间10ms ,所以X 的值为64536,将该值的高八位值赋给TH0,低八位并赋给TL0,这样便完成了T0的初始化工作,因为定时器T0工作在方式1下,故每次定时器T0溢出都需再给T0赋初值。
由于T0定时10ms ,所以要得到1s 的时间需T0溢出100次,由此引入计数变量Count 。
每当T0溢出,Count 便自动加1,直至计满100,便使秒变量Seconds 自动加1并初始化Count 重新开始计数,直到Seconds 为60,初始化Seconds 并使分变量Minutes 自动加1,同理到时变量Hour 为24时,初始化Hours ,由此无限循环下去直到关闭电源。
图4.3为程序流程图图4.2主程序T0中断服务函数时钟时间处理函数图4.3 T0中断函数及时钟处理函数秒表时间处理函数用的是定时器T1与T0相同,同样定时10ms ,高八位TH1赋值为()2561000065536-,低八位TL1赋值为()256%1000065536-。
T1的启动由按键扫描函数控制,当开启T1后,每次T1溢出,Decisec 自动加1,直至Decisec 到100,秒Sec 自动加1,直至分Mint 为10,初始化Mint 计时复位。
图4.4为其程序流程图。
图4.4 秒表处理函数及T1中断服务函数T1定时器中断服务函数秒表时间处理函数4.5 键盘扫描模块时钟与秒表切换键程序:CHANGE键为时钟秒表切换键,当按下CHANGE键时,会产生按键抖动,本程序中利用delay(5)产生5ms延迟使得按键状态稳定后重新确认是否按下了CHANGE键即CHANGE为低电平,此时还需判断控制变量Numb是否为0(Numb为0即奇数次按下CHANGE键显示秒表,Numb为1则为偶数次按下CHANGE键显示时钟),在CHANGE为0且Numb为0的情况下,执行数码管显示秒表函数并对Numb取反为再次按下CHANGE键做准备,此后程序进入确认结束按键循环,若松开CHANGE,则非CHANGE为0,循环结束回到开始处等待按键电平;若一直按着CHANGE,则一直执行数码管显示秒表函数。
当Numb为1时,则同理显示时钟函数,非CHANGE为0时退出循环回到等待。
图4.5为该程序流程图。
图4.5 时钟与秒表切换程序开始计时键程序:在控制变量Numb等于1的情况按下START键则开启T1定时器开始计时,这里加入Numb的目的是为了在时钟状态下屏蔽非时钟功能键,故当切换为秒表状态时,Numb为1,此时秒表系功能键生效,此时按下START键,开始计时。
图4.6为开始计时键程序流程图。
图4.6 开始计时键程序暂停计时键程序、计时复位键程序同开始计时键程序类似都需在Numb为1的情况下方可启用,且其程序流程相似。
键盘扫描函数keyscan()是由时钟与秒表切换键程序、开始计时键程序、暂停计时键程序、计时复位键程序构成的。
5 系统的调试与使用说明用KEIL运行程序正确后生成HEX格式的文件,用Proteus画好电路图,导入HEX格式的文件进行仿真。
如下图所示,P1.0是秒表与时钟切换键,P1.1为开始计时键,P1.2为暂停计时键。
P1.3为重新计时键。
下图5.1、5.2分别是时钟状态和计时状态调试图。
图5.1 开机时钟状态图5.2 计时状态6 总结开始做课程设计时,我们首先需要将硬件设计做出来,在硬件设计好的基础上进行软件设计这样就方便多了。
着手软件设计时要有一个整体的思路,即主程序,有了整体思路就开始着手于分模块的设计,如时钟显示程序、中断服务程序、时间处理程序等。
每个模块出来后都需要配合主程序进行仿真验证程序是否能正常运行。
这次的设计尽管还不是很完善,但我已经非常开心了,至少有了自己的思路再去实践,再在实践的过程中收获,这是课堂上所没有的欣喜。
在课程设计的过程中遇到的各种知识不总是在书上能找到的,所以我们必须自己查找相关资料,利用图书馆或网络搜索,这是一个比较辛苦的过程,你必须从无数的信息中分离出对你有用的,然后加以整理,最后吸收并用到设计中来。
通过这点,我收益很大。
课程设计是从整体到部分的过程,然而一切并不都是如此的。
因为有时候你整体设计好了,然而在设计部分的时候却可能影响到整体,然后又要作出调整,在不断的调整中才慢慢把设计做出来。
有时候你还必须把自己前面做的东西全部推翻,然后重新再来。
经过两个星期的课程设计,确实让我收获很多,学到了很多,特别要谢谢李老师的指导及严格要求,虽然在设计过程中很累,但是一看到自己做出来的成果,就什么疲劳都没有了。
7 参考文献[1]王迎旭《单片机原理与应用》(第2版)机械工业出版社[2]胡汉才《单片机原理及系统设计》清华大学出版社.[3]潘永雄《新编单片机原理与应用》西安电子科技大学出版社.[4]张迎新《单片微型计算机原理、应用及接口技术》国防工业出版社[5]张欣《单片机原理与C51程序设计基础教程》清华大学出版社[6]李叶紫《MCS—51单片机应用教程》清华大学出版社附录:程序清单:#include<reg51.h>#define uchar unsigned char#define uint unsigned int//七段共阴数码显示管段码表//ucharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//定义初始化变量////秒表部分//uchar Decisec=0;//分秒//uchar Sec=0;//秒//uchar Mint=0;//分////时钟部分//uchar Seconds=0;uchar Minutes=23;uchar Hours=15;uchar Count=0;uchar Numb=0;//按键部分//sbit CHANGE=P1^0; //切换:可实现跑表与时钟互切//sbit START=P1^1; //开始//sbit STOP=P1^2; //暂停//sbit RST=P1^3; //复位////函数声明//void delay(uchar ms); //延迟函数//void time_pro1();//秒表处理函数//void time_pro2();//时钟处理函数//void keyscan(); //键盘扫描函数//void display1(); //数码管显示秒表函数//void display2(); //数码管显示时钟函数///*******************/// 主函数///*******************/void main(){P1=0xff;TMOD=0x11;TH0=(65536-10000)/256;TL0=(65536-10000)%256;TH1=(65536-10000)/256;TL1=(65536-10000)%256;EA=1;ET0=1;ET1=1;TR0=1;while(1){ keyscan();if(Numb==1){display1(); }if(Numb==0){display2();}}}/*******************/// 延迟函数///*******************/void delay(uchar ms){ uchar i,j;for(i=ms;i>0;i--)for(j=500;j>0;j--);}/*******************/// 秒表处理函数///******************/void time_pro1(){ if(Decisec==100){Decisec=0;Sec++;if(Sec==60){Sec=0;Mint++;if(Mint==10){Mint=0;}}}} /*******************/// 时钟处理函数///******************/void time_pro2(){ if(Seconds==60){ Seconds=0;Minutes++;if(Minutes==60){ Minutes=0;Hours++;if(Hours==24){ Hours=0;}}}}/*******************/// 键盘扫描函数///******************/void keyscan(){// 秒表/时钟切换//if(CHANGE==0){delay(5);if((CHANGE==0)&&(Numb==0)){display1();Numb=!Numb;while(!CHANGE){display1(); } } if((CHANGE==0)&&(Numb==1)){Numb=!Numb;while(!CHANGE){display2();}}}// 开始计时//if((START==0)&&(Numb==1)){delay(5);if(START==0){TR1=1;while(!START){display1();}}}// 暂停计时//if((STOP==0)&&(Numb==1)){delay(5);if(STOP==0){ TR1=0;while(!STOP){display1();}}}// 重新计时//if((RST==0)&&(Numb==1)){delay(5);if(RST==0){ while(!RST){ Decisec=0;Sec=0;Mint=0;display1();}}}}/************************/// 数码管显示秒表函数///************************/void display1(){P2=0x7f;P0=dispcode[Decisec/10];// 显示分秒//delay(1);P2=0xbf;P0=dispcode[Sec%10]|0x80;//显示秒个位//delay(1);P2=0xdf;P0=dispcode[Sec/10];//显示秒十位//delay(1);P2=0xef;P0=dispcode[Mint]|0x80; // 显示分//delay(1);}/*************************/// 数码管显示时钟函数///*************************/void display2(){P2=0x7f;P0=dispcode[Minutes%10];//显示分个位//delay(1);P2=0xbf;P0=dispcode[Minutes/10];//显示分十位//delay(1);P2=0xdf;P0=dispcode[Hours%10]|0x80;//显示时个位// delay(1);P2=0xef;P0=dispcode[Hours/10];//显示时十位//delay(1);}/*********************///定时器T1中断服务程序///********************/void time_T1()interrupt 3{TH1=(65536-10000)/256;TL1=(65536-10000)%256;Decisec++;time_pro1();//秒表时间处理函数//}/**********************///定时器T0中断服务程序///**********************/void time_T0()interrupt 1{TH0=(65536-10000)/256;TL0=(65536-10000)%256;Count++;if(Count==100){Seconds++;time_pro2();//时钟时间处理函数//Count=0;}}秒表/时钟计时器电路原理图。