多功能秒表的设计.doc_第1页
多功能秒表的设计.doc_第2页
多功能秒表的设计.doc_第3页
多功能秒表的设计.doc_第4页
多功能秒表的设计.doc_第5页
免费预览已结束,剩余14页可下载查看

下载本文档

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

文档简介

河南理工大学万方科技学院课程设计说明书 多功能秒表系统设计摘要 根据相关的单片机材料,利用所学的单片机知识,编写能够实现该项目的软件程序,最后将软、硬件有机的结合起来,进行有效的调试,达到完成该实验课程设计的目的要求。本设计的多功能秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及键盘电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现两位LED显示,显示时间为0099秒,每秒自动加1,能正确地进行加1,快加,可以同时记录4个相对独立的时间,通过翻页来查看这4个不同的计时值,可谓功能强大。其中软件系统采用汇编语言编写程序,包括显示程序,加1,计数程序,快加程序,中断,延时程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。该系统具有显示直观使用方便可靠等优点在系统设计过程中考虑了性价比,选用性价比低性能确定的元器件。 易于观察,在仿真中就可以观察到实际的工作状态。该系统具有显示直观使用方便可靠等优点在系统设计过程中考虑了性价比,选用性价比低性能确定的元器件。 目 录 1概述- 3 -1.1 课程设计的要求- 3 -1.2 课程设计的目的意义- 3 -2 系统总体方案及硬件设计- 4 -2.1设计思路及描述- 4 -2.2 硬件构成- 4 -2.3 显示模块- 6 -2.4 开关控制电路模块- 7 -3 软件设计- 8 -3.1主程序- 8 -3.2显示程序- 9 -3.3开关控制程序- 9 -3.4记录翻页子程序- 10 -3.5暂停复位快加子程序- 10 -3.6中断和加1子程序- 11 -4 Proteus软件仿真- 12 -4.1 单片机加载程序启动仿真后,按下开始键加1计数仿真- 12 -4.2 单片机加载程序启动仿真后,按下暂停键时仿真图- 13 -4.3 单片机加载程序启动仿真后,按下复位键时的仿真图- 13 -4.4 单片机加载程序启动仿真后,按下快加键时的仿真图- 14 -5 心得体会- 14 -参考文献- 15 -附录- 15 -1概述 近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统控制检测技术的更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。秒表的出现,解决了传统的由于人为因素造成的误差和不公平性. 随着科学技术的发展,人们的时间观念愈来愈强,科学测量的时间精度也越来越高。现在,以秒为时间的基本单位是国际单位制七个基本单位中精度最高的,已达到10-14的数量级,也就是说三百万年误差不超过一秒。正因为它的精度高,大大促进科学技术的发展,特别是促进太空技术、计算机技术等领域的发展。1.1 课程设计的要求(1)能同时对5个四个相对独立的时间分别显示。(2)两位LED显示,现实时间为0099秒。(3)每秒自动加一。(4)一个开始按键,一个复位按键,一个暂停按钮和一个快加按钮(每十毫秒快速加一)。(5)翻页按钮查看五个不同的计时值。1.2 课程设计的目的意义(1) 通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解,掌握定时器、外部中断的设置和编程原理。 (3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、快加功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。2 系统总体方案及硬件设计2.1设计思路及描述本实验设计六个控制按键:其中第一个按键按下去时以1秒加一开始计时,即秒表开始键,第二个按键按下去时暂停计时,使秒表停留在当前的计时值,第三个按键按下去时清0即复位,第四个按键按下去则是以每10ms秒快速加一,第五个键按下时开始计数,第六个键按下时进行翻页查看。该实验要求进行计时并在数码管上显示时间,则可利用AT89S51芯片的P0.0-P0.7管脚对应了两个接数码管的A,B,C,D,E,F,G和小数点位,P2.6接显示个位数的数码管的选通引角,P2.7则接十位数的。P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的芯片内部和外部电路元器件给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示需要的数字。2.2 硬件构成(1)主控模块AT89S51 图1 单片机AT89S51芯片AT89S51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效的微控制器。AT89S51芯片如下:1) 主要特性:与MCS-51 兼容4K字节可编程闪烁存储器全静态工作:0Hz-24HZ 三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路2) 振荡器电路MCS-51单片机内部的振荡电路是一个到增益反相放大器,引线 XTAL1和XTAL2分别为 反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。51单片机的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。在MCS-51单片机一般常用内部时钟方式,也就是在XTAL1和XTAL2之间连接晶体震荡器与电容构成稳定的自激振荡器,用示波器可以观察到XTAL2输出的时钟信号。晶体和电容决定了单片机的工作时间精度为1微秒。晶体可在1.2-12MHz之间选择。MCS-51单片机在通常应用情况下,使用震荡频率为6MHZ的石英晶体,而12MHZ频率的警惕主要是在高速串行通信情况下才使用,在这里我用的是12MHZ石英晶体。对电容无严格要求,但它的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有一点影响。外部时钟方式是把外部震荡信号源直接接入XTAL1或XTAL2,有时还要接一个上拉电阻。在XTAL1和XTAL2之间连接晶体震荡器与电容构成稳定的自激振荡器,电路图如下:图2 晶体振荡电路3) 复位电路: MCS-51单片机的复位是靠外部电路实现的。MCS-51单片机工作之后,只要在他的RST引线上加载10ms以上的高点平,单片机就能有效地复位。MCS-51单片机通常有上电自动复位按键复位手动加按钮复位脉冲复位四种方式,本设计采用了自动上电复位方式。复位电路如下图:图3 AT89S51上电自动复位电路上电瞬间,RC电路充电,RST引线出现正脉冲,只要RST保持10ms以上的高电平,就能使单片机有效的复位。2.3 显示模块显示电路既可以选用液晶显示器,也可以选用数码管显示。数码管主要是用于数字的显示。数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法不同。而数码管显示又有静态和动态两种显示方式,其中静态显示程序简单,显示比较稳定,但占用IO口较多;动态显示的程序比较复杂,所使用的端口较少,可以节省I/O口,在本设计中采用的是动态显示。显示所用两位数码管及循环电路图如下:表一,共阴极数码管的段码表:(CC)“0”3FH“8”7FH“1”06H“9”6FH“2”5BH“A”77H“3”4FH“b”7CH“4”66H“C”39H“5”6DH“d”5EH“6”7DH“E”79H“7”07H“F”71H 图4 LED数码管显示电路2.4 开关控制电路模块图5 开关控制电路图3 软件设计该系统主要有主程序中断子程序显示子程序加1子程序记录翻页子程序快加子程序组成。3.1主程序完成硬件的初始化子程序调用等功能:1) 对定时器T1T0的工作模式进行设定,分别设定为工作模式一,并对两个工作定时器初始化,分别赋初值定时10.D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T M1 M0 GATE M1 M0 其中GATE=0, C/T=0, M1M2=01 即TMOD=00010001=11H 模式一:M=216 =65536 初值的计算: 用T1定时10ms,计数初值为: X1=216-10*10-3*12*106/12=65536-10000=55536=D8F0H 2)在主程序中设置了九个工作寄存区,分别为:20H,用于0099秒的记数暂存区;30H,31H分别用于寄存要显示的十位和个位的两个数字,40H50H用于存储循环记数个数,41H42H43H44H作为记录四个相对独立时间的工作寄存区另外还用了一个间接寄存器R1,用于访问以上四个工作寄存区。对以上的工作区相应的中断控制位进行初始化。3.2显示程序作用:完成符号和数值的显示及输出。 该设计中应用两位一体的数码管分别动态显示十位和个位的数字,具体设计思路如下:用AT89S51芯片的P0口接数码管的显示位ABCDEFGDP八个引脚,用P2口的P2.6P2.7接数码管的两个选通引脚,作为十位和个位动态显示的选通信号输入端,低电平有效。当将要显示的时间分别送入30H31H时,让选通信号有效进行动态循环显示,利用了查表操作功能,只是两位的显示时间间隔短而人眼分辨不出来,因此认为是连续显示的。3.3开关控制程序完成各键功能的转换,控制CPU的工作过程调用显示程序控制显示输出,在按键过程中增加了防抖动操作。例如暂停键的设置:START: JB: P1.0,L1 ; P1.0=0,暂停 ACALL DELAY10 JB: P1.0,L1 JNB P1.0,$ LJMP STOP3.4记录翻页子程序当有记录键按下时将当前显示时间存入暂存区41H42H43H44H,记录时间间隔可自己设定,记录过程中不间断时间。当记录个数为四时停止计数,等待翻页按键有效将四个寄存区中的数据分别送入显示工作区30H31H调用显示程序显示查看。3.5暂停复位快加子程序1) 暂停程序:只需将定时器T1T0的启停控制位TR0TR1清零即可。STOP: CLR TR0 CLR TR1 ACALL DISP SJMP HERE2) 复位程序:将各寄存区重新置初始值即可。FUWEI: CLR TR0 CLR TR1 MOV 40H,#00H MOV 41H,#00H MOV 30H,#00HSJMP HERE3) 快加程序:由于定时器T1T0的定时初值均是10毫秒,可直接利用二者中的一个进行快加时间设定,设计中利用T1定时,对其溢出标志位进行查询,TF1为1则10毫秒到调用加1子程序快速加1并显示快加程序功能的介绍:设计快加子程序的目的是为了弥补两个数码管显示时间的不足:100ms=1s故可以用快加程序来精确的计时,即把间隔一秒显示的时间改为间隔10毫秒显示从00-99。KJIA: SETB TR1 CLR TR0HEE: JNB TF1,HEE CLR TF1 ACALL JIA1 ACALL DISP JNB P1.0,STOP SJMP HEE3.6中断和加1子程序INT1中断服务程序:利用AT89S51的P3.3作为中断输入口,当开始计时按键按下调用中断程序,循环加1计时开始,定时时间为10毫秒,循环100次寄1 秒时间到时,计数单元30H自动加一,若时间小于100继续加一计数,否则重新开始循环0099秒。4 Proteus软件仿真4.1 单片机加载程序启动仿真后,按下开始键加1计数仿真图7 “开始”Proteus仿真4.2 单片机加载程序启动仿真后,按下暂停键时仿真图图8 “暂停”Proteus仿真图 4.3 单片机加载程序启动仿真后,按下复位键时的仿真图图9 “复位”Proteus仿真图4.4 单片机加载程序启动仿真后,按下快加键时的仿真图图10 “快加”Proteus仿真图5 心得体会通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,独立自主的去完成一个设计。这次设计也让我深深的感到仅在课堂上的学到的知识是远远不够的,课下我们应该多到图书馆或网上多了解一下其它的东西,同时更应该加强我们的动手能力的训练,因为学习就是为了将知识应用到生活中,造福人类。在这次设计中我认真思考了一个问题,那就是未来的发展方向。因为要考研,所以我们就又面临了一次选择,和高考时报志愿一样,然而现在更多了一些理性和成熟。我曾经想过以后要么当老师,要么搞科研。然而,课程设计的过程让我认识到搞科研不仅要有扎实的理论知识,更要有创新的意识和热情,喜欢动手,不怕动手,因为真正搞科研的人都有一种不怕失败的精神,敢于去挑战 。同时,更重要的是,在这一设计中,我学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。这个题目整体来看思路并不复杂,所以设计起来没有太大的困难。包括单片机的选择,震荡电路,时钟电路,显示电路这些基本电路的设计都是我们在课堂上老师讲到的内容。关键是软件部分的设计,如果把握不好的话思路就会很凌乱,让人一时摸不着头脑。经过几天的思索,我们就讨论先把整体设计思路给列一下,然后再一块一块的设计,这样设计起来就容易了很多,当整个程序出来后我就怀着激动的心情进行仿真,发现还是存在很多错误,但经过多次调试后终于成功了。参考文献(1)单片机原理与及应用技术主编 余发山 副主编 王福忠 出版社 中国矿业大学出版社 版次 2003年12月第1版 2003年12月第1次印刷(2) 朱定华、戴汝平.单片微机原理与应用.北京:清华大学出版社,2003年8月; (3) 胥勇军、黄国荣.基于并口连接串行显示驱动器MAX721下数据通信的软件实现.2004年5月; (4) MCS-51单片机原理及应用实例南建辉 熊鸣 王军茹 编著 出版社 北京清华大学出版社 版次 2004年3月第1版 2006年2月第3版次印刷附录附录1源程序:ORG 0000HLJMP MAINORG000BHLJMPTIME1ORG 0013HLJMP ZHDUANORG001BHLJMPTIME10ORG0100HMAIN: MOV TMOD,#11HMOVTH1,#0D8H ;定时10MSMOVTL1,#0F0HMOVTH0,#0D8H ;定时10MSMOVTL0,#0F0HMOV20H,#00H ;记数暂存MOV 21H,#00HMOV 30H,#00H ;显示暂存MOV 31H,#00HMOV40H,#100MOV 41H,#00H ;计数区MOV 42H,#00HMOV 43H,#00HMOV 44H,#00HMOV 50H,#04HMOV R1,#41HSETB EASETB EX1SETB ET1SETB ET0CLR PT0CLR PT1SETB PX1SETB IT1MOV P0,#0FFHCLR TR0CLR TR1CLR 7FHML1: ACAL LDISPSTART: JB P1.0,L1 ; P1.0=0,暂停ACALL DELAY10JB P1.0,L1JNB P1.0,$LJMP STOPL1: JB P1.1,L2 ; P1.1=0,复位ACALL DELAY10JB P1.1,L2JNB P1.1,$LJMP FUWEIL2: JB P1.2,L3 ; P1.2=0,快加ACALL DELAY10JB P1.2,L3JNB P1.2,$LJMP KJIAL3: JB P1.3,L4 ; P1.3=0,计数ACALL DELAY10JB P1.3,L4JNB P1.3,$LJMP JISHUL4: JB P1.4,L ; P1.4=0,翻页ACALL DELAY10JB P1.4,LJNB P1.4,$LJMP FANYEL: SJMP HERESTOP: CLR TR0 ;暂停程序CLR TR1ACALL DISPSJMP HEREJISHU : MOV A,20H ;计数程序MOV R1,AINC R1DJNZ 50H,HEREMOV R1,#41HMOV 50H,#04HSJMP STOPFANYE: MOV A,R1 ;翻页程序MOV 20H,AMOV B,#0AHDIV ABMOV 31H,AMOV 30H,BLCALL DISPDEC R1DJNZ 50H,HEREMOV R1,#44HMOV 50H,#04HSJMP HEREFUWEI: CLR TR0 ;复位程序CLR TR1MOV 30H,#00HMOV 31H,#00HMOV 20H,#00HSJMP HEREKJIA: SETB TR1 ;快加程序CLR TR0HEE: JNB TF1,HEECLR TF1

温馨提示

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

评论

0/150

提交评论