📄 rtc_eeprom.lst
字号:
C51 COMPILER V7.50 RTC_EEPROM 04/03/2007 10:38:52 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE RTC_EEPROM
OBJECT MODULE PLACED IN RTC_EEPROM.obj
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE IIC[Ultral]\RTC_EEPROM.c BROWSE DEBUG OBJECTEXTEND PRINT(.\RTC_EEPROM.lst)
-OBJECT(RTC_EEPROM.obj)
line level source
1 #include "iic.h"
2 //////////////////////////////////////////////////////////////////////////
3
4 //RTC
5 void RTC_FirstInit()
6 {
7 1 XBYTE[RTC_BASE+CtrlRegB]=0x80;//SET
8 1
9 1 //XX:00:00
10 1 XBYTE[RTC_BASE+RegSeconds]=0x00;
11 1 XBYTE[RTC_BASE+RegSeconds_Alarm]=0x00;
12 1 XBYTE[RTC_BASE+RegMinutes]=0x00;
13 1 XBYTE[RTC_BASE+RegMinutes_Alarm]=0x00;
14 1 XBYTE[RTC_BASE+RegHours]=0x00;
15 1 XBYTE[RTC_BASE+RegHours_Alarm]=0xff;
16 1
17 1 XBYTE[RTC_BASE+RegDay]=SYS_BEGIN_DAY;
18 1 XBYTE[RTC_BASE+RegDate]=SYS_BEGIN_DATE;
19 1 XBYTE[RTC_BASE+RegMonth]=SYS_BEGIN_MONTH;
20 1 XBYTE[RTC_BASE+RegYear]=SYS_BEGIN_YEAR;
21 1 XBYTE[RTC_BASE+RegCentury]=20;
22 1
23 1 temp=XBYTE[RTC_BASE+CtrlRegC];//clear interrupts
24 1 XBYTE[RTC_BASE+CtrlRegB]=0x37;//AIE+UIE+DM+24+DSE
25 1
26 1 XBYTE[RTC_BASE+CtrlRegA]=0x20;//begin the oscilators
27 1 }
28
29 void RTC_GeneralInit()
30 {
31 1 temp=XBYTE[RTC_BASE+CtrlRegC];//clear interrupts
32 1 XBYTE[RTC_BASE+CtrlRegB]=0x37;//AIE+UIE+DM+24+DSE
33 1 }
34
35 //////////////////////////////////////////////////////////////////////////
36 //EEPROM
37 void EPR_Write(unsigned int addr,unsigned char dat)
38 {
39 1 unsigned int xdata lgtemp;
40 1
41 1 //锁定不可写
42 1 addr+=EEPROM_BASE;
43 1 XBYTE[addr]=dat;
44 1 lgtemp=1000;
45 1 while (lgtemp)
46 1 {
47 2 temp=XBYTE[addr];
48 2 if(temp==dat)
49 2 break;
50 2 lgtemp-=1;
51 2 }
52 1 }
53
54 unsigned char EPR_Read(unsigned int addr)
C51 COMPILER V7.50 RTC_EEPROM 04/03/2007 10:38:52 PAGE 2
55 {
56 1 unsigned char xdata dat;
57 1 addr+=EEPROM_BASE;
58 1 dat=XBYTE[addr];
59 1 return dat;
60 1 }
61
62 void EPR_Page_0()
63 {
64 1 //缓冲页面
65 1 EEPROM_PAGE = 0;
66 1 EPRChangeFlag=1;
*** ERROR C202 IN LINE 66 OF IIC[ULTRAL]\RTC_EEPROM.C: 'EPRChangeFlag': undefined identifier
67 1 }
68
69 void EPR_Page_1()
70 {
71 1 EEPROM_PAGE = 1;
72 1 }
73
74 void EPR_Reset()
75 {//重新恢复EEPROM
76 1 unsigned int xdata i,k;
77 1 EPR_Page_0();
78 1 for(i=0;i<13*2;i++)
79 1 {//一共26个相组
80 2 for(k=0;k<7*8;k++)
81 2 EPR_Write(i*PHASE_GROUP_LEN+k,DefaultPhaseGroup[k]);
*** ERROR C202 IN LINE 81 OF IIC[ULTRAL]\RTC_EEPROM.C: 'DefaultPhaseGroup': undefined identifier
82 2 }
83 1 k=0;
84 1 for(i=0x0fff;i>ADDR_LOW_END;i--)
85 1 {
86 2 EPR_Write(i,DefaultSetting[k]);
87 2 k++;
88 2 }
89 1
90 1 EPR_Page_1();
91 1 for(i=0;i<13*2;i++)
92 1 {//一共26个相组
93 2 for(k=0;k<7*8;k++)
94 2 EPR_Write(i*PHASE_GROUP_LEN+k,DefaultPhaseGroup[k]);
*** ERROR C202 IN LINE 94 OF IIC[ULTRAL]\RTC_EEPROM.C: 'DefaultPhaseGroup': undefined identifier
95 2 }
96 1 k=0;
97 1 for(i=0x0fff;i>ADDR_LOW_END;i--)
98 1 {
99 2 EPR_Write(i,DefaultSetting[k]);
100 2 k++;
101 2 }
102 1
103 1 EPRChangeFlag=0;
*** ERROR C202 IN LINE 103 OF IIC[ULTRAL]\RTC_EEPROM.C: 'EPRChangeFlag': undefined identifier
104 1 }
105
106 void EPR_CopyPage()
107 {
108 1 unsigned int xdata i;
109 1 unsigned char xdata k1,k2;
110 1 for(i=0;i<13*2*PHASE_GROUP_LEN;i++)
111 1 {
112 2 EPR_Page_0();
C51 COMPILER V7.50 RTC_EEPROM 04/03/2007 10:38:52 PAGE 3
113 2 k1=EPR_Read(i);
114 2 EPR_Page_1();
115 2 k2=EPR_Read(i);
116 2 if(k2!=k1)
117 2 EPR_Write(i,k1);
118 2 }
119 1
120 1 for(i=0x0fff;i>ADDR_LOW_END;i--)
121 1 {
122 2 EPR_Page_0();
123 2 k1=EPR_Read(i);
124 2 EPR_Page_1();
125 2 k2=EPR_Read(i);
126 2 if(k2!=k1)
127 2 EPR_Write(i,k1);
128 2 }
129 1
130 1 EPRChangeFlag=0;
*** ERROR C202 IN LINE 130 OF IIC[ULTRAL]\RTC_EEPROM.C: 'EPRChangeFlag': undefined identifier
131 1 }
132 //////////////////////////////////////////////////////////////////////////
133
C51 COMPILATION COMPLETE. 0 WARNING(S), 5 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -