电子项目作业 电子秒表资料

合集下载

电子秒表——精选推荐

电子秒表——精选推荐

一引言随着电子技术的发展,电子技术在各个领域的运用也越来越广泛。

人们对它的认识也逐步加深。

在秒表的设计上功能不断完善,在时间的设计上不断的精确,人们也利用了电子技术以及相关的知识解决了一些实际问题。

秒表的设计是由555芯片提供的,秒表时间由相关的电阻与电容的大小决定。

除了时间的设计精确外,秒表还在功能上有所改变,如实现倒计时。

电子秒表广泛应用于对运动物体的速度、加速度的测量实验,还可用来验证牛顿第二定律、机械能守恒等物理实验,同时也适用于对时间测量精度要求较高的场合,如测定短时间间隔的仪表。

秒表有机械秒表和电子秒表两类。

机械秒表与机械手表相仿,但具有制动装置,可精确至百分之一秒;电子秒表用微型电池作能源,电子元件测量显示,可精确至千分之一秒,广泛应用于科学研究、体育运动及国防等方面。

在当今非常注重工作效率的社会环境中,定时器能给我们的工作、生活以及娱乐带来很大的方便。

充分利用定时器,能有效的加强我们的工作效率。

目前数字电子技术已经广泛地应用于计算机、自动控制、电子测量仪表、电视、雷达、通信等各个领域。

例如在现代测量技术中,数字测量仪表不仅比模拟测量仪表精度高、功能强,而且容易实现测量的自动化和智能化。

随着集成技术的发展,尤其是中、大规模和超大规模集成电路的发展,数字电子技术的应用范围将会更广泛地渗透到国民经济的各个部门,并将产生越来越深刻的影响。

随着现代社会的电子科技的迅速发展,要求我们要理论联系实际,数字电路课题设计的进行使我们有了这个非常好的机会,通过这种综合性训练,我们的动手能力、实际操作能力、综合知识应用能力得到了更好的提升。

本设计是基于数字电路和模拟电路的电子秒表的设计思路及实现方法。

本设计中,充分利用数字电路的计数、译码、显示的优良特性,使整个设计达到了比较满意的效果。

本设计主要有时基产生电路、电源、分频电路、计数与译码电路(包括显示电路)、开关按钮电路组成。

所设计的电子秒表达到了设计要求的各项指标,并且在这个基础上进行了功能扩展。

电子秒表

电子秒表

电子秒表一、实验目的1.掌握电子系统的启动与停止单元电路的构成2.掌握时钟信号的产生、计数、译码、及显示电路的工作原理及的电路组成方法3.掌握不同类型芯片间接口电路的应用4.掌握电子系统的调试与性能测试二、实验仪器与器件1.双踪示波器、函数信号发生器、直流电源、IC测试仪、万用电表、数字电路实验箱2.共阴LED、CD4511、555定时器、74LS90、74LS00、电阻、电容、电位器三、各元件原理1.基本RS触发器基本RS触发器的逻辑方程为:(低电平有效)SR=0(约束条件)1.当R端有效(0),S端无效时(1),则Q=0,Q非=1,触发器置0,或称复位2.当R端无效(1)、S端有效时(0),则Q=1,Q非=0,触发器置1,或者置位3.当RS端均无效时,触发器状态保持不变。

4.当RS端均有效时,触发器状态不确定。

2.555定时器它的各个引脚功能如下:1脚:外接电源负端VSS或接地,一般情况下接地。

2脚:低触发端TR。

3脚:输出端Vo4脚:是直接清零端。

当此端接低电平,则时基电路不工作,此时不论TR、TH处于何电平,时基电路输出为“0”,该端不用时应接高电平。

5脚:VC为控制电压端。

若此端外接电压,则可改变内部两个比较器的基准电压,当该端不用时,应将该端串入一只0.01μF电容接地,以防引入干扰。

6脚:高触发端TH。

7脚:放电端。

该端与放电管集电极相连,用做定时器时电容的放电。

8脚:外接电源VCC,双极型时基电路VCC的范围是4.5 ~ 16V,CMOS型时555定时器的应用:(1)多谐振荡器多谐振荡器又称为无稳态触发器,它没有稳定的输出状态,只有两个暂稳态。

在电路处于某一暂稳态后,经过一段时间可以自行触发翻转到另一暂稳态。

两个暂稳态自行相互转换而输出一系列矩形波。

多谐振荡器可用作方波发生器。

输出高电平时间T=(R1+R2)Cln2输出低电平时间T=R2Cln2振荡周期T=(R1+2R2)Cln2(2)单稳态电路单稳态触发器只有一个稳态状态。

电子设计课程设计——电子秒表

电子设计课程设计——电子秒表

课程设计报告(学生版)2010 ~2011 学年第 2学期教学单位华南师范大学物电学院课程名称电子设计竞赛课程设计题目电子秒表指导教师焦新涛学生姓名陈辉明专业名称电子信息工程年级 2008级电子秒表1.设计目的利用单片机定时器/计数器中断设计秒表,从而实现秒、0.1秒的计时。

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

通过本次系统设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。

通过本次系统设计,增强自己的动手能力。

认识单片机在日常生活中的应用的广泛性,实用性。

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

模拟利用AT89C52单片机、LED数码管以及控件来控制秒表的计数以及计数的开启/暂停/继续与复位!其中有三个数码管用来显示数据,一个数码管显示分(两位),一个数码管显示秒(两位),另一个数码管显示十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。

秒的数码管计数从00~59,满59后进一后显示分的数码管加一,并且秒显示清零重新从零计数。

分的数码管计数从00开始。

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

3.设计原理3.1主要元件:1个AT89S52芯片、2个独立键盘、3个LED数码管。

3.2工作原理:(1)电子秒表的系统设计是利用单片机的定时器功能,在周期的时间内产生中断来执行既定的程序,单片机AT89S52共有3个定时器,本系统采用了定时器1的工作模式1:此工作模式中,计数寄存器由16位组成,此时TH1、TL1都作为8位计数器使用,工作原理为:TL1计数溢出向TH1进位,TH1计数溢出时置位TF1=1,并向CPU申请中断,最大的计数值为216 =65536 (2)系统采用的晶振频率为f osc =12MHz,机器周期为T cy =1us ,定时范围为1~65536us。

电子秒表

电子秒表

电子秒表概述此电子秒表,是在TND-MD教学系统上实现的,其计时精确度为0.01s。

所使用的芯片主要有8253定时计数器、8255A并行接口电路芯片、8259A中断控制器等。

通过系统中的开关键KK1和KK2可实现开始计时,暂停计时,继续计时,清零功能,用系统中的四片七段数码管将计得的时间以XXXX(秒百分秒,其中秒占两位,百分秒两位)的形式显示给用户。

计时准确度与现实时间相符。

一、设计要求按一下kk1开关启动,再按暂停,按kk2清零,周而复始。

最小计时单位0.01S,即可显示XXXX(秒百分之一秒)。

设计要求如下:(1)由键盘和8255作为输入部分(2)用七段数码管或液晶显示屏来显示时间(3)由8253和8259构成计时信号,通过中断完成启动计时、停止计时和动态刷新显示。

二、设计思想1、为了试验秒表的准确计时功能,此秒表精确到了0.01s,为了得到0.01s的时间脉冲,使用8253芯片来产生,又由于可以系统自动产生1.1932MHZ的时钟频率,因此可以通过设定计数初值为2E9c,并设定8253工作在方式3来获得所需的周期为10ms的时间脉冲软件操作:首先向8253的控制端口43H输入控制字B6H来设置计数器2计时,工作在方式3,循环计数,产生10ms的时间脉冲,然后再像计数器2端口42H输入计数初值2e9cH,先写入低八位数据,再写入高八位数据硬件操作:唐都仪器8253芯片的CLK接bus总线上的OPCLK系统时钟信号,频率为1.1932MHZ,GATE门信号接+5v电源,out引脚接8259芯片的IRQ72、为了驱动数码管,需使用8255芯片,通过设定控制字,用其PB端口来驱动段,PA 端口来驱动位,软件操作:向8255的控制端口63H输入控制字81H,使其三个端口都工作在方式0,PA(60H)端口的低四位用来驱动数码的位,PB端口(61H)用来驱动数码管的段,然后用E命令重新开辟一块内存区域,用来存放数码管0-9的字模3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH硬件操作:唐都仪器上的8255芯片的PA0~PA3引脚接数码管的X4~X1引脚,PB0~PB7引脚接数码管的0~DP引脚3、为了能够实现系统的中断调用,需使用8259芯片的IRQ2,IRQ6,IRQ7引脚,其中断向量分别为:0AH,0EH,0FH把三个中断服务程序的的入口地址分别填入这三个中断向量所指向的内存地址,IRQ2接KK1控制秒表的启动和暂停,IRQ6接KK2控制秒表的复位软件操作:IRQ2的中断向量乘以四得:0028H,然后向这个地址填入IRQ2服务程序的入口地址(mov [0028],IRQ2),然后向002a地址填入中断向量表的段地址:0000H,IRQ6的中断的首地址为:0038H,填入中断服务程序入口地址mov [0038],IRQ6,填入段地址mov [003a],0000H,IRQ7中断的首地址:003cH,填入中断服务程序入口地址:mov [003c],IRQ7,t 填入段地址:mov [003e],0000H..三、设计所用芯片及工作原理1、8255芯片工作原理接口电路在CPU和I/O设备之间起着信号的变换和传输的作用。

电子秒表实验报告

电子秒表实验报告

电子秒表实验报告电子秒表实验报告引言:电子秒表是一种常见的计时工具,广泛应用于实验室、体育比赛和日常生活中。

本实验旨在通过对电子秒表的使用和测量,深入了解其工作原理和准确性。

实验目的:1. 理解电子秒表的工作原理;2. 掌握正确使用电子秒表的方法;3. 比较电子秒表与传统秒表的准确性。

实验材料和方法:1. 实验材料:电子秒表、传统秒表、计时器、待测物体;2. 实验方法:a. 将电子秒表和传统秒表校准至同一起点;b. 使用电子秒表和传统秒表分别计时待测物体的时间;c. 重复多次实验,记录数据并计算平均值;d. 比较电子秒表和传统秒表的准确性。

实验结果与讨论:通过多次实验,我们得到了以下数据:实验次数 | 电子秒表计时(s) | 传统秒表计时(s)---------------------------------------1 | 10.23 | 10.202 | 10.21 | 10.183 | 10.25 | 10.224 | 10.24 | 10.195 | 10.22 | 10.21通过计算平均值,我们可以得到电子秒表的平均计时为10.23秒,传统秒表的平均计时为10.20秒。

可以看出,两者的计时结果非常接近,差距在0.03秒以内。

这个结果表明,电子秒表在准确性方面与传统秒表相当。

其准确性主要依赖于内部的计时装置,通常采用晶体振荡器,其频率非常稳定。

而传统秒表则依赖于人工操作,容易受到人为因素的影响,如反应时间和手动操作的误差。

此外,电子秒表还具有其他优点。

首先,它可以提供更精确的计时结果,小数点后几位的精度可以满足实验的要求。

其次,电子秒表通常具有计时、计数、暂停和复位等功能,更加灵活方便。

最后,电子秒表还可以记录多次计时结果,并进行平均值计算,提高数据的可靠性。

然而,电子秒表也存在一些局限性。

首先,它依赖于电池供电,一旦电池耗尽,计时功能将无法使用。

其次,对于某些特殊实验,如高温、高压环境下的计时,电子秒表可能无法正常工作。

简易秒表电子任务书

简易秒表电子任务书

《单片机应用技术》项目任务书
一、项目名称:简易秒表的设计与制作
二、项目实训目的
知识目标:
1.掌握单片机与LED数码管的接口设计;
2.掌握定时/计数器的应用;
3.掌握中断技术的应用;
4.熟悉单片机与键盘的接口技术;
技能目标:
1.熟练使用仿真软件;
2.掌握电子产品设计与制作的一般工作流程。

能够完成简单电子产品设
计、焊接、调试、故障排除到整机装配与调试整个过程;
3.能熟练使用常用设备与仪器,如万用表、电烙铁等;
4.掌握单片机电路设计与制作方法和技巧,能独立分析和解决一般性质
的问题;
三、项目要求
基本要求
设计并制作具有如下功能的简易秒表:
1.通过单片机控制2位数码管实现00~59的简易秒表;
2.利用3个独立式按键实现秒表启动、停止和复位功能;
3.数码管的显示可以采用静态显示设计也可以采用动态显示设计;
拓展要求
设计并制作具有如下功能的数字钟:
1.自动计时,由6位LED数码管显示时、分、秒;
2.具备校准功能,可以设置当前时间;
3.具备定时启闹功能,可以设置启闹时间,启闹10s后自动关闭闹铃;
四、项目进程安排
五、实训报告
根据项目内容与要求认真撰写实训报告。

