?? 模擬比較器.lst
字號:
C51 COMPILER V7.06 腳擬_冉_器 06/08/2005 23:00:18 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 腳擬_冉_器
OBJECT MODULE PLACED IN 模擬比較器.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil20\C51\BIN\C51.EXE 模擬比較器.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //-----------------------函數聲明,變量定義--------------------------------------------------------
2 #include <reg51.h>
3 #include <intrins.h>
4 sbit sel_A = P3^0;
5 sbit sel_B = P3^1;
6 sbit sel_C = P3^2;
7 sbit comp_OUT =P3^6;
8 sbit comp_IN1 =P1^0;
9 sbit comp_IN2 =P1^1;
10 unsigned char ABC;
11 unsigned int Tref;
12 unsigned int Tx;
13 unsigned int Vx;
14 unsigned int Vref=25000; //實際參考電壓值的1000倍,以免出現小數
15
16 void delay(unsigned int N); //延時子程序,實現(16*N+24)us的延時
17 void timer_set(); //定時器初始化函數
18 void discharge(); //電容放電
19 void measure_Vref(); //測量參考電壓值
20 void measure_Vx(unsigned char channels);//測量指定通道的電壓
21 void calculate_Vx(); //計算待測電壓值
22 #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
23 //--------------------------------------------------------------------------------------------------
24 // 函數名稱: delay
25 // 入口參數: N
26 // 函數功能:延時子程序,實現(16*N+24)us的延時
27 // 系統采用11.0592MHz的時鐘時,延時滿足要求,其它情況需要改動
28 //--------------------------------------------------------------------------------------------------
29 void delay(unsigned int N)
30 {
31 1 int i;
32 1 for(i=0;i<N;i++);
33 1 }
34 //-------------------------------------------------------------------------------------------------------
35 // 函數名稱: timer_set
36 // 功能說明: 設置定時器工作狀態,與硬件有關
37 //--------------------------------------------------------------------------------------------------------
38 void timer_set()
39 {
40 1 TMOD=0x01; //設定定時器工作模式
41 1 }
42 //--------------------------------------------------------------------------------------------------
43 // 函數名稱: discharge
44 // 函數功能: 電容放電,定時器清零
45 //--------------------------------------------------------------------------------------------------
46 void discharge()
47 {
48 1 comp_IN2=0; //P1.1置零,Cr放電
49 1 delay(0); //延時24us
50 1 TH0=0; //計數器清零
51 1 TL0=0;
52 1 }
53 //-------------------------------------------------------------------------------------------------------
54 // 函數名稱: measure_Vref
55 // 功能說明: 測量參考電壓
C51 COMPILER V7.06 腳擬_冉_器 06/08/2005 23:00:18 PAGE 2
56 //--------------------------------------------------------------------------------------------------------
57 void measure_Vref()
58 {
59 1 sel_A=0;
60 1 sel_B=0;
61 1 sel_C=0; //選通0通道,Vref輸入
62 1 delayNOP(); //定時消除抖動
63 1 TR0=1; //啟動計數器
64 1 comp_IN2=1; //P1.1置1,開始積分
65 1 while(comp_OUT); //檢測P3.6是否出現跳變
66 1 TR0=0; //停止計數器計數
67 1 Tref=TH0;
68 1 Tref=(Tref<<8)||TL0;
69 1 discharge(); //放電
70 1 }
71 //-------------------------------------------------------------------------------------------------------
72 // 函數名稱: measure_Vx
73 // 入口參數: channels選通通道(1-7)
74 // 功能說明: 測量指定通道的電壓
75 //--------------------------------------------------------------------------------------------------------
76 void measure_Vx(unsigned char channels)
77 {
78 1 sel_A=channels&0x01;
79 1 sel_B=channels&0x02;
80 1 sel_C=channels&0x04;
81 1 delayNOP(); //定時消除抖動
82 1 TR0=1; //啟動計數器
83 1 comp_IN2=1; //P1.1置1,開始積分
84 1 while(comp_OUT); //檢測P3.6是否出現跳變
85 1 TR0=0; //停止計數器計數
86 1 Tx=TH0;
87 1 Tx=(Tx<<8)||TL0;
88 1 discharge(); //放電
89 1 }
90 //-------------------------------------------------------------------------------------------------------
91 // 函數名稱: calculate_Vx
92 // 根據公式Vx=Vref*Tx/Tref計算結果;
93 // 功能說明: 計算Vx
94 //--------------------------------------------------------------------------------------------------------
95 void calculate_Vx()
96 {
97 1 //根據公式Vx=Vref*Tx/Tref計算結果;
98 1 }
99 //-------------------------------------------------------------------------------------------------------
100 // 函數名稱: main
101 // 功能說明: 主函數
102 //--------------------------------------------------------------------------------------------------------
103 void main()
104 {
105 1 timer_set();
106 1 discharge(); //放電
107 1 measure_Vref();
108 1 measure_Vx(1);
109 1 calculate_Vx(); //計算待測電壓值
110 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 163 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V7.06 腳擬_冉_器 06/08/2005 23:00:18 PAGE 3
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 + -