⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wdt842.lst

📁 ADUC842 C程序集,包括ADC,DAC,PLL,PWM,WDT等程序.
💻 LST
📖 第 1 页 / 共 3 页
字号:
  00FE          =1   174     WCOL     BIT   0FEH  ;SPICON.6 - SPI WRITE COLLISION ERROR FLAG
  00FF          =1   175     ISPI     BIT   0FFH  ;SPICON.7 - SPI INTERRUPT BIT
                =1   176     
                =1   177     ;kei842.dat end================================================kei842.dat end
                =1   178     ;
                     179     ;
----                 180             CSEG at 0000h
0000 02008E          181     rstorg: ljmp    amain
                     182     ;
                     183     ;Function Start======================================================Function Start
                     184     ;==========Compiler Specifics:
                     185     ;
                     186     ;WdtInt==========Watchdog interrupt entry.
                     187     ;C Function prototype: interrupt void WdtInt(void);
A51 MACRO ASSEMBLER  WDT842                                                                 17/10/03 17:46:03 PAGE     4

                     188     ;Description of Function: On interrupt it calls user watchdog handler.
                     189     ;User interface: User watchdog handler must be at WdtUInt.
                     190     ;Robustness: No known problems.
                     191     ;Side effects: Uses 2 stack levels.
                     192     ;
----                 193             CSEG at 0005bh          ;WDT interrupt vector.
005B 12005F          194     WdtInt: lcall   WdtUint         ;Jump to user watchdog interrupt handler.
005E 32              195             reti
                     196     ;
                     197     ;WdtUint==========Watchdog user handler.
                     198     ;C Function prototype: char WdtUint(void);
                     199     ;Description of Function: User defined.
                     200     ;User interface: User defined.
                     201     ;Robustness: User defined.
                     202     ;Side effects: User defined.
                     203     ;
005F                 204     WdtUint:;insert watchdog handler here.
005F B2B3            205             cpl     P3.3            ;To show interrupt occured.
                     206     ;setb   WDS
0061 22              207             ret
                     208     ;
                     209     ;Function End==========================================================Function End
                     210     ;Assembler main program.===========================================================
                     211     ;
                     212     ;       org 00140h
                     213     ;
0062 1201B4          214     WdWas:  lcall   flick           ;Flicker for 4s to indicate
0065 1201B4          215             lcall   flick           ; watchdog reset restart.
0068 E5A5            216             mov     a,HOUR          ;If HOUR=5
006A B4050C          217             cjne    a,#5,WdFrc
006D 1201B4          218     WdEnd:  lcall   flick           ; we are done.
0070 7FC8            219             mov     ip1l,#200       ;200ms delay should do nothing.
0072 7E00            220             mov     ip1h,#0
0074 120000   F      221             lcall   _PllDly
0077 80F4            222             sjmp    WdEnd
0079 75A505          223     WdFrc:  mov     HOUR,#5         ;Else set HOUR as marker immune to reset.
007C C2B4            224             clr     P3.4
007E 7FB8            225             mov     ip1l,#0b8h      ;3s delay should do nothing.
0080 7E0B            226             mov     ip1h,#00bh
0082 120000   F      227             lcall   _PllDly
0085 7F82            228             mov     cp1l,#082h      ;Force reset.
0087 120000   F      229             lcall   _WdtCfg
008A 00              230             nop
008B 0201A0          231             ljmp    WdErr           ;If no reset occured then error stop.
                     232     ;
008E C2B3            233     amain:  clr     P3.3            ;Mark start.
0090 7FB8            234             mov     ip1l,#0b8h      ;3s delay should do nothing.
0092 7E0B            235             mov     ip1h,#00bh
0094 120000   F      236             lcall   _PllDly
0097 C2B4            237             clr     P3.4            ;Signal 3s delay over.
0099 20C2C6          238             jb      WDS,WdWas       ;If reset by watchdog, go to WdWas.
009C 75A500          239             mov     HOUR,#0         ;else mark for first boot.
009F 75A400          240             mov     MIN,#0
00A2 75A101          241             mov     TIMECON,#1      ;Start timer else HOUR is lost by resets.
00A5 7F6A            242             mov     cp1l,#06ah      ;Start watchdog for 1s interrupt.
00A7 120000   F      243             lcall   _WdtCfg
00AA 7F58            244             mov     ip1l,#058h      ;Repeat 5 times: wait 600ms
00AC 7E02            245             mov     ip1h,#002h
00AE 120000   F      246             lcall   _PllDly
00B1 D2B4            247             setb    P3.4            ; flash 100ms
00B3 7F64            248             mov     ip1l,#100
00B5 7E00            249             mov     ip1h,#00
00B7 120000   F      250             lcall   _PllDly
00BA C2B4            251             clr     P3.4
00BC 120000   F      252             lcall   _WdtKk          ; kick watchdog before interrupt.
00BF 7F58            253             mov     ip1l,#058h
A51 MACRO ASSEMBLER  WDT842                                                                 17/10/03 17:46:03 PAGE     5

00C1 7E02            254             mov     ip1h,#002h
00C3 120000   F      255             lcall   _PllDly
00C6 D2B4            256             setb    P3.4
00C8 7F64            257             mov     ip1l,#100
00CA 7E00            258             mov     ip1h,#00
00CC 120000   F      259             lcall   _PllDly
00CF C2B4            260             clr     P3.4
00D1 120000   F      261             lcall   _WdtKk
00D4 7F58            262             mov     ip1l,#058h
00D6 7E02            263             mov     ip1h,#002h
00D8 120000   F      264             lcall   _PllDly
00DB D2B4            265             setb    P3.4
00DD 7F64            266             mov     ip1l,#100
00DF 7E00            267             mov     ip1h,#00
00E1 120000   F      268             lcall   _PllDly
00E4 C2B4            269             clr     P3.4
00E6 120000   F      270             lcall   _WdtKk
00E9 7F58            271             mov     ip1l,#058h
00EB 7E02            272             mov     ip1h,#002h
00ED 120000   F      273             lcall   _PllDly
00F0 D2B4            274             setb    P3.4
00F2 7F64            275             mov     ip1l,#100
00F4 7E00            276             mov     ip1h,#00
00F6 120000   F      277             lcall   _PllDly
00F9 C2B4            278             clr     P3.4
00FB 120000   F      279             lcall   _WdtKk
00FE 7F58            280             mov     ip1l,#058h
0100 7E02            281             mov     ip1h,#002h
0102 120000   F      282             lcall   _PllDly
0105 D2B4            283             setb    P3.4
0107 7F64            284             mov     ip1l,#100
0109 7E00            285             mov     ip1h,#00
010B 120000   F      286             lcall   _PllDly
010E C2B4            287             clr     P3.4
0110 120000   F      288             lcall   _WdtKk
0113 7F4C            289             mov     ip1l,#04ch      ;If in 1.1s
0115 7E04            290             mov     ip1h,#004h
0117 120000   F      291             lcall   _PllDly
                     292     ;       lcall   WdtRd           ; no interrupt occured
011A AFC0            293     mov     cp1l,WDCON
011C EF              294     mov     a,cp1l
011D BF6A02          295             cjne    cp1l,#06ah,WdEr1        ; then error stop.
                     296     ;       cjne    cp1l,#06eh,WdEr1        ; then error stop.
0120 8003            297             sjmp    WdFl1
0122 0201A0          298     WdEr1:  ljmp    WdErr
0125 1201B4          299     WdFl1:  lcall   flick           ;else flicker.
0128 7F62            300             mov     cp1l,#062h      ;Start watchdog for 1s reset.
012A 120000   F      301             lcall   _WdtCfg
012D 7F58            302             mov     ip1l,#058h      ;Repeat 5 times: wait 600ms
012F 7E00            303             mov     ip1h,#00h
0131 120000   F      304             lcall   _PllDly
0134 D2B4            305             setb    P3.4            ; flash 100ms
0136 7F64            306             mov     ip1l,#100
0138 7E00            307             mov     ip1h,#00
013A 120000   F      308             lcall   _PllDly
013D C2B4            309             clr     P3.4
013F 120000   F      310             lcall   _WdtKk          ; kick watchdog before interrupt.
0142 7F58            311             mov     ip1l,#058h
0144 7E02            312             mov     ip1h,#002h
0146 120000   F      313             lcall   _PllDly
0149 D2B4            314             setb    P3.4
014B 7F64            315             mov     ip1l,#100
014D 7E00            316             mov     ip1h,#00
014F 120000   F      317             lcall   _PllDly
0152 C2B4            318             clr     P3.4
0154 120000   F      319             lcall   _WdtKk
A51 MACRO ASSEMBLER  WDT842                                                                 17/10/03 17:46:03 PAGE     6

0157 7F58            320             mov     ip1l,#058h
0159 7E02            321             mov     ip1h,#002h
015B 120000   F      322             lcall   _PllDly
015E D2B4            323             setb    P3.4
0160 7F64            324             mov     ip1l,#100
0162 7E00            325             mov     ip1h,#00
0164 120000   F      326             lcall   _PllDly
0167 C2B4            327             clr     P3.4
0169 120000   F      328             lcall   _WdtKk
016C 7F58            329             mov     ip1l,#058h
016E 7E02            330             mov     ip1h,#002h
0170 120000   F      331             lcall   _PllDly
0173 D2B4            332             setb    P3.4
0175 7F64            333             mov     ip1l,#100
0177 7E00            334             mov     ip1h,#00
0179 120000   F      335             lcall   _PllDly
017C C2B4            336             clr     P3.4
017E 120000   F      337             lcall   _WdtKk
0181 7F58            338             mov     ip1l,#058h
0183 7E02            339             mov     ip1h,#002h
0185 120000   F      340             lcall   _PllDly
0188 D2B4            341             setb    P3.4
018A 7F64            342             mov     ip1l,#100
018C 7E00            343             mov     ip1h,#00
018E 120000   F      344             lcall   _PllDly
0191 C2B4            345             clr     P3.4
0193 120000   F      346             lcall   _WdtKk
0196 7F4C            347             mov     ip1l,#04ch      ;If in 1.1s
0198 7E04            348             mov     ip1h,#004h
019A 120000   F      349             lcall   _PllDly
019D 0201A0          350             ljmp    WdErr           ; no reset occured then error stop.
                     351     ;
01A0 D2B4            352     WdErr:  setb    P3.4            ;Signal error
01A2 7F1E            353             mov     ip1l,#30        ; 100ms delay.
01A4 7E00            354             mov     ip1h,#0
01A6 120000   F      355             lcall   _PllDly
01A9 C2B4            356             clr     P3.4

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -