单片机课程设计-秒表系统设计.doc_第1页
单片机课程设计-秒表系统设计.doc_第2页
单片机课程设计-秒表系统设计.doc_第3页
单片机课程设计-秒表系统设计.doc_第4页
单片机课程设计-秒表系统设计.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

东 北 石 油 大 学 课 程 设 计 课 程 单片机课程设计 题 目 秒表系统的设计 院 系 电气信息工程学院测控系 专业班级 学生姓名 学生学号 指导教师 2012年 7 月 8日东北石油大学课程设计任务书课程 单片机课程设计 题目 秒表系统的设计 专业 测控技术与仪器 姓名 学号 一、任务 以at89c51单片机为控制中心,设计一个两位led显示的电子秒表。二、设计要求1 现实时间为0099秒,每秒自动加1。2 设计一个“开始按键”、“暂停键”、及一个“复位清零键”。3 计时精度:误差1秒/月(具有微调设置)。4 基本电路包括:单片机最小系统、led显示电路、独立键盘电路等。5 提交设计报告、电路图及程序源码。6 电子妙表具有倒计时功能,即时时间到,蜂鸣器启动。三、参考资料1 余发山.单片机原理及应用技术m.徐州:中国矿业大学出版社,2003.2 杨凌霄.微型计算机原理及应用m.徐州:中国矿业大学出版社,2004.3 杨宁.单片机与控制技术m.北京:北京航空航天大学出版社,2004.6 吴国经.单片机应用技术m.北京:中国电力出版社,2003.5 杨宁.单片机与控制技术m.北京:北京航空航天大学出版社,2002.32-77.完成期限 2012.6.29 至 2012.7.8 指导教师 专业负责人 曹广华 2012年 6月 29日 秒表系统的设计目 录第1章 绪论11.1 秒表系统的概述11.2 秒表系统设计的概况11.3 本设计任务2第2章 总体方案论证与设计32.1 显示电路32.2 主控制器选择32.3 计时方案选择4第3章 系统硬件设计53.1 数字妙表电路设计53.2 复位电路设计63.3 单片机时钟振荡电路设计6第4章 系统的软件设计84.1 主程序设计84.2 设置子程序设计104.3 加减1子程序设计11第5章 系统调试与测试结果分析125.1 使用的仪器仪表125.2 系统调试125.3 测试结果12结 论13参考文献14附录1 程序15附录2 仿真效果图20第1章 绪论本文设计了一种以单片机at80c51为核心的数字频率计。介绍了单片机、数字译码和显示单元的组成和工作原理。实现开始键用来控制秒表工作的开始;暂停键用来暂停程序的运行;上翻键是正计数的开始,下翻键是倒计时的开始,利用暂停键停止;复位清零键是用来对程序复位用的,当程序出现死循环或想从00开始重新计时,按下复位键可返回程序开始,重新执行。系统简单可靠、操作简易,能基本满足一般情况下的需求。既保证了计时精度,又使系统具有较好的实时性。本秒表系统设计简洁,便于携带,扩展能力强,适用范围广。1.1 秒表系统的概述数字秒表是采用数字电路制成的实现对时间的测量。数字秒表是通信设备、音、视频等科研生产领域不可缺少的测量仪器。采用8051单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始和复位的功能。整个系统非常精简,且具有灵活的现场可更改性。1.2 秒表系统设计的概况1.2.1 问题描述设计一个秒表,按“开始”按键,开始计数,数码管显示从00每秒自动加一;按“复位”按键,系统清零,数码管显示00;按“暂停”按键,系统暂停计数,数码管显示当前的计数;按“上翻”按键,系统正向计时,按“下翻”按键,系统倒计时;当计时时间到的时候蜂鸣器发出警报.1.2.2 设计要求(1) 现实时间为0099秒,每秒自动加1(2) 设计一个“开始按键”、“暂停键”、及一个“复位清零键”。(3) 计时精度:误差1秒/月(具有微调设置)。(4) 基本电路包括:单片机最小系统、led显示电路、独立键盘电路等。(5) 提交设计报告、电路图及程序源码。(6) 电子妙表具有倒计时功能,即时时间到,蜂鸣器启动。1.3 本设计任务该设计要求进行计时并在数码管上显示时间,则可利用mcs系列单片机微机仿真实验系统中的芯片8051中的p3.2管脚作为外部中断0的入口地址,并实现“暂停”按键的功能;将p3.3作为外部中断1的入口地址,并实现“清零”按键的功能;使用p0口作为段码数据输出控制口,respack-7是一个七个电阻的排阻,p0.0、p0.1口分别实现开始、设置的功能。显示电路由两位共阴极数码管组成。使用定时器t0实现10ms的定时,进行快加延时;当想实现正常计数时的1s延时,只需要实现40次25ms的定时器t1控制延时就可以实现。其中“开始”按键当开关由0拨向1时开始计时。初始状态下计时器显示00,当按下开始键时,外部中断int0向cpu发出中断请求,cpu转去执行外部中断0服务程序,即开启定时器t0,并且进行100次计数,当到100次时,即延时1s时,产生一个中断信号,向cpu发出请求,执行计数器加一且送往数码管显示。在计时过程中,只要按下暂停键,即根据p1.0口电平变化去执行控制程序,关断定时器t0和t1,调用显示子程序,实现暂停功能。在按下暂停键时,将此时的计时时间存入中间缓存区,当再次按下开始键时,则讲中间缓存区的数据转入最终缓存区。计时采用定时器t1中断完成,定时溢出中断周期为25ms,并同时进行40次计数,当有溢出时,会产生中断信号,向cpu发出中断请求,每发出一次中断请求就对计数单元低位进行加一,达到10次就对高位进行加一,送数码管显示,依此类推,直到99秒后再加一后返回00,重新开始。再看按键的处理。这两个键可以采用中断的方法,另外几个采用扫描的方法来识别。复位键和开始键功能在于使程序从头执行,对于时间的要求即单片机上电初始化时的值00;而停止键则要用于对时间的锁定,需要比较准确的控制;而对于快加键,当检测到有快加信号时,则启动定时器t0, 完成一个周期定时时产生一个溢出中断请求,向cpu发送请求,每发一次就对计数单元低位进行加一操作,达到10次就对高位进行加一操作,送数码管显示,依次循环;同时检测是否有暂停信号,有暂停信号时,跳出快加程序,执行显示子程序。因此可以对暂停和快加按键采取扫描的方式。而对开始和复位键采用外部中断的方式。第2章 总体方案论证与设计本系统采用单片机at80c51为led显示屏的控制核心,系统主要包括led显示电路,复位电路,时钟振荡电路等。2.1 显示电路方案一: 使用led数码管显示 该方案控制最简单,根据设计要求显示格式xxxx。可以准确的显示频率大小,又由于数码管简单便宜且满足设计要求,所以选着数码管显示比较合理。顾本次设计选择方案一。 方案二: 使用lcd1520液晶显示 点阵液晶可以显示多种字符及图形,拥有友好的人机界面及强大的显示功能。特别适用于智能控制的可编程人性化显示。但是比较复杂。使用不方便。增加了难度。2.2 主控制器选择方案一:采用 mcu 内部定时器at80c51内部含有2个定时器,可以利用一个定时器计时与一个定时器计数方式采集信号。 方案二:采用数字逻辑芯片本系统有功能设置、数据装入、定时、显示、音响控制多个功能模块。各个状态保持或转移的条件依赖于键盘控制信号。由于键盘控制信号繁多,系统的逻辑状态以及相互转移更是复杂,用纯粹的数字电路或小规模的可编程逻辑电路实现该系统有一定的困难,需要用中大规模的可编程逻辑电路。这样,系统的成本就会急剧上升(相对于方案一)。因此,本设计并未采用这种方案。由于方案一具有较好的灵活性、较少的电路器件和较高的性价比,而且通过精确的软件补偿使精度完全可以满足控制需要,所以我们选择该方案完成设计。2.3 计时方案选择方案一:采用 mcu 内部定时器at80c51内部含有2个定时器,可以利用一个定时器计时与一个定时器计数方式采集信号。 方案二:使用专用时钟芯片使用微控制器控制专用时钟芯片实现计时控制,这种方案有着计时精度高、控制简单的优点,而且更易于实现日期 / 时间显示、定时等计时扩展功能。由于方案一具有较好的灵活性、较少的电路器件和较高的性价比,而且通过精确的软件补偿使精度完全可以满足控制需要,所以我们选择该方案完成设计。第3章 系统硬件设计为使该模块化led显示屏控制系统具有更加方便和灵活性,我们对系统的硬件做了精心设计。硬件电路包括数字秒表电路设计、电源电路设计、单片机晶振电路设计、单片机复位电路设计。3.1 数字妙表电路设计数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零、启动和快加电路等。主控制器采用单片机8051,显示电路采用两位共阴极led数码管显示计时时间。本设计利用at89c51单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始和复位的功能。p1口与p0口为输出段码数据,p0.0、p0.1、p0.2、p0.3、p0.4口接五个按钮开关,分别实现开始、设置、拨位、上翻和下翻的功能。外部中断0实现暂停的功能,外部中断1实现复位清零的功能。电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。硬件电路图按照图3-1进行设计。主电路见附录。键盘控制电路led显示电路蜂鸣器电路at89c51单片机 晶振电路复位电路图3-1秒表系统硬件基本电路 3.2 复位电路设计上电自动复位电路是通过外部复位电路的电容充电来实现的。当电源接通时只要vcc的上升时间不超过1ms,就可实现自动上电复位。按键电平复位电路是通过rst端经电阻与电当mcs-5l系列单片机的复位引脚rst(全称reset)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果rst持续为高电平,单片机就处于循环复位状态。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间用开关操作也能使单片机复位。上电后,由于电容c3的充电和反相门的作用,使rst持续一段时间的高电平。当单片机已在运行当中时,按下复位键reset后松开,也能使rst保持一段时间的高电平,从而实现上电或开关复位。为了便于设计的进行,本设计选用按键复位。图3-2上电复位电路图3-3按键加上电复位电路3.3 单片机时钟振荡电路设计单片机的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。利用其内部的震荡电路xtal1和xtal2外接定时元件,内部震荡电路便产生自激震荡,用示波器可以观察到xtal2的输出时钟信号。在mcs-52中通常用内部时钟方式,也就是在xtal1和xtal2之间连接晶体振荡器与电容构成稳定的自激震荡器。晶体和电容决定了单片机的工作精度为1微秒,晶体可在1.2-12mhz之间选择。mcs-51单片机在通常情况下,使用震荡频率为6mhz的石英晶体,而12mhz频率主要是在高速串行通信情况才使用,在这里我们用的是12mhz的石英晶体。对电容无严格要求,但它在取值对震荡频率的输出的稳定性、大小及震荡电路起震荡速度有点影响。c1和c2可在10-100pf之间取值,一般情况下取30pf。外部时钟方式是把外部震荡信号源直接接入xtal1或xtal2。由于xtal2的逻辑电平不是ttl,所以还要接上拉电阻。图3-4外部振荡电路图3-5内部振荡电路第4章 系统的软件设计因为秒表设计相对较为简单,因此在软件设计中我们一般采用模块化程序设计的方法。模块是一个具有独立功能的程序,可以单独设计、调试与管理,模块可分为功能模块和控制模块两类。我们通过模块化程序设计可按适当的原则把一个情况复杂、规模较大的程序系统划分为一个个较小的、功能相关而又相对独立的模块。每个小的模块完成一个确定的功能,在这些小的模块之间建立必要的联系,互相协作完成整个程序要完成的功能。它具有明显的优点,把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。其中的模块即为子程序,子程序是功能独立的程序段。子程序的基本思想是编写一次,可以重复使用。子程序的形式可以是一个程序文件,也可以是一个过程或函数。子程序总被其他程序调用而不单独执行,这与主程序相对。这个主程序也是由多个子程序模块组成,各程序模块都要完成一个明确的任务,实现某个具体的功能,暂停、开始、复位,计数和显示等,在具体需要时调用相应的模块即可。4.1 主程序设计本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。其中主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的联系。系统复位后,进入主程序,主程序流程图如图4-1所示,部分子程序流程图由图4-2、4-3给出。首先对系统进行初始化,包括设置各入口地址、中断的开启、对各个数据缓存区清“0”、赋定时器初值,初始化完毕后,就进入数码管显示程序。在主程序中还进行了赋寄存区的初始值、设置定时器初值以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。当外部中断有请求则去执行外部中断服务。并在执行完后返回主程序。开始初始化加减1子程序开始键按下设置子程序设置键按下yynn图4-1主程序流程图4.2 设置子程序设计n开始上翻键按下 下翻键按下开始键按下跳到开头下翻子程序序序上翻子程序序yyn4-2设置子程序流程图4.3 加减1子程序设计开始n40h=1?ynp0.2=1?减1子程序y加1子程序调用显示子程序ret图4-3加减1流程图第5章 系统调试与测试结果分析5.1 使用的仪器仪表 单片机仿真器 at89c51蜂鸣器 bc856a电阻板 respack7led显示屏 7seg-com-anode5.2 系统调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:定时计数的调试,数码显示的调试等,最后将各模块组合后进行整体测试。5.2.1硬件调试对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。5.2.2软件调试软件调试采用单片机仿真器wave6000l及微机,将编好的程序进行调试,主要是检查语法错误。5.2.3硬件软件联调将调试好的硬件和软件进行联调,主要调试系统的实现功能。5.3 测试结果此次系统设计结果较好,数字电子秒表是由8051单片机、共阴数码显示管、控制按键等器件构成的,设有两位计时显示,开始、暂停以及复位清零按键,计时精度小于且等于1s/月。结 论现了用at80c51单片机模拟数字秒表控制。输出结果用两个共阴极led数码管显示。软件设计时,应用中断子程序和查表的方式系统总体电路由计时电路,复位电路和显示电路构成。计时电路由单片机at80c51中的两个定时器完成。复位电路由按键复位电路构成。显示由led数码管显示电路构成。通过软硬件的仿真调试,实现了本次设计的基本功能:开始键实现了秒表开始计时的功能,暂停键实现随时停止的功能,复位键实现了复位清零的功能,设置键控制指示灯的亮灭。系统还添加了蜂鸣器,起到定时时间到时的提醒作用,拨位开关可以使秒表倒计时,上翻和下翻使秒表随时都可正计时和倒计。参考文献1 李川,汪秋蒙.isp技术的原理及实现方法j.科技资讯,2007,35期:93-94.2 万光毅.单片机实验与实践教程m.北京航空航天大学出版社,2005.1.3 张毅刚.单片机原理及应用m.高等教育出版社,2003:160-190.4 赵全利,肖兴达.单片机原理及应用教程(第二版)m.机械工业出版社,2007.5 蔡美琴等.mcs-51系列单片机系统及其应用m.高等教育出版社,2003.6 吴国经.单片机应用技术m.北京:中国电力出版社,2003.7 胡烨,姚鹏翼,陈明.protel 99se原理图与pcb设计教程m.机械工业出版社,2005:23-99.8 马忠梅.单片机的c语言应用程序设计m.北京:北京航空航天大学出版社,2006.9 周润景.基于proteus的电路与单片机仿真系统设计与仿真m.北京:北京航空航天大学出版社,2005.附录1 程序 org 0000h ajmp main org 0003h ljmp zhongduan0 org 000bh ;设置中断转移位置 ljmp dingshi0 org 0013h ljmp zhongduan1 org 001bh ljmp dingshi1 org 0100h;主程序main: mov sp,#60h mov tcon,#05h ;初始化程序 mov tmod,#11h mov ie,#85h mov dptr,#table mov r2,#00h mov r3,#00h mov 40h,#100 mov r0,#60h mov r1,#70h mov p1,#0ffh mov p2,#0ffh mov p1,#0c0h mov p2,#0c0h clr p3.6 clr p3.7 clr tr0 clr tr1 kaishi: jb p0.0,shezhi ;判断开始按钮p0.0是否按下,未按;转移 lcall yanshi ;消除抖动 jb p0.0,shezhi jnb p0.0,$ ;等待按键松开 mov th1,#0d8h mov tl1,#0f0h ;设置计数初值 setb et1 setb tr1 ;开中断1 jb et1,$ ;等待暂停;设置程序shezhi: jb p0.1,kaishi ;判断设置按纽是否按下,未按转移 lcall yanshi ;消除抖动 jb p0.1,kaishi jnb p0.1,$ setb p3.6 ;打开查时指示灯 ljmp chashi ;转到查时;每秒加减1程序dingshi1: mov th1,#0d8h ;定时一秒 mov tl1,#0f0h setb tr1 djnz 40h,loop1 ;定时一秒 clr p1.7 jb p0.4,loopa ;判断加减拨位开关p0.4平调用加1 lcall jian1 ;程序,低电平调用减1程序 lcall xianshi mov 40h,#100 reti loopa: lcall jia1 lcall xianshi mov 40h,#100 loop1: retidingshi0: mov th0,#0d8h ;定时10ms用于快加减 mov tl0,#0f0h setb tr0 jb 20h,loop0 ;判断快加减标志位,高电平快加 lcall jian1 ;低电平快减 lcall xianshi reti loop0: acall jia1 lcall xianshi loop2: reti;快加子程序shangjia: jb p0.2,xiajia ;判断快加键是否按下,未按转移 acall yanshi ;消抖 jb p0.2,xiajia setb 20h ;快加减标志位置1 setb et0 ;开定时器0 mov th0,#0d8h mov tl0,#0f0h setb tr0 jnb p0.2,$ ;等待快加键松开 clr et0;快减子程序 xiajia: jb p0.3,stop ;判断快减键是否按下,未按转移 clr 20h ;快加减标志位置0 setb et0 ;开中断0 mov th0,#0d8h mov tl0,#0f0h setb tr0 jnb p0.3,$ ;判断是否松开 clr et0;跳出快加减功能子程序 stop: jb p0.1,shangjia ;判断是否按下设置键,未按转移 lcall yanshi jb p0.1,shangjia jnb p0.1,$ clr p3.7 ;关掉快加减指示灯 ljmp kaishi ;跳到开始;暂停子程序zhongduan0: lcall yanshi ;消抖 jb p3.2,loop7 jnb p3.2,$ clr et1 ;关定时器 clr tr1 clr tr0 loop7: reti ;复位清零子程序zhongduan1: lcall yanshi ;消抖 jb p3.3,loop3 jnb p3.3,$ mov r2,#00h mov a,r2 ;把驱动数据放入r0 r1所存的地址中 mov r3,#00h mov a,r3 clr tr0 clr tr1 acall yanshi loop3: reti;加1子程序jia1: inc r2 cjne r2,#0ah,loop4 mov r2,#00h inc r3 cjne r3,#0ah,loop4 mov r3,#00h loop4: ret;减1子程序;jian1: cjne r2,#00h,loop5 cjne r3,#00h,loop6 mov r2,#09h mov r3,#09h ret loop5: dec r2 ret loop6: mov r2,#09h dec r3 ret;延时子程序yanshi: mov r6,#20 d2: mov r5,#248 djnz r5,$ djnz r6,d2 ret;显示子程序xianshi: mov a,r2 mov dptr,#table movc a,a+dptr mov p2,a mov a,r3 mov dptr,#table movc a,a+dptr mov p1,a ret;查时子程序 chashi: mov r0,#60h ;进入查时功能后,修改r0 r1使;指向第一个数据存储单元 mov r1,#70h mov r2,#00h ;刚进入查时功能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论