?? blind_clock.lst
字號:
MPASM 4.00 Released BLIND_CLOCK.ASM 9-28-2008 6:09:53 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 ;盲人用電子鐘源程序
00002 ;晶振:4MHz
00003 ;作者:江蘇南通 吳漢清 Email: ntwhq@tom.com
00004 #INCLUDE "P12F629.INC"
00001 LIST
00002 ; P12F629.INC Standard Header File, Version 1.04 Microchip Technology, Inc.
00258 LIST
00000020 00005 W_TEMP EQU 20H
00000021 00006 ST_TEMP EQU 21H
00000022 00007 TEMP EQU 22H
00000023 00008 M EQU 23H ; 分寄存器
00000024 00009 T EQU 24H ; 十分寄存器
00000025 00010 H EQU 25H ; 時寄存器
00000026 00011 I EQU 26H
00000027 00012 J EQU 27H
00000028 00013 X EQU 28H
00000029 00014 Y EQU 29H
0000002A 00015 N EQU 2AH
00016
0000 00017 ORG 000H
0000 0000 00018 NOP
0001 2827 00019 GOTO MAIN
0004 00020 ORG 004H
00021
0004 00022 TMR1SERV ;定時中斷子程序
0004 00A0 00023 MOVWF W_TEMP
0005 0803 00024 MOVF STATUS,0
0006 00A1 00025 MOVWF ST_TEMP
0007 100C 00026 BCF PIR1,0
0008 30DC 00027 MOVLW 0DCH ;定時時間0.5S
0009 008E 00028 MOVWF TMR1L
000A 300B 00029 MOVLW 0BH
000B 008F 00030 MOVWF TMR1H
000C 0BA6 00031 DECFSZ I,1
000D 2823 00032 GOTO JUMP
000E 3078 00033 MOVLW 78H
000F 00A6 00034 MOVWF I
0010 0AA3 00035 INCF M,1 ;每中斷125次時間增加1分鐘
0011 0823 00036 MOVF M,0
0012 3C09 00037 SUBLW 09H
0013 1803 00038 BTFSC STATUS,C;超過10分鐘,跳一步
0014 2823 00039 GOTO JUMP
0015 01A3 00040 CLRF M ;分位清零
0016 0AA4 00041 INCF T,1 ;十分位加1
0017 0824 00042 MOVF T,0
0018 3C05 00043 SUBLW 05H
0019 1803 00044 BTFSC STATUS,C;超過60分鐘,跳一步
001A 2823 00045 GOTO JUMP
001B 01A4 00046 CLRF T ;十分位清零
001C 0AA5 00047 INCF H,1 ;小時位加1
001D 0825 00048 MOVF H,0
001E 3C0B 00049 SUBLW 0BH
001F 1803 00050 BTFSC STATUS,C;超過12小時,跳一步
MPASM 4.00 Released BLIND_CLOCK.ASM 9-28-2008 6:09:53 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0020 2823 00051 GOTO JUMP
0021 01A5 00052 CLRF H ;小時位清零
0022 2823 00053 GOTO JUMP
0023 0821 00054 JUMP MOVF ST_TEMP,0
0024 0083 00055 MOVWF STATUS
0025 0820 00056 MOVF W_TEMP,0
0026 0009 00057 RETFIE
00058
0027 00059 MAIN ;主程序
0027 01A3 00060 CLRF M ;初始化
0028 01A5 00061 CLRF H
0029 01A4 00062 CLRF T
002A 3078 00063 MOVLW 78H
002B 00A6 00064 MOVWF I
002C 1683 00065 BSF STATUS,RP0
002D 300E 00066 MOVLW 0EH ;GP1、GP2、GP3作輸入,GP0作輸出
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
002E 0085 00067 MOVWF TRISIO
002F 3007 00068 MOVLW 07H ;允許GPIO上拉,選擇內部時鐘
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0030 0081 00069 MOVWF OPTION_REG
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0031 140C 00070 BSF PIE1,0
0032 1283 00071 BCF STATUS,RP0
0033 3007 00072 MOVLW 07H ;禁止使用比較器
0034 0099 00073 MOVWF CMCON
0035 3034 00074 MOVLW 34H
0036 0090 00075 MOVWF T1CON ;預分頻器設為"1:8"
0037 30C0 00076 MOVLW 0C0H ;開TIMER1定時中斷
0038 008B 00077 MOVWF INTCON
0039 30DC 00078 MOVLW 0DCH ;定時時間0.5S
003A 008E 00079 MOVWF TMR1L
003B 300B 00080 MOVLW 0BH
003C 008F 00081 MOVWF TMR1H
003D 1410 00082 BSF T1CON,0 ;啟動TMR1開始計數
003E 1005 00083 BCF GPIO,GP0
003F 1885 00084 LOOPM BTFSC GPIO,GP1 ;分位按鍵掃描
0040 2859 00085 GOTO LOOPT
0041 2098 00086 CALL DELAY01S
0042 1885 00087 BTFSC GPIO,GP1
0043 2859 00088 GOTO LOOPT
0044 01A7 00089 CLRF J
0045 2098 00090 LOOPM_1 CALL DELAY01S
0046 0AA7 00091 INCF J,1
0047 0827 00092 MOVF J,0
0048 3C14 00093 SUBLW 14H
0049 1803 00094 BTFSC STATUS,C
004A 2854 00095 GOTO LOOPM_2
004B 0AA3 00096 INCF M,1
004C 0823 00097 MOVF M,0
004D 3C09 00098 SUBLW 09H
004E 1C03 00099 BTFSS STATUS,C
004F 01A3 00100 CLRF M
MPASM 4.00 Released BLIND_CLOCK.ASM 9-28-2008 6:09:53 PAGE 3
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0050 3001 00101 MOVLW 01H
0051 00A2 00102 MOVWF TEMP
0052 208E 00103 CALL SPEAKER
0053 283F 00104 GOTO LOOPM
0054 1C85 00105 LOOPM_2 BTFSS GPIO,GP1
0055 2845 00106 GOTO LOOPM_1
0056 0823 00107 MOVF M,0
0057 00A2 00108 MOVWF TEMP
0058 208E 00109 CALL SPEAKER
0059 1905 00110 LOOPT BTFSC GPIO,GP2 ;十分位按鍵掃描
005A 2873 00111 GOTO LOOPH
005B 2098 00112 CALL DELAY01S
005C 1905 00113 BTFSC GPIO,GP2
005D 2873 00114 GOTO LOOPH
005E 01A7 00115 CLRF J
005F 2098 00116 LOOPT_1 CALL DELAY01S
0060 0AA7 00117 INCF J,1
0061 0827 00118 MOVF J,0
0062 3C14 00119 SUBLW 14H
0063 1803 00120 BTFSC STATUS,C
0064 286E 00121 GOTO LOOPT_2
0065 0AA4 00122 INCF T,1
0066 0824 00123 MOVF T,0
0067 3C05 00124 SUBLW 05H
0068 1C03 00125 BTFSS STATUS,C
0069 01A4 00126 CLRF T
006A 3001 00127 MOVLW 01H
006B 00A2 00128 MOVWF TEMP
006C 208E 00129 CALL SPEAKER
006D 2859 00130 GOTO LOOPT
006E 1D05 00131 LOOPT_2 BTFSS GPIO,GP2
006F 285F 00132 GOTO LOOPT_1
0070 0824 00133 MOVF T,0
0071 00A2 00134 MOVWF TEMP
0072 208E 00135 CALL SPEAKER
0073 1985 00136 LOOPH BTFSC GPIO,GP3 ;時位按鍵掃描
0074 283F 00137 GOTO LOOPM
0075 2098 00138 CALL DELAY01S
0076 1985 00139 BTFSC GPIO,GP3
0077 283F 00140 GOTO LOOPM
0078 01A7 00141 CLRF J
0079 2098 00142 LOOPH_1 CALL DELAY01S
007A 0AA7 00143 INCF J,1
007B 0827 00144 MOVF J,0
007C 3C14 00145 SUBLW 14H
007D 1803 00146 BTFSC STATUS,C
007E 2888 00147 GOTO LOOPH_2
007F 0AA5 00148 INCF H,1
0080 0825 00149 MOVF H,0
0081 3C0B 00150 SUBLW 0BH
0082 1C03 00151 BTFSS STATUS,C
0083 01A5 00152 CLRF H
0084 3001 00153 MOVLW 01H
MPASM 4.00 Released BLIND_CLOCK.ASM 9-28-2008 6:09:53 PAGE 4
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0085 00A2 00154 MOVWF TEMP
0086 208E 00155 CALL SPEAKER
0087 2873 00156 GOTO LOOPH
0088 1D85 00157 LOOPH_2 BTFSS GPIO,GP3
0089 2879 00158 GOTO LOOPH_1
008A 0825 00159 MOVF H,0
008B 00A2 00160 MOVWF TEMP
008C 208E 00161 CALL SPEAKER
008D 283F 00162 GOTO LOOPM
00163
008E 00164 SPEAKER ;發聲子程序
008E 0AA2 00165 INCF TEMP,1
008F 0BA2 00166 S1 DECFSZ TEMP,1
0090 2892 00167 GOTO S2
0091 2897 00168 GOTO S3
0092 1405 00169 S2 BSF GPIO,GP0
0093 20A1 00170 CALL DELAY025S
0094 1005 00171 BCF GPIO,GP0
0095 20A1 00172 CALL DELAY025S
0096 288F 00173 GOTO S1
0097 0008 00174 S3 RETURN
00175
0098 00176 DELAY01S ;0.1s延時子程序
0098 3084 00177 MOVLW 84H
0099 00A8 00178 MOVWF X
009A 30FB 00179 D01_1 MOVLW 0FBH
009B 00A9 00180 MOVWF Y
009C 0BA9 00181 D01_2 DECFSZ Y,1
009D 289C 00182 GOTO D01_2
009E 0BA8 00183 DECFSZ X,1
009F 289A 00184 GOTO D01_1
00A0 0008 00185 RETURN
00186
00A1 00187 DELAY025S ;0.5s延時子程序
00A1 3005 00188 MOVLW 05H
00A2 00AA 00189 MOVWF N
00A3 3042 00190 D025_1 MOVLW 42H
00A4 00A8 00191 MOVWF X
00A5 30FB 00192 D025_2 MOVLW 0FBH
00A6 00A9 00193 MOVWF Y
00A7 0BA9 00194 D025_3 DECFSZ Y,1
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -