用汇编语言编写的秒表计时器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告十
课程名称:微机原理与接口技术指导老师:李素敏
学生姓冬:向春霞学号:1243013专业:通信工程日期:6月地点:理工603
实验九矩阵键盘检测
一、实验目的和要求
1.掌握利用单片机定时器实现定时。
2.熟悉单片机与数码管的接口技术及数码管动态显示的控制过程。
3.熟悉单片机与键盘的接口技术及按键识别过程。
4.学会如何编制含数码管显示,定时器中断及按键控制等多种功能的综合程序,体会大型程序的编制和调试技巧。
>
二、主要仪器设备
电脑,Keil软件
三、实验内容
1、实验要求:
要求其实现的功能如下(其中定时要求采取中断方式):
(1)、用6位数码管显示秒表时间,最左边2位显示分,中间2位显示秒,最右边2位显示秒的小数位(~秒),秒与小数位之间要显示小数点。
(2)、两个按键:
①计时/停止按键:首次按下从0开始计时,再次按下暂停计时,之后每次按
下按键实现'继续计时、暂停计时,继续计时、暂停计时……'。(继续计时即从上次暂停时的时间开始继续计时)
②复位按键:按下后全部清0,等待下次按下'计时/停止按键’时重新开始计时。
2.设计思路:
(1)、采用内部脉冲定时,实现计时,最低显示位为10ms记一次数显示一次,即一秒。100个10ms是1秒,所以当低位计满100次,(当50H为10时,把50H 单元清零,向51H进1)即得到秒计时,然后把51H单元清零,给52H单元加1•
当52H为10时,清零,给53H加1,当53H为6时秒计时达到60次,则向分计时,即给54H加1,再给53H清零,当54H计满10时,清零,给55H加4 直到55H为6时给55H清零。
50H z51H放最低位计数
52-53H放秒位次数
54-55H放分位计数
(2)、S2键,用扫描
S2:当为低电平时,让TR0为0,即暂停计数。当再次为低电平时继续计•数, 让TR0=l.
(3)、S3键,T1计数模式实现中断响应,复位按键
S3:当F0为0时,给50-55H单元清零;然后按S2开始计数
3.源程序:
ORG 0000H
AJMP MAIN
ORG 000BH
LJMPTIME ;定时
ORG 001BH
LJMPS3 ;暂停
ORG 0030H
MAIN:
CLR A
MOV 50H,A ;最低位次数
MOV51H,A
MOV 52H,A ;秒位次数
MOV 53H,A
MOV 54H,A ;分位计数
MOV 55H,A
DS1:MOV TMOD,#61H ;定时0模式计数1模式2 MOV TH0,#0D8H ;初值定时10ms
MOVTLO,#OFOH
MOVTH1,#OFFH ;初值,溢出中断
MOVTL1,#OFFH
SETB EA
SETB ET1
SETB ETO
SETB TRO
SETB TRI
XS: MOV Rl,#50H
MOV R2,#ODFH
MOV R3,#2
MOV R4,#4
JNB’STOP
AJMP NEXT
¥
STOP:CPL TRO
WAIT:JB,NEXT
SJMP WAIT
NEXT:MOV A,@R1
INCR1
MOV DPTR,#DUAN
MOVC A,@A+DPTR
SETB
MOV PO,A
CLR
SETB
MOV A,R2
MOV PO,A
CLR ;位选置位
MOV A,R2
RR A
MOV R2,A
LCALL DEL
DJNZ R3,NEXT
XSD: MOV DPTR,#XDUAN
$
MOV A,(a)Rl
MOVC A,@A+DPTR SETB
MOV PO,A
CLR
SETB
MOV A,R2
MOV PO,A
CLR ;位选置位
MOV A,R2
RR A
LCALL DEL AGA:MOV A,@R1
INCR1
MOV DPTR,#DUAN
MOVC A,@A+DPTR
SETB
MOV PO,A
CLR
SETB
MOV A,R2
MOV PO,A
CLR ;位选置位
MOV A,R2
RR A
MOV R2,A
LCALL DEL
DJNZ R4,AGA
LJMPXS
TIME:MOV TH0,#0D8H
MOV TLO,#OFOH
INC50H
MOV A,5OH
CJNE A,#1O,RETUNT
MOV 50H,#00H
INC51H
MOV A,51H
CJNE A,#1O?RETUNT
MOV 51H,#OOH
INC52H
MOV A,52H
CJNE A,#1O Z RETUNT
MOV 52H,#00H
INC53H
MOV A,53H ;定时中
断
;50H满10给51H单元+1 ;51H满10给52H单元+1
;52H满10给53H单元+1