六、参考文献与资料
1.教材P156~159,P243~260.
2.本项目相关知识点视频与仿真资源。

电子技术课程设计:电子秒表

电子技术课程设计:电子秒表

湖南文理学院课程设计报告课程名称:《电子设计制作与工艺实习》课题名称:电子秒表系部:电气与信息工程学院专业班级:自动化10级10102班学生姓名:* *指导教师:* * *完成时间:2012年6月29日报告成绩:摘要摘要就是一段话,内容要反映六个方面:(1)课题目的;(2)技术手段;(3)硬件结构;(4)软件模块;(5)分析手段及实验与仿真结果;(6)结果与创新点。

整体上字数控制在300~500字以内,不能低于300字。

关键词:×××;×××;×××;×××;×××关键词的提炼来自四个方面:(1)课题中心词;(2)技术核心词;(3)技术手段名称;(4)设计工具术语。

严禁以器件型号作为关键词,关键词的数量控制在4~8个以内,小4号宋体,词与词之间分号隔开,最后一个关键词无标点符号。

Abstract(摘要翻译符合科技英文规范,多采用被动语态翻译,严禁是摘要的直译。

)Keywords:×××,×××,×××,×××,×××(关键词务必是专业单词与词组,可以是缩写方式,但许多期刊不允许缩写。

关键词之间用逗号隔开,最后一个关键词无标点符号)目录摘要 (II)Abstract (III)第一章电子秒表方案设计 (1)1.1绪论 (1)1.2 电子秒表功能或性能 (2)1.3 电子秒表设计方案 (2)第二章电子秒表电路设计 (4)2.1 秒分计时电路 (4)2.2 小时计时电路 (4)2.3 开关电路 (4)2.4 清零电路 (4)2.5 整体电路 (4)第三章电子秒表仿真与实验 (5)4.1秒分计时电路实验 (5)4.2 小时计时电路实验 (5)4.3 开关电路及清零电路实验 (6)总结 (8)参考文献 (9)致谢 (10)附录1 电子秒表电路图 (11)附录2 电子秒表明细表 (12)第一章电子秒表方案设计1.1 绪论目前数字电子技术已经广泛地应用于计算机,自动控制,电子测量仪表,电视,雷达,通信等各个领域。

数字式秒表资料

数字式秒表资料

数字式秒表资料电⼦技术综合课程设计课程:电⼦技术综合课程设计题⽬:数字式秒表所属院(系) 物电学院专业班级电⼦101姓名XXX 学号:XXXXX指导⽼师XXXXX完成地点5XXX2012年 09 ⽉ 26⽇任务书数字式秒表⼀任务和要求:设计并制作⼀个数字式秒表,要求如下:1、⽤三位数码管及⼀个LED发光⼆极管显⽰秒表计时,格式如下:开机时数码管显⽰000,LED灯灭;当计时超过59秒时,LED灯亮;计到1分59秒时,过⼀秒,LED灯灭,同时数码管重新计时显⽰。

计时最⼩单位为0.1秒。

2、具有如下功能键:开始/清零键:按第⼀下时计时开始,同时显⽰;按第⼆下,停⽌计时,恢复到初始状态;固定显⽰键:按第⼀下时,显⽰固定,但计时仍继续;再按下时,显⽰从新时间开始。

3、要求⾃制0.1秒信号源。

4、设计并制作本电路所⽤直流电源。

⼀、提⽰和参考⽂献直流稳压电源见参考资料P23《数字电⼦技术实验任务书》实验六陕西理⼯学院⽬录前⾔ (1)⼀.⽅案论证 (2)1.1⽅案1 (2)1.2⽅案2 (2)⽅案1、2的⽐较: (3)⼆、单元电路设计原理 (4)2.1 五伏电压源设计 (4)2.2 0.1s信号源设计: (5)2.3 显⽰电路: (6)2.4 计数电路 (8)2.5控制电路 (9)三、仿真调试及问题分析 (10)3.1仿真软件简介 (10)3.3信号发⽣器的仿真与问题分析 (12)3.4 计数显⽰部分的仿真与问题分析 (12)3.5 控制电路、译码、显⽰全图的仿真与问题分析 (13)四装调步骤和故障问题与调试改进 (14)五.⼩结 (14)六.参考⽂献 (15)附录1.元器件功能与管脚 (16)附录2.元器件清单 (20)附录3.总体电路图 (21)前⾔电⼦技术综合课程设计是针对模拟电⼦技术、数字逻辑电路及电路分析课程的要求,对学⽣进⾏综合性实践训练的实践学习环节,它包括选择课程、电⼦电路设计、制作、调试和编写总结报告等实践内容。

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

单片机项目作业项目题目:电子秒表指导教师:姬红旭班级:计科123班学生姓名:马超学号: 2012090137一、电子秒表的功能介绍电子秒表是一种较先进的电子计时器,目前国产的电子秒表一般都是利用石英振荡器的振荡频率作为时间基准,采用6位液晶数字显示时间。

电子秒表的使用功能比机械秒表要多,它不仅能显示分、秒,还能显示时、日、月及星期,并且有1/l00s的功能。

一般的电子秒表连续累计时间为59min 59.99s,可读到1/l00s,平均日差±0.5s。

电子秒表配有三个按钮,如图所示。

图中为秒表按钮,为功能变换按钮,为调整按钮,基本显示的计时状态为“时”、“分”、“秒”。

电子秒表是重要的记时工具,广泛运用于各行各业中。

它可广泛应用于对运动物体的速度、加速度的测量实验,还可用来验证牛顿第二定律、机械能守恒等物理实验,同时也适用于对时间测量精度要求较高的场合.测定短时间间隔的仪表。

作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点,不仅可以提高精确度,而且可以大大减轻操作人员的负担,降低错误率。

二、电子秒表的硬件电路设计(一)方案设计数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。

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

本系统采用C51系列单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。

其中软件系统采用汇编语言编写程序,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。

本设计利用STC89C51单片机的定时器/计数器定时和计数的原理,使其能精确计时。

利用中断系统使其能实现开始暂停的功能。

根据要求知道秒表设计主要实现的功能是计时和显示。

因此设置了两个按键和LCD 显示时间,两个按键分别是开始、停止和复位按键。

利用这两个建来实现秒表的全部功能,而LCD 则能显示最多4.59.99秒的计时。

电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。

硬件电路图按照图1.1进行设计。

图1.1 数字秒表硬件电路基本原理图(二)硬件设计本系统中,硬件电路主要有电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等。

1.单片机简介本系统设计采用C51系列单片机。

ST89C51是一种带4K 字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。

该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容(由于在微机原理中学过C-51的具体知识,这里不再详细说明)。

由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,ST89C51是一种高效的微控制器。

2.电源电路电源电路是系统最基本的部分,任何电路都离不开电源部分,由于三端集成稳压器件所组成的稳压电源线路简单,性能稳定,工作可靠,调整方便,已逐渐取代分立元件,在生产中被广泛采用,由于是小系统,我们采用7809电源提供+5V 稳压电压。

3.晶体振荡电路MCS--51单片机内部的振荡电路是一个高增益反相放大器,引线 XTAL1和AT89C51单片机控制器复位电路开关电路LCD 显示XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。

这里,我们选用51单片机12MHZ 的内部振荡方式,电路如下:电容器C1,C2起稳定振荡频率,快速起振的作用,C1和C2可在20-100PF 之间取,这里取30P ,接线时要使晶体振荡器X1尽可能接近单片机。

XTAL218XTAL1199U1X1CRYSTALC122PFC222PF C3图2 晶体振荡电路4.复位电路采用上电+按键复位电路,上电后,由于电容充电,使RST 持续一段高电平时间。

当单片机已在运行之中时,按下复位键也能使用使RST 持续一段时间的高电平,从而实现上电加开关复位的操作。

这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。

当程序出现错误时,可以随时使电路复位。

电路图如下:图3 复位电路5.显示电路显示电路既可以选用液晶显示器,也可以选用数码管显示。

我们采用的是数码管显示电路。

用2个共阳极LED 显示,LED 是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。

在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O 口。

在设计中,我们采用LED 动态显示,用P0口驱动显示。

由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。

电路图如下所示:图4 显示电路6.键盘电路在按键电路中,我们可以在I/O 口上直接接按键,或者通过I/O 口设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。

键盘扫描电路节省I/O 口,但编程有些复杂,在这里,由于我们所用的按键较少,且系统是一个小系统,有足够的I/O 口可以使用,为了使程序简化,我们采用按键电路,用部分P3口做开关,P3.3为开始停止,P3.4为清零,用外部中断INT1开始,另外用软件法消除抖动。

电路图如下所示:54P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T 01416P3.5/T 115P2.7/A1528P2.6/A14图5 键盘电路硬件主电路图设计用pretues 画出其硬件主电路图如下:665544XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC122PFC222PF C31nFR1100D 714D 613D 512D 411D 310D 29D 18D 07E 6R W 5R S 4V S S 1V D D 2V E E3LCD1LM016L234567891RP110K三、电子秒表的软件程序设计1、软件设计概述在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。

把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。

应用系统的程序由包含多个模块的主程序和各种子程序组成。

各程序模块都要完成一个明确的任务,实现某个具体的功能,在具体需要时调用相应的模块即可。

功能描述:用LCD1602液晶显示"秒表",显示时间为0.00.00—4.59.99秒,每秒自动加1;一个"开始""暂停"键,一个"清零"键。

2、主程序流程图这里采用顺序结构,通过对按键的扫描,判断要实现什么功能。

