📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 01/17/2008 16:19:15 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //#include <c8051f310.h>
2 #include "delay.h"
3 #include "indication.h"
4 #include "measure.h"
5 #include "def.h"
6
7 //#define Vbattery=0
8 //#define Vsource=0
9 //#define temperature=0
10
11 sbit P0_6=P0^6;
12 sbit P0_7=P0^7;
13 sbit P1_0=P1^0;
14
15 //sbit dotest=P1^0;
16
17 unsigned int cotest; //过充标志
18 unsigned int dotest; //过放标志
19
20 //unsigned int time;
21 main()
22 {
23 1 XBR0=0x00; //设置交叉开关
24 1 XBR1=0x41;
25 1 P0MDIN=0xff; //P0口的设置
26 1 P0MDOUT=0xff;
27 1 P1MDIN=0xd6;
28 1 P1MDOUT=0x09;
29 1 P0SKIP=0xFF; //交叉0开关跳过引脚
30 1 P1SKIP=0xFF; //交叉1开关跳过引脚
31 1 P2MDIN=0xf7; //P2口的设置
32 1 P2MDOUT=0xf7;
33 1 P3MDIN=0xff; //P3口的设置
34 1 P3MDOUT=0xff;
35 1 P2SKIP=0x00; //交叉2开关跳过引脚
36 1
37 1 REF0CN=0xf9; //参考电压设置
38 1 OSCICN=0xC3; //内部振荡器控制设置
39 1 CLKSEL=0X00; //时钟选择设置
40 1 //OSCXCN=0xEF; //外部震荡器的设置
41 1
42 1 //EIE1 = 0x08;
43 1 //PCA0MD = 0x01; /*PCA定时器/计数器溢出中断禁止*/
44 1 PCA0H=0xfc;
45 1 PCA0L=0xf0;
46 1 PCA0MD=0x08;
47 1 EIE1 =0x18; //中断扩展设置
48 1 // PCA0CPM0=0xCB;
49 1 PCA0CN=0X40;
50 1 //PCA0CPM1=0xC2;
51 1 //EIE2 |=10;
52 1 //PCA0CPL0=0x00;
53 1 //PCA0CPH0=0x80;
54 1 //PCA0CPM0=0xcb;
55 1 EA=0x01; //开总中断
C51 COMPILER V7.06 MAIN 01/17/2008 16:19:15 PAGE 2
56 1 ET0=0x01; //开定时器中断
57 1 EX0=0x01;
58 1 ET1=0x01; //开外部中断
59 1 // EX1=0x01;
60 1 IT01CF=0X01; //外部中断电平设置
61 1
62 1 //SP=0x68;
63 1 TMOD=0x01; //定时器设置
64 1 CKCON=0xc0;
65 1 TL0=0x00; //给定时器0赋初值
66 1 TH0=0x00;
67 1 TR0=1; //启动定时器0
68 1
69 1 while(1)
70 1 {
71 2 battery(); //电池电压检测
72 2 delay(100);
73 2 testtemperature(); //温度检测
74 2 delay(100);
75 2 sourcemeasure(); //外部电网电压检测
76 2 delay(100);
77 2 if(vsource==0) //外部段电
78 2 {
79 3 /*if(dotest==1)
80 3 {
81 3 redflash(); //显示过放状态
82 3 //dotest=0x01;
83 3 P0_6=0;
84 3 }
85 3 else
86 3 {
87 3 P0_6=1;
88 3 lightoff(); //显示应急状态
89 3 }*/
90 3 if(vbattery==0) //电池电量不足
91 3 {
92 4 redflash(); //显示过放状态
93 4 P0_6=0;
94 4 }
95 3 else
96 3 {
97 4 lightoff(); //应急模式
98 4 P0_6=1;
99 4 }
100 3 }
101 2 else
102 2 {
103 3 /*if(cotest==1)
104 3 {
105 3 redlighton();
106 3 //cotest=0x01;
107 3 P2_0=0;
108 3 PCA0CPM0=0x00;
109 3 //P0_6=0;
110 3 }
111 3 else
112 3 battery();*/
113 3 if(vbattery==4)
114 3 {
115 4 redlighton(); //显示过充状态
116 4 P2_0=0; //关断充电口
117 4 PCA0CPM0=0x00;
C51 COMPILER V7.06 MAIN 01/17/2008 16:19:15 PAGE 3
118 4 }
119 3 else
120 3 {
121 4 greenlighton(); //正常模式
122 4 charge();
123 4 }
124 3
125 3 }
126 2 }
127 1 }
128
129 void int0() interrupt 0 using 1
130 {
131 1 greenflash(); //显示自检状态
132 1 delay(100);
133 1 delay(100);
134 1 /***************************************************
135 1 添加相应的自检测处理程序
136 1
137 1 ***************************************************/
138 1 }
139
140 /*void int1() interrupt 2
141 {
142 redflash();
143 dotest=0x01;
144 P0_6=0;
145 }*/
146
147
148
149 void timer0() interrupt 1
150 {
151 1 TL0=0x00;
152 1 TH0=0x00;
153 1 TR0=1;
154 1 if(P0_7==0)
155 1 {
156 2 redlighton(); //显示过充状态
157 2 cotest=0x01; //置过充状态
158 2 P2_0=0; //关断充电口
159 2 PCA0CPM0=0x00;
160 2 //P0_6=0;
161 2 }
162 1 if(P1_0==0)
163 1 {
164 2 redflash(); //显示过放状态
165 2 dotest=0x01; //置过放状态
166 2 P0_6=0; //关断应急灯
167 2 }
168 1
169 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 302 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
C51 COMPILER V7.06 MAIN 01/17/2008 16:19:15 PAGE 4
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -