数字定时器设计修订稿

合集下载

数字逻辑课程设计定时器

数字逻辑课程设计定时器

一.内容摘要:定时器的设计:设计一个0~60分钟之内的定时器,定时开始的时候红指示灯亮,结束的时候绿指示亮,可以随意以分钟为单位,在六十分钟的范围内设定定时时间,随着定时的开始,显示器开始显示时间,即依次显示出0,1,2,3,4….直到定时结束,当定时结束的时候进行手动清零。

首先设计一个秒脉冲发生器,一个计数电路,一个比较电路,然后对电路进行输出。

当开始定时之前手动对要定时的时间进行预置数,然后运用秒脉冲发生器输入脉冲,用计数器对脉冲的个数进行计数,把编码器的数据与脉冲的个数通过数值比较器进行比较,最后按照要求进行红绿等输出表示定时的状态是正在进行定时,或者是已经定时结束,在定时的过程中显示定时的时间。

二.方案的论证与选择:方案1例如设计一个六十分钟的定时器,就需要六十进制的分钟计数器。

设计秒脉冲发生器,当计数器完成六十分钟的记数时,就手动清零。

需要设定其他的时间时,只需将计数器的进制改变一下就行。

这个方案只适用于特定的定时器,设定的时间不变。

如果本课设用此方案,就需要设计从1——60进制的计数器,工程量太大。

方案2,设计一个定时器,可以在0~60分之间一分钟为单位任意可调,定时开始的时候红灯亮,定时结束的时候绿灯亮,定时结束之后手动清零,满足设计的要求,故本次课程设计中采用的是这种设计方案。

三.总设计思想框图:总体的完整电路图:就是将各个单元电路用导线连接起来,然后进行仿真处理,开始进行定时的时候红指示灯亮。

图中所示的是定时为16分钟的定时仿真结果,完整的电路图。

2.5 V图2四.单元电路的设计与参数的计算1.秒脉冲发生器的选择:(1)采用石英晶体的多谐振荡器,在RC环形振荡器电路中,接入RC可以获得较小的频率,而且通过RC的调节可以调节频率,用于对频率稳定性要求比较高的电路,但是它抗干扰的能力比较差,小的干扰就会使周期发生很大的变化,而且电路比较复杂,不太容易掌握,所以本实验不采取运用石英晶体的多谐振荡器来产生秒脉冲,下面是石英晶体产生的电路图,电路图的组成比较复杂。

数字式定时开关设计

数字式定时开关设计

课程设计说明书课程设计名称:数字电路课程设计课程设计题目:数字式定时开关的设计学院名称:信息工程学院专业:通信工程班级: 090423学号: 09042306 姓名:高易通评分:教师:张小林20 11 年 9 月 20 日数字电路课程设计任务书20 11 -20 12 学年第 1学期第 2 周- 3 周题目数字式定时开关内容及要求〖基本要求〗设计并制作一数字式定时开关,此开关采用BCD拨盘预置开关时间,其最大定时时间为9秒,计数时采用倒计时的方式并通过一位LED数码管显示。

此开关预置时间以后通过另一按钮控制并进行倒计时,当时间显示为0时,开关发出开关信号,输出端呈现高电平,开关处于开态,再按按钮时,倒计时又开始。

计时时间到驱动扬声器报警。

〖提高要求〗 l)输出部分加远距离(100m)继电器进行控制2)延长定时时间 3)探讨提高定时精度的方法进度安排1.仿真、画PCB线路板图、领元器件:2天;2. 制作、焊接:1天3.调试:2天4. 验收:0.5天5. 提交报告:2010-2011学年第一学期3~7周学生姓名:高易通沈文杰指导时间:第2~3周指导地点:E 楼 508 室任务下达20 11年 9 月 4 日任务完成20 11年 9 月 16 日考核方式 1.评阅□√ 2.答辩□√ 3.实际操作□√ 4.其它□指导教师张小林系(部)主任付崇芳注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。

2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。

摘要本次数字电路课程设计是一个数字式定时开关,数字式定时开关是由控制电路、脉冲发生电路、计数器、译码显示电路及报警电路五部分组成。

此开关采用BCD拨盘预置开关时间,其最大定时时间9秒,计时是采用倒计时的方式通过一位LED数码管译码显示,通过拨码开关预置一个时间,再通过计数器倒计时方式进行计数,当达到某一个时间时,发出一个信号,进而来控制电器的工作,我们设计的就是当倒计时为0时,一直处于0状态,并且开关发出开关信号,输出端呈现高电平,开关处于开泰,再按按钮,到计时开始。

多功能数字计时器设计报告

多功能数字计时器设计报告

多功能数字计时器设计报告多功能数字计时器设计报告电工电子综合实验报告题目:多功能数字计时器设计目录1.实验内容简介2.电路设计要求3.电路原理简介4. 单元电路设计4.1 秒信号发生电路4.2 计时电路4.3 开机清零电路4.4 校分电路4.5 报时电路5.总电路图6.附加电路--起停电路7.实验感想8.附录8.1 元件清单8.2 芯片引脚图和功能表9.参考文献1.实验内容简介本设计采用中小规模集成电路,要求设计一个数字计时器,能够完成0分00秒到9分59秒得计时功能,并在控制电路的作用下具有开机清零,快速校分,整点报时功能。

2.实验内容1.设计一个脉冲发生电路,为计时器提供秒脉冲、为报时电路提供驱动蜂鸣器的脉冲信号。

2.设计一个计时电路,完成0分00秒~9分59秒的计时功能。

3.设计报时电路,使数字计时器从9分53秒开始报时,每隔一秒发一声,共发三声低音,一声高音;即9分53秒、9分55秒、9分57秒发低音(频率1kHz),9分59秒发高音(频率2kHz)4.设计校分电路,在任何时候,拨动校分开关,可进行快速校分。

5.设计清零电路,具有开机自动清零功能,而且在任何时候,按动清零开关,能够进行计时器清零。

6.系统级联调试,将以上电路进行级联完成计时器的所有功能。

7.可增加数字计时器附加功能,例如数字计时器定时功能、电路起停功能、电路采用动态显示等。

3.电路原理简介数字计时器由计时电路、译码显示电路、脉冲发生电路、校分电路、清零电路和报时电路这几部分组成。

其原理框图如下:4.单元电路设计一.秒信号发生器秒信号发生器提供计时电路的时钟并为报时电路提供驱动信号。

为提供较为精确的秒脉冲信号,采用32768Hz的石英晶体多谐振荡器作为脉冲信号源。

分频器CD4060最高可实现214分频,即最低频率端Q14的脉冲信号频率为2Hz,因此增加一个D触发器实现的倍频器来产生1Hz的秒脉冲信号。

将D触发器的Q端与D端扭接在一起实现倍频器,则Q端的输出信号即为1Hz的秒脉冲信号。

数字定时器的设计

数字定时器的设计

数字定时器的设计与制作目录摘要 (II)关键词 (II)0 引言 (II)1 基本知识 (II)1.1 单片机的基本结构 (II)1.1.1 CPU系统 (III)1.1.2 CPU外围电路 (IV)1.1.3 基本功能单元 (IV)1.2 LED显示的基本原理 (IV)1.2.1 简介 (IV)1.2.2 LED显示方式 (V)1.3 键盘输入基本原理 (VI)1.3.1 简介 (VI)1.3.2 按键抖动 (VI)1.3.3 按键结构 (VI)1.4 单片机定时器工作原理与中断简介 (VI)1.4.1 定时器工作原理 (VI)1.4.2 中断简介 (VII)1.5 指令系统与汇编编程 (VIII)1.6 一些软件的扼要介绍 (VIII)2系统硬件工作原理 (VIII)2.1 系统实际电路图及分析 (VIII)2.2 从原理图到PCB图再到成品 (X)3 系统软件工作原理 (X)3.1 软件设计概况 (X)3.2 设计思路 (X)3.2.1 整体思路 (X)3.2.2 电子钟模式设计思路 (XI)3.2.3 定时器模式设计思路 (XI)3.2.4 主要难点分析 (XI)3.3 本程序实现的功能 (XI)4 实验结果 (XI)5 结语 (XII)参考文献 (XII)致谢 (XII)附录一程序流程图 (XIII)附录二PCB板图 ·····································································································X VI 附录三源程序········································································································X VII商丘师范学院学士学位毕业设计数字定时器的设计与制作摘要设计了一款基于单片机的定时器。

数字电路课程设计-数字式定时开关设计

数字电路课程设计-数字式定时开关设计

数字电路课程设计-数字式定时开关设计本设计旨在设计一个数字式定时开关,即可设置时间后自动控制开关的开/关状态。

该设计采用120V AC电源。

整个系统的核心是AT89C51微控制器。

在控制电路中,用户可以设置开关的启动时间和关闭时间。

在此设计中,我们使用了倒计时计数器,可以使开关在设定时间到达时自动关闭或打开。

以下是数字电路课程设计-数字式定时开关设计的详细说明:材料清单:1. AT89C51微控制器2. 16位数码管显示模块3. 蜂鸣器4. LED灯5. 继电器6. 按钮开关7. 电源电线8. 杜邦线9. 电阻和电容电路设计:图-1:数字式定时开关电路图如上图所示,整个电路由AT89C51微控制器,计数器,16位数码管,继电器,蜂鸣器,LED灯和按钮开关组成。

整个电路的供电电压为120V AC。

MCU输入为120V交流电源电压,为保证MCU安全,采用了稳流二极管电路降压至5V,在MCU和计数器外部电路中采用了电阻器和电容器滤波处理。

在该电路中,16位数码管用于显示倒数计时器的时间。

数码管显示模块使用计时寄存器来设置显示时间和更改时间。

倒计时计数器由74LS192芯片实现。

继电器用于控制电源的开关。

按键用于启动和停止计数器以触发继电器开关的动作。

操作:1. 设置时间:按下时间设置按钮,数码管显示时间设置,你可以更改时间,包括小时和分钟,用按键切换需要更改的位。

设置完成后,按时间设置按钮再次退出时间设置模式。

2. 开始计时:按下开始/停止按钮,计时器开始倒计时,同时继电器也开始工作。

3. 关闭计时器:当计时器到达指定时间后,它将停止计数并触发继电器打开/关闭开关。

此时,LED灯将发出信号。

总结:数字式定时开关是一种非常实用的电路设计,它可以自动打开/关闭设备,而无需实时操作。

此设计通过采用AT89C51微控制器和倒计时计数器等组件,实现了大量自动控制电路的功能。

设计过程中,需要注意安全问题,保证电路稳定运行,同时合理设计各个模块,并进行联合测试验收。

三位数字显示计时定时器设计

三位数字显示计时定时器设计

课程设计报告课程设计名称:三位数字显示计时定时器设计专业班级: 0212112****:**学号: ********* 同组人员:****:***课程设计时间: 2周目录1 设计任务、要求以及文献综述 (1)2 原理叙述和设计方案 (1)2.1 设计方案选择和论证 (1)2.2 电路的功能框图及其说明 (1)2.3 功能块及单元电路的设计、计算与说明 (2)2.4 总体电路原理图 (4)3 电路的仿真与调试 (4)3.1 电路仿真 (4)3.2 调试中出现的问题及解决方法 (5)4 制作与调试 (6)4.1元件清单、实物照片 (6)4.2制作与调试过程中遇到的问题及解决办法 (7)5心得体会 (8)6 参考文献 (8)附录 (8)三位数字显示计时定时器设计1 设计任务、要求以及文献综述3位数字显示计时定时器是一个典型的利用数字系统的例子。

所谓数字系统,是指由若干数字电路及逻辑部件组成并且能够进行采集、加工、处理及传送数字信号的设备。

一个完整的数字系统通常由输入电路、输出电路、控制电路、若干个子系统和时基电路等部分组成。

设计要求如下:1、计时功能。

能任意启停,保持计时结果;2、开机自动复位;3、最大计时显示为9分59秒;4、定时报警。

2 原理叙述和设计方案2.1 设计方案选择和论证方案一:设计的3位数字显示计时定时器则分别有4个子系统组成:秒脉冲时间标准产生电路、计数器、译码器和显示器、开机自动清零电路、计时启停控制电路方案二:实现一个三位数字显示的秒表系统,单片机,lcd1602显示屏,矩阵键盘等组成部分。

秒计数电路满60向分计数电路进位(显示00~59s),分计数电路满足10(显示0~9)后停止并且灯亮,等待重新复位计时。

论证:方案二比方案一好。

理由一:方案二显示的最终结果比较直观。

理由二:方案二可更改性好,方便日后的改进。

2.2 电路的功能框图及其说明根据原理正确、易于实现、且实验室有条件实现的原则确定设计方案,画出总体设计功能框图,如图2.1所示。

数字定时器的设计与实现

数字定时器的设计与实现

数字定时器的设计与实现学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。

尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。

与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。

报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。

本人签名: 日期:年月日沈阳航空航天大学课程设计任务书课程设计名称XXXX课程设计专业学生姓名班级学号题目名称起止日期年月日起至年月日止课设内容和要求:参考资料:教研室审核意见:教研室主任签字:指导教师(签名)年月日学生(签名)年月日课程设计总结:经过本次课程设计,我学会了好多东西,不仅学会了新的语言,而且学会了计算机硬件上的一些东西,我相信这对我以后的发展和认识提供了非常大的帮助,不仅可以从软件方面去分析东西,还可以从硬件方面分析东西,所以我觉得我的收获是巨大的。

这次课程设计是在已学计算机组成原理基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高,能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行了一次全面的训练。

通过对数字定时器程序的编写,使我对计算机组成原理的基本知识的使用更加熟练,同时也增加了我对计算机组成原理的一些认识,培养从资料文献、科学实验中获得知识的能力,在作业完成过程中通过和同学的交流,也增加了合作的技巧,初步培养了我的工程意识和创新能力。

通过查阅以下资料也学到了一些课本上没有的东西,很多知识从模糊概念到具体的了解,从毫无所知到具体的应用,拓宽了自己的知识面,增加了学好汇编语言的信心。

当然,也存在了许多的问题,如编写程序时没有注意程序的逻辑性,导致用ModelSim仿真时出现了内存过大,软件奔溃的问题。

数电课程设计数显定时器

数电课程设计数显定时器

数电课程设计数显定时器一、教学目标本课程旨在通过数电课程设计数显定时器的教学,使学生掌握数字电路的基本原理和设计方法,培养学生的实际操作能力和创新思维能力。

在知识目标方面,要求学生掌握数显定时器的工作原理和电路设计方法,了解数字电路的基本组成和功能。

在技能目标方面,要求学生能够独立完成数显定时器的电路设计和制作,提高学生的实际操作技能。

在情感态度价值观目标方面,通过课程的学习,使学生培养对数字电路设计和制作的兴趣,增强学生的创新意识和团队协作能力。

二、教学内容本课程的教学内容主要包括数显定时器的工作原理、电路设计方法和制作过程。

首先,介绍数显定时器的基本原理和功能,使学生了解数显定时器的工作过程。

然后,讲解数显定时器的电路设计方法,包括数字电路的基本组成、电路图的绘制和元件的选择等。

最后,通过实际操作,使学生掌握数显定时器的制作过程,培养学生的实际操作能力。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。

首先,采用讲授法,向学生讲解数显定时器的基本原理和电路设计方法。

其次,采用讨论法,引导学生进行思考和讨论,提高学生的创新思维能力。

再次,采用案例分析法,分析实际案例,使学生更好地理解和掌握数显定时器的制作过程。

最后,采用实验法,让学生亲自动手制作数显定时器,提高学生的实际操作能力。

四、教学资源为了支持本课程的教学,我们将准备一系列的教学资源。

教材方面,我们将使用《数字电路》作为主教材,辅助以相关的参考书籍和资料。

多媒体资料方面,我们将制作PPT和教学视频,以图文并茂的形式展示数显定时器的工作原理和电路设计方法。

实验设备方面,我们将准备数显定时器实验套件,供学生进行实际操作和制作。

通过这些教学资源的准备和利用,我们将为学生提供丰富的学习体验,提高学生的学习效果。

五、教学评估为了全面、客观地评估学生在数电课程设计数显定时器的学习成果,我们将采用多种评估方式相结合的方法。

首先,通过平时表现评估学生的学习态度和参与程度,包括课堂表现、小组讨论和实验操作等。

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

数字定时器设计Document number【AA80KGB-AA98YT-AAT8CB-2A6UT-A18GG】设计任务设计一个数字定时器设计要求1,定时1-99分钟,开机上电并且默认10分钟。

2,显示时间自选,不一定使用数码管。

3,定时时间可调,调试方式为两种,一是步进,二是直接输入。

4,有负载,220V/A,要求开机上电的时候,负载关闭。

5,有相关的提示信息,一旦时间设定之后,会给出时间设定的提示信息。

6,定时时间到,关闭电晕啊,切断负载电源,关闭电源。

=+12V7,系统工作电源Vin设计基本理论本设计将采用89C51单片机,89C51单片机是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

单片机自带5个中断,两个16位定时器32个I/O口,可擦除只读存储器可以反复擦除多次,功能相当强大。

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

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

89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

主体模块设计数字定时器系统的基本组成如下图所示数字定时系统电路的原理框图根据设计任务与要求,可初步将系统分为五大功能模块:主电路、按键电路、显示电路、继电器电路。

进一步细说,主电路选用AT89C51作为中央处理器,系统采用12MHZ的晶振;按键控制电路由两个个按键(启动键(start)、时间设定键 (set))组成,采用三个独立开关,按键按下产生一个脉冲信号;显示电路由二位8段共阴极数码管和一个9位100欧姆上拉排阻组成,位选,个位和十位由P0输出,段选由P1输出;继电器电路由一个继电器和一个用电器(灯泡)组成,通过电路与P3.0相连。

当P3.0输出高电平时,继电器不吸合,灯亮。

各部件具体设计1单片机最小系统的设计模块?硬件连接说明:本系统以AT89C51单片机为核心。

单片机采用内部振荡的方式。

通过200欧姆电阻与一个6位8段LED数码显示管相连。

从P0口输出LED数码管的字形码,从P2口输出LED数码管的位选码,高电平有效。

4个功能按键和P1口相连,中间通过10K的电阻与+5V电源相连,按键另一端接地,P1口低电平时表示按键被按下。

报警电路则与P3.0口相连,当P3.0口输出高电平时,蜂鸣器响。

2晶振电路设计?由于单片机内部振荡方式电路简单,时钟信号比较稳定,是独立的单片机应用系统的首选,故本设计采用内部振荡方式,采用12MHZ的晶振。

数字定时系统电路的晶振电路图如下图所示。

3定时中断?本设计电路采用定时器T0产生定时中断,由于本设计需要0.1s的基本时间,故选择其工作在定时方式1下。

这时定时器T0是一个16位的计时器,由它产生50ms的基本定时中断,两次中断后将得到0.1s的时间。

4键盘电路?键盘电路有独立式键盘和矩阵式两种。

独立式键盘占用I/O口线较多,适用于按键较少的情况。

矩阵式键盘占用的I/O口相对较少,适用于按键很多的情况。

共设置4个按键,每个按键分别完成复位、开始/暂停、设置、调整的功能。

其电路连接图如下图所示。

5报警电路报警电路将采用p3.0口驱动,当数码管显示下图所示6显示电路?对于显示电路,本设计采用6位8段共阴极LED数码管显示。

上电显示最大倒计时时间99.00.00-。

其中“-”位为系统状态标志位,当显示“-”时,表示系统处于等待状态,按下开始键后将开始计数,开始计数后此数码管将关闭显示,以达到省电的目的,当显示“E”时,表示系统正处于调时状态,此时只用两个调时键有用,按下开始键或复位键将没有用。

