📄 x5045.lst
字号:
C51 COMPILER V7.50 X5045 09/13/2007 21:34:43 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE X5045
OBJECT MODULE PLACED IN x5045.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE x5045.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <regx51.h>
2 #include "intrins.h"
3
4 //void XOutByte(unsigned char val);
5 //unsigned char XInByte(void);
6 //void XWrEn(void);
7 //unsigned char XRdStatus(void);
8 //void XWrByte(unsigned int addr, unsigned char val);
9 //void XWrWord(unsigned int addr, unsigned int val);
10 //unsigned char XRdByte(unsigned int addr);
11 //unsigned int XRdWord(unsigned int addr);
12 //void ClrDog (void);
13 //void XWrStatus(unsigned char val);
14
15 #define uint unsigned int
16 #define uchar unsigned char
17 #define nop() _nop_();_nop_();
18
19 //#ifndef X5045
20 //sbit SI=P3^7;
21 //sbit SCK=P3^6;
22 //sbit SO=P3^5;
23 //sbit CS=P3^4;
24 //#endif
25
26 //#define WREN 0x06
27 //#define WRDI 0x04
28 //#define RDSR 0x05
29 //#define WRSR 0x01
30 //#define READ 0x03 //0000 A8 0 1 1
31 //#define WRITE 0x02 //0000 A8 0 1 0
32
33 //#define XSelect( ) SCK = 0; CS = 0 //WDT;打开X5045片选CS
34 //#define XDeselect( ) SCK = 0; CS = 1 //关闭X5045片选CS
35 //#define XWrWait( ) while ( XRdStatus() & 0x01) //WIP=0 退出 等待X5045写入完成
36
37 /*--------------------------------------
38 X5045收发SPI协议
39 --------------------------------------*/
40 /*void XOutByte(unsigned char val)
41 {
42 unsigned char i = 8;
43 ACC=val;
44 do{
45 SCK=0;
46 SI=(ACC&0x80);
47 SCK=1; //上升沿写入
48 }while(--i!=0);
49 SI=0;
50
51 }
52
53 unsigned char XInByte(void)
54 {
55 unsigned char i = 8;
C51 COMPILER V7.50 X5045 09/13/2007 21:34:43 PAGE 2
56
57 SO=1;
58 do
59 { SCK=1;
60 SCK=0;//下降沿输出
61 CY=SO;
62 CY= ACC & 0X80; //RLC A
63 }while(--i!=0);
64
65 return ACC;
66 }*/
67
68
69 /*--------------------------------------
70 软件使能X5045写操作
71 --------------------------------------*/
72 /*void XWrEn(void)
73 {
74 XSelect();//打开X5045片选
75
76 #ifdef WP
77 WP = 1;//硬件使能X5045写操作
78 #endif
79
80 XOutByte(WREN);//发送使能X5045写命令
81 XDeselect();//关闭X5045片选
82 }*/
83
84
85 /*--------------------------------------
86 读X5045状态
87 --------------------------------------*/
88 /*unsigned char XRdStatus(void)
89 {
90 unsigned char val;
91 XSelect();//打开X5045片选
92 XOutByte(RDSR);//发送读X5045状态命令
93 val = XInByte();//接收X5045状态数据
94 XDeselect();//关闭X5045片选
95 return val;
96 }*/
97
98 /*--------------------------------------
99 写X5045状态
100 --------------------------------------*/
101 /*void XWrStatus(unsigned char val)
102 {
103 XWrEn();
104 XSelect();//打开X5045片选
105 XOutByte(WRSR);//发送写X5045状态命令
106 _nop_();
107 XOutByte(val); //发送X5045状态数据
108 XDeselect();//关闭X5045片选
109 XWrWait();
110 }
111
112 /*--------------------------------------
113 软件禁止X5045写操作
114 void XWrDisable(void)
115 {
116 XSelect();//打开X5045片选
117 XOutByte(WRDI);//发送禁止X5045写命令
C51 COMPILER V7.50 X5045 09/13/2007 21:34:43 PAGE 3
118 #ifdef WP
119 WP = 0;//硬件禁止X5045写操作
120 #endif
121 XDeselect();//关闭X5045片选
122 }
123 --------------------------------------*/
124
125
126 /*--------------------------------------
127 写X5045一个字节
128 --------------------------------------*/
129 /*void XWrByte(unsigned int addr, unsigned char val)
130 {
131 unsigned char temp;
132 temp = WRITE;
133 if ( ((unsigned char * )(&addr))[0] ) temp |= 8; //地址高8位有效时,发送A8
134 XWrEn();//使能X5045写操作
135 XSelect();//打开X5045片选
136 XOutByte(temp);//发送X5045写命令及高位地址
137 _nop_();
138 XOutByte(((unsigned char * )(&addr))[1]);//发送X5045写低位地址
139 _nop_();
140 XOutByte(val);//发送X5045写数据
141 XDeselect();//关闭X5045片选
142 XWrWait();//等待本次X5045写入完成
143 }
144
145 /*--------------------------------------
146 写X5045一个字
147 --------------------------------------*/
148 //void XWrWord(unsigned int addr, unsigned int val)
149 //{
150 //unsigned char temp;
151 // temp = WRITE;
152 // if ( ((unsigned char * )(&addr))[0] ) temp |= 8; //地址高8位有效时,发送A8
153 // XWrEn();//使能X5045写操作
154 // XSelect();//打开X5045片选
155 // XOutByte(temp);//发送X5045写命令及高位地址
156 // XOutByte(((unsigned char * )(&addr))[1]);//发送X5045写低位地址
157 // XOutByte(((unsigned char * )(&val))[1]);//发送X5045写低位数据
158 // XOutByte(((unsigned char * )(&val))[0]);//发送X5045写高位数据
159 // XDeselect();//关闭X5045片选
160 // XWrWait();//等待本次X5045写入完成
161 //}
162
163 /*--------------------------------------
164 读X5045一个字节
165 --------------------------------------*/
166 /*unsigned char XRdByte(unsigned int addr)
167 {
168 unsigned char val;
169 XSelect();//打开X5045片选
170 val = READ;
171 if ( ((unsigned char * )(&addr))[0] ) val |= 8; //地址高8位有效时,发送A8
172 XOutByte(val);//发送X5045读命令及高位地址
173 _nop_();
174 XOutByte(((unsigned char * )(&addr))[1]);//发送X5045低8位地址
175 _nop_();
176 val= XInByte();//接收X5045读数据
177 // _nop_();
178 XDeselect();//关闭X5045片选
179 return( val );
C51 COMPILER V7.50 X5045 09/13/2007 21:34:43 PAGE 4
180 }
181
182 /*--------------------------------------
183 读X5045一个字
184 --------------------------------------*/
185 //unsigned int XRdWord(unsigned int addr)
186 //{
187 //unsigned char val;
188 // XSelect();//打开X5045片选
189 // val = READ;
190 // if ( ((unsigned char * )(&addr))[0] ) val |= 8; //地址高8位有效时,发送A8
191 // XOutByte(val);//发送X5045读命令及高位地址
192 // XOutByte(addr & 0xff);//发送X5045读低位地址
193 // val = XInByte();//接收X5045读低位数据
194 // addr = XInByte();//接收X5045读高位数据
195 // XDeselect();//关闭X5045片选
196 // addr <<= 8;
197 // addr |= val;
198 // return addr;
199 //}
200
201
202 /*--------------------------------------
203 清除x5045 WDT
204 --------------------------------------*/
205 /*void ClrDog (void)
206 {
207 CS=0;
208 _nop_();
209 CS=1;
210 }*/
211
212
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = ---- ----
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 + -