基于的秒表设计与实现
基于秒表的设计与实现毕业设计

毕业设计(论文)题目:数字电子秒表的设计与实现摘要近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。
本文阐述了基于单片机的数字电子秒表设计。
本设计主要特点是计时精度达到0.001s,解决了传统的由于计时精度不够造成的误差和不公平性,是各种体育竞赛的必备设备之一。
另外硬件部分设置了查看按键,可以对秒表上一次计时时间进行保存,供使用者查询。
用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。
关键字:单片机;数字电子秒表;仿真AbstractWith the rapid development of science and technology in recent years, SCM applications are constant-depth manner. In this paper, based on single chip design of digital electronic stopwatch. The main characteristics of this design timing accuracy of 0.001s, to solve the traditional result of a lack accuracy due to timing errors and unfair,and is a variety of sports competitions, one of the essential equipment. In addition the hardware part of the set View button on the stopwatch can be the last time to save time for user queries.The design of the multi-function stopwatch system uses STC89C52 microcontroller as the central device, and use its timer / counter timing and the count principles, combined with display circuit, LED digital tube, as well as the external interrupt circuit to design a timer. The software and hardware together organically, allowing the system to achieve two LED display shows the time from 0 to 99.999 seconds, Timing accuracy of 0.001 seconds, Be able to correctly time at the same time to record a time, and the next time after the last time the time to search.automatically added a second in which software systems using assembly language programming, including the display program, timing, interrupt service, external interrupt service routine, delay procedures, key consumer shaking procedures, and WA VE in the commissioning, operation, hardware system uses to achieve PROTEUS powerful, simple and easy to observe the cut in the simulation can be observed on the actual working condition.Keyword:LED display;High-precision stopwatch;STC89C52目录绪论 (1)1 硬件设计 (4)1.1 总体方案的设计 (4)1.2 单片机的选择 (5)1.3 显示电路的选择与设计 (8)1.4 按键电路的选择与设计 (11)1.5 时钟电路的选择与设计 (12)1.6 复位电路的选择与设计 (14)1.7 系统总电路的设计 (17)2 软件设计 (20)2.1 程序设计思想 (20)2.2 系统资源的分配 (20)2.3 主程序设计 (21)2.4 中断程序设计 (22)3 数字电子秒表的安装与调试 (27)3.1 软件的仿真与调试 (27)3.2 硬件的安装与调试 (27)3.3 系统程序的烧录 (28)3.4 数字电子秒表的精度调试 (29)结论 (31)致谢 (32)参考文献 (33)附录A 资料翻译 (34)A.1英文原文 (34)A.2 中文翻译 (41)附录B 程序 (47)附录C 电路原理图 (54)附录D 硬件实物图 (55)绪论秒表计时器是电器制造,工业自动化控制、国防、实验室及科研单位理想的计时仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定时器等的时间测试。
基于单片机的秒表设计

摘要摘要数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。
本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。
设计中包括硬件电路的设计和系统程序的设计。
其硬件电路主要有主控制器,计时与显示电路和回零、启动和停表电路等。
主控制器采用单片机AT89S51,显示电路采用共阴极LED数码管显示计时时间。
文中设计了一种以单片机为控制核心的数字秒表。
该数字秒表采用C语言开发,通过数码管显示计时结果。
关键字:AT89S51;数字秒表;LED数码管显示ABSTRACTDigital electronic stopwatch display intuitive, read the convenient, high precision of advantages, widely used in time. The design of digital electronic stopwatch by single chip, and strive to simple structure, high precision for the target. Design including the design of the system hardware circuit and the design of the program. The main hardware circuit is the main controller, timing and display circuit and back to zero, start and stop watch circuit, etc. Lord AT89S51 single-chip controller, show circuit of the cathode LED digital pipe display time clock. This paper designs a with the single chip processor as the core to control the digital stopwatch. The digital stopwatch using C language development, through the digital pipe display the time.K ey words:AT89S51 Digital stopwatch The LED digital display目录摘要 (I)ABSTRACT (II)前言 (IV)1绪论 (1)1.1单片机的背景 (1)1.2 单片机的应用领域 (2)2 总体方案的设计 (4)2.1系统的组成模块 (4)2.2工作原理 (4)3系统的硬件电路设计 (6)3.1单片机的选择 (6)3.2 显示电路的选择与设计 (9)3.3 按键电路的选择与设计 (11)3.4 时钟电路的选择与设计 (11)3.5 复位电路的选择与设计 (14)4 系统的软件电路设计 (16)4.1 程序设计思想 (16)4.2 主程序设计 (16)4.3 中断程序设计 (18)4.4 系统的程序设计 (21)结论 (25)参考文献 (26)致谢 (27)附录 (28)前言前言秒表计时器是电器制造,工业自动化控制、国防、实验室及科研单位理想的计时仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定时器等的时间测试。
数电课程设计:电子秒表

数电课程设计:电子秒表
电子秒表是一种常见的计时工具,它通过使用电子元件实现高精度的计时功能。
下面是一个基于数电的电子秒表的设计方案:
1. 运算部分设计:
- 使用一个1Hz的时钟源,可以通过计数器或者振荡器实现。
- 使用一个可重置的二进制计数器,位数根据需要的计时范
围确定。
例如,如果计时范围为1小时,可使用一个4位二进制计数器。
- 计时开始/停止控制逻辑:这可以通过一个开关电路实现,可以使用一个门电路或者触发器电路。
- 计数器重置逻辑:可以使用一个按钮或者开关来重置计数
器的值。
2. 显示部分设计:
- 使用数码管或者液晶显示器来显示计时结果。
数码管可以
使用共阳或者共阴的7段数码管。
- 使用译码器将计数器的二进制输出转换为译码信号,用于
控制数码管显示的数字。
3. 其他功能:
- 可以添加一个暂停功能,通过一个按钮或者开关来实现。
当计时中按下暂停按钮时,计时器会停止计数,再次按下暂停
按钮时,计时器继续计数。
- 可以添加一个拆表功能,通过一个按钮或者开关来实现。
按下拆表按钮时,计时器会记录当前的计时值,然后重置为0,再次按下拆表按钮时,计时器恢复原来的计时状态。
该设计方案中的电子秒表可根据实际需求进行调整和扩展,例如增加更多的功能按钮、调整计时范围和精度等。
同时,需要注意电路的稳定性和可靠性,以及对供电电源和信号的处理。
基于EDA技术的电子秒表设计与实现

0 引言
随着科技与 网络的飞速发展 . 各种 电子产 品更是 以其外形设计更 加新颖 、 加独特 , 更 性能更加完善 、 人性化而 出现在人 们生产 、 生活 的 各个领域 , 如手机 . 电脑其更新速度之快 . 已令人瞠 目结舌。 电子产品传统 的设计方 法主要依靠设计者 的实际经验和设计技 巧, 逐步试探的方法将功能复杂得数字系统按逻辑功能划分为若 干 用 子模块 , 最后将子模块组合设计 出一个完 整的数 字系统。通过 整机安 装、 调试后, 若发现设计有问题, 还得反复进行设计和调试, 这种方法 的 设计成本高, 效率低 。电子产品的更新 速度如此之快 . 企业要想在激烈 的竞争 中占据主动 . 则产品从设计 开发到调试投产整个新 产品的开发 周期必须更短 , 而性能却必须更全 面、 更完善 。正是在 这种情况下 , 计 算机辅 助设计 ( A C m ue A ddD s 技术在实 现设计 自动化 C D: p t i ei o r e ) (A:ei uo ao ) D D s nA t t n 方面取得了突破性进展 ,从而取代 了传 统设 g m i 计方法 .得到广泛应 用 目前在 电子设计 领域 .设计技术正处 于从 C D向 D A A过渡的进程 中. 通常称为电子设计 自动化(DA 。 E ) 现代电子设计技术的核心是 E A技术. D 就是利用 E A软件 工具 D 完成设计 、 编译 、 综合 、 优化 和仿真测试等功 能, 直至实 现 电子线 路的 系统功能 因此 . 熟练掌握一些电路仿真软件已成为电子电路设计人 员应具备的基本技能之一 本文在简述电子秒表工作原理和方法的基 础上 . 主要 介绍基 于 E A技术 的电子秒表的设计与实现过程 D
图 1 电子秒表电路原理框 图
该 图包括 脉冲信号源 、 分频 电路 、 计时 电路 、 码显示 电路 、 译 控制 电路和整点报时 电路等 6 部分 。其 中. 个 计时 电路和控制 电路是系统 的主要部分 . 计时 电路完成 6 秒计数功能 . 0 而控制 电路具有直接控制 计数器 的清零 、 启动计数 、 停止 3 种状态 的功能。 1 . 脉冲信号源 .1 2 由石英 晶体振荡器产生频率很高的脉 冲信号 . 经分频 电路 分频 变 成 1z H 基准信号和 10 H 的音频信号 . 足计 时电路和声响 电路 的 00 z 满
单片机课程设计_基于单片机的数字秒表设计

单片机课程设计_基于单片机的数字秒表设计在当今科技迅速发展的时代,电子设备的应用无处不在,其中数字秒表作为一种常见的计时工具,具有广泛的应用场景,如体育比赛、科学实验、工业生产等。
本次课程设计旨在基于单片机技术实现一个数字秒表,通过对硬件电路的设计和软件程序的编写,掌握单片机系统的开发流程和方法,提高实践动手能力和解决问题的能力。
一、设计要求1、能够实现秒表的启动、暂停、复位功能。
2、计时精度达到 001 秒。
3、能够通过数码管显示计时结果。
二、系统方案设计1、硬件设计单片机选型:选用常见的 STC89C52 单片机作为核心控制器,其具有性能稳定、价格低廉、易于编程等优点。
显示模块:采用 8 位共阴极数码管作为显示器件,通过动态扫描的方式实现数字的显示。
按键模块:设置三个独立按键,分别用于启动、暂停和复位操作。
时钟模块:使用单片机内部的定时器/计数器产生精确的时钟信号,实现计时功能。
2、软件设计主程序:负责系统的初始化、按键扫描和计时处理等。
中断服务程序:利用定时器中断实现 001 秒的定时,更新计时数据。
三、硬件电路设计1、单片机最小系统包括单片机芯片、晶振电路和复位电路。
晶振频率选择 12MHz,为单片机提供时钟信号。
复位电路采用上电复位和手动复位相结合的方式,确保系统能够可靠复位。
2、显示电路将 8 位数码管的段选引脚通过限流电阻连接到单片机的 P0 口,位选引脚通过三极管连接到单片机的 P2 口。
通过动态扫描的方式,依次点亮每个数码管,实现数字的显示。
3、按键电路三个按键分别连接到单片机的 P10、P11 和 P12 引脚,采用低电平有效。
当按键按下时,相应引脚的电平被拉低,单片机通过检测引脚电平的变化来判断按键的操作。
四、软件程序设计1、主程序流程系统初始化后,进入主循环。
在主循环中,不断扫描按键状态,如果检测到启动按键按下,则启动计时;如果检测到暂停按键按下,则暂停计时;如果检测到复位按键按下,则将计时数据清零。
fpga秒表设计实验报告

fpga秒表设计实验报告本次实验是基于FPGA设计的秒表。
秒表主要是用来计时的一种仪器,具有精准度高、显示清晰等优点。
在实验中,我们使用FPGA来实现秒表的设计。
1. 实验目的通过本次实验,我们的目的是掌握FPGA的使用方法,并设计出一个能够精准计时的秒表。
同时,也能够加深理解数字电路的基本原理和数字信号的处理方式。
2. 实验原理秒表的原理很简单,在起点按下计时键后,秒表开始计时,时间会显示在数码管或LCD屏幕上。
在终点按下停止键后,秒表停止计时。
我们需要用数字电路来实现这个过程,分为三个部分。
2.1. 时钟模块时钟模块是秒表实现的基础。
我们可以使用FPGA内置的时钟控制器IP,也可以自己实现时钟模块。
在这个实验中,我们使用了FPGA内置的时钟控制器IP。
2.2. 计时模块计时模块是实现秒表的关键。
我们可以使用FPGA内置的计数器IP,也可以自己实现计数器模块。
在这个实验中,我们使用了FPGA内置的计数器模块。
2.3. 显示模块显示模块用来显示计时结果。
我们可以使用数码管或LCD屏幕来显示计时结果。
在这个实验中,我们使用了数码管来显示计时结果。
3. 实验步骤3.1. 创建工程首先,我们需要在Vivado IDE中创建一个FPGA工程。
在创建工程时,需要选择适当的设备型号、板卡等参数。
3.2. 添加时钟控制器IP在Vivado IDE中,选择IP Catalog,搜索并添加时钟控制器IP。
3.3. 添加计数器IP在Vivado IDE中,选择IP Catalog,搜索并添加计数器IP。
3.4. 添加数码管IP在Vivado IDE中,选择IP Catalog,搜索并添加数码管IP。
3.5. 连接IP在Vivado IDE中,将时钟控制器IP、计数器IP和数码管IP进行连接。
3.6. 程序设计使用Vivado IDE中的HDL语言对秒表进行程序设计。
3.7. 烧录程序将程序烧录到FPGA中,实现秒表功能。
基于单片机的99秒表设计
基于单片机的99秒表设计(一).方案论证及设计说明1.控制器的选择单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。
由于其功耗低、体积小、技术成熟和成本低等优点,各个领域应用广泛。
本实验采用AT89C51单片机。
2.数码管的选择(1)LED显示方式有共阴极和共阳极两种。
由于平时习惯于用共阴极数码管,在本实验中采用共阴极数码管。
1)字形码表的产生以共阴极为例,LED七段数码管的每一段接高电平时亮,不同的2)显示方式: 静态显示在静态显示方式下,每一位显示器的字段控制线是独立的。
当显示某一字时,该位的各字段线和字位线的电平不变,也就是各字段的亮灭状态不变。
静态显示方式下LED 显示器的电路连接方法是:每位LED 的字位控制线门共阴极点或共阳极点连在一起,接地或接 + 5V ;由于显示的是整数,所以小数点那位可以不接,所以其字段控制线 (a ~g )分别接到一个7位口。
动态显示1)利用人眼的视觉暂留效应,通过位选分时显示不同的数码管,这样可以看到正常的显示。
调用延时子程序循环显示各路水压值, 使能清楚的看到八路水压的大小。
2)本实验采用共阴极数码管,动态循环显示各路水压值,并在设置上下限时显示上下限的大小。
显示数码与共阴极断码的对应关系:0 1 2 3 4 5 6 7 8 9 3FH06H 5BH 4FH 66H6DH7DH07H 7FH 6FH静态显示占的的IO 资源多,动态显示可以节省IO 口,本实验中IO 口足够用,所以用静态显示。
3.设计说明99秒表的设计有2个控制键,开始键和复位键,按下开始键则开始计时,再按一下开始键则停止计时,显示计时的秒数,按一下复位键则复位,显示00。
按键通过外部中断来实现,用外部中断0和外部中断1来实现。
按下开始键则进入外部中断0,为了区分是开始计时还是计时停止,给寄存器R1赋初值为0,判断R1为零,给R1赋值1,则启动定时器,进入定时器中断,执行计时,每隔一秒数码管显示的值自动加一,当再次按下开始键时,再次进入中断0,R1的值为1,通过比较指令判断为停止计时指令,则跳转到指令使定时器停止计时,则显示定时的时间,同时把R1的值再设为0。
基于LabVIEW的秒表的设计与实现(整理版)
摘要现今社会快速发展,各种各样的软件产品被开发出来,为人们的生活、工作提供便捷。
与此同时各类软件也深刻影响社会的发展。
在各类软件的开发中,精确的计时定时对软件功能的完整实现有着重大的影响,当今社会需要精确定时计时报警的领域也越来越多,因此开发准确稳定的计时定时软件刻不容缓。
本次多功能秒表设计是基于LabVIEW2011虚拟仪器平台,使用图形化编程语言,设计一个定时计时显示报警的实例,它主要通过条件结构的分支选择及平铺式顺序结构和while循环来确保程序按一定顺序执行,通过对系统和操作人员的输入进行检测和响应,进而实现相应的秒表计时,定时报警,闹钟叫醒和时钟报时功能。
本次基于LabVIEW的秒表的设计具有定时计时精度高、占用系统资源少、软件开发周期相对较短、可移植性强、可以与其他软件无缝合成,功能扩展性强等特点,可以在各类软件中可实现精确定时计时报警显示时间。
关键词:LabVIEW,虚拟仪器,秒表AbstractWith the rapid development of today's society, more and more people get into the design and development of software products for the way people living and working convenient. In the development of all types of software,precise timing has a significant impact on the functions of the software, and all kinds of timing software constantly enrich people's entertainment life .LabVIEW is an industry-leading industry standard software tools for the development of test, measurement and control system. At the same time, the LabVIEW virtual instrument development is a completely open system application software, and use it to set up a test system can greatly simplify programming.The stopwatch design is a virtual platform based on LabVIEW 2011, using a graphical programming language, it is primarily selected by the branch of the conditional structure and flat sequence structure to ensure the subroutine according to a certain order execution,and to detect and respons from system and operator input, and realize the corresponding function, teach through lively activities and highlight the breadth of the LabVIEW programming.Key W ords: LabVIEW, virtual instrument, stopwatch目录基于LabVIEW的秒表的设计.................................. 错误!未定义书签。
简易数字秒表的设计与实现
课程设计题目简易数字秒表的设计与实现学院信息工程学院专业通信工程班级姓名指导教师撒继铭2016 年 6 月26 日课程设计任务书学生姓名:专业班级:指导教师:撒继铭工作单位:信息工程学院题目: 简易数字秒表的设计与实现初始条件:本设计主要使用集成译码器、计数器、定时器、脉冲发生器和必要的门电路等来完成,用一组数码管显示时间计数值。
要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。
2、技术要求:1)设计一个能测量3名100米跑运动员短跑成绩的数字秒表。
要求用一组四位数码管显示时间,格式为00.00s,最大计数时间是99.99秒。
2)秒表设置3个开关输入(清零开关1个、记录开关1个、成绩开关1个)。
按下“记录”开关第一次,将记录并储存第一名运动员的成绩,以此类推。
当“记录”开关按下3次后,成绩计数结束。
3)成绩计数结束之后,连续按动“成绩”开关,可以把3个运动员的成绩循环显示在数码管上。
4)确定设计方案,按功能模块的划分选择元、器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。
3、查阅至少5篇参考文献。
按《武汉理工大学课程设计工作规范》要求撰写设计报告书。
全文用A4纸打印,图纸应符合绘图规范。
时间安排:1、年月日,布置课设具体实施计划与课程设计报告格式的要求说明。
2、年月日至年月日,方案选择和电路设计。
3、年月日至年月日,电路调试和设计说明书撰写。
4、年月日,上交课程设计成果及报告,同时进行答辩。
指导教师签名:年月日系主任(或责任教师)签名:年月日目录简易数字秒表的设计与实现 (1)摘要 (1)Abstract (2)1 简易数字秒表原理 (4)1.1 简易数字秒表原理总述 (4)1.2 简易数字秒表原理框图 (4)1.3 方案选择 (4)1.3.1 初始方案 (4)1.3.2 方案比较 (5)1.4 单元电路的设计和元器件的选择 (5)1.4.1 555多谐振荡器 (5)1.4.2 计数系统 (7)1.4.3 译码系统及显示系统 (9)1.4.4 记录系统 (11)1.4.5 清零系统 (12)1.5 完整电路图 (12)2 仿真结果及分析 (13)2.1 仿真结果分析 (13)4 性能测试数据及分析 (15)5 收获、建议及体会 (16)7 原件清单 (17)8 参考文献 (18)简易数字秒表的设计与实现摘要随着电子技术的发展,电子技术在各个领域的运用也越来越广泛,渗透到人们日常生活的方方面面,,掌握必要的数电知识已经成为当代大学生特别是理工类大学生必备的素质之一。
基于multisim的电子秒表仿真设计报告
目录1.设计任务 (1)2.设计原理及方案 (2)2.1设计方案 (2)2.2设计原理 (2)3.设计步骤和结果 (3)3.1振荡器 (3)3.2计数器 (3)3.3控制电路 (4)4.总电路图 (5)5.课程设计总结 (6)6.设计体会 (7)参考文献 (8)- I -数字电子技术课程设计报告1.设计任务电子秒表是测定段时间间隔的仪表,由振荡电路、计数器、译码器、显示电路等部分组成,其中振荡器组成标准秒信号发生器,由不同进制的计数器、译码器和显示器组成计时系统。
技术要求:1、采用中、小规模数字集成电路实现。
2、具有清零、启动计时、暂停计时及继续计时等控制功能。
3、可以准确显示00.00-99.99。
4、由七段LED显示器显示。
5、控制开关两个:启动(继续)暂停计时开关和复位开关。
6、利用Multisim (或EWB)进行电路仿真与调试。
- 1 -数字电子技术课程设计报告2.设计原理及方案2.1 设计方案该方案采用的是用555振荡器产生一个100HZ的脉冲,送入十进制加法计数器74LS290,通过共阴极七段数码管来显示结果,可以准确显示00.00-99.99秒的计时,并且能够通过控制电路实现启动、暂停、和清零功能。
设计流程图如图2.1图2.1 流程图2.2 设计原理由555振荡器产生100Hz脉冲信号,作为10毫秒的计时脉冲;10毫秒计数器计满10后,向100毫秒计数器产生进位脉冲;100毫秒计数器计满10后,向1秒计数器产生进位脉冲;1秒计数器计满10后,向10秒计数器产生进位脉冲。
计数器的输出经显示译码器译码后送显示器显示。
该电路设置两个控制键控制“S1”,“S2”。
键“S1”控制电路的清零功能,键“S2”控制电路的暂停功能。
- 2 -数字电子技术课程设计报告3.设计步骤和结果3.1振荡器振荡器是数字秒表的核心。
振荡的稳定度及频率的精度决定了数字式秒表的精确度,一般来说振荡器的频率越高,计时精度也越高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于8086的秒表设计与实现————————————————————————————————作者:————————————————————————————————日期:郑州科技学院微机原理课程设计(论文)题目_基于8086的秒表设计与实现_学生姓名程昭昭专业班级计科一班学号201115003所在系信息工程学院指导教师王清珍完成时间2013年12月13日目录摘要 (1)1 99秒秒表设计背景及目的要求 (1)1.1 99秒秒表设计背景 (1)1.2设计目的 (1)1.3硬件选择 (2)1.4设计内容 (2)2 设计方案及基本原理 (2)2.1 预备知识 (2)2.2 LED显示原理 (3)2.3 元器件选择 (3)2.4 系统设计 (3)2.5硬件工作原理 (4)2.6 硬件连接 (4)3 设计流程 (5)3.1设计步骤 (5)3.2程序代码 (6)4 程序 (7)4.1 main.c主程序 (7)4.2 key.asm ——键盘扫描子程序 (11)5 调试结果及分析 (24)5.1 调试结果 (24)5.2 结果分析 (25)6 结论与分析 (25)7 参考与文献 (25)摘要本设计是设计一个芯片控制的多功能秒表系统。
近年来随着科技的飞速发展,单的应用正在不断的走向深入,同时带动着传统控制检测日新月异更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。
秒表的出现,解决了传统的由于人为因素造成的误差和不公平性。
将软、硬件有机地结合起来,使得系统能够实现两位LED显示,显示时间为00~99秒,每秒自动加1,能正确地进行加、减(倒)计时,快加,快减,可以同时记录4个相对独立的时间,通过上翻下翻来查看这4个不同的计时值,可谓功能强大。
其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序,按键消抖程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。
关键词: AT89C51 99秒【设计题目】99秒秒表设计1 99秒秒表设计背景及目的要求1.1 99秒秒表设计背景目前,单片机正朝着高性能和对品种方向发展,趋势是进一步向着CMO化,低功耗,小体积,大存量,高性能,低价格和外国电路内装化等几个方面发展。
单片机应用的重要意义还在于他从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是秒表、数字钟等显示时间类的装置,此装置是一种用数字电路实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
此设计利用凌阳科技公司的凌阳16位单片机SPCE061A为主控芯片,充分利用61板上面的三个按键,完成一个简易的现实系统——99秒秒表。
61板是一套完整的16位单片机开发系统,可直接把程序下载到61板上进行调试和封装。
集成度高、运算速度快、体积小、运算可靠、价格低廉,在过程控制、数据采集、机电一体化、智能仪器仪表、网络技术等方面得到广泛应用。
1.2 设计目的随着单片机应用的日益广泛,在校学生加强对单片机的认识和动手能力,已经是非常重要的一项锻炼。
课程设计就是为加强实践机会、培养学生动手能力的一个重要环节,将理论知识与实际联系起来的一个关键机会。
本课程设计的基本要求是:1. 掌握LED数码管原理及使用方法。
2. 掌握61板的使用方法。
3. 初步掌握SPCE061A单片机汇编语言一般编程技巧。
4. 初步掌握61板系统调试的一般步骤及方法。
1.3硬件选择装有Windows系统和μ’nSP™ IDE仿真环境的PC机一台,μ’nSP™十六位单片机实验箱一个。
本设计用到的实验箱硬件模块为:SPCE061A核心及周边电路模块(包含32个I/O口),LED数码管。
做此实验用51板也可以,因为51板也提供了相应的LED模组,因为实验室里面给我们提供了61板,所以我决定选用SPCE061A 单片机实验箱。
1.4 设计内容本装置将实现0-99的计数,每一秒钟,计数器将加1,在数码管上显示当前计数值,并可用键盘按制计数的起始,以及归零。
具体要求如下:1. 开机时数码管显示00。
2. 每一秒钟,计数器自动加1。
3. 按键控制计数,分别控制开始计时、停止计时和归零,功能分配如下:表1-1按键功能分配按键功能描述KEY1 开始计时KEY2 停止计时KEY3 归零2 设计方案及基本原理2.1 预备知识1.熟悉凌阳单片机的工作原理。
(1)I/O口的使用原理和设置;(2)定时器或时基的设置、使用;(3)中断的设定。
2.了解数码管的显示原理。
3.熟悉键盘扫描原理。
4.熟悉汇编语言或C语言。
2.2 LED显示原理静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间。
动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。
这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。
基本的半导体数码管是由七个条状发光二极管芯片排列而成的,可实现0~9的显示。
LED数码管是由发光二级管显示字段组成的显示器,有8段和“米”字段之分,这种显示器有共阳级和共阴极两种。
所谓共阳方式是指笔画显示器各段发光管的阳极(即P区)是公共的,而阴极互相隔离。
所谓共阴方式是笔画显示器各段发光管的阴极(即N区)是公共的,而阳极是互相隔离的。
2.3 元器件选择61板一个,共阳极2位LED数码管一个,电路板一个,8050三极管二个,1k的电阻8个,33k电阻2个,导线若干,排针(10位)2个。
2.4 系统设计根据设计题目的要求分析,并考虑到题目的可扩展性,可将系统分成两大部分:1. 时间的产生和显示。
2. 按键控制计数起始、归零。
根据系统的功能现选择61板作为单片机控制处理部分,利用一2位LED作为显示部分,而按键采用61板上自带的三个按键,如图2-1所示。
秒IOB图2-1 系统框图2.5硬件工作原理两位数的显示采用的是一个2位共阳极LED 数码管(LG5621AH),连接方法是SPCE061A的IOB0-IOB6接LED焊接板的A-G,小数显示部分可以省略不要;IOB8-IOB9分别接LED的位选COM1、COM2,电路原理图如图2-4。
LED与SPCE061A的引脚连接如表2-1。
采用凌阳大学计划的LED键盘模组和61板搭配可以很容易的完成这个课程设计的题目。
它的连结图如图所示,IOB的低八位控制数码管显示段位,高八位控制点亮哪一个数码管。
表2-1 LED引脚连接表SPCE061A LED模块SPCE061A LED模块IOB8 A IOB0 COM1IOB9 B IOB1 COM2IOB10 CIOB11 DIOB12 EIOB13 FIOB14 G2.6 硬件连接采用凌阳大学计划的LED键盘模组和61板搭配可以很容易的完成这个课程设计的题目。
它的连结图如图所示,IOB 的低八位控制数码管显示段位,高八位控制点亮哪一个数码管。
图2-2 LED 键盘模组和61板连接图3 设计流程图AD[0..15]READY 22INTR 18NMI 17RESET 21CLK 19MN/MX 33HOLD/GT131HLDA/GT030A[16..19]M/IO/S028ALE/QS025DT/R/S127INTA/QS124TEST 23BHE 34DEN/S226RD 32WR/LOCK 29U98086D08D17D26D35D44D53D62D71RD 22WR 23A019A120CS 21CLK09GATE011OUT010CLK115GATE114OUT113CLK218GATE216OUT217U98253A3.1设计步骤根据设计要求的功能,程序主要分为三部分,即:61板IOA0 IOB8 IOA8显示 显示按键状数数数数数数发光二(1)计时显示部分;(2)秒计时部分;(3)按键控制部分。
(4)程序主流程主要完成键盘扫描、计时处理、键值分支控制的任务,流程图如图所示:开初始化数据、以扫描键盘,针对Key1 Key2 Key3计时数据处理,格式图3-1 主程序流程图显示部分是在IRQ4的1KHz中断中控制显示的,采用动态扫描的方式,1KHz的时基中断每1ms进一次中断,在中断中对2ms计数器i进行累加,当i从0累加到2时,则刚好为2ms,此时更新一个位的LED显示,并对i进行清零;当下一次累计到2ms时,则会再更新显示下一位LED数码管,当更新到最后一位时,返回重第一位开始更新;依此循环更新显示,而更新显示的数据保存在缓冲区当中,用户需要更新显示的数据时,只需要改变对应的缓冲区中的数据即可。
具体流程图如下。
秒计时采用IRQ5的2Hz 时基中断进行计时,流程图如图3-3所示。
键盘输入利用61板自带的三个按键,输入的端口为IOA0—IOA2。
图3-2 IRQ4 1KHz 时基中断流程 图3-3IRQ5 2Hz 时基中断流程图4 程序ctrl_port EQU 0106H A_PORT EQU 0100H B_PORT EQU 0102H c_port equ 0104h count equ 0206h是计时器计时计时 结IRQ4 2ms 计数器 更新显示一位 结count0 equ 0200hcount1 equ 0202hINTR EQU 0304HINTR1 EQU 0306HDCOUNT EQU 6data segmentLEDTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71 HBUF DB 0,0,0,0,0,0buff db 20 dup(?)DAT1 DB 0DAT2 DB 0DAT3 DB 1dat4 db 0data endsCODE SEGMENTASSUME CS:CODE,ds:data START: CLIPUSH DSMOV SI,2*4MOV AX,0MOV DS,AXMOV [SI],OFFSET INTB MOV 2[SI], SEG INTB POP DSMOV AL,00010011BMOV DX,INTROUT DX,ALMOV AL,00000010BMOV DX,INTR1OUT DX,ALMOV AL,00000001BMOV DX,INTR1OUT DX,ALSTImov ax,datamov ds,axmov al,00110111b ;8253初始化 mov dx,countout dx,almov dx,count0mov ax,500hout dx,almov al,ahout dx,almov al,01110111bmov dx,countout dx,almov dx,count1mov ax,50hout dx,almov al,ahout dx,alMOV AL,10000001B ;8255初始化, MOV DX,CTRL_PORTOUT DX,ALback: MOV DX,C_PORTin al,dxtest al,00000010bjz b2 ;判断是否清0again: MOV DX,C_PORTin al,dxtest al,00000001bjz b1 ;判断是暂停还是继续? mov cx,6jia6: inc siloop jia6MOV AL,00000000BMOV DX,C_PORTOUT DX,ALMOV AL,DAT1 ;DTA1中是秒CMP AL,100JZ A1MOV BL,10DIV BLMOV BUF,AH ;秒的个位MOV BUF+1,AL ;秒的十位CALL DISPLAY_DECINC DAT1JMP backA1: MOV DAT1,0 ;满60秒,对DAT1清0 MOV AL,0MOV AH,0MOV BUF,AHMOV BUF+1,ALCALL DISPLAY_DEC ;先显示00,再进位INC DAT2MOV AL,DAT2 ;DAT2中是分CMP AL,60JZ A2MOV BL,10DIV BLMOV BUF+2,AH ;分的个位MOV BUF+3,AL ;分的十位CALL DISPLAY_DECMOV CX,60LOOP AGAINA2: MOV DAT2,0 ;满60分对DAT2清0 MOV AL,0MOV AH,0MOV BUF+2,AHMOV BUF+3,ALCALL DISPLAY_DEC ;先显示00:00再进位 MOV AL,DAT3 ;DAT3中是时CMP AL,24JZ A3MOV BL,10DIV BLMOV BUF+4,AH ;时的个位MOV BUF+5,AL ;时的十位CALL DISPLAY_DECMOV CX,60DEC CXJZ backA3: INC DAT3JMP backb1: CALL DISPLAY_DECmov al,01110000b ;对8253送GATE1控制信号 mov dx,c_portout dx,alcall cunchuCALL DELAYjmp backb2:mov dx,c_portin al,dxtest al,00000100bjnz licall xianshicjcall display_decmov cx,1jz next2mov si,6dec cxnext2: call delayjmp backli: mov buf,0 ;清0 mov buf+1,0mov buf+2,0mov buf+3,0mov buf+4,0mov buf+5,0mov dat2,0mov dat3,1call display_dec; mov bx,1000;jz backmov al,10110000b ;对8253送GATE0控制信号 mov dx,c_portout dx,alCALL DELAY;dec bxjmp backDISPLAY_DEC PROCDA:MOV DI,2DISPAGAIN1:MOV BL,BUFMOV BH,0LEA SI,LEDTAB ;以十进制显示MOV AL,[BX][SI] ;取个位段码not al ;共阳MOV DX,A_PORTOUT DX,AL ;用数码管显示个位 MOV AL,11100000B ;位选,1点亮MOV AH,0MOV DX,B_PORTOUT DX,ALCALL DELAYMOV AL,0H ;清屏MOV DX,B_PORTOUT DX,ALCALL DELAY1CALL DELAY1LEA SI,LEDTABMOV BL,BUF+1MOV BH,0MOV AL,[BX][SI] ;取十位段码not alMOV DX,A_PORTOUT DX,AL ;用数码管显示十位 MOV AL,11010000BMOV DX,B_PORTOUT DX,ALCALL DELAYMOV AL,0HMOV DX,B_PORTOUT DX,ALCALL DELAY1LEA SI,LEDTABMOV BL,BUF+2MOV BH,0MOV AL,[BX][SI] ;取分个位段码 not alMOV DX,A_PORTOUT DX,AL ;用数码管显示分个位MOV AL,11001000BMOV DX,B_PORTOUT DX,ALCALL DELAYMOV AL,0HMOV DX,B_PORTOUT DX,ALCALL DELAY1CALL DELAY1LEA SI,LEDTABMOV BL,BUF+3MOV BH,0MOV AL,[BX][SI] ;取分十位段码not alMOV DX,A_PORTOUT DX,AL ;用数码管显示分十位MOV AL,11000100BMOV DX,B_PORTOUT DX,ALCALL DELAYMOV AL,0HMOV DX,B_PORTOUT DX,ALCALL DELAY1LEA SI,LEDTABMOV BL,BUF+4MOV BH,0MOV AL,[BX][SI] ;取时个位段码not alMOV DX,A_PORTOUT DX,AL ;用数码管显示时个位MOV AL,11000010BMOV DX,B_PORTOUT DX,ALCALL DELAYMOV AL,0HMOV DX,B_PORTOUT DX,ALCALL DELAY1CALL DELAY1LEA SI,LEDTABMOV BL,BUF+5MOV BH,0MOV AL,[BX][SI] ;取时十位段码not alMOV DX,A_PORTOUT DX,AL ;用数码管显示时十位MOV AL,11000001BMOV DX,B_PORTOUT DX,ALCALL DELAYMOV AL,0HMOV DX,B_PORTOUT DX,ALCALL DELAY1DEC DIJNZ DISPAGAIN1 RETDISPLAY_DEC ENDPDELAY PROCMOV CX,1dhLOOP $RETDELAY ENDPDELAY1 PROCMOV CX,3hLOOP $RETDELAY1 ENDPcunchu procpush ax push bx push cxmov al,bufmov ah,buf+1mov bl,buf+2mov bh,buf+3mov cl,buf+4mov ch,buf+5mov buff[si],al mov buff[si+1],ah mov buff[si+2],bl mov buff[si+3],bh mov buff[si+4],cl mov buff[si+5],ch pop axpop bxpop cxretcunchu endp xianshicj procpush axpush bxpush cxmov al,buff[si] mov ah,buff[si+1] mov bl,buff[si+2] mov bh,buff[si+3] mov cl,buff[si+4] mov ch,buff[si+5] mov buf,almov buf+1,ahmov buf+2,blmov buf+3,bh mov buf+4,cl mov buf+5,ch pop axpop bxpop cxret xianshicj endp INTB PROC FAR PUSH AXPUSH BXPUSH CXMOV SI,6 MOV AL,20H OUT 20H,ALPOP CXPOP BXPOP AXIRETINTB ENDP CODE ENDSEND START电路图5.1 调试结果本装置将实现0-99的计数,每一秒钟,计数器将加1,在数码管上显示当前计数值,并可用键盘按制计数的起始,以及归零。