求单片机的流程图,,程序已知,急,,,1

OUTBIT equ 08002h ; 位控制口
OUTSEG equ 08004h ; 段控制口
IN equ 08001h ; 键盘读入口

LEDBuf equ 60h ; 显示缓冲
Hour equ 40h
Minute equ 41h
Second equ 42h
C100us equ 43h

Tick equ 10000
T100us equ 256-50

ljmp Start

org 000bh
T0Int:
push PSW
push ACC

mov a, C100us+1
jnz Goon
dec C100us
Goon:
dec C100us+1

mov a, C100us
orl a, C100us+1
jnz Exit

mov C100us, #high(Tick)
mov C100us+1, #low(Tick)

inc Second
mov a, Second
cjne a, #60, Exit

mov Second, #0
inc Minute
mov a, Minute
cjne a, #60, Exit

mov Minute, #0
inc Hour
mov a, Hour
cjne a, #24, Exit

mov Hour, #0
Exit:
pop ACC
pop PSW
reti

Delay: ; 延时子程序
mov r7, #0
DelayLoop:
djnz r7, DelayLoop
djnz r6, DelayLoop
ret

LEDMAP: ; 八段管显示码
db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h
db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h
DisplayLED:
mov r0, #LEDBuf
mov r1, #6 ; 共6个八段管
mov r2, #00100000b ; 从左边开始显示
Loop:
mov dptr, #OUTBIT
mov a, #0
movx @dptr, a ; 关所有八段管

mov a, @r0
mov dptr, #OUTSEG
movx @dptr,a
mov dptr, #OUTBIT
mov a, r2
movx @dptr, a ; 显示一位八段管

mov r6, #1
call Delay

mov a, r2 ; 显示下一位
rr a
mov r2, a

inc r0

djnz r1, Loop

ret

; ===============================================

还有一半的程序,因为一个太长发不了,在下一个.

这程序看起来一团麻,程序没看全
不过我建议不要这样写
中断里面一个变量来进行加1就可以了
中断里面的处理时间太长了
要说流程的话我一般是这样写的

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;程序说明:
;程序名称:JINCHU.ASM
; 功能:
;
;特别说明:
;;;;;;;;;;;;;;;;;;;;常量/变量等值定义;;;;;;;;;;;;;;;;;;
;;PORT DEFINED;;;;;;;;;;;;;;;;;;;I/O口定义

;;BIT DEFINED(保留20H-23H共32位);;位定义

;;BYTE DEFINED;;;;;;;;;;;;;;;;;;;字节定义

;;起始程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 0000H
LJMP START
ORG 000BH
LJMP T0_INT
ORG 0100H
;;初始化程序;;;;;;;;;;;;;;;;;;;;;;;;;
START:

;;主程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN:

;;子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP:

;;中断处理程序;;;;;;;;;;;;;;;;;;;;;;
T0_INT:

;;延时子程序;;;;;;;;;;;;;;;;;;;;;;;;
DELAY:

END
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-07-08
学习单片机,要的是有动手的欲望。这样你才能在单片机的世界里累并快乐着。
第2个回答  2009-07-10
看来你的程序是非法所得,
然后再非法所得一个流程图!
第3个回答  2009-07-08
372824761108513身份证码我的胡甫虎
相似回答