网站导航免费论文 原创论文 论文搜索 作业答案 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 设计资源 > 单片机 > 正文
ST套件上时钟小时分钟轮换显示,24小时误差5秒以内
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 10/06/19

ST套件上时钟小时分钟轮换显示,24小时误差5秒以内

;ST套件上时钟,小时与分钟每2秒轮换显示,按S2调整分钟,按S3调整小时
;显示小时时DP亮,分钟时DP不亮
;实际测试与手机时间对比,现已运行11个小时,较准确
;mplab模拟,计算每天可能要慢5秒以内(STOPWACH)
;初学PIC第二个程序,by wonderfulsf 12/12/2004

  LIST P=16F84A,R=DEC
__CONFIG B'11111111110001'

;--------------------------------

RTCC EQU 01H
PC  EQU 02H
STATUS EQU 03H
PORTA EQU 05H
PORTB EQU 06H
INTCON EQU 0BH
OPTION_REG EQU 1H
TRISA EQU 5H
TRISB EQU 6H

;-----------------------STATUS
C EQU 0
Z EQU 2
RP0 EQU 5

;-----------------------INTCON
T0IF EQU 2
T0IE EQU 5
GIE  EQU 7

;-----------------------IN PROGRAME VAR
C0  EQU 10H
C1  EQU 11H
C2  EQU 12H
TABADD EQU 13H
FLAGS EQU 14H     ;显示标志寄存,1位高/低位扫描
        ;2位小时/分钟显示标志
        ;3位4位分别为分钟/小时调整态标志
DIS_H EQU 15H     ;显示位缓存
DIS_L EQU 16H
SEC  EQU 17H     ;秒位
MIN_H EQU 18H     ;分钟
MIN_L EQU 19H
HOU_H EQU 1AH     ;小时
HOU_L EQU 1BH
W_T  EQU 1CH
ST_T EQU 1DH
DIGMS EQU 1EH     ;5ms计数
;------------------------

  ORG 0000H
  GOTO MAIN
  ORG 004H
TIME
  MOVWF W_T
  SWAPF STATUS,W
  MOVWF ST_T

  MOVLW 100
  MOVWF RTCC
  BCF INTCON,T0IF

  MOVLW 0FFH    ;关闭数码管
  MOVWF PORTB    ;B口高电平
  BSF PORTA,1    ;A口高电平
  BSF PORTA,2

  BTFSC FLAGS,3   ;3位调整分钟时只显示分钟不切换显示
  BSF FLAGS,2
  BTFSC FLAGS,4   ;4位调整小时时只显示小时
  BCF FLAGS,2

  MOVFW MIN_H    ;显示分钟或小时,由FLAG(2)位决定
  BTFSS FLAGS,2   ;为1时显示分种
  MOVFW HOU_H
  MOVWF DIS_H

  MOVFW MIN_L
  BTFSS FLAGS,2
  MOVFW HOU_L
  MOVWF DIS_L

  MOVLW TABLE    ;B口显示数据,高低位由FLAGS(1)位决定
  MOVWF TABADD
  MOVFW DIS_L
  BTFSS FLAGS,1
  MOVFW DIS_H
  ADDWF TABADD,W
  CALL CONVERT
  MOVWF PORTB
  BTFSS FLAGS,2   ;显示小时时DP亮
  BCF PORTB,7

  BTFSS FLAGS,1
  BCF PORTA,1
  BTFSC FLAGS,1
  BCF PORTA,2
  MOVLW 00000010B
  XORWF FLAGS,1  

;------------------------------------显示完成,FLAGS(1)取反

  INCF DIGMS,1   ;5ms计时,200次进秒
  MOVLW 200
  XORWF DIGMS,0
  BNZ TIMEND
  CLRF DIGMS

  INCF SEC,1
  BCF FLAGS,2
  BTFSS SEC,1
  BSF FLAGS,2   ;2秒种,小时/分钟交换
  MOVLW 60
  XORWF SEC,0
  BNZ TIMEND
  CLRF SEC

  INCF MIN_L,1
  MOVLW 10
  XORWF MIN_L,0
  BNZ TIMEND
  CLRF MIN_L

  INCF MIN_H,1
  MOVLW 6
  XORWF MIN_H,0
  BNZ TIMEND
  CLRF MIN_H

  MOVLW 2
  XORWF HOU_H,0
    BZ  HOU1
  INCF HOU_L,1
  MOVLW 10
  XORWF HOU_L,0
  BNZ TIMEND
  CLRF HOU_L
  INCF HOU_H,1
  GOTO TIMEND
HOU1
  INCF HOU_L,1
  MOVLW 4
  XORWF HOU_L,0
  BNZ TIMEND
  CLRF HOU_L
  CLRF HOU_H

TIMEND
  SWAPF ST_T,W
  MOVWF STATUS
  SWAPF W_T,F
  SWAPF W_T,W
  RETFIE

;--------------------------------------
MAIN
  CLRF PORTA
  CLRF PORTB

  BSF STATUS,RP0
  MOVLW 00011000B
  MOVWF TRISA
  MOVLW 00000000B
  MOVWF TRISB
  MOVLW 10000100B
  MOVWF OPTION_REG
  BCF STATUS,RP0

  MOVLW 100
  MOVWF RTCC
  MOVLW 0FFH
  MOVWF PORTB
  BSF PORTA,1
  BSF PORTA,2

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 电话:013574892963 QQ:3710167 邮箱:Educs@163.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 Www.myeducs.Cn All Rights Reserved
湘ICP备09003080号