导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→HOLTEK时钟程序

* 102229: 单片机数字时钟电路设计(含源码)

   mcubase 
mcubase发表的帖子 

 HOLTEK时钟程序
以下程序为HOLTEK的部分时钟程序,有需要的具体程序请到单片机基地参考
# include ht48ra0-2.inc

;=====================================
;Define area
debounce_num equ  16
scl    equ  pb.1  ;serial clock data input
sda    equ  pb.0  ;Serial data I/O
read_out  equ  [3ch]   ;write register
write_in  equ  [3dh]   ;Read register
word_address equ  [3eh]  
data_8   equ  [3fh]
;---------------------------

;---------------------------
;Define Macro
;Delay Macro,delay 100us
d_1  macro
 local label
 mov  a,64h
 mov  delay,a
label:
 sdz  delay
 jmp  label
endm
;*************************************************************
SAMPLE  .SECTION        'DATA'

;; --- Temp RAM ---
        a_sr10          db     ?         ;;WORK Temp Register
        a_sr11          db     ?      ;;
 temp_num        db     ? 

;;------CODE   RAM---------

 array_data       db 8 dup (?)     ;;8 byte password

;;--------- Program RAM --------
        column      db      ?      ;;Scan Key column Step Number
        key_code0       db      ?      ;;Save Previous Key Number
        key_code        db      ?      ;;Scan Key Number
        col_value       db      ?      ;;Read on column value to a_COL_value
        kd_temp         db      ?      ;;Key Debounce Check Times
        nkd_temp        db      ?      ;;Key Release Confirm Times
 Key_data db ?      ;;PA temp register
 Key_data1     db  ?
 delay      db  ?
 delay0      db  ?
 delay1      db  ?
 t_count      db  ?
 t_count1     db  ?
 release_num     db  ?  ;;count release key 

;;--- User FLAG define ---
        fg_SendActive    dbit          ;;VALIDITY KEY Flag
        fg_PressRec      dbit          ;;Check Column Multi_Key Flag
        fg_repeat        dbit          ;;REPEAT KEY Flag
        fg_Multi_Key     dbit          ;;INVALID KEY Flag
 release_flg  dbit       ;;release flag
 flg_chang_key  dbit
 flg_chang_personal dbit
 flg_chang_manage dbit
 flg_chang  dbit
;*************************************************************

code    .section        at 0 'code'


                org     00h
START:
  set  pa
  mov  a, 20H
  mov  mp0, a
  mov  a, 50H  
CLR_RAM:  
  clr  r0
  inc  mp0
  sdz  acc
  jmp  clr_ram

  mov  a,070h
  mov  t_count,a
  mov  a,050h
  mov  t_count1,a
  mov  a,07fh
  mov  release_num,a

ini_clock:
  mov  a, offset personal_clock  
                mov      tblp,a
  mov  a,00h      ;write 00H to eeprom address,it is personal password 
  mov  word_address,a
ini_personal_clock: 
  tabrdl write_in
  call ht24_write
  inc  TBLP
  inc  word_address
  mov  a,offset personal_clock+8
  xor  a,TBLP
  sz  acc
  jmp  ini_personal_clock

  mov  a, offset manage_clock  
       mov     tblp,a 
  mov  a,010h      ;write 10H to eeprom address,it is administration password 
  mov  word_address,a
ini_manage_clock:
  tabrdl write_in
  call  ht24_write
  inc  TBLP
  inc  word_address
  mov  a,offset manage_clock+8
  xor  a,TBLP
  sz  acc
  jmp  ini_manage_clock

  clr  pa.1
  clr  pa.2  
  mov  a, offset array_data
  mov  mp0, a


;@*********** Polling System Event ***********
MAIN_PROC:
       call  scan_key_proc         ;SCAN KEY PROCEDURE
  mov  a,0bh     ;* key
  xor  a,key_code
  sz  acc 
  jmp  $+2
  jmp  release_proc

  sz   fg_repeat
  jmp  sleep

        sz      fg_Multi_Key          ;Check Invalid Key
        jmp     main_proc          ;   

  mov  a,0ch      ;red key
  xor  a,key_code
  sz  acc
  jmp  $+4
  set  flg_chang_key
  set  flg_chang_personal
  jmp  main_proc
  
  mov  a,0ah     ;"0" key
  xor  a,key_code
  sz   acc 
  jmp  $+4
  clr  flg_chang_personal 
  set  flg_chang_manage
  jmp  main_proc
  
       sz  key_code                  ;Check NO Key Press 
  jmp  judge
  jmp  sleep 


judge:
  set  pa.1
  call  delay30ms
  clr  pa.1
  
  mov  a,070h
  mov  t_count,a
  mov  a,050h
  mov  t_count1,a

  sz  release_flg
  jmp  release_proc     ;;deal with “*” key
  sz  flg_chang_key
  jmp  manage_code     ;;input mange password
  sz  flg_chang_manage
  jmp  chang_manage_proc    ;;change mange password
  sz  flg_chang_personal
  jmp  chang_personal_proc    ;;change personal password
                jmp     personal_code          ;;input personal password


发表时间:2007年1月22日19:58:55

  
回复该帖

本主题共有 7 帖,分页:>>>>>该主题的所有内容[7]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  102281.[详细]显示程序
摘要:;************************************************** FIRST EQU P2.7 ;第一位数码管的位控制 SECOND EQU&......(1234字)
- [mcubase][898次] 2007年1月24日

  102353.[详细]频率计
摘要:请问有没有频率计的源码?......(24字)
- [1110111][950次] 2007年1月27日

[上一篇帖子]:求助:s3c2410的触摸屏驱动程序触摸屏幕驱动程序不太懂,求助
[下一篇帖子]:新手上路,请多多多指教!请问用万用表测量引脚的方法怎样判断单片机是正常的????