📄 x5045.lst
字号:
C51 COMPILER V7.07 X5045 06/10/2005 08:13:56 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE X5045
OBJECT MODULE PLACED IN X5045.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE X5045.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include"main.h"
2 #include<intrins.h>
3 #include"x5045.h"
4 #define uchar unsigned char
5
6 #define WREN 0X06
7 #define WRDI 0X04
8 #define RDSR 0x05
9 #define WRSR 0x01
10 #define READ 0x03
11 #define WRITE 0x02
12
13 #define NOP _nop_()
14
15 #define WD1_4S 0x00
16 #define WD600ms 0x10
17 #define WD200ms 0x20
18 #define WDDISABLE 0x30
19
20 sbit cs_dog=P1^2;//p2.4
21 sbit sck_dog=P1^3;
22 sbit si_dog=P1^4;
23 sbit so_dog=P1^5;
24 //extern delay_ms(uchar Count);
25
26 /*************************************************************************
27 * 函数原型:void STAR_25045(void)
28 * 功 能:启动看门狗
29 * 返 回 值:无
30 **************************************************************************/
31 void STAR_25045()//被调用的函数必须放在调用函数之前。
32 {
33 1 cs_dog=1;
34 1 NOP;
35 1 sck_dog=0;
36 1 NOP;
37 1 cs_dog=0;
38 1 }
39
40 /*************************************************************************
41 * 函数原型:uchar Byte_In()
42 * 功 能:从so_dog脚接收数据。
43 * 返 回 值:I_Data(一个字节)
44 **************************************************************************/
45 uchar Byte_out()
46 {
47 1 uchar i,I_Data=0;
48 1 //P0=0xff;//这就一定要
49 1 for(i=0;i<8;i++)
50 1 {
51 2 sck_dog=1;
52 2 NOP;
53 2 NOP;
54 2 NOP;
55 2 sck_dog=0;
C51 COMPILER V7.07 X5045 06/10/2005 08:13:56 PAGE 2
56 2 I_Data=I_Data<<1;
57 2 if(so_dog)
58 2 {
59 3 I_Data++;
60 3 }
61 2 }
62 1 return(I_Data);
63 1 }
64 /*************************************************************************
65 * 函数原型:void Byte_Out(uchar I_Data)
66 * 功 能:从si_dog脚发送数据
67 * 参 数:I_Data
68 * 返 回 值:无
69 **************************************************************************/
70 void Byte_in(uchar I_Data)
71 {
72 1 uchar i ;
73 1
74 1 for(i=0;i<8;i++)
75 1 {
76 2 sck_dog=0;
77 2 if(0x80&I_Data)
78 2 {si_dog=1;}
79 2 else
80 2 {si_dog=0;}
81 2 NOP;
82 2 NOP;
83 2 NOP;
84 2 sck_dog=1;
85 2 I_Data=I_Data<<1;
86 2 }
87 1
88 1 si_dog=0;
89 1 }
90
91 /*************************************************************************
92 * 函数原型:void Wren_25045()
93 * 功 能:打开看门狗写使能。
94 * 返 回 值:无
95 **************************************************************************/
96 void Wren_25045()//Open write enable
97 {
98 1 STAR_25045();
99 1 Byte_in(WREN);
100 1 //sck_dog=0;
101 1 // _nop_();
102 1 NOP;
103 1 NOP;
104 1 NOP;
105 1 cs_dog=1;
106 1 }
107 /*************************************************************************
108 * 函数原型:uchar RDSR_25045()
109 * 功 能:读看门狗状态寄存器。
110 * 返 回 值:返回Status看门狗的状态。
111 **************************************************************************/
112 uchar RDSR_25045()//Read statinon regester
113 {
114 1 uchar Status=0;
115 1 // sck_dog=0;
116 1 cs_dog=0;
117 1 Byte_in(RDSR);
C51 COMPILER V7.07 X5045 06/10/2005 08:13:56 PAGE 3
118 1 Status=Byte_out();
119 1 //sck_dog=0;
120 1 cs_dog=1;
121 1 return(Status);
122 1 }
123 /*************************************************************************
124 * 函数原型:uchar WIP_POLL()
125 * 功 能:看门狗写检查。
126 * 返 回 值:无
127 **************************************************************************/
128 void WIP_POLL()
129 {
130 1 uchar i,Status;
131 1 for(i=0;i<150;i++)
132 1 {
133 2 Status=RDSR_25045();
134 2 if(!(Status&0x01))
135 2 {return;}
136 2 }
137 1 }
138 /*************************************************************************
139 * 函数原型:uchar Byte_Write(uchar DPH,DPL,DATA)
140 * 功 能:写看门狗。
141 * 参 数:DPH写地址高位,DPL写地址低位,DATA写数据。
142 * 返 回 值:无。
143 **************************************************************************/
144 void Byte_Write(uchar DPH,DPL,DATA)
145 {
146 1 // EA=0;
147 1 Wren_25045();
148 1 STAR_25045();
149 1 //cs_dog=0;
150 1 if(DPH&0x01) {Byte_in(WRITE|0x08);}
151 1 else {Byte_in(WRITE); }
152 1 Byte_in(DPL);
153 1 Byte_in(DATA);
154 1 //sck_dog=0;
155 1 cs_dog=1;
156 1 WIP_POLL();
157 1 //EA=1;
158 1 }
159 /*************************************************************************
160 * 函数原型:uchar Byte_Read(uchar DPH,DPL)
161 * 参 数:DPH读地址高位,DPL读地址低位。
162 * 返 回 值:DATA。
163 **************************************************************************/
164 uchar Byte_Read(uchar DPH,DPL)
165 {
166 1 uchar DATA;
167 1 // EA=0;
168 1 STAR_25045();
169 1 //cs_dog=0;
170 1 if(DPH&0x01) {Byte_in(READ|0x08);}
171 1 else{ Byte_in(READ);}
172 1 Byte_in(DPL);
173 1 DATA=Byte_out();
174 1 //sck_dog=0;
175 1 //NOP;
176 1 // NOP;
177 1 //NOP;
178 1 //cs_dog=1;
179 1 //WIP_POLL();
C51 COMPILER V7.07 X5045 06/10/2005 08:13:56 PAGE 4
180 1 //EA=1;
181 1 return(DATA);
182 1 }
183 /*************************************************************************
184 * 函数原型:void WRSR_25045()
185 * 功 能:写看门狗寄存器。
186 * 返 回 值:无。
187 * 备 注:看门狗超时周期1.4秒。
188 **************************************************************************/
189 void WRSR_25045()
190 {
191 1 Wren_25045();
192 1 STAR_25045();
193 1 Byte_in(WRSR);
194 1 Byte_in(WD1_4S);//write status register value
195 1 //sck_dog=0;
196 1 cs_dog=1;
197 1 WIP_POLL();
198 1 }
199 void REST_DOG()
200 {
201 1 cs_dog=0;
202 1 NOP;
203 1 NOP;
204 1 NOP;
205 1 cs_dog=1;
206 1 }
207 /*main()
208 {
209 WRSR_25045();
210 while(1)
211 {
212 cs_dog=1;
213 delay_ms(220);
214 _nop_();
215 cs_dog=0;
216 }
217 }*/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 193 ----
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 + -