单片机时钟程序

时钟程序:
    cont equ 30h
sec equ 31h
min equ 32h
hour equ 33h
dbuf0 equ 34h
dbuf1 equ 35h
    dbuf2 equ 36h
dbuf3 equ 37h
dbuf4 equ 38h
dbuf5 equ 39h
dbuf6 equ 3ah
dbuf7 equ 3bh
    dabit equ 3ch
 
org 0000h
ljmp main
 
org 000bh
ljmp timero
 
org 1000h
main: mov cont,#250
      mov sec,#0
  mov min,#0
  mov hour,#0
  mov dabit,#0
  mov dbuf6,#00h
  mov dbuf7,#00h
 
     setb ea
     setb et0
     mov tmod,#01h
 mov th0,#0f0h
 mov tl0,#60h
 setb tr0
 sjmp $
 
 
timero:mov th0,#0f0h
      mov tl0,#60h
  acall clock
  acall write_disbuf
  acall display
ex:   reti
 
 
clock:djnz cont,ck_ex
      mov cont,#250
  inc sec
  mov a,sec
  cjne a,#60,ck_ex
  mov sec,#0
  inc min
  mov a,min
  cjne a,#60,ck_ex
  mov min,#0
  inc hour
  mov a,hour
  cjne a,#12,ck_ex
  mov hour,#0
ck_ex:ret
 
write_disbuf:
      mov a,sec
  mov b,#10
  div ab
  mov dbuf0,b
  mov dbuf1,a
  mov a,min
  mov b,#10
  div ab
  mov dbuf2,b
  mov dbuf3,a
  mov a,hour
  mov b,#10
  div ab
  mov dbuf4,b
  mov dbuf5,a
  ret
 
display:
      mov p0,#0
  
  mov a,dabit
  anl a,#07h
  ;cjne a,#06h,next1
  ;mov a,#0
  mov dabit,a
 
next1: mov dptr,#tb1
  movc a,@a+dptr
  mov p1,a

  mov a,#dbuf0
  add a,dabit
  mov r1,a
  mov a,@r1
  mov dptr,#tb2
  movc a,@a+dptr
  mov p0,a
  inc dabit
  ret
 
     
tb1:  db 7fh,0bfh,0dfh,0efh,0f7h,0fbh,0fdh, 0feh
tb2 : db 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h,0feh,0f6h
end


打赏 支付宝打赏 微信打赏