多功能秒表的设计

上传人:lisu****2020 文档编号:105021191 上传时间:2022-06-11 格式:DOC 页数:20 大小:822.50KB
收藏 版权申诉 举报 下载
多功能秒表的设计_第1页
第1页 / 共20页
多功能秒表的设计_第2页
第2页 / 共20页
多功能秒表的设计_第3页
第3页 / 共20页
资源描述:

《多功能秒表的设计》由会员分享,可在线阅读,更多相关《多功能秒表的设计(20页珍藏版)》请在装配图网上搜索。

1、摘要MCS-51系列单片机具有体积小、功能全、价格低廉、面向控制、应用软件丰富、技术在不断更新、开发应用方便等优点,可以适应各个领域的不同需要,因而具有极强的竞争力,应用前景广阔。对所学的专业知识能力更好的应用在实践方面。 本次课程设计主要利用这学期学习的单片机原理与应用技术的知识来设计并实现一个多功能秒表。此设计主要通过单片机最小系统板(STC-89C52RC)上的六个数码管作为秒表计时时间的显示,从左至右依次显示分、秒、毫秒,三个按键D、E和F作为控制秒表的功能键。主要实现过程如下:刚开始是系统清零,六个数码管显示都显示0。再用三个按键D、E和F来控制秒表功能的实现,启动D键开始计时,按下

2、E键计时停止,F键复位。主要功能即是键D、E和F控制秒表计时的启动、停止和清零。为达到以上功能,多功能秒表分为以下几个模块: 键盘扫描功能模块,定时器中断模块和数码管显示模块。这次课程设计是一次综合性比较强的实践过程,能从很多方面考察我们的能力,同时也是一次很好的锻炼机会。目录第1章 引言 41.1 设计的目的、意义、及应达到的技术要求 4 设计的目的 4 设计的意义 4 设计应达到的技术要求 41.2 设计的基本思路 41.3 设计欲解决的主要问题 51.4 解决此课题所需要的条件 5 硬件条件5 软件条件5 知识要求51.5 预备知识的介绍 6 MCS-51的指令系统 7 软件的使用7第2

3、章 设计部分 82.1 硬件设计 82.2 软件设计 11第3章 实现部分 153.1 工程测试方法153.2 测试结果 15第4章 多功能秒表的扩展功能 15结论 16致谢 17参考文献18附录 19第1章 引 言1.1 设计的目的、意义、及应达到的技术要求 设计的目的基于单片机的综合实验仪器,利用汇编语言来编写一个秒表计时器。通过该课程设计进一步了解单片机硬件组成的目的以掌握它的整机工作原理,掌握单片机的中断系统,以便掌握对单片机随机事件的高效响应和处理手段。通过秒表的计时进一步掌握定时计数器的4种工作方式以及在不同工作方式下的时间和计数器常数的设定方法,并掌握中断功能在定时计数器中的应用

4、。通过LED显示程序的调整,熟悉74LS164芯片与LED的接口技术,熟悉LED动态显示的控制过程。通过键盘程序的调整,熟悉8155与矩阵式键盘的接口技术,熟悉键盘扫描原理。通过阅读和调试秒表程序的整体过程,学会如何编制含LED动态显示、键盘扫描和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。 设计的意义把理论学习和实验教学阶段所掌握的知识通过一个设计实例,经历一次理论和实践结合、软件和硬件结合的综合训练,也是一次工程实践能力的检验。 设计应达到的技术要求编写程序,在单片机上实现秒表的功能:按键D按下后启动秒表、E停止计时并显示当前时间、F清零,这些现象都通过数码管正确显示

5、。其它键不影响数码管显示,无反应。1.2 设计的基本思路软件整体设计思路是以键盘扫描、中断处理和数码管显示作为三大模块。主程序调用键盘扫描子程序后检测键值,不断循环。采用定时器T0中断方式1进行定时,中断及计数的开启与关闭受控于按键处理。编程时置D键为“启动”,置E键为“停止”,置F键为“清零”,在处理按键值时采用散转指令“JMP”,转至相应的按键处理程序,如不是上述3个按键值则跳回按键查询状态。6位LED显示的数据由显示缓冲区48H4DH单元中的数据决定,顺序是从右至左。1秒定时采用定时器T0方式1中断,每10ms中断一次,每100次为一个循环,计满100次,60秒计数单元计数1次。计数脉冲

