📄 adc0_temp.lst
字号:
C51 COMPILER V7.06 ADC0_TEMP 06/06/2007 18:19:48 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE ADC0_TEMP
OBJECT MODULE PLACED IN ADC0_TEMP.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE ADC0_TEMP.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //内部温度传感器调试程序//
2 //ADC0_TEMP.c
3 #include "C8051F340.h"
4
5 typedef unsigned int uint;
6 typedef unsigned char uchar;
7 typedef unsigned long ulong;
8 uchar temppage;
9 uint kk;
10 float temp;
11 data float t[20];//存放温度检测数据,为20个数据
12
13 // Peripheral specific initialization functions,
14 // Called from the Init_Device() function
15
16 void adc0_ini(){
17 1
18 1 REF0CN = 0x07;
19 1 AMX0P = 0x1E;
20 1 AMX0N = 0x1F;
21 1 ADC0CF = 0x78;
22 1 ADC0CN = 0x80;
23 1
24 1 EIE1 |= 0x08;
25 1 }
26
27 void PCA_Init()
28 {
29 1 PCA0MD &= ~0x40;
30 1 }
31
32 void Port_IO_Init()
33 {
34 1 //P2MDIN = 0xDF;
35 1 //P2SKIP = 0x20;
36 1 XBR1 = 0x40;
37 1 }
38
39 // Initialization function for device,
40 // Call Init_Device() from your main program
41 void Init_Device(void)
42 {
43 1 PCA_Init();
44 1 Port_IO_Init();
45 1 adc0_ini();
46 1 }
47
48 void main(){
49 1 char i;
50 1 Init_Device();
51 1 EA=1;
52 1 AD0BUSY=1;
53 1 i=0;
54 1 while(1){
55 2 if(AD0INT){//由该位查询ADC0转化值是否更新
C51 COMPILER V7.06 ADC0_TEMP 06/06/2007 18:19:48 PAGE 2
56 3 AD0INT=0;
57 3 kk=ADC0H*256;
58 3 kk+=ADC0L;//可用sfr16一次性读取
59 3 temp=(float)kk/1024;
60 3 temp*=2.40;
61 3 temp-=0.776;
62 3 temp/=0.00286;//将测量值转化成真实温度值
63 3 t[i]=temp;//将温度检测值存入长度为20的数组中
64 3 i++;
65 3 if(i>19)
66 3 i=0;
67 3 AD0BUSY=1;
68 3 }
69 2 }
70 1 }
71
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 184 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 87 1
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 + -