单片机课程设计倒计时秒表

合集下载

单片机倒计时秒表111

单片机倒计时秒表111

单片机控制系统设计与调试实训指导说明书单片机倒计时秒表系、部:机电工程学院学生姓名:指导教师:职称专业:班级:完成时间:摘要本文通过倒计时秒表的设计,阐述了单片机最小系统的概念与设计,对单片机的定时、中断等功能模块的应用有进一步的理解;本文还阐述了单片机编程的一些方法。

关键字:单片机、电子秒表、定时、中断目录一、设计课题1.1课程设计题目 (4)1.2课程设计任务 (4)1.2课程涉及研究内容 (4)二、硬件分析设计 (4)2.1单片机的选择 (4)2.2 LED显示器 (5)2.2.1 LED显示器结构及分类 (5)2.2.2 LED显示原理 (5)2.3键盘输入 (6)三、关键技术 (6)3.1定时器的使用 (6)3.1.1 作用 (6)3.1.2技术方案 (6)3.1.3具体程序实现 (7)3.2 显示与键盘 (8)3.2.1显示 (8)3.2.2键盘 (9)3.2.3利用定时中断实现显示与查键 (11)四、电路 (13)4.1复位电路 (14)4.2电路元件 (14)4.3 I/O口线连接 (15)五、程序设计 (16)5.1程序功能 (16)5.2主要变量说明 (16)5.3程序流程图 (16)5.4程序源代码 (16)六、设计总结 (26)七、参考文献 (26)一、设计课题1.1课程设计题目本课程设计的课题是单片机倒计时秒表的设计1.2课程设计任务本课题的电子秒表系统需要实现以下的功能:1.用开关控制两种计时模式的选择。

分别是单计时模式和连续计8个的计时模式。

2.用开关控制电子秒表的启动/停止/复位,七段数码管的高2位显示秒表的秒值,低2位显示秒表的百分秒值。

3.可实现设定初值的倒计时功能。

其中设计了三种初值调整方式,分别是增1(减1)、连续增(连续减)和快速增(快速减)。

上述功能主要是为了讲述单片机定时器、键盘和LED显示器的使用方法。

1.3课题涉及研究内容:1.定时器的使用:本实例通过秒表的计时详细说明了定时器的使用方法,可以使读者对单片机定时器的使用有比较深刻的理解。

单片机反向秒表课程设计

单片机反向秒表课程设计

单片机反向秒表课程设计一、课程目标知识目标:1. 让学生掌握单片机基础知识和程序设计方法,理解反向秒表的原理;2. 让学生了解单片机定时器/计数器的工作原理及其在反向秒表中的应用;3. 使学生能够运用所学知识,设计并实现一个具有倒计时功能的反向秒表。

技能目标:1. 培养学生动手实践能力,能够独立完成单片机硬件电路的搭建;2. 培养学生编程能力,能够编写并调试反向秒表的程序;3. 培养学生解决问题和分析问题的能力,能够针对实际需求调整程序参数。

情感态度价值观目标:1. 培养学生对单片机技术的兴趣和热情,激发学生主动探究新知识的精神;2. 培养学生团队协作意识,学会与他人共同解决问题,互相学习,共同进步;3. 培养学生严谨的科学态度,养成良好的编程习惯和实验操作规范。

课程性质:本课程为实践性较强的课程,结合单片机原理和应用,以项目为导向,注重培养学生的动手能力和实际操作技能。

学生特点:学生已具备一定的单片机基础知识,具有较强的学习兴趣和动手欲望,但对程序设计和硬件搭建尚需进一步指导。

教学要求:教师需引导学生通过实践,掌握单片机反向秒表的设计方法,注重培养学生解决问题的能力和团队协作精神。

同时,关注学生的情感态度价值观培养,激发学生的学习兴趣和热情。

在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 单片机基础知识回顾:引导学生复习单片机的内部结构、工作原理及编程基础,为反向秒表设计奠定基础。

相关教材章节:第一章单片机概述、第二章单片机硬件结构、第三章单片机指令系统与编程。

2. 定时器/计数器原理:讲解单片机定时器/计数器的工作原理,及应用在反向秒表中的关键作用。

相关教材章节:第四章单片机定时器/计数器、第五章中断系统。

3. 反向秒表设计原理:分析反向秒表的原理,指导学生理解倒计时实现的方法。

相关教材章节:第七章单片机应用实例、实例2反向秒表设计。

4. 硬件电路搭建:指导学生根据设计需求,搭建单片机反向秒表的硬件电路。

单片机课程设计_基于单片机的数字秒表设计

单片机课程设计_基于单片机的数字秒表设计

单片机课程设计_基于单片机的数字秒表设计在当今科技迅速发展的时代,电子设备的应用无处不在,其中数字秒表作为一种常见的计时工具,具有广泛的应用场景,如体育比赛、科学实验、工业生产等。

本次课程设计旨在基于单片机技术实现一个数字秒表,通过对硬件电路的设计和软件程序的编写,掌握单片机系统的开发流程和方法,提高实践动手能力和解决问题的能力。

一、设计要求1、能够实现秒表的启动、暂停、复位功能。

2、计时精度达到 001 秒。

3、能够通过数码管显示计时结果。

二、系统方案设计1、硬件设计单片机选型:选用常见的 STC89C52 单片机作为核心控制器,其具有性能稳定、价格低廉、易于编程等优点。

显示模块:采用 8 位共阴极数码管作为显示器件,通过动态扫描的方式实现数字的显示。

按键模块:设置三个独立按键,分别用于启动、暂停和复位操作。

时钟模块:使用单片机内部的定时器/计数器产生精确的时钟信号,实现计时功能。

2、软件设计主程序:负责系统的初始化、按键扫描和计时处理等。

中断服务程序:利用定时器中断实现 001 秒的定时,更新计时数据。

三、硬件电路设计1、单片机最小系统包括单片机芯片、晶振电路和复位电路。

晶振频率选择 12MHz,为单片机提供时钟信号。

复位电路采用上电复位和手动复位相结合的方式,确保系统能够可靠复位。

2、显示电路将 8 位数码管的段选引脚通过限流电阻连接到单片机的 P0 口,位选引脚通过三极管连接到单片机的 P2 口。

通过动态扫描的方式,依次点亮每个数码管,实现数字的显示。

3、按键电路三个按键分别连接到单片机的 P10、P11 和 P12 引脚,采用低电平有效。

当按键按下时,相应引脚的电平被拉低,单片机通过检测引脚电平的变化来判断按键的操作。

四、软件程序设计1、主程序流程系统初始化后,进入主循环。

在主循环中,不断扫描按键状态,如果检测到启动按键按下,则启动计时;如果检测到暂停按键按下,则暂停计时;如果检测到复位按键按下,则将计时数据清零。

