📄 93c66.lst
字号:
C51 COMPILER V7.09 93C66 10/31/2005 17:27:24 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE 93C66
OBJECT MODULE PLACED IN 93c66.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\c51.exe 93c66.c DB OE SMALL ROM(LARGE)
line level source
1 #include <AT89X52.h>
2 #include <ABSACC.h>
3 sbit CS_93c66=P2^3;
4 sbit SK_93c66=P2^2;
5 sbit DI_93c66=P2^1;
6 sbit DO_93c66=P2^0;
7 sbit CD_1=P2^4;
8 sbit CD_2=P2^5;
9 sbit CD_3=P2^6;
10 sbit CD_4=P2^7;
11 void START_93c66();
12 void END_93c66();
13 void EWEN_93c66();
14 void EWDS_93c66();
15 unsigned char READ(unsigned int);
16 unsigned char WRITE(unsigned int,unsigned int);
17 void SEND_DATA_93c66(unsigned int,unsigned char);
18 void delay1(unsigned int);
19 unsigned char Addr_bit=9;//--------------------------46设为7,66设为9----------------------------
20 /*
21 void write_93c66(unsigned char page,unsigned int position)
22 {
23 unsigned char page_0;
24 unsigned int page_address;
25 page_address=361;
26 WRITE(position,page);
27 page_0=READ(page_address);
28 if(page_0!=page)
29 {
30 WRITE(page_address,page);
31 }
32
33 }
34 void store(unsigned char hh,mm,ss)
35 {
36 // ss=0x30;
37 // mm=0x31;
38 // hh=0x32;
39 unsigned int sum,sum_min,position;
40 unsigned char page;
41 sum=hh*3600+mm*60+ss;
42 sum_min=hh*60+mm;
43 page=sum_min/6;
44 position=sum%360;
45 write_93c66(page,position);
46 }
47
48 unsigned int READ_STATE()
49 {
50 unsigned int state;
51 unsigned char n;
52 unsigned char hh,mm,ss;
53 unsigned char page,position_num;
54 unsigned int position,sum;
55 page=READ(361);
C51 COMPILER V7.09 93C66 10/31/2005 17:27:24 PAGE 2
56
57 for(n=0;n<360;n++)
58 {
59 position=n;
60 position_num=READ(n);
61 if(position_num!=page)
62 {
63 break;
64 }
65 }
66 sum=page*6*60+position;
67 hh=sum/3600;
68 mm=(sum/60)%60;
69 ss=sum%60;
70 state=0;
71 state=state|hh;
72 state=state<<6;
73 state=state|mm;
74 state=state<<6;
75 state=state|ss;
76 return state;
77 }
78
79 */
80 void main()
81 {
82 1 // store(1,10,10);//call the sub to write data in 9346
83 1 // READ_STATE();
84 1 unsigned int n,tmp;
85 1
86 1 WRITE(1,8);
87 1 /*
88 1 P0=0xff;
89 1 for(n=0;n<0x1ff;n++)//in 46 n range from 0 to 7f
90 1 {
91 1 if(!WRITE(n,n))
92 1 {
93 1 CD_3=0;
94 1 P0=0x65;
95 1 while(1)
96 1 {};
97 1 }
98 1 }
99 1 while(1)
100 1 {
101 1 for(n=0;n<0x1ff;n++)//in 46 n range from 0 to 7f
102 1 {
103 1 tmp=(n<<1);
104 1 CD_2=1;
105 1 CD_1=0;
106 1 P0=READ(n);
107 1 delay1(60000);
108 1 CD_1=1;
109 1 CD_2=0;
110 1 P0=tmp;
111 1 delay1(60000);
112 1 }
113 1 }
114 1
115 1 CD_1=0;
116 1 while(1)
117 1 {
C51 COMPILER V7.09 93C66 10/31/2005 17:27:24 PAGE 3
118 1 for(n=0;n<0x1ff;n++)
119 1 {P0=(READ(n)<<1);
120 1 //delay1(30000);
121 1 */
122 1 CD_2=0;
123 1 P0=READ(1);
124 1 while(1)
125 1 {
126 2 ;
127 2 }
128 1 }
*** WARNING C280 IN LINE 84 OF 93C66.C: 'n': unreferenced local variable
*** WARNING C280 IN LINE 84 OF 93C66.C: 'tmp': unreferenced local variable
129 //-----------------------------------------------------COPY--------------------------------------------
130 //2 .用C51 软件包对CAT93c66 器件进行读写操作
131 //(1 )CAT93c66 的汇编读写软件包
132 /*=========================================================*/
133 /* CSI93c66 操作子程序 */
134 /* 注意:这里使用的CSI93c66 为8 位结构的EEROM
135 */
136 /*=========================================================*/
137 //#include <Reg764.h>
138 /*87LPC764 的头文件*/
139 void delay1(unsigned int num)
140 {
141 1 while(num!=0){num=num-1;}
142 1 }
143 /***********************************************************************/
144 /*名称: START_93c66() */
145 /*说明: 用于93c66 的启动,防止由于CS_93c66 的改动而引起数据时序混乱 */
146 /***********************************************************************/
147 void START_93c66()
148 {
149 1 DO_93c66=1; /*防止DO 由于是低电平而无法输入*/
150 1 CS_93c66=1;
151 1 /*开启93c66*/
152 1 CS_93c66=0;
153 1 DI_93c66=0;
154 1 SK_93c66=0;
155 1 CS_93c66=1;
156 1 delay1(1000);
157 1 }
158 /***************************************************************************/
159 /*名称:END_93c66() */
160 /*说明:用于93c66 的结束,防止由于CS_93c66 的改动而引起数据线为0 而无法输入*/
161 /***************************************************************************/
162 void END_93c66()
163 {
164 1 CS_93c66=0;
165 1 DI_93c66=1;
166 1 SK_93c66=1;
167 1 }
168 /***********************************************************************/
169 /*名称:SEND_DATA_93c66() */
170 /*说明:在93c66 启动下,送入指定位数的数据 */
171 /*输入: op_data 要输入的数据 */
172 /* num 输入的位数 */
173 /**********************************************************************/
174 void SEND_DATA_93c66(unsigned int op_data,unsigned char num)
175 {
176 1 unsigned char temp1;
177 1 op_data=op_data<<(16-num); /*左移去掉无用位*/
C51 COMPILER V7.09 93C66 10/31/2005 17:27:24 PAGE 4
178 1 for(temp1=0;temp1<num;temp1++)
179 1 {
180 2 if( (op_data&0X8000)==00 )
181 2 {DI_93c66=0;}
182 2 else
183 2 {DI_93c66=1;}
184 2 SK_93c66=1;//SK_93c66=1;SK_93c66=1;SK_93c66=1;
185 2 SK_93c66=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -