📄 main.lst
字号:
C51 COMPILER V8.08 MAIN 04/21/2012 20:44:58 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "fun.h"
2
3 void ADC_interrupt() interrupt 5
4 {
5 1 ADC_CONTR &= 0Xef; //ADC_FLAG清零
6 1 //计算电压值
7 1 ad_result10 = ADC_RES;
8 1 ad_result10 = ( ad_result10 << 2 ) | ADC_RESL;
9 1 vin = ad_result10 * 5.0 / 1024 ; //ad_result10 = 1024 × ( Vin / 5v )
10 1 /*
11 1 第一段 1.7V~2.1V,
12 1 第二段2.8~3.2V
13 1 第三段3.8~4.2V
14 1 */
15 1 if (vin>=1.7 && vin<=2.1) //低速挡
16 1 {
17 2 duty_level = 1; //占空比30%
18 2 CCAP0H = 255 - 255 * duty[duty_level] / 100;
19 2 CCAP0L = CCAP0H;
20 2 }
21 1 else if(vin>=2.8 && vin<=3.2) //中速挡
22 1 {
23 2 duty_level = 2; //占空比50%
24 2 CCAP0H = 255 - 255 * duty[duty_level] / 100;
25 2 CCAP0L = CCAP0H;
26 2 }
27 1 else if(vin>=3.8 && vin<=4.2) //高速挡
28 1 {
29 2 duty_level = 3; //占空比80%
30 2 CCAP0H = 255 - 255 * duty[duty_level] / 100;
31 2 CCAP0L = CCAP0H;
32 2 }
33 1 else//其它异常情况
34 1 {
35 2 duty_level = 0; //占空比0%
36 2 CCAP0H = 255 - 255 * duty[duty_level] / 100;
37 2 CCAP0L = CCAP0H;
38 2 }
39 1 }
40
41 void Timer0_interrupt() interrupt 1
42 {
43 1 //重装初值
44 1 TH0 = T0_50ms >> 8;
45 1 TL0 = T0_50ms;
46 1 cntint0++;
47 1
48 1 if(cntint0 >=10)//500ms
49 1 {
50 2 ADC_CONTR |= 0X08; //ADC_START=1,启动ad转换
51 2 cntint0=0;
52 2 }
53 1 }
54
55 main()
C51 COMPILER V8.08 MAIN 04/21/2012 20:44:58 PAGE 2
56 {
57 1 ms_delay(100);
58 1 init_port();
59 1 init_timer0();
60 1 init_pca();
61 1 init_adc();
62 1
63 1 cntint0=0;
64 1 IE |= 0x20; //EADC=1,打开adc中断
65 1 EA = 1;//开总中断
66 1
67 1
68 1
69 1 while(1)
70 1 {
71 2
72 2 }
73 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 479 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 ----
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 + -