单片机控制秒表课程设计

单片机控制秒表课程设计

单片机控制秒表课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握单片机在秒表设计中的应用。

2. 使学生掌握秒表计时原理,了解秒表各功能模块的工作原理。

3. 帮助学生掌握相关编程语言,实现单片机控制秒表的程序编写。

技能目标:1. 培养学生运用所学知识,设计并实现一个具有启动、停止、复位和计秒功能的单片机控制秒表。

2. 提高学生动手实践能力,学会使用编程软件、下载器和调试工具。

3. 培养学生团队协作能力,分工合作完成课程设计任务。

情感态度价值观目标:1. 培养学生热爱科学、勇于探索的精神,增强对单片机及嵌入式系统学习的兴趣。

2. 培养学生严谨、认真、负责的学习态度,养成良好的学习习惯。

3. 引导学生关注科技发展,了解单片机在日常生活和工业生产中的应用,提高创新意识。

本课程针对高年级学生,具有较强的实践性和综合性。

通过本课程的学习,使学生能够将所学理论知识与实际应用相结合,提高解决实际问题的能力。

课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果。

在教学过程中,需关注学生的个体差异,激发学生的学习兴趣,培养其动手实践能力和团队协作精神,为后续学习打下坚实基础。

二、教学内容本章节教学内容主要包括以下几部分:1. 单片机基本原理:讲解单片机的组成、工作原理和功能特点,使学生了解单片机在秒表设计中的核心作用。

2. 秒表计时原理:介绍秒表的计时原理,分析秒表的启动、停止、复位和计秒功能模块。

3. 编程语言及开发环境:学习单片机编程所需的语言(如C语言),介绍编程软件、下载器和调试工具的使用。

4. 单片机控制秒表设计:根据课程目标,制定以下详细教学大纲:(1)秒表功能需求分析:讨论并明确秒表的各项功能需求。

(2)硬件设计:讲解如何选用合适的单片机、时钟电路、按键、显示屏等硬件设备。

(3)软件设计:指导学生使用C语言编写单片机控制秒表的程序代码。

(4)系统调试:教授学生如何进行硬件和软件的调试,确保秒表的正常工作。

单片机秒表课程设计 (3)

单片机秒表课程设计 (3)

单片机秒表课程设计1. 引言秒表是一种常用的计时工具,可以用来测量时间的精确度。

在本课程设计中,我们将使用单片机来设计一个简单的秒表。

本文档将详细介绍该秒表的设计思路、硬件和软件实现以及测试结果。

2. 设计思路我们的设计目标是实现一个简单的秒表,包括计时、暂停和复位功能。

我们将采用基于单片机的设计,使用定时器和中断来实现计时。

具体的设计思路如下:•使用微控制器作为核心控制单元,我们选择XXXX型号的单片机。

•使用定时器模块来计时,通过设置定时器的计数频率来控制计时的精确度。

•使用外部中断按钮来控制计时的开始、暂停和复位操作。

•使用LED显示屏来显示计时结果。

3. 硬件设计3.1 硬件连接在硬件设计方面,我们需要将单片机与其他外部设备进行连接。

具体的连接方式如下:•将定时器模块的输出引脚连接到单片机的计时输入引脚。

•将外部中断按钮连接到单片机的中断输入引脚。

•将LED显示屏的控制引脚连接到单片机的输出引脚。

3.2 硬件组成本设计所需要的硬件组成如下:•单片机:XXXX型号微控制器•定时器模块•外部中断按钮•LED显示屏4. 软件设计4.1 主程序框架主程序的框架如下:#include <reg51.h>// 定义全局变量和标志位// 定时器中断函数// 外部中断中断函数// 主程序入口void main() {// 初始化定时器和中断// 循环检测按钮状态,并执行相应操作}4.2 定时器中断函数定时器中断函数用于实现计时功能,其主要逻辑如下:1.获取当前的计数值,并进行相关处理。

2.更新LED显示屏上的计时数据。

4.3 外部中断函数外部中断函数用于响应按钮的按压操作,其主要逻辑如下:1.判断按钮的按下类型,根据不同的按压类型执行相应的操作(开始、暂停或复位)。

2.根据操作类型更新相应的标志位。

4.4 功能函数除了定时器中断函数和外部中断函数之外,还可以编写一些功能函数来实现计时、暂停和复位等功能。

单片机秒表课程设计报告

单片机秒表课程设计报告

一:课程设计题目秒表/时钟计时器二:课程设计任务与要求:利用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。

单片机课程设计——秒表

单片机课程设计——秒表

单片机预习报告--------------秒表一、题目分析利用单片机内部定时/计数器和中断功能,实现分、秒、十分之一秒的正计时和倒计时功能,并将计时时间通过六位数码管实时动态显示出来。

倒计时模式中可通过键盘上的按键分别对分、秒进行定时设定,在计时过程中,可通过相应按钮进行暂停、开始,从而实现了六位倒计时秒表功能。

二.系统总体设计与框图系统框图如图下图所示。

该过程是:利用单片机8051实现计数功能,按键开关 K4按下,切换定时与计时。

定时范围在0到99分,计时范围在0到99.99.秒。

首先通过检测按键K4,来确定系统工作什么模式,计时模式有开始,暂停,复位3种功能,倒计时模式有,置数,开始,暂停,复位功能。

系统总体设计与框图三.解决方案:初始化为何种状态,开关是否按下,显示是定时状态还是计时状态。

若为定时状态,。

用6个共阴数码管LED显示起显示时间,采用动态显示的方法,P2.4、P2.5、P2.6、P2.7作为位选信号,P0口输出选段码。

键盘为独立式按键,分别接在P3.2、P3.3、P3.4、P3.5上。

K1为设置/启动功能键。

按下时,系统进入时间设置;再按下,系统启动。

K2为倒计时时间十位数设定键,按下时十位数字在0到9的范围。

K3倒计时个位数设定键,按下时,个位数字在0到9的范围。

K4为复位键。

K5为定时与计时的切换键,按下切换到计时状态,不按为定时状态。

P3.5连接发光二极管状态指示,系统时间设为定时状态熄灭,倒计时状态闪烁。

P3.6输出控制信号驱动蜂鸣器,倒计时时间到,蜂鸣器响。

开始正计时,正计时结束,蜂鸣器再响,程序结束。

四.各模块方案1.计时模式开始计时:利用外部中断1与定时中断1进行开始功能与计时功能暂停计时:利用外部中断关闭时实现暂停功能硬件复位:利用电容的冲电与放电特性实现硬件复位。

实现方法:用8051单片机做一个最小系统,计数器的复位功能通过单片机的硬件复位来实现。

秒表的显示用数码管显示,秒表的秒计数和循环通过程序控制单片机的输出来显示在数码管上。

单片机60分钟倒计时秒表

单片机60分钟倒计时秒表

60分钟倒计时秒表功能:1.带有启动键Start,暂停键Pause,停止键Stop,复位键Reset;2.4位数码管显示分(两位)秒(两位);3.按启动键启动从60分开始倒计时,按暂停键暂停,显示保持原来计时时间,再次按启动键继续计时,按停止键停止计时,复位键复位,到零停止计时.4.按停止键后,可按中间的4个键,分别对应分的十位(2键),个位(4键),和秒的十位(5键),个位(9键),按动一下,相应的位增1,并保证时间的正确值,再按一次停止键,保存设置值,按其它键则放弃设置时间值,恢复原来的时间.电路图:计时器工作模式:编码(54H单元) 当前工作模式00H Reset01H Start02H Pause03H Stop主程序流程:主程序代码段:ORG 0000HLJMP MAINORG 000BHLJMP TIMER0ORG 1000HMAIN: ACALL INIT ;初始化定时器SETB EA ;开总中断SETB ET0 ;开定时器0中断MOV A, #03H ;设置8155的工作模式, PA, PB输出, PC输入.MOV DPTR, #7F00HMOVX @DPTR, ABEGIN: ACALL DISACALL CLEARACALL CCSCANJNZ INK1AJMP BEGININK1: ACALL DISACALL CLEARACALL CCSCANJNZ INK2AJMP BEGININK2: MOV R2, #7FH ;从最左边列开始扫描MOV R4, #00HCOLUM: MOV DPTR, #7F02HMOV A, R2MOVX @DPTR, AINC DPTRMOVX A, @DPTRJB ACC.2, LONEMOV A, #00HAJMP KCODELONE: JB ACC.1, NEXTMOV A, #04HKCODE: ADD A, R4ACALL PUTBUFKON: ACALL DISACALL CLEARACALL CCSCANJNZ KONNEXT: INC R4MOV A, R2JNB ACC.4, KERRRR AMOV R2, AAJMP COLUMKERR: AJMP BEGINCCSCAN: MOV DPTR, #7F02HMOV A, #00HMOVX @DPTR, AINC DPTRMOVX A, @DPTRCPL AANL A, #03HRETCLEAR: MOV DPTR, #7F01HMOV A, #00HMOVX @DPTR, ARETINIT: MOV 53H, #06H ;分十位MOV 52H, #00H ;分个位MOV 51H, #00H ;秒十位MOV 50H, #00H ;秒个位MOV 54H, #00H ;存放当前工作模式, 00:Reset, 01 Start, 02 Pause, 03 StopMOV 55H, #0AH ;定时计数用, 定时器每次中断0.1s, 计数10次, 定时1sCLR TR0MOV TMOD, 01H ;定时器工作在方式1, 16位定时器MOV TH0, #3CHMOV TL0, #0B0HRETDIS: PUSH ACCPUSH 00HPUSH 03HMOV A, #03HMOV DPTR, #7F00HMOVX @DPTR, AMOV R0, #50HMOV R3, #0EFHMOV A, 54HCJNE A, #03H, DIS0MOV R0, #60HDIS0: MOV A, R3AGAIN: MOV DPTR, #7F02HMOVX @DPTR, AMOV A, @R0MOV DTPR, DAT ASMOVC A, @A+DPTRMOV DPTR, #7F01HMOVX @DPTR, AACALL DL1MSINC R0MOV A, R3JNB ACC.0, OUTRL AMOV R3, AAJMP AGAINOUT: POP 03HPOP 00HPOP ACCRETDAT AS: DB 03FH, 06H, 05BH, 04FH, 066H, 06DH, 07DH DB 07H, 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71HDL1MS: MOV R7, #01HDL0: MOV R6, #0FFHDL1: DJNZ R6, DL1DJNZ R7, DL0RETPUTBUF: MOV R1, AJNZ CHKSTAR TACALL RESETFUNCSJMP GOBACKCHKSTAR T: CJNE R1, #03H, CHKPAUSEACALL STAR TFUNCSJMP GOBACKCHKPAUSE: CJNE R1, #04H, CHKSTOPACALL PAUSEFUNCSJMP GOBACKCHKSTOP: CJNE R1, #07H, CHKOTHERACALL STOPFUNCSJMP GOBACKCHKOTHER: ACALL OTHERFUNCGOBACK: RETRESETFUNC: MOV R0, 54HCJNE R0, #00H, RESET0RETCJNE R0, #01H, RESET0RETRESET0: ACALL INITMOV 54H, #00HRETSTAR TFUNC: MOV R0, 54HCJNE R0, #01H, STAR T0RETSTAR T0: MOV 54H, #00HSETB TR0RETPAUSEFUNC: MOV R0, 54HCJNE R0, #01H, PAUSE0CLR TR0MOV 54H, #02HSJMP PAUSE1PAUSE0: CJNE R0, #02H, PAUSE1SETB TR0MOV 54H, #01HPAUSE1: RETSTOPFUNC: MOV R0, 54HCJNE R0, #03H, STOP0MOV 54H, #02HMOV R0, #50HMOV R1, #60HSTOP1: MOV A, @R1MOV @R0, AINC R0INC R1CJNE R0, #54H, STOP1RETSTOP0: CLR TR0MOV 54H, #03HMOV R0, #60HMOV R1, #50HSTOP2: MOV A, @R1MOV @R0, AINC R0INC R1CJNE R1, #54H, STOP2RETOTHERFUNC: MOV R0, 54HCJNE R0, #03H, OTHER0CJNE R1, #01H, OTHER1MOV R0, #63HINC @R0CJNE @R0, #06H, OTHER0MOV @R0, #00HSJMP OTHER0OTHER1: CJNE R1, #02H, OTHER2MOV R0, #62HINC @R0CJNE @R0, #0AH, OTHER0MOV @R0, #00HSJMP OTHER0OTHER2: CJNE R1, #05H, OTHER3MOV R0, #61HINC @R0CJNE @R0, #06H, OTHER0MOV @R0, #00HSJMP OTHER0OTHER3: CJNE R1, #06H, OTHER0MOV R0, #60HINC @R0CJNE @R0, #0AH, OTHER0MOV @R0, #00HSJMP OTHER0OTHER0: RET;使用定时器0, 工作模式1, 定时0.1s, 晶振频率为6MHz;定时器初值X = 65536 –50000 = 15536 = 3CB0HTIMER0: MOV TH0, #3CHMOV TL0, #0B0HDJNZ 55H, EXIT0 ;判断是否已定时中断10, 即1秒MOV 55H, #0AHMOV R0, #50HGOON0: DEC @R0CJNE @R0, #0FFH, EXIT0MOV @R0, #09HINC R0DEC @R0CJNE @R0, #0FFH, EXIT0MOV @R0, #05HINC R0DEC @R0CJNE @R0, #0FFH, EXIT0MOV @R0, #09HINC R0DEC @R0CJNE @R0, #0FFH, EXIT0 ; 倒计时结束, 停止计时, 显示全”0”ACALL INITMOV 53H, #00HMOV 54H, #03HEXIT0: RET。

单片机课程设计倒计时秒表

单片机课程设计倒计时秒表

单片机课程设计倒计时秒表-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN一、设计目的此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。

通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验以后从事生产和科研工作打下一定的基础。

本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。

本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。

掌握单片机应用系统的软硬件设计过程、方法及实现,强化单片机应用电路的设计与分析能力。

提高学生在单片机应用方面的实践技能和科学作风;培育学生综合运用理论知识解决问题的能力,实现理论结合实际,学以至用的原则。

用所学的知识和自身课外的拓展学习加深对专业课的理解和学习;锻炼综合运用电路设计及相关电子仪器、单片机软硬件结合的理论,结合生产实际分析和解决工作工程实际问题的能力,加固、加深和扩展有关电子类,汇编语言,相关电子电路和仿真软件方面的知识和能力。

通过本次课程设计,应加强培养如下能力:(1)加强自身独立的动手能力和思考解决问题的能力,提高创造能力;(2)学会使用软件Proteus画原理图和仿真调试。

(3)学会基本焊接电路板的技能通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。

二、设计要求1、可以以实现正常秒表的所有功能,包括启动、暂停、复位等;2、可以自由设定倒计时时间(10s、20s、30s···),并进行倒计时;3、显示方式自选;4、任选一款51单片机;5、扩展功能:在秒表的基础上增加时钟功能,倒计时完成时加入报警单元,如声音、灯光等。

单片机课设(可编程倒计时装置)

单片机课设(可编程倒计时装置)

1. 课程设计的目的和任务 (1)1.1单片机秒表课程设计的概述 (1)1.2课程设计思路及描述 (2)1.3 课程设计任务和要求 (2)2.软件与硬件设计 (3)2.1系统硬件方案设计 (3)2.2软件方案设计 (4)3 程序编写的流程及课程设计效果 (5)3.1 源程序及注释 (5)3.2原理图分析 (13)3.3课程设计效果 (15)3.4资源分配表 (16)心得体会 (17)4 参考文献 (18)1. 课程设计的目的和任务1.1单片机秒表课程设计的概述一、课程设计题目倒计时秒表系统设计——用STC89C52RC设计一个5位LED数码显倒计时秒表,显示时间为分和秒,每秒自动减一。

二、增加功能增加四个预置分秒按键,分别是分和秒加减预置值设置,一个“暂停”和“开始”按键。

三,课程设计的难点单片机电子倒计时秒表系统需要解决三个主要问题,一是有关单片机定时器(一个控制音频信号定时,一个控制倒计时)的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程。

四、课程设计内容提要本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及按键扫描来设计倒计时器。

将软、硬件有机地结合起来,使得系统能够正确地进行倒计时,数码管能够正确地显示时间。

其中本课程设计有五个开关按键:其中key5键按下去时开始倒计时,即秒表开始键(同时也用作暂停键),key1和key2按键按下去时分别设置数码管分钟的加减,key3和key4按键按下去时分别控制数码管秒钟分加减。

课程设计的意义1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。

2)掌握定时器、数码管动态扫描和键盘输入编程原理。

3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

4)该课程通过单片机的定时器/计数器定时和计数原理,设计简单的倒计时器系统,拥有正确的倒计时、暂停和开始、预置,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义课程设计仪器集成电路芯片8051,七段数码管,TX-1C 单片机开发板, MCS-51系列单片机微机仿真课程系统中的软件(Keil uvision2)。

单片机 秒表计时器 课程设计3

单片机 秒表计时器 课程设计3

单片机课程设计报告书学院:土木工程学院班级:土木023 设计人:田春杰1设计题目:设计一个电子秒表计时器2总体设计:完成按下按扭启动,开始计时;再次按下该按扭后停止计时。

按下另一个按扭时,秒表清零的功能,计时数值最大为99分59秒99。

用LED数码管显示计时的时间,显示的时间应有百分之一秒为、十分之一秒位、秒个位、秒十位、分个位、分十位;利用单片机的外部中断,某键为低时产生中断开始计时,再一次为低时产生中断停止计时。

当来一外部脉冲时,产生中断使时间清零。

3 硬件系统设计:将P1.2口接到一按钮开关上,作为一个停止或开始计时的中断。

外部中断0的引脚INT0接一按钮开关,作为清零中断。

利用定时器0产生一个百分之一秒的计时中断。

4源程序如下:A_BIT EQU 20H ;数码管个位数存放内存位置B_BIT EQU 21H ;数码管十位数存放内存位置TEMP EQU 22H ;计数器数值存放内存位置;开机初始化MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入MOV P0,#0FFH;使显示时间数码管熄灭CLR F0CLR F1MOV DPTR,#NUMTAB ;指定查表启始地址;等待按键输入;根据按键的输入判断执行什么功能;按键1按下则执行功能1MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入MOV P0,#0FFH;使显示时间数码管熄灭START:JB P3.6,START1;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,START;如果是干扰就返回JNB P3.6,$;等待按键松开LJMP GN1;按键2按下则执行功能2START1: JB P3.7,START;循环判断开始按钮K2是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.7,START1;如果是干扰就返回JNB P3.7,$LJMP GN2;数码管显示秒表时间的程序GN1: ;先初始化S1:MOV A,#0MOV TEMP,AGOON1: MOV R2,#2JS1: MOV R3,#250TIME1: MOV A,TEMP ;将TEMP中的十六进制数转换成10进制MOV B,#10 ;10进制/10=10进制DIV ABMOV B_BIT,A ;十位在AMOV A_BIT,B ;个位在BLCALL DPLOP1;插入一段判断定时过程中是否有按键输入的程序段C1: JB P3.6,B1ACALL DELAY10;延时10毫秒消抖JB P3.6,C1JNB P3.6,$;等待按键松开CPL F0ZT1: ; MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入JB P3.6,$;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,ZT1;如果是干扰就返回JNB P3.6,$;等待按键松开LCALL DPLOP1B1: JB P3.7,LOOP1ACALL DELAY10;延时10毫秒消抖JB P3.7,B1JNB P3.7,$;等待按键松开AJMP OVERLOOP1: DJNZ R3,TIME1 ;2毫秒循环执行250次,时间约0.5秒DJNZ R2,JS1 ;循环执行2次,时间为1 秒钟INC TEMP;满一秒钟对时间加1MOV A,TEMPCLR CSUBB A,#60JNZ GOON1;判断TEMP的数值是否为60?不为60循环ACALL OVERRETGN2: MOV A,#14H ; 设定倒计时的时间20SMOV TEMP,A;数码管显示倒计时时间的程序;初始化MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入MOV P0,#14H;使显示时间为设定的倒计时时间GOON2: MOV R2,#2JS2: MOV R3,#250TIME2: MOV A,TEMP ;将TEMP中的十六进制数转换成10进制MOV B,#10 ;10进制/10=10进制DIV ABMOV B_BIT,A ;十位在AMOV A_BIT,B ;个位在BMOV DPTR,#NUMTAB ;指定查表启始地址DPLOP2: MOV A,A_BIT ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码MOV P0,A ;送出个位的7段代码CLR P2.5 ;开个位显示ACALL DEL Y1;显示1毫秒SETB P2.5;关闭个位显示,防止鬼影MOV A,B_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码MOV P0,A ;送出十位的7段代码CLR P2.6 ;开十位显示ACALL DEL Y1;显示1毫秒SETB P2.6;关闭十位显示,防止鬼影;插入一段判断定时过程中是否有按键输入的程序段C2: JB P3.6,B2ACALL DELAY10;延时10毫秒消抖JB P3.6,C2JNB P3.6,$;等待按键松开ZT2: MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入JB P3.6,$;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,ZT2;如果是干扰就返回JNB P3.6,$;等待按键松开B2: JB P3.7,LOOP2ACALL DELAY10;延时10毫秒消抖JB P3.7,B1JNB P3.7,$;等待按键松开AJMP OVERLOOP2: DJNZ R3,TIME2 ;2毫秒循环执行250次,时间约0.5秒DJNZ R2,JS2 ;循环执行2次,时间为1 秒钟DEC TEMP;满一秒钟对时间减1MOV A,TEMPJNZ GOON2;判断TEMP的数值是否为0?不为0循环ACALL OVERRET;结束定时OVER: AJMP START;退到开机初始化状态;1毫秒延时子程序DELY1: MOV R4,#2D1:MOV R5,#248DJNZ R5,$DJNZ R4,D1RET;10毫秒延时子程序DELAY10: MOV R4,#20D2:MOV R5,#248DJNZ R5,$DJNZ R4,D2RET;实验板上的两位一体的数码管0~9各数字的显示代码NUMTAB: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H DPLOP1: MOV A,A_BIT ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码MOV P0,A ;送出个位的7段代码CLR P2.5 ;开个位显示ACALL DEL Y1;显示1毫秒SETB P2.5;关闭个位显示,防止鬼影MOV A,B_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码MOV P0,A ;送出十位的7段代码CLR P2.6 ;开十位显示ACALL DEL Y1;显示1毫秒SETB P2.6;关闭十位显示,防止鬼影RETEND5自评分和收获体会:通过本次设计让我又一次认识到了单片机应用的广泛性,同时也看到了自己在单片机应用上的不足之处,以后还要加强学习。

单片机课程设计心得倒计时秒表【模版】

单片机课程设计心得倒计时秒表【模版】

此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。

通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验以后从事生产和科研工作打下一定的基础。

本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。

本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。

掌握单片机应用系统的软硬件设计过程、方法及实现,强化单片机应用电路的设计与分析能力。

提高学生在单片机应用方面的实践技能和科学作风;培育学生综合运用理论知识解决问题的能力,实现理论结合实际,学以至用的原则。

用所学的知识和自身课外的拓展学习加深对专业课的理解和学习;锻炼综合运用电路设计及相关电子仪器、单片机软硬件结合的理论,结合生产实际分析和解决工作工程实际问题的能力,加固、加深和扩展有关电子类,汇编语言,相关电子电路和仿真软件方面的知识和能力。

通过本次课程设计,应加强培养如下能力:(1)加强自身独立的动手能力和思考解决问题的能力,提高创造能力;(2)学会使用软件Proteus画原理图和仿真调试。

(3)学会基本焊接电路板的技能通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。

二、设计要求1、可以以实现正常秒表的所有功能,包括启动、暂停、复位等;2、可以自由设定倒计时时间(10s、20s、30s···),并进行倒计时;3、显示方式自选;4、任选一款51单片机;5、扩展功能:在秒表的基础上增加时钟功能,倒计时完成时加入报警单元,如声音、灯光等。

单片机秒表课程设计

单片机秒表课程设计

单片机秒表课程设计课程设计:单片机秒表1.课程概述本课程旨在通过设计和实现一个单片机秒表来加深学生对单片机原理和应用的理解。

通过该课程,学生将学习到单片机的基本原理、编程技巧以及秒表的设计思路和实现方法。

2.预备知识- 了解单片机的基本结构和工作原理- 掌握C语言编程基础- 熟悉计时器的工作原理3.课程目标- 掌握单片机秒表的原理和实现方法- 培养学生的动手能力和创新思维- 提高学生的编程能力和解决问题的能力4.课程大纲4.1 单片机基础知识回顾- 单片机的基本结构和工作原理- C语言与单片机的编程方法- 计时器的工作原理和使用方法4.2 秒表设计思路- 设计一个简单的秒表的功能要求和界面布局- 设计秒表的计时器模块和显示模块- 实现秒表的基本功能,包括开始、暂停、计时和复位4.3 秒表的编程实现- 使用C语言编写单片机秒表的代码- 完成秒表的功能实现和调试- 进行实际测试和性能优化4.4 实验任务- 学生按照所学内容,自行设计和实现一个单片机秒表- 学生需要编写秒表的代码并进行测试和调试- 学生需要撰写实验报告,详细描述设计思路、代码实现和成果展示5.实验条件- 单片机开发板或模拟器软件- 电脑和编程软件- 连接线和显示器等实验器材6.实验评估- 学生的实验报告和代码的完成情况- 学生在实验过程中的思考和解决问题的能力- 学生对于秒表功能和性能优化的理解和实现情况7.教学方法- 理论教学与实践相结合,通过讲解、演示和实验操作相结合的方式进行教学- 鼓励学生进行独立思考和创新,帮助学生培养解决问题的能力- 引导学生进行团队合作,提高学生的沟通和协作能力8.参考资料- 《C语言程序设计》- 《单片机原理与应用》- 网络上的相关教学资源和论文材料。

单片机课程设计倒计时秒表教程文件

单片机课程设计倒计时秒表教程文件

此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。

通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验以后从事生产和科研工作打下一定的基础。

本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。

本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。

掌握单片机应用系统的软硬件设计过程、方法及实现,强化单片机应用电路的设计与分析能力。

提高学生在单片机应用方面的实践技能和科学作风;培育学生综合运用理论知识解决问题的能力,实现理论结合实际,学以至用的原则。

用所学的知识和自身课外的拓展学习加深对专业课的理解和学习;锻炼综合运用电路设计及相关电子仪器、单片机软硬件结合的理论,结合生产实际分析和解决工作工程实际问题的能力,加固、加深和扩展有关电子类,汇编语言,相关电子电路和仿真软件方面的知识和能力。

通过本次课程设计,应加强培养如下能力:(1)加强自身独立的动手能力和思考解决问题的能力,提高创造能力;(2)学会使用软件Proteus画原理图和仿真调试。

(3)学会基本焊接电路板的技能通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。

二、设计要求1、可以以实现正常秒表的所有功能,包括启动、暂停、复位等;2、可以自由设定倒计时时间(10s、20s、30s···),并进行倒计时;3、显示方式自选;4、任选一款51单片机;5、扩展功能:在秒表的基础上增加时钟功能,倒计时完成时加入报警单元,如声音、灯光等。

单片机课程设计倒计时秒表

单片机课程设计倒计时秒表

一、设计目的此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。

通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验以后从事生产和科研工作打下一定的基础。

本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。

本次设计的重要意义还在于对单片机的部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。

掌握单片机应用系统的软硬件设计过程、方法及实现,强化单片机应用电路的设计与分析能力。

提高学生在单片机应用方面的实践技能和科学作风;培育学生综合运用理论知识解决问题的能力,实现理论结合实际,学以至用的原则。

用所学的知识和自身课外的拓展学习加深对专业课的理解和学习;锻炼综合运用电路设计及相关电子仪器、单片机软硬件结合的理论,结合生产实际分析和解决工作工程实际问题的能力,加固、加深和扩展有关电子类,汇编语言,相关电子电路和仿真软件方面的知识和能力。

通过本次课程设计,应加强培养如下能力:(1)加强自身独立的动手能力和思考解决问题的能力,提高创造能力;(2)学会使用软件Proteus画原理图和仿真调试。

(3)学会基本焊接电路板的技能通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。

二、设计要求1、可以以实现正常秒表的所有功能,包括启动、暂停、复位等;2、可以自由设定倒计时时间(10s、20s、30s···),并进行倒计时;3、显示方式自选;4、任选一款51单片机;5、扩展功能:在秒表的基础上增加时钟功能,倒计时完成时加入报警单元,如声音、灯光等。

倒计时秒表课程设计

倒计时秒表课程设计

目录一.设计目的 (1)二.设计要求 (1)三.总体设计 (1)3.1设计方案 (1)3.2硬件电路设计 (1)1)C P U部分 (1)2)晶振电路部分 (2)3)L C D显示 (3)4)键盘及蜂鸣器部分 (3)3.3软件程序设计 (4)四.方案实施 (6)4.1单片机简介 (6)4. 2 动态LCD液晶显示器显示 (6)4. 3 软件调试及调试方法 (8)五.课程设计总结 (10)六.参考文献 (10)七.附件 (11)7.1源程序 (12)7.2总体电路图 (22)一.设计目的1熟悉整个项目的流程即单片机系统设计过程2 学会使用各种仿真软件3熟练的使用汇编语言编写小的应用程序4 掌握系统的调试与安装5提高学生的自学能力和动手能力二.设计要求1)可以实现正常秒表的所有功能,包括启动,暂停,复位等2)可以自由设定倒计时时间(10s,20s,30s....),并进行倒计时(10s,20s,30s....) 3)显示方式自选4)任选一款51单片机5)扩展功能:在秒表基础上增加时钟功能;倒计时完成时加入报警单元,如声音,灯光等三.总体设计3.1设计方案1)方案讨论和设计:倒计时数字秒表的设计主要考虑以下几个问题:一,LCD液晶显示器如何显示数字0—9;二,如何用单片机来控制LCD的显示;三,单片机最小模式下的设计。

处理好这些问题此设计才能完整,为此必须先了解LCD的显示原理和接线方法,再了解单片机的组成原理和控制方法。

硬件电路的绘制和软件程序的编写是此次设计的关键和基础,只有硬件电路的设计是正确的、合理的,软件设计才可以根据硬件电路编程,以下的设计才能够进行。

2)主要任务:软件的调试和烧录3.2硬件电路设计1)CPU部分P2.0口是“调模式”num 10,num20,num30,num50,num100P2.1口是“开始”倒计时端口P2.2口是“关闭”(返回)轰鸣器口,在定时可以返回到模式状态。

P2.3口是给轰鸣器送触发信号口P2.4口是“暂停”口主要有AT89C51,按键等构成2)时钟振荡模块时钟振荡电路用于产生单片机正常工作时所需要的时钟信号,电路由两个30pF的瓷片电容和一个12MHz的晶振组成,并接入到单片机的XTAL1和XTAL2引脚处,使单片机工作于内部振荡模式。

单片机课程设计秒表

单片机课程设计秒表

单片机课程设计 秒表一、课程目标知识目标:1. 让学生掌握单片机的基本原理和功能,理解单片机在秒表设计中的应用。

2. 使学生了解秒表的计时原理,掌握秒表的程序设计方法。

3. 帮助学生掌握单片机I/O口的使用,定时器/计数器的工作原理及其编程方法。

技能目标:1. 培养学生运用C语言进行单片机程序设计的能力,能够编写简单的秒表程序。

2. 培养学生动手实践能力,能够独立完成单片机秒表的硬件连接和程序下载。

3. 提高学生分析问题、解决问题的能力,能够对程序进行调试和优化。

情感态度价值观目标:1. 培养学生对单片机及嵌入式系统的兴趣,激发学生学习主动性和创新精神。

2. 培养学生团队合作意识,学会在团队中分享观点、沟通协作。

3. 培养学生严谨的科学态度和良好的学习习惯,注重实践与理论相结合。

课程性质分析:本课程为单片机原理与应用课程的一部分,以实践操作为主,理论讲解为辅。

针对学生特点,注重培养学生的学习兴趣和动手能力。

学生特点分析:学生为高中二年级学生,具备一定的电子基础和编程能力,对新鲜事物充满好奇心,喜欢动手实践。

教学要求:结合课程性质和学生特点,将课程目标分解为具体的学习成果,注重理论与实践相结合,确保学生能够掌握单片机秒表设计的相关知识和技能。

在教学过程中,关注学生的个体差异,提供个性化指导,以促进全体学生的全面发展。

二、教学内容1. 单片机基础理论:- 单片机原理与结构- 单片机的I/O口操作- 定时器/计数器原理与应用2. C语言编程基础:- 数据类型与运算符- 控制结构(循环、分支)- 函数的定义与调用3. 秒表程序设计:- 秒表的计时原理- 程序流程图设计- 编程实现秒表功能(启动、停止、复位、计次等)4. 硬件连接与调试:- 单片机与按键、显示器的连接方法- 程序下载与调试方法- 故障分析与排查技巧教学大纲安排:第一课时:单片机基础理论,介绍单片机原理、结构及I/O口操作第二课时:C语言编程基础,讲解数据类型、运算符、控制结构等第三课时:定时器/计数器原理与应用,分析秒表的计时原理第四课时:秒表程序设计,学习程序流程图设计及编程实现第五课时:硬件连接与调试,动手实践单片机秒表的硬件连接和程序下载,进行调试与优化教材章节关联:《单片机原理与应用》第三章:单片机I/O口编程《单片机原理与应用》第四章:定时器/计数器《C语言程序设计》第二章:数据类型与运算符《C语言程序设计》第三章:控制结构《C语言程序设计》第五章:函数教学内容确保科学性和系统性,结合课程目标和教学大纲,按照以上进度进行教学,使学生能够全面掌握单片机秒表设计与实现的相关知识与技能。

(完整版)单片机秒表毕业课程设计

(完整版)单片机秒表毕业课程设计

一、 实验内容及要求1、实验内容用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。

另设计一个“开始”按键和一个“复位”按键。

再增加一个“暂停”按键和一个“快加”按键(每10ms快速加一)。

按键说明:按“开始”按键,开始计数,数码管显示从00开始每秒自动加一;按“复位”按键,系统清零,数码管显示00;按“暂停”按键,系统暂停计数,数码管显示当时的计数;按“快加”按键,系统每10ms快速加一,即数码显示管在原先的计数上快速加一。

2、实验要求了解8051芯片的的工作原理和工作方式 ,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、清零功能,精确到0.1秒。

要求选用定时器的工作方式,画出使用单片机控制LED数码管显示的电路图,并在实验箱实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零功能。

二、 课题研究目的和意义及介绍1、目的意义1) 通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。

2) 掌握定时器、外部中断的设置和编程原理。

3) 通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

4) 该实验通过单片机的定时器计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、快加功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义2、单片机的简单介绍AT89C51是一种低功耗、高性能的片内含有4KB快闪可编程擦除只读存储器(FPEROM-Flash Programmable and Eraseable Read Only Memory)的8位CMOS 微控制器,使用高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容。

主要性能:u 与MCS-51 微控制器产品系列兼容。

u 片内有4KB可在线重复编程的快闪擦写存储器u 存储数据保存时间为10年u 宽工作电压范围:Vcc可为2.7V到6Vu 全静态工作:可从0Hz至16MHzu 程序存储器具有3级加密保护u 128*8位内部RAMu 32条可编程IO线u 两个16位定时器计数器u 中断结构具有5个中断源和2个优先级u 可编程全双工串行通道u 空闲状态维持低功耗和掉电状态保存存储内容3、实验仪器集成电路芯片8032,七段数码管,AT89C51实验箱,按键,DVCC系列单片机微机仿真实验系统中的软件(WAVE 6000)三、 设计思路及描述该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片8032(芯片的功能类似于芯片AT89C51,其管脚功能也和AT89C51的管脚功能类似)中的P3.2管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能;将P3.0做为数据信号DATA输入的入口地址;将P3.1做为时钟信号CLK输入的入口地址。

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

一、设计目的此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。

通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验以后从事生产和科研工作打下一定的基础。

本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。

本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。

掌握单片机应用系统的软硬件设计过程、方法及实现,强化单片机应用电路的设计与分析能力。

提高学生在单片机应用方面的实践技能和科学作风;培育学生综合运用理论知识解决问题的能力,实现理论结合实际,学以至用的原则。

用所学的知识和自身课外的拓展学习加深对专业课的理解和学习;锻炼综合运用电路设计及相关电子仪器、单片机软硬件结合的理论,结合生产实际分析和解决工作工程实际问题的能力,加固、加深和扩展有关电子类,汇编语言,相关电子电路和仿真软件方面的知识和能力。

通过本次课程设计,应加强培养如下能力:(1)加强自身独立的动手能力和思考解决问题的能力,提高创造能力;(2)学会使用软件Proteus画原理图和仿真调试。

(3)学会基本焊接电路板的技能通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。

二、设计要求1、可以以实现正常秒表的所有功能,包括启动、暂停、复位等;2、可以自由设定倒计时时间(10s、20s、30s···),并进行倒计时;3、显示方式自选;4、任选一款51单片机;5、扩展功能:在秒表的基础上增加时钟功能,倒计时完成时加入报警单元,如声音、灯光等。

ﻬ三、总体设计3.1总体框图本硬件设计总共包括五部分电路:显示电路、振荡电路、复位电路、报警电路、按键电路。

除了单片机工作必须的振荡电路,复位电路外,该设计增加了报警电路用来提示倒计时完成,显示电路用来显示倒计时,按键电路用来设定倒计时间以及控制开始暂停。

总体设计框图如图3.1所示。

图1 总体框图3.2工作原理以AT89S51单片机为核心元件,利用两位7段共阳极数码管作为显示器件。

在此设计中共接入2个两位一体7段共阳LED 数码管,来显示实时数字,其中1个用于显示十位,1个用于显示个位,通过查表指令分别动态显示个位和十位。

2个LED数码管显示范围可达到O--99 。

按下开始键开始计时,按下倒计时键开始设定倒计时时间,再按开始键开始倒计时。

利用中断实现记录,利用单片机的外部中断0和外部中断1来实现记录和显示,把记录处理和显示处理做成分别做成外部中断0和外部中断1的中断服务程序,通过中断服务程序处理不同的动作。

利用T0做一个1秒的中断,从而实现倒计时。

另外通过数据区来记录记录值。

通过显示子程序来显示当前倒计时和记录值。

3.3主程序框图本程序采用定时器T0产生1秒定时来实现秒表的倒计时,采用外部中断0来记录不同的记录值,通过外部中断1来显示已经记录的记录值。

在主程序中初始化各个数值并且仅仅循环执行显示程序,有中断来时才转去做相应的中断服务程序。

(1) 主程序ORG 00HAJMPMAINORG 0BHAJMP T0INTORG 30HMAIN: MOV SP,#60HMOV DPTR,#TABMOV TMOD,#01H ;T0定时方式1SETB EASETB ET0MOV TH0,#3CH ;50ms定时常数MOVTL0,#0B0HMOV R0,#20 ;20x50mS=1S(2)定时中断程序T0INT: MOV TH0,#03CH; ;定时中断子程序。

重装定时常数MOV TL0,#0B0H;DJNZ R0,T0INTR ;50msX20=1S,未满20次,跳出中断子程序MOV R0,#20JNB 7FH,T0INT00 ;时间未到转T0INT00DJNZ R3,T0INTR;未到3 S 跳出中断子程序CLR 7FH ;3 S时间到,清计时时间到标志CLR TR0 ;关定时器AJMP T0INTR ;跳出中断T0INT00: JNB 7EH,T0INT0 ;7EH为倒计时标志,1为倒计时DEC R4 ;=1,R4-1CJNE R4,#0,T0INTRCLR 7EHSETB 7FH;时间到标志AJMP T0INTRT0INT0: INC R4CJNER4,#99,T0INTRSETB 7FH ;时间到标志T0INTR:RETI四、各部分电路设计4.1复位电路AT89S-51单片机的复位是靠外部电路实现的。

MCS-52单片机工作之后,只要在他的RST引线上加载10ms以上的高点平,单片机就能有效地复位。

MCS-52单片机通常采用上电自动复位和按键复位两种方式。

最简单的按键复位电路如下图:图3 复位电路按键按下瞬间,RC电路充电,RST引线出现正脉冲,只要RST保持10ms以上的高电平,就能使单片机有效的复位。

4.2 振荡电路在AT89S-51单片机一般常用内部时钟方式,也就是在XTAL1和XTAL2之间连接晶体震荡器与电容构成稳定的自激震荡器,本模块用了一个12MHZ的晶振外加两个30pf的电容,图4 振荡电路4.3按键电路由六个相同按键组成,分别作为开始,暂停,清零,倒计时,十位加一,个位加一,电路图如下:图5 按键电路4.4 两位数码显示电路由两位共阳极LED数码管和1k欧排阻构成。

数码管的位由p2.1和p2.0口决定,段选由P0口决定。

如下图:图6 显示电路4.5.报警电路报警电路由小扬声器组成,计时完成后,利用显示子程序延时约2ms求反,产生250H的方波,从而扬声器发声,电路如下图7 报警电路五、整体电路图图8 整体电路图六、仿真及调试图9 Proteus仿真图调试问题及解决方法开始在主程序的循环中没有添加调用显示子程序的语句导致在没有按键按下的情况下LED数码管没有显示。

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

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

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

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

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

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

七、设计总结刚接到课程设计的时候完全没有思路,不知该如何下手,好像自己学到的东西一点都用不上,后来经过翻阅资料从最基本的着手,开始对倒计时秒表有了一点认识,从单元电路到整体电路按部就班。

在整个课程设计完后,总的感觉是:很累,很有压力,但是很有收获。

在这个过程中,我的确学得到很多在书本上学不到的东西,如:如何将学过的单片机知识加以运用,如何查找资料,如何利用计算机来画图以及如何利用proteus进行单片机仿真等等。

通过查阅资料、接口设计、程序设计、安装调试等环节,完成AT89S-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用。

让我不仅能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,增进对单片机的感性认识,加深对单片机理论方面的理解,掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O口等。

更重要的是,团结精神,合作精神在这次课程设计中得到了很好地体现,仅凭我个人的力量是无法完成任务的。

但现在回过头来看,还是挺有成就感的,毕竟这是大学里第一次进行实物课程设计,第一次真正的将理论转化为实际,第一次实际接触电路板。

这是一笔无法估量的财富。

对单片机有了更深刻的认识和掌握,我感到很欣慰,付出的中就会有收获!。

但是由于理论和实际存在差距,我们成功进行了仿真,但是在制作电路板时始终有部分功能不能实现,尽管我们不停地调试但是终究没有效果,我们的倒计时秒表能实现自由设定时间,倒计时,报警。

最令我高兴的是我们设计的倒计时秒表不仅能倒计时也能正计时,这是在要求之外的。

由于时间有限,只有一个星期,我相信,我们还可以实现更多的功能,虽然课程设计结束了,但是在课余时间,我还会继续进行实践,从实践中学习知识掌握单片机!八、参考文献[1]张毅刚《单片机原理及应用》高等教育出版社2003年[2] 张毅刚《单片微机原理及应用》西安电子科技大学出版社1994年[3] 李全利迟荣强《单片机原理及接口技术》北京高等教育出版社 2004年[4] 楼然笛《单片机课程设计实例指导》北京航空航天大学出版社2004年[5] 何立民《单片机应用技术选编》北京航空航天大学出版社 1993年[6]梁宗善《电子技术基础课程设计》华中科技大学出版社 2009年[7]李广弟《单片机基础》北京航空航天大学出版社2001年ﻬ附录源程序代码:STRT EQU P2.2P_S EQU P2.3CLRR EQUP2.4CDWN EQU P2.5ADJHEQU P2.6ADJL EQU P2.7ORG 00HAJMPMAINORG 0BHAJMP T0INTORG30HMAIN:MOV SP,#60HMOV DPTR,#TABMOV TMOD,#01H ;T0定时方式1 SETB EASETBET0MOV TH0,#3CH ;50ms定时常数MOV TL0,#0B0HMOV R0,#20;20x50mS=1SMAIN1:ACALL ALARM ;调用报警子程序k1: ;按键检测子程序开始键LCALL DISPJBSTRT,K2ACALLDISPJNB STRT,$-2AJMP STARTk2: ;暂停键JB P_S,K3LCALL DISPJNB P_S,$-3AJMP PAUSEK3: ;清零键JB CLRR,K4LCALL DISPJNB CLRR,$-3AJMP CLEARK4: ;倒计时键JB CDWN,K5ACALL DISPJNB CDWN,$-2AJMP CDOWNK5: ;倒计时设定十位JB 7EH,K51AJMP MAIN1K51:JB ADJH,K6ACALL DISPJNB ADJH,$-2AJMP SHINCK6: ;倒计时设定个位JB 7EH,K61AJMP MAIN1K61:JBADJL,MAIN1ACALL DISPJNB ADJL,$-2AJMP SLINCSTART:SETB TR0CLR 7DH ;开始后此标志清0 ,跳过显示子程序的设定部分MOV R3,#3 ;蜂鸣3SAJMP K1PAUSE:CLR TR0AJMPK2CLEAR:CLR TR0MOVR4,#0AJMP K3CDOWN:SETB 7EH ;倒计标志,作倒计减1计数用SETB 7DH ;倒计标志,作倒计设定显示用AJMP K4SHINC:INC 23H ;23H为设定值十位缓存MOV A,23HCJNE A,#10,K5MOV23H,#0AJMP K5SLINC:INC22H ;22H为设定值个位缓存MOV A,22HCJNE A,#10,K6MOV 22H,#0AJMP K5ALARM:JB 7FH,ALARM0 ;7FH为时间到标志,RAM内存2FH的D7位AJMPALARMRT ;时间未到,跳出报警ALARM0:CPL P1.0ACALL DISP ;利用显示子程序延时约2ms求反,产生250H的方波。

相关文档
最新文档