📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 10/29/2006 14:34:14 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c LARGE BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <stdio.h>
2 #include <absacc.h>
3 #include <intrins.h>
4 #include <./Atmel/at89x52.h>
5 #include "source.h"
6 struct MY_TIMER TT[TIMER_NUM];
7 struct volt_detect volt_group;
8 TMDEV_OPS Opsgp;
9 void time2() interrupt T2_INT
10 {
11 1 unsigned char i;
12 1 for(i=0;i<TIMER_NUM;i++)
13 1 {
14 2 if(TT[i].enable==1)
15 2 {
16 3 if(TT[i].count==0)
17 3 {
18 4 TT[i].enable=0;
19 4 TT[i].flag=1;
20 4 }
21 3 else{
22 4 TT[i].count--;
23 4 }
24 3 }
25 2 }
26 1 TF2=0;
27 1 }
28 void start_timer(void)
29 {
30 1 T2CON=0X00;
31 1 RCAP2L=TIMER2L; //10ms
32 1 TL2=TIMER2L;
33 1 RCAP2H=TIMER2H;
34 1 TH2=TIMER2H;
35 1 ET2=1;//enable timer2 interrupt
36 1 TR2=1;//start timer
37 1 }
38 void reset_timer(unsigned char i)
39 {
40 1 TT[i].enable=0;
41 1 TT[i].count=0;
42 1 }
43 void set_timer(unsigned char i,unsigned int count) // time out counter*10ms
44 {
45 1 TT[i].count=count;
46 1 TT[i].enable=1;
47 1 TT[i].flag=0;
48 1 }
49
50 main()
51 {
52 1 unsigned char fsm_adc=0;
53 1 unsigned int V_ADJ=0,i;
54 1 EEPROM_DATA Eprom;
55 1 IE=0X40;
C51 COMPILER V7.06 MAIN 10/29/2006 14:34:14 PAGE 2
56 1 start_timer();/*开始定时器*/
57 1 EA=1; /* Enable interrupts */
58 1 TMOD=0x22;//timer1 mode 2 timer0 mode 2 (8 bit auto reload mode)
59 1
60 1 set_timer(WRITE_TIMER,WRITE_TIMER_LEN);
61 1 set_timer(READ_TIMER,READ_TIMER_LEN);
62 1
63 1 eeprom_read(OffsetOf(EEPROM_DATA,vol), sizeof(Eprom.vol),(unsigned char *)&Eprom.vol);
64 1 /*采用OffsetOf()宏可以知道成员函数在EEPROM中的具体地址位置,这样可以不用记住EEPROM中某个*/
65 1 /*存储变量的具体位置,以后添加存储变量更加灵活*/
66 1 eeprom_write(OffsetOf(EEPROM_DATA,cnt), sizeof(Eprom.cnt),(unsigned char *)&Eprom.cnt);
67 1 I2C_lineOpen(&I2c,100);//初10k
68 1 for(i=0;i<1204;i++){
69 2 Eprom.buf[i]=i&0xff;
70 2 }
71 1 while(1){
72 2 if(TT[WRITE_TIMER]){
*** WARNING C276 IN LINE 72 OF MAIN.C: constant in condition expression
73 3 set_timer(WRITE_TIMER,WRITE_TIMER_LEN);
74 3 if(!Opsgp.dealing)
75 3 At24c64_Write((unsigned char *)Eprom.buf,OffsetOf(EEPROM_DATA,buf),512);
76 3 }
77 2 if(TT[READ_TIMER]){
*** WARNING C276 IN LINE 77 OF MAIN.C: constant in condition expression
78 3 set_timer(READ_TIMER,READ_TIMER_LEN);
79 3 if(!Opsgp.dealing)
80 3 At24c64_Read((unsigned char *)Eprom.buf,OffsetOf(EEPROM_DATA,vol),512);
81 3 }
82 2 if(Opsgp.eeprom_read_over){
83 3 if(Opsgp.eeprom_read_over==1){
84 4 //Eeprom read ok.
85 4 }
86 3 else{
87 4 //Eeprom read error .
88 4 }
89 3 Opsgp.eeprom_read_over=0;
90 3 }
91 2 if(Opsgp.eeprom_write_over){
92 3 if(Opsgp.eeprom_write_over){
93 4 // Eprom Write Ok
94 4 }
95 3 else{
96 4 // Eprom Write Err
97 4 }
98 3 Opsgp.eeprom_write_over=0;
99 3 }
100 2 }
101 1 }
102
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 479 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 62 1030
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -