📄 p89c668.lst
字号:
37 1
38 1 i = PCON & 0x10;
39 1 PCON &= 0xEF; //POF需要软件清除!!
40 1
41 1 return(i>>4);
42 1 }
43
44
45 /*******************************************************************
46 启动P89C668的PCA看门狗设置
47 函数原型: void WatchDog0_Init();
48 功能: 启动P89C668的PCA看门狗设置
49 注意:使用了内嵌ASM,需要打开 Generate Assembler SRC file
50 Assemble SRC file.
51 *******************************************************************/
52 void WatchDog0_Init()
53 {
54 1 /*
55 1 #pragma asm
56 1
57 1 MOV CCAPM4 , #4CH ;模块4 处于比较模式
58 1 MOV CCAP4L , #0FFH ;首先写入低字节
59 1 MOV CCAP4H , #0FFH ;在PCA 计数达到FFFFH之前,这些比较值必须被改变.
60 1 ORL CMOD , #40H ;只对CMOD的WDTE进行置位,使看门狗定时器使能.
61 1
62 1 #pragma endasm
63 1 */
64 1 CCAPM4 = 0x4C;
65 1 CCAP4L = 0xFF;
66 1 CCAP4H = 0xFF;
67 1 CMOD |= 0x40;
68 1 CR = 1; //开始PCA计数
69 1
70 1 }
71
72
C51 COMPILER V7.07 P89C668 07/08/2004 05:56:15 PAGE 5
73
74 /*******************************************************************
75 喂P89C668的PCA看门狗
76 函数原型: void WatchDog0();
77 功能: 喂P89C668的PCA看门狗
78 注意:使用了内嵌ASM,需要打开 Generate Assembler SRC file
79 Assemble SRC file.
80 *******************************************************************/
81 void WatchDog0()
82 {
83 1
84 1 /*
85 1 #pragma asm
86 1
87 1 CLR EA ;清除中断
88 1 MOV CCAP4L , #00 ;下一个比较值是当前PCA定时器高8位(CH)值的255倍
89 1 MOV CCAP4H , CH ;来避免(CCAPH,CCAPL) = (CH,CL)
90 1 SETB EA
91 1
92 1 #pragma endasm
93 1 */
94 1
95 1 EA = 0;
96 1 CCAP4L = 0x0;
97 1 CCAP4H = CH;
98 1 EA = 1;
99 1
100 1 }
101
102
103
104 /*******************************************************************
105 启动P89C668的硬件看门狗设置
106 函数原型: void WatchDog1_Init();
107 功能: 启动P89C668的硬件看门狗设置
108 *******************************************************************/
109 void WatchDog1_Init()
110 {
111 1 WDTRST = 0x1E;
112 1 WDTRST = 0xE1;
113 1 }
114
115
116
117 /*******************************************************************
118 喂P89C668的硬件看门狗
119 函数原型: void WatchDog1();
120 功能: 喂P89C668的硬件看门狗
121 *******************************************************************/
122 void WatchDog1()
123 {
124 1 WDTRST = 0x1E;
125 1 WDTRST = 0xE1;
126 1 }
C51 COMPILER V7.07 P89C668 07/08/2004 05:56:15 PAGE 6
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION PowerOff (BEGIN)
; SOURCE LINE # 34
; SOURCE LINE # 35
; SOURCE LINE # 38
0000 E587 MOV A,PCON
0002 5410 ANL A,#010H
;---- Variable 'i' assigned to Register 'R7' ----
; SOURCE LINE # 39
0004 5387EF ANL PCON,#0EFH
; SOURCE LINE # 41
0007 C4 SWAP A
0008 540F ANL A,#0FH
000A FF MOV R7,A
; SOURCE LINE # 42
000B ?C0001:
000B 22 RET
; FUNCTION PowerOff (END)
; FUNCTION WatchDog0_Init (BEGIN)
; SOURCE LINE # 52
; SOURCE LINE # 53
; SOURCE LINE # 64
0000 75C64C MOV CCAPM4,#04CH
; SOURCE LINE # 65
0003 75EEFF MOV CCAP4L,#0FFH
; SOURCE LINE # 66
0006 75FEFF MOV CCAP4H,#0FFH
; SOURCE LINE # 67
0009 43C140 ORL CMOD,#040H
; SOURCE LINE # 68
000C D2C6 SETB CR
; SOURCE LINE # 70
000E 22 RET
; FUNCTION WatchDog0_Init (END)
; FUNCTION WatchDog0 (BEGIN)
; SOURCE LINE # 81
; SOURCE LINE # 82
; SOURCE LINE # 95
0000 C2AF CLR EA
; SOURCE LINE # 96
0002 E4 CLR A
0003 F5EE MOV CCAP4L,A
; SOURCE LINE # 97
0005 85F9FE MOV CCAP4H,CH
; SOURCE LINE # 98
0008 D2AF SETB EA
; SOURCE LINE # 100
000A 22 RET
; FUNCTION WatchDog0 (END)
; FUNCTION WatchDog1_Init (BEGIN)
; SOURCE LINE # 109
; SOURCE LINE # 110
; SOURCE LINE # 111
0000 75A61E MOV WDTRST,#01EH
; SOURCE LINE # 112
0003 75A6E1 MOV WDTRST,#0E1H
; SOURCE LINE # 113
C51 COMPILER V7.07 P89C668 07/08/2004 05:56:15 PAGE 7
0006 22 RET
; FUNCTION WatchDog1_Init (END)
; FUNCTION WatchDog1 (BEGIN)
; SOURCE LINE # 122
; SOURCE LINE # 123
; SOURCE LINE # 124
0000 75A61E MOV WDTRST,#01EH
; SOURCE LINE # 125
0003 75A6E1 MOV WDTRST,#0E1H
; SOURCE LINE # 126
0006 22 RET
; FUNCTION WatchDog1 (END)
C51 COMPILER V7.07 P89C668 07/08/2004 05:56:15 PAGE 8
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
CH . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F9H 1
IEN0 . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
IEN1 . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00E8H 1
CR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C6H 1
CCAP4H . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FEH 1
CCAP4L . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00EEH 1
CCAPM4 . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C6H 1
CMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C1H 1
CCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C0H 1
PowerOff . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
PCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0087H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
WatchDog0_Init . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
WatchDog1_Init . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
WatchDog0. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
WatchDog1. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
S0CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
S1CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D8H 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
WDTRST . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A6H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 52 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -