51单片机秒表设计本设计要求利用单片机的定时器,设计一个秒表计数器,6位显示(液晶及LED显示均可)

2024-11-24 17:34:22
推荐回答(3个)
回答1:

我觉得你不会,你还好嚣张的,直接就列出来,你要干嘛,你这像是请求别人回答问题吗,还不给分,你意思一下也可以啊,幸亏我做过,我程序摆在这,你修改下咯,希望对你有用

;=====================================================
;=====程序名称:中断方式0到255一秒加计数==============
;=====硬件说明:利用P2口接片选,P1口送数据============
;=====软件说明:采用定时器0,软启动,定时功能工作方式1
;============= 定时时间为50MS,加数时间为一秒========
;=====程序编辑时间:2010-12-05-11-15==================
;=====程序编辑人:X--MAN==============================
;=====所用芯片:STC89C52==============================
;=====所用晶振:12MHz=================================
;=====版本:V1.0======================================
;=====当前进度:已完成================================
;=====程序完成时间:2010-12-13-11-20==================
;=====================================================
;=====分配单元地址====================================
COUNT1 EQU 31H ;计数寄存器
;=====程序起始地址====================================
ORG 0000H ;程序起始地址
JMP RESET
ORG 000BH ;定时器0
AJMP T0_SER ;中断服务程序
ORG 0030H ;执行程序的起始地址
;========================================================
;=============复位程序===================================
RESET:
MOV 30H,#00H
MOV 31H,#00H
MOV TMOD,#01H
MOV DPTR,#65536-50000 ;定时器赋初值;这是一种蛮好的赋初值的方法
MOV TH0,DPH
MOV TL0,DPL
SETB ET0 ;开分中段
SETB EA ;开总中断
SETB TR0 ;启动T0
;============主程序======================================
MAIN:
MOV DPTR,#TAB ;查表头
MOV A,30H ;赋值
MOV B,#100 ;百位处理
DIV AB
MOVC A,@A+DPTR ;查表地址
MOV P1,A ;送数据
CLR P2.0 ;片选
SETB P2.1
SETB P2.2
CALL DELAY ;延时
MOV P1,#00H ;清屏

MOV A,B ;十位处理
MOV B,#10
DIV AB
MOV DPTR,#TAB ;查表头
MOVC A,@A+DPTR
MOV P1,A ;送数据
SETB P2.0 ;片选
CLR P2.1
SETB P2.2
CALL DELAY ;延时
MOV P1,#00H ;清屏

MOV A,B ;各位处理
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
SETB P2.0
SETB P2.1
CLR P2.2
CALL DELAY
MOV P1,#00H
JMP MAIN
;=============中断服务程序======================
T0_SER:
MOV DPTR,#65536-50000 ;重新赋值
MOV TH0,DPH
MOV TL0,DPL
PUSH PSW ;现场保护
PUSH ACC
INC COUNT1 ;计数是否够一秒
MOV A,COUNT1
CJNE A,#20,T0_RETI
MOV COUNT1,#00H
INC 30H ;每隔一秒加1
T0_RETI:
POP PSW ;出栈保护
POP ACC
RETI ;中断返回
;==============延时程序=========================
DELAY:
MOV R7,#0FFH
D1:
MOV R6,#0FH
DJNZ R6,$
DJNZ R7,D1
RET
;==============表===============================
TAB:
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;==============结束=============================
END

回答2:

看你没分。怎么的也得整点诚意啊。先给你看个图吧。应该满足你的要求

回答3:

http://www.51yutong.com/?p=69&a=view&c=46&r=221