求单片机程序 简易电子秒表的设计 应用AT89C51单片机的定时器设计一个

求单片机程序
简易电子秒表的设计
应用AT89C51单片机的定时器设计一个简易电子秒表,用2位数码管显示计时时间,计时范围0.1~9.9S。当第1次按下计时功能键时,秒表开始计时,并显示时间;第2次按下计时功能键时,停止计时,计算两次按下计时功能键的时间,并送入数码管显示;第3次按下计时功能键时,秒表清零、数码管显示归零,等待下一次按下计时功能键。
图片为 线路仿真图 需要的话可以提供仿真文件
求大神帮忙啊!!!

做了一个4位数码管的,可以计时到9分59.9秒 

KEYVAL EQU 30H
DAT  EQU 33H
SCANLED EQU 39H
CLK  EQU 77H
SEC  EQU 78H
SEC1 EQU 79H
SEC2 EQU 7AH
DOT  BIT 00H
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP EXTINT0
ORG 000BH
LJMP T0ISR ;50ms定时
ORG 001BH
LJMP T1ISR ;扫描显示
ORG 0030H
MAIN:
  MOV SP,#5FH
  MOV TMOD,#11H
  MOV TH0,#03CH
  MOV TL0,#0B0H
  MOV TH1,#0ECH
  MOV TL1,#078H
  MOV KEYVAL,#2
  MOV 33H,#10H
  MOV 34H,#10H
  MOV 35H,#10H
  MOV 36H,#10H
  MOV CLK,#0
  SETB IT0
  SETB EX0
  CLR TR0
  CLR ET0
  MOV R2,#0
  SETB TR1
  SETB ET1
  SETB EA
LOOP:
  MOV A,KEYVAL
LOOP1:
  JNZ LOOP2 ;启动
  SETB TR0
  SETB ET0
  SJMP LOOP
LOOP2:
  DEC A
  JNZ LOOP3 ;暂停
  CLR TR0
  CLR ET0
  SJMP LOOP
LOOP3:
  DEC A
  JNZ LOOP ;清零
  MOV 36H,#0
  MOV 35H,#0
  MOV 34H,#0
  MOV 33H,#0
  SJMP LOOP
EXTINT0:
  PUSH ACC
  INC KEYVAL
  MOV A,KEYVAL
  CJNE A,#3,EXT00
EXT00:
  JC EXT01
  MOV KEYVAL,#0
EXT01:
  POP ACC
  RETI
T0ISR:
  PUSH ACC
  CLR TR0
  MOV TH0,#3CH
  MOV TL0,#0B0H
  SETB TR0
  INC CLK
  MOV A,CLK
  CJNE A,#2,T0ISRE
  MOV CLK,#0
  INC 36H
  MOV A,36H
  CJNE A,#10,T0ISRE
  MOV 36H,#0
  INC 35H
  MOV A,35H
  CJNE A,#10,T0ISRE
  MOV 35H,#0
  INC 34H
  MOV A,34H
  CJNE A,#6,T0ISRE
  MOV 34H,#0
  INC 33H
  MOV A,33H
  CJNE A,#10,T0ISRE
  MOV 33H,#0
T0ISRE:
  POP ACC
  RETI
T1ISR:
  PUSH ACC
  CLR TR1
  MOV TH1,#0ECH
  MOV TL1,#78H
  SETB TR1
  MOV DPTR,#LEDTAB
T100:
  MOV R0,#DAT
  MOV A,SCANLED
  ADD A,R0
  MOV R0,A
  MOV A,SCANLED
  JNZ T101
  MOV P2,#01H
  SETB DOT
  SJMP T1DIS
T101:
  DEC A
  JNZ T102
  MOV P2,#02H
  CLR DOT
  SJMP T1DIS
T102:
  DEC A
  JNZ T103
  MOV P2,#04H
  SETB DOT
  SJMP T1DIS
T103:
  MOV P2,#08H
  CLR DOT
T1DIS:
  MOV A,@R0
  MOVC A,@A+DPTR
  JNB DOT,T1DIS1
  ORL A,#01H
T1DIS1:
  CPL A
  MOV P0,A
  INC SCANLED
  MOV A,SCANLED
  CJNE A,#4,T1END
  MOV SCANLED,#0
T1END:
  POP ACC
  RETI
LEDTAB: DB 0FCH ;"0" 00H
  DB 60H ;"1" 01H
  DB 0DAH ;"2" 02H
  DB 0F2H ;"3" 03H
  DB 66H ;"4" 04H
  DB 0B6H ;"5" 05H
  DB 0BEH ;"6" 06H
  DB 0E0H ;"7" 07H
  DB 0FEH ;"8" 08H
  DB 0F6H ;"9" 09H
  DB 0EEH ;"A" 0AH
  DB 3EH ;"B" 0BH
  DB 9CH ;"C" 0CH
  DB 7AH ;"D" 0DH
  DB 9EH ;"E" 0EH
  DB 8EH ;"F" 0FH
  DB 00H ;" " 10H

END

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-02
。。这个很简单吧 我可以追问

可以吗?用c语言写,应该不是太难的我们刚学单片机,老师的大作业

追答

可以 联系我呗1812619830

追问

在?我之前没看到你的回复

第2个回答  2016-06-02
我来帮你写程序,明天。追问

好的,多谢了🙏
需要仿真文件吗?

追答

不要

追问

好,谢谢

追答

按钮接在哪个口?

追问

p3.0

p3.0/rxd

你是用C写的吧?我们老师要求用C来写

追答

是的

数码管的1和2接在哪里?数码管是共阳还是共阴?

追问

这个,我也不太清楚这个图不是我做的,你先按照自己的做出来吧,回来我再改

图上显示数码管1、2通过二极管连在p2.0. p2.1的吧

追答

基本做好了,我看能传到百度知道不

追问

百度知道可以传文件?

本回答被提问者采纳
第3个回答  2016-06-02
你好,是用C语言写程序吗?