?? main.lst
字號:
C51 COMPILER V8.02 MAIN 04/17/2007 10:57:56 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 #include "main.h"
3 #include "reg52.h"
4 #include "absacc.h"
5 #define uchar unsigned char
6 #define uint unsigned int
7
8 #define AdL8 XBYTE[0xFEFF] // 低8位
9 #define AdH4 XBYTE[0xFDFF] // 高4位
10 sbit LDAC = P1^0; // MAX527裝載DAC寄存器控制腳LDAC
11 sbit A0 = P1^1; // DAC通道選擇腳A0
12 sbit A1 = P1^2; // DAC通道選擇腳A1
13
14 unsigned char Channel_Msb;
15 unsigned char Channel_Lsb;
16 unsigned char Buffer_Key;
17 unsigned int DA_Input;
18 float DA_Output;
19
20
21
22
23
24 /********功能:定時中斷程序定時對外部電壓進行數據采集并進行數據處理**********/
25
26 void Timer0(void) interrupt 1 using 1
27 {
28 1 TR0 = 0;
29 1 Collection_Data();
30 1 Process_Data();
31 1 TL0 = 0x00; //定時65535us
32 1 TH0 = 0x00;
33 1 TR0 = 1;
34 1 }
35
36 /****************初始化程序對51單片機初始化******************/
37
38 void Timer0_Initial()
39 {
40 1 TMOD = 0x01; //使用定時器0,工作方式1
41 1 EA = 1;
42 1 ET0 = 1; //邊緣觸發方式
43 1 TL0 = 0x00; //定時65535us
44 1 TH0 = 0x00;
45 1 TR0 = 1;
46 1 }
47
48
49
50 /*************數據處理完成采集的數據的十六進制轉換為十進制的形式*************/
51
52 void Process_Data()
53 {
54 1 uint Digit_Data;
55 1 DA_Input=AdH4<<8+AdL8;
C51 COMPILER V8.02 MAIN 04/17/2007 10:57:56 PAGE 2
56 1 Digit_Data =((Channel_Msb&0x0f)<<8) + Channel_Lsb;
57 1 DA_Output=(Digit_Data / 4096.0)*2.5;
58 1 }
59
60
61
62
63 /*************定時采集對197進行控制,向197的控制字寄存器中寫入控制字,對外圍電壓信號進行采集*************/
64
65 void Collection_Data()
66 {
67 1 uchar i;
68 1 if(136==Buffer_Key) /* 選擇A輸入寄存器,即選擇A通道 */
69 1 {
70 2 A0 = 0;
71 2 A1 = 0;
72 2 }
73 1 if(132==Buffer_Key) /* 選擇B輸入寄存器,即選擇B通道 */
74 1 {
75 2 A0 = 0;
76 2 A1 = 1;
77 2 }
78 1 if(130==Buffer_Key) /* 選擇C輸入寄存器,即選擇C通道 */
79 1 {
80 2 A0 = 1;
81 2 A1 = 0;
82 2 }
83 1 if(129==Buffer_Key) /* 選擇D輸入寄存器,即選擇D通道 */
84 1 {
85 2 A0 = 1;
86 2 A1 = 1;
87 2 }
88 1
89 1 LDAC = 1; // 將LDAC置高
90 1
91 1 Channel_Lsb=AdL8; // 低8位數據裝入
92 1
93 1 for (i=0;i<250;i++) // 適當延時
94 1 i=i;
95 1
96 1 Channel_Msb=AdH4; // 高4位數據裝入
97 1
98 1 LDAC = 0; /* 將LDAC置低,輸入寄存器數據轉入DAC寄存器,模擬輸出端VOUTA輸出模擬信號*/
99 1
100 1 }
101
102
103
104
105
106 /***************************主程序開始**************************/
107
108 void main()
109 {
110 1
111 1 DISPInitial();
112 1 Timer0_Initial();
113 1 while(1)
114 1 { Buffer_Key=Key_Scan();
115 2 DisplayLCD();
116 2 }
117 1 }
C51 COMPILER V8.02 MAIN 04/17/2007 10:57:56 PAGE 3
118
119
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 214 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 ----
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 + -