当前位置:首页 > 三位循环秒表实验报告
4. 程序清单
CLR 20H.6 MOV R7,#100 ORG 0000H
LJMP KAISHI ;进主程序
ORG 000BH
LJMP INTT0 ;进中断程序
ORG 0020H
KAISHI:MOV P2,#0FFH ;扫描P2.4
MOV A,P2
CJNE A,#0FFH,XUAN LJMP KAISHI
XUAN: MOV 40H,A LCALL DELAY10 MOV A,P2
CJNE A,40H,KAISHI LJMP KEY0 KEY0: MOV C,P2.4
JC KAISHI
LJMP START
START: MOV 40H,#00H ;程序初始化 MOV 41H,#00H
MOV 42H,#00H SETB 20H.0 SETB 20H.1 SETB 20H.2 SETB 20H.3 CLR 20H.4 CLR 20H.5
MOV R3,#200
MOV TMOD ,#00000001B MOV TCON,#00010000B MOV TL0,#0F0H
MOV TH0, #0D8H MOV IE ,#10000010B
MAIN: MOV C,P2.5 ;中断等待程序 JNC C2 C1:JB 20H.0,A1 JB 20H.1,A2 JB 20H.2,A3
JB 20H.6,START
A1: LCALL DISPLAY ;数码管一位显示
LJMP MAIN
A2: LCALL DISPLAY1 ;数码管二位显示
LJMP MAIN
A3:LCALL DISPLAY2 ;数码管三位显示 LCALL DL2MS DJNZ R3,MAIN MOV 40H,#9 MOV 41H,#9 CLR 20H.2 SETB 20H.1 LJMP MAIN C2: LCALL DISPLAY1 CLR TR0
LJMP C2
INTT0: JB 20H.3,B1 ;开始中断程序 JB
CJNE A,#255,INTTOUT1 MOV 40H,#9
20H.4,B2 DEC 41H
JB 20H.5,B3
B1: MOV TL0,#0F0H ;进入加一程序
MOV TH0, #0D8H
DJNZ R7,INTTOUT1 MOV R7,#100 INC 40H MOV A,40H CJNE A,#10,INTTOUT1
MOV 40H,#00H CLR 20H.0 SETB 20H.1 INC 41H
MOV A,41H
CJNE A,#10,INTTOUT1 MOV 41H,#00H CLR 20H.1 INC 42H SETB 20H.2 CLR 20H.3 SETB 20H.4
RETI
B2: MOV TL0,#0F0H;进入二位减一程序
MOV TH0, #0D8H
DJNZ R7,INTTOUT1 MOV R7,#100
DEC 40H
MOV A,40H
MOV A,41H
CJNE A,#0,INTTOUT1
CLR 20H.1
SETB 20H.0 CLR 20H.4
SETB 20H.5
MOV 40H,#9
RETI
B3: MOV TL0,#0F0H;进入一位减一程序
MOV TH0, #0D8H
DJNZ R7,INTTOUT1 MOV R7,#100
DEC 40H MOV A,40H
CJNE A,#0,INTTOUT1 CLR 20H.5 CLR TR0
CLR 20H.0
CLR 20H.1 CLR 20H.2 CLR 20H.3 CLR 20H.4
CLR 20H.5
SETB 20H.6
RETI INTTOUT1: RETI
DISPLAY: MOV DPTR,#TAB ;
调用一位数码管显示
MOV A,40H MOVC A,@A+DPTR MOV P0,A CLR P2.3 LCALL DL2MS SETB P2.3
RET
DISPLAY1: MOV DPTR,#TAB;调用两位
数码管程序
MOV A,40H MOVC A,@A+DPTR MOV P0,A CLR P2.3 LCALL DL2MS
SETB P2.3
MOV A,41H
MOVC A,@A+DPTR
MOV P0,A CLR P2.2 LCALL DL2MS
SETB P2.2
RET
DISPLAY2: MOV DPTR,#TAB;调用三位
数码管程序
MOV A,40H MOVC A,@A+DPTR MOV P0,A
CLR P2.3
LCALL DL2MS SETB P2.3 MOV A,41H MOVC A,@A+DPTR MOV P0,A CLR P2.2 LCALL DL2MS
SETB P2.2 MOV A,42H
MOVC A,@A+DPTR MOV P0,A CLR P2.1 LCALL DL2MS SETB P2.1
RET
DELAY: MOV R6,#50 ;延时程序 D1: MOV R5,#199 D2: MOV R4,#124 D33: DJNZ R4,D33 DJNZ R5,D2 DJNZ R6,D1
RET
DELAY10:MOV R1,#20 ,延时程序 D3: MOV R2,#250 D4: DJNZ R2,D4 DJNZ R1,D3 RET
DL2MS: MOV 34H,#20 ;延时程序 DL1: MOV 35H,#40
DL2: DJNZ 35H,DL2 DJNZ 34H,DL1
RET
TAB: DB 0C0H;0 ;查表子程序 DB 0F9H;1 DB 0A4H;2 DB 0B0H;3 DB 099H;4 DB 092H;5 DB 082H;6 DB 0F8H;7 DB 080H;8
DB 090H;9 ;013456789字形码 END
5.性能测试与测量方法
5.1测量方法
将手机秒表测量时间作为标准时间T0,让设计的秒表与手机高精度秒表同时开始计时,当设计的秒表计时T1=600s时,按下手机停止计时按键。则绝对误差=|T1?T0|,相对误差=5.2测量记录 测量次数 1 2 3 4 5 秒表显示时间 600s 600s 600s 600s 600s 平均误差 表1 测量记录
标准测量时间 598.22s 598.25s 598.20s 598.21s 598.23s 绝对误差 1.78s 1.75s 1.80s 1.79s 1.77s 1.78s 相对误差 0.298% 0.293% 0.300% 0.299% 0.296% 0.297% |T1?T0|*100%。多次测量求平均值,得出准确精度。 T0
共分享92篇相关文档