其显示电路图如下图所示。

系统的调试与结果测试电后LED数码管显示最大倒计时值99.00.0-,程序处于等待状态此时,主程序不断调用显示子程序以及扫描键盘按键情况,当检测到有键按下后,转到相应的程序执行。

1.开始/暂停键按下后程序开始减1计数直到0,同时状态显示管熄灭,计数值到0后报警器响。

若中途遇到开始/暂停键按下则,暂停倒计时。

2.若中途遇到复位键按下则将倒计时器的倒计时值设置为最大值,并处于等待状态。

3.复位键按下后,程序复位,系统处于等待状态,状态显示管显示“-”。

4.当设置键被按下后,程序进入调时设置状态,同时状态显示管显示等退出调时状态后,设置状态时开始/暂停键和复位键恢复功能结果分析本设计是一个采用了由内部振荡的时钟方式、程控扫描方式的独立式键盘、动态显示LED数码管和蜂鸣器式报警器组成的系统。

因此该系统使用的电子器件少、外围电路简单,定时精准,使用的I/O少,系统消耗的功耗小,剩余的I/O口多便于扩展其他功能。

但是另一方面,本系统由于使用了程控式的键盘和动态显示的LED数码管,所以对CPU的使用率相对较高。

开始在主程序的循环中没有添加调用显示子程序的语句,导致在没有按键按下的情况下LED数码管没有显示。

当在主程序循环检测按键的过程中添加了调用显示子程序的语句后就解决了这一问题。

由于键盘需要消抖延时和等待按键释放,所以相似的情况又出现了——按下按键后有一段时间LED数码管断续显示或者按下按键后不释放按键时LED数码管没有显示。

仔细分析后发现,问题出现的原因还是一样的,由于本设计的LED数码管采用了动态显示,故需要不断调用显示子程序,否则会导致LED数码管没有显示。

所以最终做了以下改进:1.按键的消抖延时选择调用两次显示子程序(每次显示子程序大约用时5ms,两次即为10ms左右)来取代原来的10ms软件延时。

2.在等待按键释放时,使用循环调用显示子程序来替代原来的循环等待。

经过上述两点的改进后,LED数码管无显示或者断续显示的问题就得到了彻底的解决。

心得体会初次看到本次的课程设计的题目时,感觉设计的难度不大,但是由于是第一次运用单片机设计,在设计过程中又遇到了种种困难,又感觉到要完成此次设计还需要花费很大的时间和精力。

但是经过不断的努力,运用科学的分析方法,最终完成了本次计算机课程设计。

经过三个星期的课设,过程曲折可谓一语难尽。

在此期间我也失落过,也曾一度热情高涨。

从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。

生活也是这样,汗水预示着结果也见证着收获。

劳动是人类生存生活永恒不变的话题。

通过这次课设,我才真正领略到“艰苦奋斗”这一词的真正含义,只有亲自动手才能体会其中的内涵。

我想说,设计确实有些辛苦,但苦中也有乐。

每当遇到困难的时候,老师和同学给了我很大的帮助,让我学到了很多东西。

在此,我对帮助过我的同学及老师深表感谢。

我感觉通过课设我和同学们之间的距离更加近了;我想说,设计确实很累,但当我们的设计出现成果时,心中也不免产生喜悦,正所谓“三百六十行,行行出状元”我认为无论干什么,只要人生活的有意义就可以。

另外,课堂上也有部分知识不太清楚,于是我又不得不边学边用,时刻巩固所学知识,通过课设把以前不了解的东西能够学习一下,更深的体会其中的含义,使我收获颇多。

整个设计我基本上还满意,由于水平有限,难免会有错误,所以还请老师批评指正。

附录:所使用的VB程序ORG0000HAJMPMAINORG000BH;T0中断程序入口地址AJMPT0ZDORG00100HMAIN:CLRTR0;主程序开始CLRP3.0;关闭蜂鸣器SETB20H.1;使显示管状态标志位有效CLR20H.0;开始/暂停标志位,使程序处于等待开始MOV40H,#00H;0.1S位查表码MOV41H,#00H;秒钟个位位查表码MOV42H,#00H;秒钟十位位查表码MOV43H,#00H;分钟个位位查表码MOV44H,#06H;分钟十位位查表码MOV45H,#00H;状态显示管查表码MOV46H,#02H;定时器定时次数SETBEA;开总中断?SETBET0;开定时器T0中断?MOVTMOD,#01H;定时器工作方式0MOVTL0,#0B0H ;定时初值,采用50MS时?MOVTH0,#3CHJPJC:LCALLXSCXMOVP1,#0FFH;判断复位键是否按下JBP1.0,JC12LCALLXDYS;调用消抖延时程序(XDYS)JBP1.0,JC12PP10:JNB?P1.0,DP10;等待按键按下AJMPMAIN;复位键按下后转到主程序(MAIN)重新开始JC12:MOVP1,#0FFH;判断设置键是否按下JBP1.2,JC11LCALLXDYSJBP1.2,JC11 PP12:JNBP1.2,DP12;调整设置键按下后转到调时子程(TSCX) ACALLTSCXJC11:MOVP1,#0FFH;判断开始/暂停键是否按下JBP1.1,JPJCLCALLXDYSJBP1.1,JPJCPP11:JNBP1.1,DP11CPL20H.0;将标志位取反JB20H.0,KSJS;开始/暂停标志为1则开始计(KSJS)CLR?TR0SETB 20H.1AJMP JPJC ;继续检测键盘按键情况(JPJC) DP10:LCALL XSCX ;等待按键按下时,调用显示程序,防止显示管没显示AJMP PP10 DP11:LCALL XSCXAJMP PP11 DP12:LCALL XSCXAJMP PP12 KSJS:CLR 20H.1 ;清除状态显示管SETB P2.5 JB P3.0,JPJC ;若蜂鸣器响,则不启动计时器SETB TR0 ;启动计时器TO (KSJS)AJMP JPJC ; 显示子程序XSCX:MOV DPTR,#TAB ;显示子程序(XSCX) MOV A,40H MOVC A,@A+DPTRMOV P2, #0FFH ;关闭显示.MOV P0, A ;输出0.1S位的显示段码.CLR P2.0 ;P2.0=0ACALL XSYSMOV DPTR,#TAB1 ;MOV A,41HMOVC A,@A+DPTRMOV P2, #0FFH ;关闭显示.MOV P0, A ;输出秒钟个位的显示码.CLR P2.1 ;P2.1=0ACALL XSYSMOV DPTR,#TABMOV A,42HMOVC A,@A+DPTRMOV P2, #0FFH ;关闭显示.MOV P0, A ;输出秒钟十位位的显示段码.CLR P2.2 ;P2.2=0ACALL XSYSMOV DPTR,#TAB1MOV A,43HMOVC A,@A+DPTRMOV P2, #0FFH ;关闭显示.MOV P0, A ;输出分钟个位的显示段码. CLR P2.3 ;P2.3=0ACALL XSYSMOV DPTR,#TABMOV A,44HMOVC A,@A+DPTRMOV P2, #0FFH ;关闭显示.MOV P0, A ;输出分钟十位的显示段码. CLR P2.4 ;P2.4=0ACALL XSYSJNB 20H.1,ZBTC ;20H.1为1则显示计时器状态MOV DPTR,#TAB2MOV A,45HMOVC A,@A+DPTRMOV P2, #0FFH ;关闭显示.MOV P0, A ;输出段码.CLR P2.5 ;P2.5=0ACALL XSYSZBTC:RETTSCX:CLRTR0;调时子程序(TSCX)CLR20H.0;使时间调整时处于暂停状态MOV40H,#00HMOV41H,#00HMOV42H,#00HMOV43H,#00HMOV44H,#00HSETB20H.1;使状态显示管的位选码有效MOV45H,#01H;将状态显示码更改为E(调时状态)MOVR0,#44HJCTZ:ACALLXSCX;先调用显示程序,扫描时间调整键MOVP1,#0FFH JBP1.3,NEXT;+1键盘没有按下ACALLXDYS;键盘按下,消抖延时JBP1.3,NEXTDEN0:JNBP1.3,DEN1;等待按键释放AJMPJYCX;+1键按下后,跳转到+1程序NEXT:MOVP1,#0FFHJBP1.2,JCTZACALLXDYS;键盘按下,消抖延时JBP1.2,JCTZDEN2:JNBP1.2,DEN3;等待按键释放MOVA,44HCJNEA,#06H,DEC4;设置键再次按下,将调整指针指向下一位AJMPTCTSDEC4:DECR0CJNER0,#3FH,JCTZ;若R0为3FH则退出调时程序AJMPTCTS;若@R0不为#06H,但R0为#3FH,则跳出调时程序JYCX:CJNER0,#44H,XIA1;加1调时部分CJNE@R0,#06H,INCR;调整分钟十位AJMPSET0XIA1:CJNER0,#43H,XIA2AJMPTZ09;调整分钟个位XIA2:CJNER0,#42H,XIA3CJNE@R0,#05H,INCR;调整秒钟十位AJMPSET0XIA3:CJNER0,#41H,XIA4AJMPTZ09;调整秒钟个位XIA4:CJNER0,#40H,TCTSTZ09:CJNE@R0,#09H,INCR;调整0.1秒位SET0:MOV@R0,#00HAJMPJCTZINCR:INC@R0AJMPJCTZDEN1:ACALLXSCXAJMPDEN0DEN3:ACALLXSCXAJMPDEN2TCTS:MOVTH0,#3CH;退出调时程序MOVTL0,#0B0HMOV45H,#00H;将状态显示码更改为D(等待状态)RET;T0中断子程序T0ZD:CLREA;T0中断子程序,关中断(T0ZD)CLRET0CLRTR0DJNZ46H,TCZDMOV46H,#02H;当定时两次后重新给计时次数赋值为2MOV R0,#40H ;减1计数,R0为40HCJNE @R0,#01H,R040INC R0 ;R0为41HCJNE @R0,#00H,DEC1 INC R0 ;R0为42HCJNE @R0,#00H,DEC1 INC R0 ;R0为43HCJNE @R0,#00H,DEC1 INC R0 ;R0为44HCJNE @R0,#00H,DEC1AJMP JYFH R040:CJNE @R0,#00H,DEC1 ;R0为40H INC R0 ;R0为41HCJNE @R0,#00H,R041INC R0 ;R0为42HCJNE @R0,#00H,R042INC R0 ;R0为43HCJNE @R0,#00H,R043INC R0 ;R0为44HCJNE @R0,#00H,R044AJMP ZJFH R041:MOV 40H,#09HDEC 41HAJMP TCZD R042:MOV 40H,#09HMOV 41H,#09HDEC 42H AJMP TCZD R043:MOV 40H,#09HMOV 41H,#09HMOV 42H,#05HDEC 43HAJMP TCZDR044:MOV 40H,#09HMOV 41H,#09HMOV 42H,#05HMOV 43H,#09HDEC 44HAJMP TCZDDEC1:DEC 40HTCZD:MOV TH0,#3CH ;退出中断子程序MOV TL0,#0B0HSETB EASETB ET0SETB TR0AJMP ZZFH JYFH:DEC 40H ZJFH:SETB P3.0 ;启动蜂鸣器 ZZFH:RETI XDYS:ACALL XSCX ;消抖延时程序,延时10ms(2*5ms)ACALL XSCX ;采用调用显示子程序延时以改善LED显示效果RET XSYS:MOV 55H,#20 ;显示延时程序,延时1ms DEL2:MOV 56H,#25 DEL1:DJNZ 56H,DEL1DJNZ 55H,DEL2RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH TAB1:DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH TAB2:DB 040H,79H ;D等待状态,E调时状态END。

相关文档
最新文档