如下所示:(程序); 定义计时单元地址MIN EQU 31H ;存放分钟变量 SEC EQU 32H ;存放秒钟变量DEDA EQU 33H ;存放10ms 计数值 ; 按键端口状况值K1_N EQU 34H ;存放按键当前端口状况值 K1_P EQU 35H ;存放按键上次端口状况值 K1_C EQU 37H ;存放按键计数单元 X EQU 36H ;LCD 地址变量 ; 按键引脚定义K1 EQU P3.3 ;按键1引脚定义 K2 EQU P3.4 ;按键2引脚定义 ;LCD 引脚定义RS EQU P3.5 ;LCD RS 引脚定义 RW EQU P3.6 ;LCD RW 引脚定义赋初始值开始LCD1602显示复位键P3.3是否按下查看键P3.3是否二次按下调用最终缓存区数据进行显示否是是否否是查看键P3.4是否按下LCD 清零E EQU P3.7 ;LCD RS引脚定义ORG 0000H ;程序由地址0开始执行JMP MAINORG 0BH ;定时器0中断地址设置JMP T0_INT;―――――――――――――主程序――――――――――――――MAIN: ;开始MOV SP,#60H ;堆栈指针指向60HCLR E ;E=0,禁止读/写LCDACALL SET_LCD ;调LCD控制子程序ACALL INIT ;初始化变量MOV K1_P,#01H ;按键上次端口设置1ACALL INIT_TIMER ;调用初始化定时器ACALL MEU ;调用工作菜单子程序LOOP:ACALL CONV ;时间计数处理ACALL LOOP1 ;调用清零键子程序ACALL KEY ;判断是否有键按下JZ LOOP ;无键按下转LOOPMOV K1_P,K1_N ;交换数据ACALL KEY0 ;调用按键功能子程序JMP LOOP ;跳LOOP处循环; 初始变量清零子程序INIT: ;初始变量清零CLR A ;A清为零MOV K1_C,A ;K1_C 初始为0MOV DEDA,A ;百分秒DEDA初始为0MOV SEC,A ;秒SEC初始为0MOV MIN,A ;分MIN初始为0MOV K1_N,A ;K1_N初始为0MOV K1_P,A ;K1_P初始为0CLR TR0 ;启动中断RET;―――――――――――――――――――――;定时器初始化设置子程序INIT_TIMER: ;定时器初始化MOV TMOD,#00000001B ;定时器0模式1MOV IE, #10000010B ;开通中断MOV TL0,#LOW(65536-10000);定时初值装入低位MOV TH0,#HIGH(65536-10000);定时初值装入高位RET;中断服务程序T0_INT: ;定时器T0中断程序PUSH ACC ;入栈保护MOV TL0,#LOW(65536-10000) ;重加载MOV TH0,#HIGH(65536-10000)INC DEDAMOV A,DEDA ;10ms 计数值加1CJNE A,#100,TTMOV DEDA,#0INC SEC ;秒加1MOV A,SECCJNE A,#60,TTINC MIN ;分加1MOV SEC,#0MOV A,MINCJNE A,#05,TTMOV DEDA,#0 ;百、分、秒单元清0MOV SEC,#0MOV MIN,#0TT: POP ACC ;出栈RETI ;中断程序返回;―――――――――――――――――――――;判断键是否按下子程序LOOP1:JB K2,LOOP2 ;判清零键是否按下JMP MAIN ;跳转主程序处LOOP2: RET; 判断K1键是否按下KEY:CLR A ;A清零MOV K1_N,A ;A值送入K1_NMOV C,K1 ;K1值送入CRLC A ;同进位标志左移一位ORL K1_N,A ;两个位作逻辑OR运算MOV A,K1_N ;K1_N值送入AXRL A,K1_P ;有键按下,A 中内容不为零RET;功能键子程序;K1键第一次按功能子程序KEY0:MOV A, K1_P ;K1_P值送入AJB ACC.0,KEY3 ;A的0位是1,转KEY3INC K1_C ;K1_C加1MOV A, K1_C ;K1_C值送入ACJNE A,#01H,KEY1 ;K1键是否第一次按?MOV DPTR,#MENU1 ;是,存入MENU1信息MOV A,#1 ;设置第一行显示CALL LCD_PRINT ;调用显示字符子程序SETB TR0 ;启动中断RET;K1键第二次按功能子程序KEY1:MOV A,K1_C ;K1_C值送入ACJNE A,#02H,KEY2 ;K1键是否第二次按?MOV DPTR,#MENU2 ;是,存入MENU2信息MOV A,#1 ;设置第一行显示CALL LCD_PRINT ;调用显示字符子程序CLR TR0 ;停止中断RET ;;K1键第三次按功能子程序KEY2:MOV A, K1_C ;K1_C值送入ACJNE A, #03H,KEY3 ;K1键是否第三次按?MOV DPTR,#MENU3 ;是,存入MENU3信息MOV A, #1 ;设置第一行显示CALL LCD_PRINT ;调用显示字符子程序SETB TR0 ;启动中断RET;K1键第四按功能子程序KEY3:MOV A,K1_C ;K1_C值送入ACJNE A,#04H,KEY4 ;K1键是否第四次按?MOV DPTR,#MENU4 ;是,存入MENU4信息MOV A,#1 ;设置第一行显示CALL LCD_PRINT ;调用显示字符子程序CLR TR0 ;启动中断KEY4:RET ;子程序返回;―――――――――――――LCD显示――――――――――――――; LCD控制子程序SET_LCD: ;CLR EACALL INIT_LCD ;初始化LCDMOV R5,#10ACALL DELAYMOV DPTR,#LMESS1 ;指针指到显示消息1MOV A,#1 ;显示在第一行ACALL LCD_PRINT ;调用显示字符子程序MOV DPTR,#LMESS2 ;指针指到显示消息2MOV A,#2 ;显示在第二行ACALL LCD_PRINT ;调用显示字符子程序RETLMESS1: DB " ",0 ;LCD 第一行显示消息LMESS2: DB "TIME ",0 ;LCD 第二行显示消息;LCD初始化子程序INIT_LCD:MOV A,#38H ;设置8位、2行、5x7点阵ACALL WR_COMM ; 调用写指令子程序ACALL DELAY1 ;调用延时子程序MOV A,#0CH ;开显示,光标不闪烁ACALL WR_COMM ;调用写指令子程序;ACALL DELAY1 ;调用延时子程序MOV A,#01H ;清除LCD 显示屏ACALL WR_COMM ;调用写指令子程序;ACALL DELAY1 ;调用延时子程序RET;写指令子程序WR_COMM:MOV P1,ACLR RS ;RS=0,选择指令寄存器CLR RW ;RW=0,选择写模式SETB E ;E=1,允许读/写LCMACALL DELAY1 ;调用延时子程序CLR E ;E=0,禁止读/写LCMRET;写数据子程序WR_DA TA:MOV P1,ASETB RS ;RS=1,选择数据寄存器CLR RW ;RW=0,选择写模式SETB E ;E=1,允许读/写LCDACALL DE ;调用延时子程序CLR E ;E=0,禁止读/写LCDACALL DE ;调用延时子程序RET;清除该行LCD 的字符CLR_LINE: MOV R0,#24CL1: MOV A,#' 'ACALL WR_DATADJNZ R0,CL1RET;LCD 存入工作菜单MEU:MOV DPTR,#MENU0 ;存入工作菜单MOV A,#1 ;第一行CALL LCD_PRINTRET; 工作菜单MENU0: DB " SECOND-CLOCK 0 ",0MENU1: DB " BEGIN COUNT 1 ",0MENU2: DB " PAUST COUNT 2 ",0MENU3: DB " BEGIN COUNT 3 ",0MENU4: DB " PAUST COUNT 4 ",0;菜单显示子程序;一行、二行显示字符LCD_PRINT:CJNE A,#1,LINE2 ;判断是否为第一行LINE1:ACALL CLR_LINE ;清除该行字符数据MOV A, #80H ;设置LCD 的第一行地址ACALL WR_COMM ;写入命令JMP FILLLINE2:ACALL CLR_LINE ;清除该行字符数据MOV A,#0C0H ;设置LCD 的第二行地址ACALL WR_COMMFILL: CLR A ;填入字符MOVC A,@A+DPTR ;由消息区取出字符CJNE A,#0,LC1 ;判断是否为结束码RET;写入数据LC1: ACALL WR_DATAINC DPTR ;指针加1JMP FILL ;继续填入字符RET;转换数据子程CONV: ;转换为ASCII 码并显示MOV X,#5 ;设置位置ACALL SKOW_LINE2 ;显示数据INC X ;MOV A,#':' ;MOV B,X ;ACALL LCDP2 ;MOV A,MIN ;加载分钟数据INC X ;设置位置ACALL SKOW_LINE2 ;显示数据INC X ;MOV A,#':' ;MOV B,X ;ACALL LCDP2 ;MOV A,SEC ;加载秒数数据INC X ;设置位置ACALL SKOW_LINE2 ;显示数据INC X ;MOV A,#':' ;MOV B,X ;CALL LCDP2 ;MOV A,DEDA ;加载秒数数据INC X ;设置位置ACALL SKOW_LINE2 ;显示数据RET ;;在LCD 的第二行显示数字SKOW_LINE2:MOV B,#10 ;设置被除数DIV AB ;结果A存商数,B存余数ADD A,#30H ;A为十位数,转换为字符PUSH B ;B放入堆栈暂存MOV B,X ;设置LCD 显示的位置ACALL LCDP2 ;由LCD 显示出来POP B ;出栈MOV A,B ;B为个位数ADD A,#30H ;转换为字符INC X ;LCD 显示位置加1MOV B,X ;设置LCD 显示的位置ACALL LCDP2 ;由LCD 显示出来RET;在LCD的第二行显示字符LCDP2:PUSH ACC ;MOV A,B ;设置显示地址ADD A,#0C0H ;设置LCD的第二行地址CALL WR_COMM ;写入命令POP ACC ;由堆栈取出ACALL WR_DATA ;写入数据RET;延时10MSDELAY:MOV R6,#50D1:MOV R7,#100DJNZ R7,$DJNZ R6,D1DJNZ R5,DELAYRET ;延时5MS 子程序DELAY1: MOV R6,#25 DEY: MOV R7,#100 DJNZ R7,$ DJNZ R6,DEYRET ;延时500微秒DE: DJNZ R7,$RET END ;程序结束665544XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC122PFC222PF C31nFR1100D 714D 613D 512D 411D 310D 29D 18D 07E 6R W 5R S 4V S S 1V D D 2V E E3LCD1LM016L234567891RP110K四、心得体会先在网上查阅了一些有关电子秒表设计的材料,熟悉了设计思想与工作原理,并且具体的分析了单片机、数码管显示器的工作过程,从理论上分析了该工作过程。

相关文档
最新文档