📄 x5045.lst
字号:
C51 COMPILER V8.02 X5045 07/24/2007 19:21:02 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE X5045
OBJECT MODULE PLACED IN X5045.OBJ
COMPILER INVOKED BY: d:\program files\Keil\C51\BIN\C51.EXE X5045.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "X5045.h"
2
3 //unsigned char rda[8];
4 //unsigned char cs_rda[8];
5
6 //看门狗写使能子程序
7 void wren_dog(void)
8 {
9 1 // unsigned char com;
10 1 // com=0x06;//WREN;
11 1 SCK=0;
12 1 CS=0;
13 1 in_byte(0x06);
14 1 SCK=0;
15 1 CS=1;
16 1 }
17
18 //看门狗写禁止子程序
19 void wrdi_dog(void)
20 {
21 1 //unsigned char com;
22 1 //com=0x04;//WRDI;
23 1 SCK=0;
24 1 CS=0;
25 1 in_byte(0x04);
26 1 SCK=0;
27 1 CS=1;
28 1 }
29
30
31
32 //写状态寄存器
33 void wrsr_dog(unsigned char status_reg)
34 {
35 1 // unsigned char com=0x01;//WRSR;
36 1 SCK=0;
37 1 CS=0;
38 1 in_byte(0x01);
39 1 in_byte(status_reg);
40 1 SCK=0;
41 1 CS=1;
42 1 wip_poll();
43 1 }
44
45
46 //读状态寄存器
47 unsigned char rdsr_dog(void)
48 {
49 1 // unsigned char com=0x05;//RDSR;
50 1 SCK=0;
51 1 CS=0;
52 1 in_byte(0x05);
53 1 return(out_byte());
54 1 SCK=0;
55 1 CS=1;
C51 COMPILER V8.02 X5045 07/24/2007 19:21:02 PAGE 2
56 1 }
57
58 //字节读
59 unsigned char byte_read(unsigned char H,unsigned char L)
60 {
61 1 unsigned char data_dog,add;
62 1 SCK=0;
63 1 CS=0;
64 1 SO=1;
65 1 SI=1;
66 1 add=H<<3;
67 1 add|=0x03;//READ;
68 1 in_byte(add);
69 1 add=L;
70 1 in_byte(add);
71 1 data_dog=out_byte();
72 1 SCK=0;
73 1 CS=1;
74 1 return(data_dog);
75 1 }
76 //字节写
77 //H,地址高字节;L地址低字节;D写入的数据
78 void byte_write(unsigned char H,unsigned char L,unsigned char D)
79 {
80 1 unsigned char data_dog,add;
81 1 SCK=0;
82 1 CS=0;
83 1 SO=1;
84 1 SI=1;
85 1 add=H<<3;
86 1 add|=0x02;//WRTE;
87 1 in_byte(add);
88 1 add=L;
89 1 in_byte(add);
90 1 data_dog=D;
91 1 in_byte(data_dog);
92 1 CS=1;
93 1 wip_poll();
94 1 }
95 //复位看门狗子程序
96 void rest_dog(void)
97 {
98 1 CS=0;
99 1 CS=1;
100 1 }
101
102
103 //检验写操作是否结束。
104 unsigned char wip_poll(void)
105 {
106 1 unsigned char i;
107 1 unsigned char wip;
108 1 for(i=0xff;i>=1;i--)
109 1 {
110 2 wip=rdsr_dog();
111 2 wip&=0x01;
112 2 if(wip==0) break;
113 2 }
114 1 return(wip);
115 1
116 1 }
117
C51 COMPILER V8.02 X5045 07/24/2007 19:21:02 PAGE 3
118 //单字节指令或数据写入X25045
119 //在SI线上输入的数据在SCK的上升沿被锁存。
120 void in_byte(unsigned char byt)
121 {
122 1 unsigned char i;
123 1 //SCK=0;
124 1 //CS=0;
125 1 for(i=8;i>=1;i--)
126 1 {
127 2 SCK=0;
128 2 SI=byt&0x80;
129 2 SCK=1;
130 2 byt=byt<<1;
131 2 }
132 1 // SI=0;
133 1 // SCK=0;
134 1 // CS=1;
135 1 }
136
137 //单字节数据从X25045读到单片机
138 //数据由SCK的下降沿输出到SO线上。
139 unsigned char out_byte(void)
140 {
141 1 unsigned char i;
142 1 unsigned char byt;
143 1 //SO=1;
144 1 //SCK=0;
145 1 //CS=0;
146 1 for(i=8;i>=1;i--)
147 1 {
148 2 byt=byt<<1;
149 2 SCK=1;
150 2 SCK=0;
151 2 byt|=SO;
152 2 }
153 1 //SCK=0;
154 1 //CS=1;
155 1 return (byt);
156 1 }
157
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 208 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
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 + -