单片机多功能秒表课程设计报告
课程设计 多功能秒表报告
武夷学院课程设计(论文)基于单片机的多功能秒表设计院系:电子工程系专业(班级):09电信(一)班姓名:鞠建龙学号: 20094081009指导教师:邵海龙职称:助教完成日期: 2011 年 12 月 1 日武夷学院教务处制摘要近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。
本文阐述了基于单片机的多功能电子秒表设计。
本设计主要特点是具有倒计时功能,还可以按圈计时,而且误差在0.01,,是各种体育竞赛的必备设备之一,另外硬件部分设置了查看按键。
本设计的数字电子秒表系统采用AT89C52单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、数码管以及外部中断电路来设计计时器。
将软、硬件有机地结合起来,使得系统能够实现8位LED显示,显示时间24小时内,计时精度为0.01秒,能正确地进行计时,同时能记录一次时间,并在下一次计时后对上一次计时时间进行查询。
其中软件系统采用C语言编写程序,包括显示程序,定时中断服务延时程序等,并在KEIL中调试运行,硬件系统利用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.01s, 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 within 24 hours, Timing accuracy of 0.01 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 WAVE 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 硬件设计 (7)1.1 总体方案的设计 (7)1.2 单片机的选择 (8)1.3 显示电路的选择与设计 (10)1.4 按键电路的选择与设计 (10)1.5 时钟电路的选择与设计 (11)1.6 系统总电路的设计 (12)2 软件设计 (12)2.1 程序设计思想 (13)2.2 主程序设计 (13)2.3 中断程序设计 (14)3 电子秒表的安装与调试 (15)3.1 软件的仿真与调试 (15)3.2 硬件的安装与调试 (15)致谢 (16)附录A c语言程序 (17)附录B 电路原理图 (33)基于单片机的多功能秒表设计一.引言秒表计时器是电器制造,工业自动化控制、国防、实验室及科研单位理想的计时仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定时器等的时间测试。
单片机 秒表课程设计
CJNE A,#0,HH
MOV A,73H
CJNE A,#0,HH
MOV A,72H
CJNE A,#0,HH
MOV A,70H
CJNE A,#0,HH
CLR P0.7;蜂鸣
CLR TR0
CLR ET0;T0关中断
MOV 70H,#00H;重新赋值
MOV 71H,#0AH
MOV 72H,#00H
INC 72H
LL1:
MOV TH0,#3CH
MOV TL0,#0B0H
JNB P3.1,DAOJISHI;P3.1倒计时
INC 70H
MOV A,70H
CJNE A,#0AH,XIAN0
MOV 70H,#00H
INC 72H
XIAN0:
MOV A,72H
CJNE A,#0AH,XIAN1
MOV 72H,#00H
单片机课程设计报告书
课题名称
秒表
姓 名
学 号
院、系、部
电气工程系
专 业
指导教师
秒表
一、设计目的
本次设计是以单片机为基础,设计一个可以实现启动,暂停,继续,复位,可选择正计时,倒计时。四位显示,精确到0.1(999.9)的秒表。目的是学习和掌握单片机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
INC 73H
XIAN1:
MOV A,73H
CJNE A,#0AH,XIAN2
单片机秒表课程设计报告
单片机秒表课程设计报告㈠设计任务及要求秒表系统设计——用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~59秒,每秒自动加一。
另设计一个“开始”按键和一个“暂停”按键。
实验要求通过单片机的定时器/计数器定时和计时原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、快加功能,并同时可用数码管显示。
(二)设计思路分析该实验要求进行计时并在数码管上显示时间,则可利用芯片AT89C51中的P2.5管脚作为外部中断0的入口地址,并实现“开始”按键功能;将P2.6作为数据信号DATA输入的入口地址;将P2.7做为外部中断1的入口地址,并实现“清零”按键的功能;其中“开始”按键当开关由1拨向0时开始计时;“清零”按键当开关由1拨向0时数码管清零,此时若再拨“开始”按键则有可重新开始计时。
(三)硬件电路设计如图在P0口上接一个16M的晶振,它是时钟电路中最重要的部件,向主板的各部分提供基准频率。
2位LED数码管作为显示,并接在P0口和P2口。
“起始”、“暂停”和“清零”三个按键分别对应接在P2.5、P2.6、P2.7上。
(四)程序设计STRT EQU P2.5 ; 启动键端口STP EQU P2.6 ; 暂停键端口CLRR EQU P2.7; 复位键端口ORG 00HAJMP MAINORG 0BH ;定时器T0,中断入口AJMP T0INTORG 30HMAIN: MOV R0,#20 ; 中断计数器(循环次数)MOV TMOD,#01H; 定时器初始化MOV TH0,#3CH ; 设定时间50msMOV TL0,#0B0HMOV DPTR,#TABLESETB EA ; 开中断SETB ET0 ; 启动T0k1: LCALL DISPJB STRT,K2 ; 等待k2键停止LCALL DISPJNB STRT,$-3AJMP STARTk2: JB STP,K3 ; 等待K3键LCALL DISPJNB STP,STOPK3: JB CLRR, K1 ; 等待K1键LCALL DISPJNB CLRR,CLEARAJMP K3START: SETB TR0AJMP K1STOP: CLR TR0AJMP K2CLEAR: CLR TR0MOV 40H,#0AJMP K1T0INT: MOV TH0,#3CH ; 重新设置初始值MOV TL0,#0B0HDJNZ R0,RTIMOV R0,#20MOV A,40HCJNE A,#59,ADD1 ; 判断是否等于59MOV 40H,#00H ; 清零CLR TR0AJMP RTIADD1: ADD A,#01H ; 加一MOV 40H,ARTI: RETIDISP: MOV A,40HMOV B,#10DIV AB ;//当前值除以10MOV 20H,A ;//得出的商送给十位MOV 21H,B ;//得出的余数送给个位CLR P2.0SETB P2.1MOV A,20H ;//十位显示MOVC A,@A+DPTRMOV P0,ALCALL DELAYCLR P2.1SETB P2.0MOV A,21H ; //个位显示MOVC A,@A+DPTRMOV P0,A ; P0显示RETDELAY: ;误差0usMOV R6,#01HDL0:MOV R5,#61HDJNZ R5,$DJNZ R6,DL0RETTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H ;//共阳极0-9显示代码DB 92H,82H,0F8H,80H,90HEND(五)调试及结论在整个程序设计、电路的选择过程中,小组成员都遇到了许多问题。
单片机秒表课程设计报告
一:课程设计题目秒表/时钟计时器二:课程设计任务与要求:利用89C51单片机设计秒表/时钟计时器,通过LED显示器显示秒十位和个位,在设计过程中用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到60时,就自动返回到0,重新开始秒计数。
三:设计过程:1.设计原理:此次课程设计题目是秒表/时钟计时器,由课程设计的要求和任务,我采用的C语言编程,设计秒表要求一秒定时,采用了定时器和FOR循环来定时,其中一个软件一个硬件,会在方案论证中分析在1秒时采用的是硬件定时,即用单片机内部的定时器T0。
先将时钟初始化,赋入初值50ms定时,循环20次来进行1秒定时。
然后由定义的变量second来进行加一运算,然后将其值通过P1,P2口在数码管上进行显示。
其中数码管的显示时,我在程序中首先定义了一个关于数码管显示的字形码定义,以便在显示时调用即可。
(1)方案论证:方案1:在方案1中,我们所选用的是软件定时,即用for循环来定时1秒进行显示的变化.方案2:在方案2中,采用的是硬件定时,即用单片机内部的定时器T0。
先将时钟初始化,赋入初值50ms定时,循环20次来进行1秒定时.方案比较:我们从两方面进行两种方案的比较,第一,由于此次课程设计要求是秒表,则在定时时要求比较精确,所以采用硬件的定时器定时时比较准确的。
第二,由于秒表的定时程序是很小的,在利用软件定时占用的CPU并不是很多,不能显现出来,但真正大程序时会很占用资源的,所以在用定时中断过程中是非常节省资源的.综合上述两种比较,我们选用了第二种方案.(2)创新点:a。
在课程要求的基础上,我们做成的电路板上,用复位键来控制秒表计时的重新开始,即清零。
b。
在以上设计的基础上,我们又重新设计了一个程序,基本原理没有变,只是将秒表在到达59清零的瞬间向分的位数上进1,程序将会在附录3中给出。
2.硬件系统框图与说明:首先,连接的是单片机51的最小系统,其中包括时钟电路,复位电路,在此中包括的元器件在附录3中.我们所选用的数码管是共阴极的,置1时导通,所以将单片机的P1。
基于单片机的多功能秒表系统课程设计
基于单片机的多功能秒表系统课程设计单片机课程设计报告多功能秒表系统设计姓名:学号:专业班级:指导老师:所在学院:2009年6月10日单片机已经无处不在,与我们生活更是息息相关并已渗透到了生活的方方面面。
单片机的特点是体积小,重量轻,功能强,通用性好,也就是说集成度高,其内部的结构是普通的计算机系统的简化。
在增加一些外围电路之后,就能成为一个完整的系统。
在众多单片机中,MCS-51系列单片机具有系统结构完整,特殊功能寄存器规范化以及指令系统的控制功能强等特色,使起成为单片机中的主流机型。
本设计是一个由AT89C51单片机控制,利用单片机的定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及键盘电路按键计时来实现的多功能秒表系统。
在本次设计中我们以AT89C51单片机为主要器件,利用它的定时器/计数器定时和记数的原理,结合7809电源提供的+5V稳压电压,上电加按钮复位电路,晶体振荡电路,由P0口驱动的LED动态显示电路,键盘电路等来完成多功能秒表的设计。
这个多功能秒表系统能够实现两位LED显示,显示的时间为00~99秒,每秒自动加1,能正确地进行加、减(倒)计时,能同时记录4个相对独立的时间,通过上翻键和下翻键来查看这4个不同的计时值,还具有快加和复位功能,基本上实现了老师的要求。
我们使用汇编语言来编写程序,采用模块化程序设计方法,主程序有多个子程序构成,这些子程序可以单独的设计,调试和管理,其中包括加1子程序、减1子程序、延时子程序、快加子程序,复位子程序和显示子程序等。
将源程序代码在WAVE中进行编译和调试,硬件系统利用Proteus软件来实现,可以方便的看到运行结果。
关键词:多功能秒表、单片机、子程序模块、Proteus仿真1 概述 (3)1.1单片机简介 . (3)1.2设计任务 (3)1.3设计要求 (3)2 系统总体方案及硬件设计 ......................................................错误!未定义书签。
单片机多功能秒表课程设计
单片机课程设计报告电子秒表摘要:本设计的成品是在单片机最小系统的基础上增加显示电路和控制电路来完成电子秒表的硬件电路的。
电子秒表电路主要由AT89S52单片机最小系统电路、七段数码管动态显示电路和控制电路组成,它能实现八位数码显示和多次计时,能通过控制电路能控制时间的暂停、开始和清零,能够多次存储时间,并查询显示计时时间的顺序。
关键字:AT89S52 数码管最小系统1 方案设计1.1系统分析设计的电路主要是能多次记时和查询时间,记时的多少通过显示电路显示出来,每一次计时可以通过控制电路查询出来。
设计框图如图一所示;1.2系统方案方案一:利用AT89S52单片机设计数显定时器和定时器。
单片机软件编程灵活、自由度大,可用软件编程实现各种控制算法和逻辑控制。
利用74HC573锁存器和按键作为控制电路,通过位选和段选来实现数码管的显示。
2 硬件设计2.1 控制芯片的介绍AT89S52(与AT89S51相同)单片机的外型如图四所示。
单片机可分为通用型和专用型,种类繁多。
这里我们主要介绍AT89S52单片机是属于典型代表的MCS-51系列单片机,它是一种能处理8位数据的通用型单片机。
以Atmel公司生产的具有CMOS工艺、低功耗、高性能的AT89S52为例,介绍单片机的工作原理、控制程序的编写及开发应用。
AT89S52是一个高性能CMOS 8位单片机,芯片内集成了通用8位中央处理器,片内含8k Bytes的可反复擦写1000次的Flash只读程序存储器(ROM), 支持ISP(In-system programmable)功能。
AT89S52内部有128 bytes的随机存取数据存储器(RAM),图五 AT89S52引脚图5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT )电路,片内时钟振荡器。
兼容标准MCS-51指令系统及80C51引脚结构。
图四AT89S52有40个引脚,32个外部双向输入/输出(I/O )口。
基于单片机的秒表设计与实现课程设计报告
基于单片机的秒表课程设计报告一、设计题目秒表系统设计——用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
另设计一个“开始”按键和一个“复位”按键。
二、增加功能增加一个“暂停”按键和一个“快加”按键(每10ms快速加一)三、设计提要本实验利用单片机的定时器/计数器定时和记数的原理,结合dvcc实验箱上的集成电路芯片8032、LED数码管以及实验箱上的按键来设计计时器。
将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。
其中本实验设计了四个开关按键:其中一个按键按下去时以1秒加一开始计时,即秒表开始键(本实验中当开关从1变为0时开始计时),另一个按键按下去时暂停计时,使秒表停留在原先的计时(本实验中当相应开关从1变为0时即停止计时),第三个按键按下去时清0(本实验中当相应开关从1变为0时即停止计时),第四按键按下去则是以每10ms秒快速加一计时(本实验中当开关从1变为0 时开始计时)。
本实验中开始时都要使各按键回到各初始位置,即都处于1状态。
三、课设目的1、通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2、掌握定时器、外部中断的设置和编程原理。
3、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
四、意义该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、快加功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。
五、本人所做工作根据相关的单片机材料,利用所学的单片机知识,结合DVCC系列单片机微机仿真实验系统中的软件和硬件(集成电路芯片8032,七段数码管,开关电路及时钟信号电路,按键等),编写能够实现该项目的软件程序,最后将软、硬件有机的结合起来,进行有效的调试,达到完成该实验课程设计的目的要求。
六、实验内容用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
单片机课程设计之多功能秒表
单片机报告—————多功能秒表实验者:蒋晓婷班级:2008级电自9班学号:20080711304组员:丁秀香一、实验要求1.硬件电气原理图一张(含元器件清单一份;所有引脚标注清楚)2、软件程序清单一套(含主要程序流程图,全部源程序及详细的注释)3、使用功能说明书一份(含功能描述及操作指南和收获体会)4、软件在开发板上调试成功,并能成功表演,达到设计课题的要求二、实现要求秒表功能1、设计可以显示0.1—100s的秒表,最小单位为毫秒;2、通过按键控制秒表清零、暂停、继续、退出等功能;3、具有倒计时功能;4、秒表可以分组存储,批量显示;5、显示北京时间;6、可利用蜂鸣器添加提示音。
附加功能1、利用实时钟芯片,显示年月日以及星期;2、选择蜂鸣器电路,实现闹钟设置和报警功能;3、可以通过按键调整日期、时间;4、可以设置两组闹钟,闹钟时间到,蜂鸣器响;5、利用蜂鸣器实现整点报时。
三、硬件原理:ADUC848管脚图如下图所示。
Pin1~4:(P1.0~P1.3)作为矩阵式键盘或独立按键的输入,P1口只能用于输入,默认用于模拟输入,作为数字输入使用时应先往P1口相应引脚写0,这里可以用P0&=0xf0。
若P2、P3、P0口要作为输入,则应往相应引脚写1。
Pin5、6:AVDD、AGND,模拟电源输入。
Pin7、8:外部参考电压接入,Pin7接AGND。
片内DAC有2.5V内部参考,ADC有1.25V内部参考。
Pin9、10:(P1.4、P1.5)两路AD输入,可做差分输入,需要设置ADC的寄存器。
Pin11、12:(P1.6、P1.7)各200uA激励电流源,可配合RTD等做应用。
Pin13:两路AD输入做普通输入时的电压参考端,AD输入电压不能低于此引脚电压。
Pin14:片内DAC输出。
Pin15:复位引脚。
Pin16、17:单片机RS232接口的RXD(P3.0)TXD(P3.1)。
Pin18:(P3.2)外部中断0,用于红外接收和PS/2接口。
基于单片机的多功能秒表的课程设计报告书
单片机课程设计题目基于单片机的多功能秒表目录1 设计总体方案 (1)1.1 设计要求与目的 (1)1.2 设计思路 (1)1.3工作原理 (2)1.4 功能说明 (2)2 主要元器件介绍 (3)2.1 AT89C51单片机 (3)2.2 四位共阴数码管 (5)3 系统硬件设计 (6)3.1 电源电路 (6)3.2 时钟电路 (6)3.3 复位电路 (7)3.4 显示电路 (7)3.5 键盘电路 (8)4 软件设计 (9)5 系统调试及结果分析 (11)6 总结 (12)参考文献 (13)附录1:总体电路原理图 (14)附录2:元器件清单 (15)附录3:实物图 (16)附录4:源程序 (17)1 设计总体方案1.1 设计要求与目的设计一个单片机控制的多功能秒表系统,利用单片机的定时器/计时器定时和计数的原理,结合显示电路、用四位共阴极LED数码管以及按键来设计秒表计时器,实现暂停与清零功能,并多次计数。
在设计系统前,我们主要考虑以下一些原则:节约元器件,尽量降低系统实现成本;硬件电路尽量简单,使得硬件实现、问题检查、软件编程以及系统调试的难度都降低;能在软件上实现,使芯片利用率尽可能高;软件设计方案要优化,使得做成实物尽可能简单,方便仿真与检测;设计方案要和当前的试验平台相应;充分利用各种资源,尽量采用成熟与经典的电路。
1.2 设计思路因为秒表的设计相对较为简单,因此在软件设计中我们一般采用模块化程序设计的方法。
模块是一个具有独立功能的程序,可以单独设计、调试与管理,模块可以分为功能模块和控制模块两类。
我们通过模块化程序设计可按适当的原则把一个情况复杂、规模较大的程序划分为一个个较小的、功能相关而又相对独立的模块。
根据电子秒表的设计要求,主要设计一个计数系统、译码驱动、数码显示系统、控制系统。
其主要核心技术在于产生秒表信号的计数脉冲与计数器之间的级联。
1.3工作原理本系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。
单片机-设计报告-秒表 2
单片机秒表课程设计前言本设计主要是对51单片机的一个方面的扩展,是能实现一般定时功能的设计。
系统采用单片机AT89C51作为本设计的核心元件,在其基础上外围扩展芯片和外围电路,附加时钟电路,复位电路,键盘接口及LED显示器,键盘采用独立连接式。
外围设备有LED显示驱动器及相应的显示数字电子钟设计与制作可采用数字电路实现,也可以采用单片机来完成。
若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。
若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计与制作中采用单片机AT89C51,它是低功耗、高性能的CMOS型8位单片机。
片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。
另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。
按键电路设有两个按键:从上往下为k1和k2键。
按下k1键用于启动和暂停秒表;k2键用于复位。
另外还有一个单片机的复位按键,此按键用于总复位,使单片机和LED数码管同时复位。
目录一、设计任务和要求 (2)(一)系统功能任务 (2)(二)系统设计要求 (2)二、方案设计与论证 (2)三、硬件设计 (3)(1)时钟电路 (3)(2)按钮电路 (4)(3)显示电路 (6)(4)动态显示原理 (7)(5)80C51中断的控制 (7)(6)定时/计数器的控制 (7)(7)单片机 (8)(8)MAX7219 (8)四、总原理图及元器件清单 (9)(1)总原理图 (10)(2)元器件清单 (11)五、源程序.......................................................................................................... ........... . (11)六、结论与心得 (15)七、参考文献..................................................................................... 错误!未定义书签。
单片机秒表设计课程设计报告
单片机课程设计报告一、实验题目秒表系统设计——用两个数码管来显示秒表数据,一个显示秒,另一个显示十分之一秒。
二、系统总体功能用两个数码管来显示秒表数据,一个显示秒,另一个显示十分之一秒。
有一个按键来启动秒表的开始和结束。
增加一个清零按钮,计时结束后可以清零。
三、实验目的1、利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。
2、综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
3、通过本次课程设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。
4、通过本次试验,增强自己的动手能力。
认识单片机在日常生活中的应用的广泛性,实用性。
四、系统设计方案本实验利用单片机的定时器/计数器定时和记数的原理,通过采用proteus 仿真软件来模拟实现。
模拟利用AT89C51单片机、LED数码管以及控件来控制秒表的计数以及计数的开启/暂停/继续与复位!其中有两个数码管用来显示数据,一个数码管显示秒(两位),另一个数码管显示十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。
计秒数码管采用两位的数码管,当计数超过范围是所有数码管全部清零重新计数。
五、试验设计所需硬件(模拟硬件)Atmel89C51单片机芯片一个、LED数码显示管三个,低压电源、开关(按钮)两个、电阻、电容及导线若干。
由于条件限制本实验采用软件模拟硬件系统,采用proteus软件进行模拟设计及调试工作。
图2 Atmel89C52单片机外部引脚图六、试验设计原理图图3 试验设计电路图七、软件设计分析程序流程图:是 否 是 否定时器溢出中断对定时器重新赋值进行加一操作后重新计算时间往P0口和P2口送显示时间数码管显示中断返回主函数对定时器/计数器初始化始化程序开始判断P0^4口是否有低电平信号开中断并启动定时器开始、暂停或者继续 计数置零判断P0^7口是否有低电平信号 手动开关实验程序清单:#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar code table[]="2010-05-18";uchar code time[]="23:00:00";uchar code xi1[]="mon";uchar code xi2[]="tue";uchar code xi3[]="wed";uchar code xi4[]="thu";uchar code xi5[]="fri";uchar code xi6[]="sat";uchar code xi7[]="sun";sbit wr=P3^3;sbit rd=P3^5;sbit lcde=P3^4;uint i,shi,fen,miao,nian,yue,ri,count,num,x; void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_add(uchar add){rd=0;P0=add;lcde=1;delay(5);lcde=0;}void write_date(uchar date){rd=1;P0=date;lcde=1;delay(5);lcde=0;}void writesfm(uchar add,uchar date){uchar s,g;s=date/10;g=date%10;write_add(0x80+0x40+add);write_date(0x30+s);write_date(0x30+g);}void writenyr(uchar add,uchar date) {uchar s,g;s=date/10;g=date%10;write_add(0x80+0x00+add);write_date(0x30+s);write_date(0x30+g);}void xi(uchar a){if(a==1){write_add(0x80+0x00+10);for(i=0;i<3;i++){write_date(xi1[i]);delay(5);}}if(a==2){write_add(0x80+0x00+10);for(i=0;i<3;i++){write_date(xi2[i]);delay(5);}}if(a==3){write_add(0x80+0x00+10);for(i=0;i<3;i++){write_date(xi3[i]);delay(5);}}if(a==4){write_add(0x80+0x00+10); for(i=0;i<3;i++){write_date(xi4[i]);delay(5);}}if(a==5){write_add(0x80+0x00+10); for(i=0;i<3;i++){write_date(xi5[i]);delay(5);}}if(a==6){write_add(0x80+0x00+10); for(i=0;i<3;i++){write_date(xi6[i]);delay(5);}}if(a==7){write_add(0x80+0x00+10); for(i=0;i<3;i++){write_date(xi7[i]);delay(5);}}}void init(){lcde=0;wr=0;write_add(0x38);write_add(0x0c);write_add(0x06);write_add(0x01);write_add(0x80+0x00+0); for(i=0;i<10;i++){write_date(table[i]); delay(5);}write_add(0x80+0x00+10); for(i=0;i<3;i++){write_date(xi7[i]);delay(5);}write_add(0x80+0x40+0); for(i=0;i<8;i++){write_date(time[i]); delay(5);}}void main(){init();TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;while(1){key();if(count==20){count=0;miao++;if(miao==60){miao=0;fen++;if(fen==60){fen=0;shi++;if(shi==24){shi=0;ri++;x++;xi(x);if(x==7){x=0;}if(ri==30){ri=0;yue++;if(yue==13){yue=0;nian++;if(nian==100){nian=0;}writenyr(2,nian);}writenyr(5,yue);}writenyr(8,ri);}writesfm(0,shi);}writesfm(3,fen);}writesfm(6,miao);}}}void t()interrupt 1{TH0=(65536-50000)/256; TL0=(65536-50000)%256; count++;}八、试验设计总结通过这一周的课程设计,我对一些专业知识和电子设计有了更深的了解,同时也尝试着去应用自己的所掌握的知识。
基于单片机的多功能秒表的课程设计报告书
单片机课程设计题目基于单片机的多功能秒表目录1 设计总体方案 (1)1.1 设计要求与目的 (1)1.2 设计思路 (1)1.3工作原理 (2)1.4 功能说明 (2)2 主要元器件介绍 (3)2.1 AT89C51单片机 (3)2.2 四位共阴数码管 (5)3 系统硬件设计 (6)3.1 电源电路 (6)3.2 时钟电路 (6)3.3 复位电路 (7)3.4 显示电路 (7)3.5 键盘电路 (8)4 软件设计 (9)5 系统调试及结果分析 (11)6 总结 (12)参考文献 (13)附录1:总体电路原理图 (14)附录2:元器件清单 (15)附录3:实物图 (16)附录4:源程序 (17)1 设计总体方案1.1 设计要求与目的设计一个单片机控制的多功能秒表系统,利用单片机的定时器/计时器定时和计数的原理,结合显示电路、用四位共阴极LED数码管以及按键来设计秒表计时器,实现暂停与清零功能,并多次计数。
在设计系统前,我们主要考虑以下一些原则:节约元器件,尽量降低系统实现成本;硬件电路尽量简单,使得硬件实现、问题检查、软件编程以及系统调试的难度都降低;能在软件上实现,使芯片利用率尽可能高;软件设计方案要优化,使得做成实物尽可能简单,方便仿真与检测;设计方案要和当前的试验平台相应;充分利用各种资源,尽量采用成熟与经典的电路。
1.2 设计思路因为秒表的设计相对较为简单,因此在软件设计中我们一般采用模块化程序设计的方法。
模块是一个具有独立功能的程序,可以单独设计、调试与管理,模块可以分为功能模块和控制模块两类。
我们通过模块化程序设计可按适当的原则把一个情况复杂、规模较大的程序划分为一个个较小的、功能相关而又相对独立的模块。
根据电子秒表的设计要求,主要设计一个计数系统、译码驱动、数码显示系统、控制系统。
其主要核心技术在于产生秒表信号的计数脉冲与计数器之间的级联。
1.3工作原理本系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。
单片机课程设计报告 秒表
单片机课程设计报告院系:****班别:****课程名称:****姓名:****学号:****指导老师:****日期:****年**月**日一、设计任务与要求用89C51设计一个2位的LED数码作为“秒表”。
显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。
能存储三组计时。
按一次开始键,开始计数,第二次按开始键后,计时停止。
之后再按开始键,则轮流显示存储的三个计时值,直到按复位键后,再按开始键,则开始重新计时。
二、设计思想和设计说明本设计利用AT89C52单片机的定时器/计时器定时和计数的原理,使其能精确计时。
设计中包括硬件电路的设计和系统程序的设计,其硬件电路主要有主控制器、计时与显示电路和复位电路等。
主控制器用AT89C52,显示电路采用共阴极LED数码管显示计时时间。
利用中断系统使其能实现开始暂停的功能。
P3.2,P3.3开口接2个按钮,分别实现开始,暂停,复位的功能。
电路原理图设计最基本得要求是正确性,其次布局合理,最后在正确性和布局合理的前提下力求完美。
三、硬件原理框图四、硬件原理图与其软件配合1、程序存储器2、数据存储器六、程序流程图七、源程序清单====================================================== ORG 0000HAJMP MAINORG 0003HAJMP X0_INTORG 000BHAJMP T0_INTORG 0013HAJMP X1_INTMAIN:MOV TMOD,#01H ;T0定时方式1MOV TH0, #(65536-50000) / 256 ;50ms@12MHzMOV TL0, #(65536-50000) MOD 256;SETB TR0SETB ET0 ;开启定时中断SETB EX0SETB EX1SETB EA ;定时器初始化结束,下面循环显示即可MOV R1, #99H ;0~99计数.MOV R7, #1 ;50ms计数.MOV P0, #3FHMOV P2, #3FHLOOP:SJMP LOOP;-----------------------------------------------------------DELAY: ;延时子程序.AA4: MOV R4, #0DJNZ R4, $DJNZ R4, $RET;-----------------------------------------------------------X0_INT: ;启动/停止CPL F0RETI;-----------------------------------------------------------X1_INT: ;清零MOV R1, #0MOV P0, #3FHMOV P2, #3FHRETI;-----------------------------------------------------------T0_INT: ;50ms中断执行一次.MOV TL0, #(65536-50000) MOD 256;MOV TH0, #(65536-50000) / 256 ;50ms@12MHzDJNZ R7, T0_END ;中断不到20次.MOV R7, #20JNB F0, T0_ENDMOV A, R1ADD A, #1DA AMOV R1, AANL A, #0FHMOV DPTR, #TABMOVC A, @A+DPTR ;查出段码MOV P2, AMOV A, R1SWAP AANL A, #0FHMOVC A, @A+DPTR ;查出段码MOV P0, A ;显示十位数.T0_END:RETI;-----------------------------------------------------------TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH, 6FHEND====================================================== =====八、芯片资料AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
14 届单片机原理及应用课程设计多功能秒表学生姓名万明辉学号3052209036所属学院机械电气化工程学院专业农业电气化与自动化班级14-2指导教师王丽胡将日期2012.12摘要在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。
秒表的出现,解决了传统的由于人为因素造成的误差和不公平性。
本设计的多功能秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及按键电路来设计计时器。
将软、硬件有机地结合起来,使得系统能够正确地进行计数,并且结合相应的显示驱动程序,使数码管能够正确地显示时间,暂停和中断。
我们设计的秒表可以同时记录八个相对独立的时间,通过上翻下翻来查看这八个不同的计时值,可谓功能强大。
其中软件系统采用汇编语言编写程序,包括显示程序,计数程序,中断,延时程序,按键消抖程序等,硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。
本设计是设计一个单片机控制的多功能秒表系统。
关键字:单片机、AT89C51、多功能秒表、LED数码管、PROTEUS目录1.概述1.1设计目的……………………………………………………………………31.2 设计要求 (3)1.3 设计意义……………………………………………………………………32.系统总体方案及硬件设计………………………………………………………32.1硬件设计 (3)2.1.1 89C51单片机 (3)2.1.2振荡电路……………………………………………………………42.1.3复位电路 (5)2.1.4按键电路 (5)2.1.5显示电路 (6)2.1.6系统电路图 (7)3.软件设计 (7)3.1设计特点 (8)3.2设计思路 (8)4.PROTEUS软件仿真 (14)5清单………………………………………………………………………………146.课程设计体会 (15)1.概述1.1设计目的设计一个单片机控制的秒表系统。
利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计秒表。
将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时具有开始/暂停,记录,上翻下翻,清零等功能。
1.2设计要求(1)共四位LED显示,显示时间为00:00~59.99(2)共五个按键,分别是开始/暂停,记录,上翻,下翻,清零键;(3)能同时记录多个相对独立的时间并分别显示;(4)翻页按钮查看多个不同的计时值;1.3设计意义(1)通过本次课程设计可以使我们进一步熟悉和掌握单片机内部结构和工作原理,了解单片机应用系统设计的基本步骤和方法。
(2)通过利用AT89C51单片机,理解单片机在自动化仪表中的作用以及掌握单片机的编程方法。
(3)通过设计一个简单的实际应用输入及显示模拟系统,掌握单片机仿真软件PROTEUS的使用方法。
(4)该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、功能,并能同时记录多个相对独立的时间利用翻页按钮查看多个不同的计时值,该种秒表在现实生活中应用广泛,具有现实意义。
2.系统总体方案及硬件设计2.1硬件设计2.1.189C51单片机MCS-51系列单片机是8位单片机产品,89C51是其中的典型代表,基本模块包括以下几个部分:(1)CPU:89C51的CPU是8位的,另外89C51内部有1个位处理器(2)R0M:4KB的片内程序存储器,存放开发调试完成的应用程序(3)RAM:256B的片内数据存储器,容量小,但作用大(4)I/O口:P0-P3,共4个口32条双向且可位寻址的I/O口线(5)中断系统:共5个中断源,3个内部中断,2个外部中断(6)定时器/计数器:2个16位的可编程定时器/计数器(7)通用串行口:全双工通用异步接收器/发送器(8)振荡器:89C51的外接晶振与内部时钟振荡器为CPU提供时钟信号(9)总线控制:89C51对外提供若干控制总线,便于系统扩展89C51的引脚图如下:89C51单片机引脚图2.1.2晶体振荡电路89C51芯片内部有一个高增益反相放大器,用于构成振荡器。
引线XTAL1和X TAL2分别为反向放大器的输入和输出,两端跨接石英晶体及两个电容就可构成稳定的自激振荡器。
这里,我们选用51单片机12MHZ的内部振荡方式,电容器C1,C2起稳定振荡频率,并对振荡频率有微调作用,C1和C2可在20-100PF之间取值,这里取33P。
2.1.3 复位电路采用上电加按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。
当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电加按键复位的操作。
2.1.4按键电路在按键电路中,我们可以在I/O口上直接接按键,或者通过I/O口设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。
键盘扫描电路节省I/O口,但编程有些复杂,在这里,由于我们所用的按键较少,且系统是一个小系统,有足够的I/O口可以使用,为了使程序简化,我们采用按键电路,用部分P1口做开关,P1.0开始/暂停,P1.1记录,P1.2上翻,P1.3下翻,P1.4清零。
对于按键的设计,采用了防抖动的程序设计,使系统的性能得到进一步的提升。
当按键被按下时,相应的引脚被拉低,经扫描后,获得键值,并执行键功能程序,因此按下不同的按键,将执行不同的功能程序。
2.1.5显示电路显示电路既可以选用液晶显示器,也可以选用数码管显示。
我们采用的是数码管显示电路。
用四个共阴极LED显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。
在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O口。
在设计中,我们采用LED动态显示,用P0口驱动显示。
由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。
2.1.6 系统电路图3.软件设计3.1设计特点在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。
把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。
应用系统的程序由包含多个模块的主程序和各种子程序组成。
各程序模块都要完成一个明确的任务,实现某个具体的功能,如:计数、延时、和显示等,在具体需要时调用相应的模块即可。
功能描述:用四位LED数码管显示时间。
一个"开始/暂停"键,一个"复位"键,一个“记录”键,可同时记录八个相对独立的时间;一个“上翻”键,一个“下翻”键,查看八个不同的计时值。
五个按键分别通过五个端口控制秒表的五个功能。
3.2设计思路(程序流程图及程序)程序如下:/*1、程序目的:使用定时器学习秒表计时,记录8组数据,通过上翻、下翻键查看记录的数据2、硬件要求:数码管、晶振12M*/#include <reg52.h>Code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管 0-9code unsigned char tab1[]={0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF} ;//共阴数码管0-9带小数点sbitkey1= P1^0;ﻩﻩ//开始、暂停sbitkey2= P1^1;ﻩﻩ//记数sbit key3 = P1^2; ﻩ//上翻sbitkey4 =P1^3;ﻩﻩﻩ//下翻sbit key5 = P1^4;ﻩﻩﻩ//清零static unsigned char ms,sec;static unsigned char Sec[8],Ms[8];static int i,j;voiddelay(unsigned int cnt) //延时程序{while(--cnt);}ﻩﻩﻩﻩvoidmain(){unsigned char key3_flag=0,key4_flag=0;TMOD |=0x01;//定时器0 10ms in 12M crystal用于计时ﻩTH0=0xd8;TL0=0xf0;ET0=1;ﻩTR0=0;TMOD |=0x10;//定时器1用于动态扫描TH1=0xF8;ﻩTL1=0xf0;ET1=1;TR1=1;EA=1;ﻩsec=0;//初始化ms=0;P1=0xff;ﻩi=0;j=0;start:while(1){ //开始、暂停if(!key1)ﻩﻩﻩ //判断是否按下ﻩ {delay(50);ﻩ //去抖ﻩif(!key1)ﻩ while(!key1) //等待按键释放{;}ﻩﻩTR0=!TR0;}//记录ﻩif(!key2)ﻩﻩﻩ//判断是否按下{delay(50); ﻩ //去抖ﻩif(!key2)ﻩ { while(!key2) //等待按键释放ﻩ{;}ﻩﻩﻩﻩﻩﻩif(i==8)ﻩ //8组数据记录完毕ﻩﻩﻩﻩ{TR0=0; goto start;}ﻩSec[i]= sec; //将数据存入数组ﻩMs[i]= ms;i++;}}ﻩﻩ//上翻if(!key3)ﻩﻩ{ﻩﻩdelay(50);if(!key3){ﻩwhile(!key3){;}ﻩﻩTR0=0;ﻩkey3_flag=1;ﻩﻩ//按键3标志ﻩﻩﻩif(j==i)ﻩﻩgotostart;ﻩﻩﻩelseif(key4_flag)ﻩj+=2;ﻩkey4_flag=0;ﻩﻩﻩ sec=Sec[j];ms=Ms[j];ﻩ//显示数组里的内容ﻩ j++;ﻩ}ﻩ}ﻩ//下翻ﻩif(!key4)ﻩﻩ{ﻩdelay(50);ﻩif(!key4){ﻩﻩwhile(!key4)ﻩﻩ{;}ﻩﻩTR0=0;ﻩkey4_flag=1;ﻩﻩﻩ //按键4标志ﻩﻩif(j<0)ﻩﻩ goto start;ﻩelseﻩ if(key3_flag)ﻩﻩj-=2;ﻩﻩkey3_flag=0;ﻩﻩﻩsec=Sec[j];ms=Ms[j]; ﻩ //显示数组里的内容ﻩj--;ﻩﻩ}}ﻩ //清零ﻩif(!key5){ﻩdelay(50);ﻩif(!key5)ﻩwhile(!key5)ﻩ{;}TR0=0;ms=0;ﻩsec=0;for(i=0;i<8;i++)ﻩ{ﻩﻩﻩSec[i]=0;Ms[i]=0;}ﻩi=0;}}}/********************************//*定时中断1 *//********************************/void time1_isr(void) interrupt 3 using0//定时器1用来动态扫描{static unsigned char num;TH1=0xF8;//重入初值TL1=0xf0;switch(num)ﻩ{case 0: P2=0xfe;P0=tab[sec/10];break;//显示秒十位case 1: P2=0xfd;P0=tab1[sec%10];break; //显示秒个位ﻩcase2:ﻩP2=0xfb;P0=tab[ms/10];break;//显示十位ﻩcase 3: P2=0xf7;P0=tab[ms%10];break; //显示个位default:break;}ﻩnum++;if(num==4)ﻩnum=0;}/********************************//*定时中断0 *//********************************/voidtim(void) interrupt 1 using 1{TH0=0xd8;//重新赋值TL0=0xf0;ms++;//毫秒单元加1ﻩif(ms==100){ﻩms=0;//等于100时归零ﻩﻩ sec++;//秒加1 ﻩif(sec==60)ﻩ {sec=0;//秒等于60时归零ﻩ }}}4.PROTEUS软件仿真将以上程序清单导入先前做好的Proteus仿真电路,汇编之后,按键开始进行仿真。