6、采用软件置位、复位P3.0口的方法实现。用32H单元做60秒计数单元,如定时器溢出,则32H单元被清零,32H单元的数据采用十进制计数,该数据被拆成个位和十位两个数据后分别送至显示缓冲区的4AH、4BH单元。1.3 设计欲解决的主要问题 通过汇编语言与单片机系统相结合设计控制秒表计时。 通过按键来控制秒表的功能。 如何实现键盘扫描程序的功能。 定时器中断的处理。 通过数码管来正确显示计时时间。1.4 解决此课题所需要的条件 硬件条件:由系统运行环境可知需要条件为:单片机最小系统板STC-89C52RC(图1.1)、串行口下载线、PC机。 软件条件: Windows98、STC_ISP_V3.5

7、下载环境(图1.2)、WAVE3.2集成调试软件模拟器。 知识要求:熟悉单片机的综合实验仪系统与PC机联机操作,联机软件的使用和动态调试;熟练运用汇编语言设计、编写并在WAVE3.2集成调试软件模拟器调试和运行程序并将其自动生成的.hex文件通过STC_ISP_V3.5下载环境下载到单片机最小系统板STC-89C52RC中。图1.1图1.21.5 预备知识的介绍。 MCS-51的指令系统寻址方式的多少,直接反应了机器指令系统功能的强弱,寻址方式越多,其功能越强,灵活性越大。MCS-51单片机共有7种寻址方式: 立即寻址; 直接寻址; 寄存器寻址; 寄存器间接寻址; 基址寄存器加变址寄存器的间接

8、寻址; 相对寻址; 位寻址。MCS-51单片机指令系统按操作功能分为5类: 数据传送类 算术运算类 逻辑运算类 控制转移类 布尔处理类 软件的使用1. WAVE3.2集成调试软件模拟器的使用: 打开WAVE3.2,新建文件.ASM 保存、编译,自动生成.HEX文件 软件中包含仿真器、单步执行、跟踪等有利于程序的改写2. STC_ISP_V3.5的使用: 选择单片机型号 打开文件 选择串行口、最高波特率 设置本框和窗口右下方的“选项”中的各项 下载,先点下载按钮,再给MCU上电第2章 设计部分2.1硬件设计 定时/计数器的方式控制寄存器TMOD是一种可编程的特殊功能寄存器,字节地址为89H,不可

9、位寻址。其中低4位控制T0,高四位控制T1,其格式如图2.1。图2.1方式寄存器TMOD中M1M0=01时,计数器按16位工作,即TL、TH全部使用,构成16位计数器。逻辑结构如图2.2。图2.2 设计数器最大计数值为M,选择不同的工作方式,最大计数值不同。方式1:M=65536在初始化过程中,置定时初值为X=10ms则X=65536-(10000/) =55536=D8F0H74LS164与键值的连接电路图2.3、数码管显示电路图2.4以及实验中所使用的单片机最小系统板STC-89C52RC电路图图2.5如下:图2.3图2.4图2.52.2 软件设计 主程序设计流程图: 键盘扫描子程序流程图

10、:测键判断是否有键按下?键号送R7按键处理返回保护现场 恢复现场子程序入口NY 显示子程序流程图:子程序入口保护现场选通数码管开关数据存入缓冲区R0#48H,DPTR#TAB指针加1恢复现场返回判断一帧发送完毕? 定时器中断子程序流程图:中断入口保护现场调用显示子程序恢复现场秒计数加1毫秒计数单元清010ms加1开中断重置定时器初值100次到否?60到否?秒计数单元清0分计数加1调用拆字子程序返回YYNN第3章 实现部分3.1 工程测试方法在WAVE3.2集成调试软件模拟器调试和运行程序并将其自动生成的.hex文件通过STC_ISP_V3.5下载环境下载到单片机最小系统板STC-89C52RC

11、中。 打开WAVE3.2,新建文件.ASM 保存、编译,自动生成.HEX文件 打开STC_ISP_V3.5 选择单片机型号 打开文件 选择串行口、最高波特率 设置本框和窗口右下方的“选项”中的各项 下载,先点下载按钮,再给MCU上电3.2 测试结果D键:计时开始;E键:计时停止;F键:清零;0C键:无意义;数码管显示计时值。第4章 多功能秒表的扩展功能 此设计只用到44键盘16个按键中的3个,因此,其功能还有较大的扩展空间。将上述程序加以改动,如增加LED显示位数或将显示改为LCD显示模块,可实现年、月、周、日、时、分、秒显示。该项目只实现基本的电子表功能单次电子秒表功能,还可以增加多次电子秒

12、表功能、倒计时电子秒表功能等。结论该设计在单片机系统上采用数码管显示,直观简洁;采用定时器中断,计时准确。可随时启动、停止、清零。 设计、调试大型程序时,需先根据要求划分模块,优化结构;再根据各模块特点确定何为主程序,何为子程序,何为中断服务程序,相互间如何调用;再根据各模块性质和功能将各模块细化,设计出程序流程图;最后才根据各模块流程图编制具体程序。调试时应先调主程序,实现最基本最主要的功能,在此基础上再将各模块功能往主程序上堆砌,直至各模块联调、统调,实现全部功能。本例子将整个程序划分为键盘扫描程序子程序,显示子程序,定时器中断服务子程序三大模块。三大模块运行协调一致,既保持了动态显示的稳

13、定性,又保持了键盘的可靠性,还保持了秒计时的准确性,较好地实现了全部功能。 通过设计学习,让我了解了设计电路的程序,以及电子秒表的原理与设计。同时在软件设计编程上,让我了解到很多编程方面的技巧,并且使我对单片机的各个引脚的功能有更深入的了解,巩固了单片机的书面知识,发现了以往在学习中忽视的东西,明白了在实际的设计工作中只有书面知识是不足的,只有在自己的实践中才能发现问题并解决问题,从而不再犯眼高手低的错误。在此次的设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。在设计电路中,是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的。在使用WAVE3.2软件

14、时运用其中一些自带的仿真软件包能很好的找出程序中的错误,例如当你单步调试时,打开CPU窗口,你能观察到各个寄存器,累加器等对应值。 总的来说,通过这次的设计实验更进一步地增强了实验的动手能力,提高组成系统、编程、调试的动手能力。而且在此次设计中,我了解到了团队合作的重要性,对以后步入社会积累了很好的经验。参考文献1.万福君、潘松峰等. 单片微机原理系统设计与应用. 合肥:中国科技大学出版社,2005年2.杨光友等. 单片微型计算机原理与接口技术. 北京:水利水电出版社,2002年3.胡耀辉等. 单片机系统开发实例经典. 北京:冶金工业出版社,2006年4.刘守义、杨宏丽等. 单片机应用计术.

15、西安:西安电子科技大学出版社,2003年5.姜武中、姜春霞等. 片机原理与接口技术. 大连:大连理工大学出版社,2002年6.张毅刚,彭喜元,孟升卫等. MCS-51单片机使用子程序设计. 哈尔滨:哈尔滨工业大学出版社,2003年7.李朝青. 单片机原理及其接口技术. 北京:北京航空大学出版社,1998年8.肖玲妮,袁增贵. Protel99SE印刷电路板设计教程. 北京:清华大学出版社,2003年9.莫力. Protel电路设计. 北京:国防工业出版社,2005年附录源程序清单: ORG 0000H ;主程序起始地址 LJMPSTART ;跳至主程序 ORG000BH LJMPCICT ST

16、ART: MOVSP,#55H ;设置堆栈在55H MOVP1,#0FFH MOV33H,#00 ;“毫秒”计数单元初值为0 MOV32H,#00 ;“秒”寄存器值为0 MOV31H,#00 ;“分”寄存器值为0 LCALL DISP MOVTMOD,#01H ;置T0方式1定时 MOVTL0,#0F0H ;计时中断为10ms MOVTH0,#0D8HTK: LCALLKEY MOV A,R7 CLR C SUBB A,#13 ;键D前的键值都无意义 JCTK MOVB,#3 MULAB MOVDPTR,#DEF JMP A+DPTRDEF: LJMP FN1 ;开始,按D键进入 LJMP F

17、N2 ;停止,按E键进入 LJMP FN3 ;复位,按F键进入FN1: MOV IE,#82H ;开中断 SETBTR0 ;启动T0 LJMPTKFN2: CLREA ;关中断 CLR ET0 LJMPSTART ;也可以跳到TKFN3: CLR EA CLR ET0 MOV33H,#00 ;“毫秒”计数单元初值为0 MOV32H,#00 ;“秒”寄存器值为0 MOV31H,#00 ;“分”寄存器值为0 LCALL WORD LCALL DISP LJMP START;=中断服务子程序=CICT: PUSH PSW PUSH ACC MOV TL0,#0F0H;计时中断为10ms MOV TH

18、0,#0D8H SETB TR0 INC 33H MOV R3,33H CJNE R3,#100,LOP1 MOV 33H,#00 INC 32H ;秒加1 MOV R3,32H CJNE R3,#60,LOP1 ;1分未到转LOP1 MOV 32H,#00 ;秒记数单元清零 INC 31H ;分记数单元加1LOP1: LCALL DISP LCALL WORD POP ACC POP PSW RETI;=键盘扫描子程序影响ACC,R6,R7=;一旦进入,必须有键按下才能返回;返回的键值在ACC中或R7中KEY: PUSH ACC SETBP1.4 ;选通开关 CLRP1.5 SETBP1.6

19、 ;初始化为1 SETBP1.7 MOVSBUF,#00H ;开始发送 JNB TI,$ ;等待一帧发送完毕KEY0: JNB P1.6,KEY1 ;如果直接位不为1,表示有键按下 JNB P1.7,KEY1 SJMP KEY0 ;否则不断测试有无键按下KEY1: MOVSBUF,#7FH ;向缓冲区中存入需测试的键值 JNB TI,$ CLRTI SETB P3.0 ;数据位常置1 MOV R7,#00H LCALL DLYKEY2: JNB P1.6,KEY3 NOPNOP JNB P1.7,KEY4 NOPNOPNOPCLR P3.1NOPNOP SETB P3.1 NOP NOP IN

20、C R7 CJNE R7,#08H,KEY2 SJMP KEY1KEY3: MOV A,#00H SJMP KEY5KEY4: MOV A,#08HKEY5: ADD A,R7 MOV R7,AKEY6: JNB P1.6,KEY6 JNB P1.7,KEY6 MOV SBUF,#0FFH JNB TI,$ CLR TI LCALLDLY POP ACC RET;=WORD: MOV A,31H MOV B,#0AH DIV AB MOV 4DH,A ;拆字填入显示缓冲区 MOV 4CH,B MOV A,32H MOV B,#0AH DIV AB MOV 4BH,A ;拆字填入显示缓冲区 MO

21、V 4AH,B MOV A,33H MOV B,#0AH DIV AB MOV 49H,A ;拆字填入显示缓冲区 MOV 48H,B RET;延迟子程序,影响R6DLY: MOV R6,#00H DJNZ R6,$ RET;=显示子程序=DISP: PUSHACC ;A入栈保护 CLR P1.4 ;选通开关00接数码管 CLR P1.5 MOV 4FH,#6 ;LED待显示位数送4FH MOV R0,#48H MOV DPTR,#TAB ;取缓冲区首地址DISP1: MOV A,R0 MOVCA,A+DPTR MOV SCON,#0 ;串行口控制方式0 MOV SBUF,A JNB TI,$INC R0 CLR TI DJNZ 4FH,DISP1POP ACC SETB P1.4 NOP NOP RETTAB: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;07的段码 DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH;8F的段码 END

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!