秒表计时器设计 学院 土木工程 班级 交运021 设计人 张志东 __ 成绩 __ 1. 设计目的 (1)培养学生综合利用MCS- 51单片机的软硬件知识进行程序设计的能力,解决一些实际问题。 (2)进一步加深对MCS-51单片机内部结构和程序设计方法的理解。 (2)提高学生建立程序文档、归纳总结的能力。 2. 总体设计 1. 所能实现的功能: 1. 计时,计时数值最大为99分59秒99; 2. 停止或继续; 3. 清零。 2. 总体设计方案:用LED数码管显示计时的时间,显示的时间应有百分之一秒位、十分 之一秒位、秒个位、秒十位、分个位、分十位;利用单片机的外中断,某键为低 时产生中断开始计时,再一次为低时产生中断停止计时;另一键为低时产生中断 使时间清0。 3. 硬件系统设计 1. 所需设备:DICE- 5013S实验系统一个,并行接口8155一个,PC微机(P4)一台。 2. 接线设计: 1. 将P1.2(X3)接到按钮开关1上,作为STOP中断; 2. 外部中断0的引脚INT0(X15)接按钮开关2,作为CLEAR中断。 4. 软件系统设计 1. 软件功能模块设计及流程图 先利用计时中断产生百分之一秒基时,将百分之一秒位、十分之一秒位、秒个位 、秒十位、分个位、分十位分别存于片内RAM地址79H,7AH,7BH,7CH,7DH,7EH中, 再由主程序显示程序将其显示在LED显示器上;开始/继续通过STOP中断对P1.2进 行取反,然后在计时中断中对输入口P1.2的位进行判断来实现;清零通过在清零 中断中设置各位初值来实现。 主流程图: Y N Y N Y N 计时中断程序流程图: N Y N Y N Y 2.程序清单和注释 ORG 0000H AJMP MAIN ORG 0003H AJMP CLEAR ;清零中断 ORG 000BH AJMP START ;计时中断 ORG 0013H AJMP STOP ;停止中断 MAIN: MOV TMOD,#01H ;T/C0工作方式为方式0 MOV IE, #87H ;开启INT0 中断 MOV TL0, #78H ;置T/C0初值(216- 10000/2=EC78H) MOV TH0, #0ECH SETB TR0 ;开启各个中断 SETB IT0 SETB IT1 MOV R4, #00H ;1/100秒置初值 MOV R3, #00H ;秒置初值 MOV R2, #00H ;分置初值 MOV 79H, #00H ;1/100秒位置初值 MOV 7AH, #00H ;1/10秒位置初值 MOV 7BH, #00H ;秒位置初值 MOV 7CH, #00H ;十秒位置初值 MOV 7DH, #00H ;分位置初值 MOV 7EH, #00H ;十分位置初值 SETB P1.2 SHOW: MOV SP,#5FH ;显示程序 MOV A,#03H MOV DPTR,#0FF20H ;设置8155初始化 MOVX @DPTR,A DISP4: MOV R5,#01H MOV R0,#79H MOV A,R5 LD0: MOV DPTR,#0FF21H ;字位码送8155A口 MOVX @DPTR,A MOV DPTR,#0FF22H MOV A,@R0 ADD A,#0EH MOVC A,@A+PC ;查字形表 MOVX @DPTR,A ;字型码送8155B口 ACALL DLAY ;延时1MS INC R0 MOV A,R5 JB ACC.5,LD1 RL A MOV R5,A AJMP LD0 LD1: SJMP DISP4 DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H,88H,83H,0C6H DB 0A1H,86H,8EH,0FFH,0CH,89H DB 0C8H,0C1H,7FH,0BFH DLAY: MOV R7,#02H ;延时1MS DL1: MOV R6,#0FFH DL2: DJNZ R6,DL2 DJNZ R7,DL1 RET START: MOV TL0, #78H MOV TH0, #0ECH PUSH ACC JNB P1.2,NEXT ;P1.2为0则返回不计时 INC R2 MOV A, R2 MOV B, #10 DIV AB MOV 79H, B ;存1/100秒位 MOV 7AH, A ;存1/10秒位 CJNE R2, #100, NEXT ;1/100秒到100则秒加一 MOV R2, #00H MOV 79H, #00H MOV 7AH, #00H INC R3 MOV A, R3 MOV B, #10 DIV AB MOV 7BH, B ;存秒位 MOV 7CH, A ;存