基于51单片机秒表的程序设计[1].doc

基于51单片机秒表的程序设计[1].doc

ID:57066849

大小:55.00 KB

页数:11页

时间:2020-07-31

基于51单片机秒表的程序设计[1].doc_第1页
基于51单片机秒表的程序设计[1].doc_第2页
基于51单片机秒表的程序设计[1].doc_第3页
基于51单片机秒表的程序设计[1].doc_第4页
基于51单片机秒表的程序设计[1].doc_第5页
资源描述:

《基于51单片机秒表的程序设计[1].doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于51单片机秒表的程序设计 1.设计目的:(1)利用单片机定时器中断和定时器计数方式实现秒、分定时。(2)通过LED显示程序的调整,熟悉8155与8051,8155与LED的接口技术,熟悉LED动态显示的控制过程。(3)通过键盘程序的调整,熟悉8155与矩阵式键盘的接口技术,熟悉键盘扫描原理。(4)通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示、键盘扫描和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。2. 设计步骤与要求(1)要求:以8位LED右边2位显示秒,左边6位显示0,实现秒表计时显示。以4×4矩阵键盘的KE0、KE1、KE2等3键

2、分别实现启动、停止、清零等功能。(2)方法:用单片机定时器T0中断方式,实现1秒定时;利用单片机定时器1方式3计数,实现60秒计数。用动态显示方式实现秒表计时显示,用键盘扫描方式取得KE0、KE1、KE2的键值,用键盘处理程序实现秒表的启动、停止、清零等功能。(3)软件设计:软件整体设计思路是以键盘扫描和键盘处理作为主程序,LED动态显示作为子程序。二者间的联系是:主程序查询有无按键,无按键时,调用二次LED动态显示子程序(约延时8ms)后再回到按键查询状态,不断循环;有按键时,LED动态显示子程序作为按键防抖延时被连续调用二次(约延时16ms),待按键处理程序执行完后,再

3、回到按键查询状态,同时兼顾了按键扫描取值的准确性和LED动态显示的稳定性。秒定时采用定时器T0中断方式进行,60秒计数由定时器1采用方式3完成,中断及计数的开启与关闭受控于按键处理程序。由上述设计思路可设计出软件流程图如图1.1所示。(5)程序编制:编程时置KE0键为“启动”,置KE1键为“停止”,置KE2键为“清零”,因按键较少,在处理按键值时未采用散转指令“JMP”,而是采用条件转移指令“CJNE”,每条指令后紧跟着一条无条件跳转指令“AJMP”,转至相应的按键处理程序,如不是上述3个按键值则跳回按键查询状态。8位LED显示的数据由显示缓冲区30H~37H单元中的数据决

4、定,顺序是从左至右,动态显示时,每位显示持续时间为1ms,1ms延时由软件实现,8位显示约耗时8ms。主程序、按键查询子程序采用第0组工作寄存器,显示子程序采用第1组工作寄存器。1秒定时采用定时器T0方式1中断,每50ms中断一次,用21H做50ms计数单元,每20次为一个循环,计满20次,60秒计数单元(20H)计数1次。60秒计数采用定时器T1方式2计数,计数脉冲采用软件置位、复位P3.5口的方法实现,用20H单元做60秒计数单元,如定时器T1溢出,则20H单元被清零,20H单元的数据采用十进制计数,该数据被拆成个位和十位两个数据后分别送至显示缓冲区的30H、31H单元

5、。               按照上述思路可编制源程序如下:                ORG               0000HAJMPMAINORG000BHAJMPCONT;主程序;――――――――――初始化程序―――――――――――MAIN:MOVTMOD,#61H;置T0方式1定时,T1方式2计数MOVTH0,#3CH;T0置初值MOVTL0,#0B0HMOVTH1,#0C4H;T1置初值MOVTL1,#0C4HMOVDPTR,#4400H;8155控制口地址送DPTRMOVA,#43H;设置8155工作方式字MOVX@DPTR,A;设置PA、PB口输出

6、,PC口输入MOV20H,#00H;60秒计数单元置初值MOV21H,#14H;50ms计数单元置初值MOVSP,#3FH;堆栈指针置初值MOVR2,#08H;LED待显示位数送R2MOVR0,#30H;显示缓冲区首址送R0STAR:MOV@R0,#00H;显示缓冲区清零INCR0DJNZR2,STARCLRA;累加器清零;―――――――――――键盘查询程序―――――――――― KEY:ACALLKS;调按键查询子程序判是否有键按下JNZK1;有键按下转移ACALLDISP;无键按下,调显示子程序延时AJMPKEY;继续查询按键;―――――――――――键盘扫描程序―――――

7、―――――K1:ACALLDISP;键盘去抖延时ACALLDISPACALLKS;再次判别是否有键按下JNZK2;有键按下转移AJMPKEY;无按键,误读,继续查询按键K2:MOVR3,#0FEH;首列扫描字送R3MOVR4,#00H;首列号送R4K3:MOVDPTR,#4401H;PA口地址送DPTR,开始列扫描MOVA,R3MOVX@DPTR,A;列扫描字送PA口INCDPTR;指向PC口INCDPTRMOVXA,@DPTR;读取行扫描值JBACC.0,L1;第0行无键按下,转查第1行MOVA,#00H;第0行

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。