当前位置:首页 > 用汇编语言编写的秒表计时器
实验报告 十
课程名称: 微机原理与接口技术 指导老师:李素敏
学生姓名:向春霞 学号:1243013 专业:通信工程 日期:6月 地点:理工603
实验九 矩阵键盘检测
一、 实验目的和要求
1.掌握利用单片机定时器实现定时。
2.熟悉单片机与数码管的接口技术及数码管动态显示的控制过程。 3.熟悉单片机与键盘的接口技术及按键识别过程。
4.学会如何编制含数码管显示,定时器中断及按键控制等多种功能的综合程序,体会大型程序的编制和调试技巧。 二 、主要仪器设备 电脑,Keil软件 三、实验内容 1、实验要求:
要求其实现的功能如下(其中定时要求采取中断方式):
(1)、用6位数码管显示秒表时间,最左边2位显示分,中间2位显示秒,最右边2位显示秒的小数位(0.00~0.99秒),秒与小数位之间要显示小数点。 (2)、两个按键:
①计时/停止按键:首次按下从0开始计时,再次按下暂停计时,之后每次按下按键实现‘继续计时、暂停计时,继续计时、暂停计时……’。(继续计时即从上次暂停时的时间开始继续计时)
②复位按键:按下后全部清0,等待下次按下‘计时/停止按键’时重新开始计时。 2.设计思路:
(1)、采用内部脉冲定时,实现计时,最低显示位为10ms记一次数显示一次,即0.00—0.99秒。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加1,直到55H为6时给55H清零。 50H,51H放最低位计数
52-53H放秒位次数 54-55H放分位计数 (2)、 S2(p3.4)键,用扫描
S2:当P3.4为低电平时,让TR0为0,即暂停计数。当P3.4再次为低电平时继续计数,让TR0=1.
(3)、 S 3(p3.5)键,T1计数模式实现中断响应,复位按键 S3:当F0为0时,给50-55H单元清零;然后按S2开始计数 3.源程序:
ORG 0000H AJMP MAIN ORG 000BH
LJMP TIME ;定时 ORG 001BH LJMP S3 ;暂停 ORG 0030H MAIN: CLR A
MOV 50H,A ;最低位次数 MOV 51H,A
MOV 52H,A ; 秒位次数 MOV 53H,A
MOV 54H,A ;分位计数
MOV 55H,A
DS1:MOV TMOD,#61H ;定时0模式1,计数1模式2 MOV TH0,#0D8H ;初值定时10ms MOV TL0,#0F0H
MOV TH1,#0FFH ;初值,溢出中断 MOV TL1,#0FFH SETB EA SETB ET1 SETB ET0 SETB TR0 SETB TR1
XS: MOV R1,#50H MOV R2,#0DFH MOV R3,#2 MOV R4,#4 JNB P3.4,STOP AJMP NEXT STOP:CPL TR0 WAIT:JB P3.4,NEXT SJMP WAIT NEXT:MOV A,@R1 INC R1
MOV DPTR,#DUAN MOVC A,@A+DPTR SETB P2.6 MOV P0,A CLR P2.6 SETB P2.7 MOV A,R2 MOV P0,A
CLR P2.7 ;位选置位 MOV A,R2 RR A MOV R2,A LCALL DEL DJNZ R3,NEXT
XSD: MOV DPTR,#XDUAN MOV A,@R1
MOVC A,@A+DPTR SETB P2.6 MOV P0,A CLR P2.6 SETB P2.7 MOV A,R2 MOV P0,A
CLR P2.7 ;位选置位 MOV A,R2 RR A
LCALL DEL AGA:MOV A,@R1 INC R1
MOV DPTR,#DUAN MOVC A,@A+DPTR SETB P2.6 MOV P0,A
CLR P2.6 SETB P2.7 MOV A,R2 MOV P0,A
CLR P2.7 ;位选置位 MOV A,R2 RR A MOV R2,A LCALL DEL DJNZ R4,AGA LJMP XS
TIME:MOV TH0,#0D8H ;定时中断 MOV TL0,#0F0H INC 50H MOV A,50H
CJNE A,#10,RETUNT ;50H满10给51H单元+1 MOV 50H,#00H INC 51H MOV A,51H
CJNE A,#10,RETUNT ;51H满10给52H单元+1 MOV 51H,#00H INC 52H MOV A,52H
CJNE A,#10,RETUNT ;52H满10给53H单元+1 MOV 52H,#00H INC 53H MOV A,53H
CJNE A,#6,RETUNT ;53H满10给54H单元+1 MOV 53H,#00H INC 54H
MOV A,54H
CJNE A,#10,RETUNT ;54H满10给55H单元+1 MOV 54H,#00H INC 55H MOV A,55H
CJNE A,#6,RETUNT MOV 55H,#00H
RETUNT:RETI
S3: CLR TR0 CLR A
MOV 50H,A ;最低位次数 MOV 51H,A
MOV 52H,A ; 秒位次数 MOV 53H,A
MOV 54H,A ;分位计数 MOV 55H,A RETI
DEL:MOV R6,#2 ;延时1ms DEL1:MOV R7,#248 NOP
DEL2:DJNZ R7,DEL2 DJNZ R6,DEL1 RET
DUAN:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;段选地址表
XDUAN:DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH 数点的段码 END
带小 ;
共分享92篇相关文档