?? hardware.lst
字號:
C51 COMPILER V7.10 HARDWARE 09/18/2008 14:09:27 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE HARDWARE
OBJECT MODULE PLACED IN Hardware.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 20progress\Hardware.c BROWSE DEBUG OBJECTEXTEND PRINT(.\Hardware.lst) OBJEC
-T(Hardware.obj)
line level source
1 //*******************************************************************************
2 //Copyright (c) 2007,派利斯電子(北京)有限公司 硬件部
3 //文件名稱: Hardware.c
4 //摘 要: 本文件主要包含PT2060程序中與硬件相關的初始化、操作和I/O操作部分
5 //當前版本: D-1
6 //作 者: 佟文杰
7 //完成日期: 4/13/2007
8 //修 改 人:
9 //修改原因:
10 //修改日期:
11 //*******************************************************************************
12 #include "Hardware.h"
13 #include <C8051F020.H>
14 #include "sja1000.h"
15 #include "intrins.h"
16
17
18 sbit LED_OK = P3^5;
19 sbit LED_Alarm = P3^4;
20
21 sfr16 TMR3RL = 0x92; // Timer3 reload value
22 sfr16 TMR3 = 0x94; // Timer3 counter
23 sfr16 ADC0 = 0xbe; // ADC0 data
24
25 #define TESTLEDON P4 = P4&0xf7
26 #define TESTLEDOFF P4 = P4|0x08
27 #define FLASHFIRSTADDRESS 0xa000
28 #define MAXGROUP 16
29
30 #define SAMPLECOMPLETETRUE 1
31 #define SAMPLECOMPLETEFALSE 0
32
33
34
35 sfr16 RCAP4 = 0xe4;
36
37 #define SYSCLK 22118400
38
39 xdata unsigned char uchConfigStatusBak[3];
40 xdata unsigned char uchBypassStatusBak[3];
41 xdata unsigned char uchTripleStatusBak[3];
42 xdata unsigned char uchConfigStatus = 1;
43 xdata unsigned char uchBypassStatus = 1;
44 xdata unsigned char uchTripleStatus = 1;
45 data unsigned char uchSampleType;
46 xdata unsigned int uiHeartbeatValue = 0;
47 xdata unsigned char uchSampleCompleteStatus;
48 xdata unsigned int uiGroupLength;
49
50
51 //-----------------------------------------------------------
52 // AD采樣的數組定義
53 //------------------------------------------------------
54 unsigned int xdata SampBuffer0[2048];
C51 COMPILER V7.10 HARDWARE 09/18/2008 14:09:27 PAGE 2
55 xdata unsigned int SampBuffer1[2048];
56 xdata unsigned int SampBuffer2[2048];
57 xdata unsigned int SampBuffer3[2048];
58 //xdata unsigned int SampBuffer4[2048];
59 //xdata unsigned int SampBuffer5[2048];
60
61 unsigned int data SamplePTR0;
62 unsigned int data SamplePTR1;
63 unsigned int data SamplePTR2;
64 unsigned int data SamplePTR3;
65 unsigned int data SamplePTR4;
66 unsigned int data SamplePTR5;
67
68 unsigned char idata uchReceiData[13]; //接收數據
69 unsigned char xdata uchCANReSendFlag=0x00;
70
71 unsigned char xdata uchHWCPUAdress;
72
73 //----------------------------------------------
74 unsigned char xdata s_uchTempData1;
75 unsigned char xdata s_uchTempData2;
76 //------------------------------------------------------
77
78 bit bdata b_NotIntegralChannelType;
79 bit bdata b_IntegralChannelType;
80 bit bdata b_LVDTChannelType;
81
82 unsigned char idata uchSampleLocationCounter;
83
84 //----------------------------------------------------------
85 //函數名稱:void SysCLKInit(void)
86 //功 能:系統時鐘初始化
87 //輸入參數:無
88 //返 回:無
89 //完成日期:4/12/2007
90 //----------------------------------------------------------
91 void SysCLKInit(void)
92 {
93 1 unsigned char i;
94 1
95 1 OSCXCN = 0x67; // start external oscillator with 22.1184MHz crystal
-
96 1 for (i=0; i<254; i++)
97 1 {;}
98 1 while (!(OSCXCN & 0x80)) // Wait for crystal osc. to settle
99 1 {;}
100 1 OSCICN = 0x88;
101 1 // select external oscillator as SYSCLK source and enable missing clock dete
-ctor
102 1
103 1 }
104
105 //--------------------------------------------------------
106 //函數名稱:void InitCPU(void)
107 //功 能:交叉開關配置和端口初始化 無看門狗
108 //輸入參數:無
109 //返 回:無
110 //完成日期:4/12/2007
111 //--------------------------------------------------------
112 void InitCPU(void)
113 {
114 1 XBR0 = 0X87; //connect cp0,UART0 I/O,SPI,SMBus
C51 COMPILER V7.10 HARDWARE 09/18/2008 14:09:27 PAGE 3
115 1 XBR1 = 0X7F; //connect T2EX,T2E,INT1,T1,INT0,T0,CP1
116 1 XBR2 = 0X40; //enable I/O,
117 1
118 1 P0MDOUT = 0x00; //端口P0配置為露極開路
119 1 P1MDIN = 0X00; //P1 被配置成為模擬輸入
120 1 P2MDOUT = 0x00;
121 1 P3MDOUT |= 0x30;
122 1 P3MDOUT &= 0X3f;
123 1
124 1 P3IF = P3IF | 0x0c; //外部中斷6,外部中斷7 上升沿觸發(fā)
125 1 P74OUT |= 0xf3;
126 1
127 1 P0 = 0xff;
128 1 P1 = 0xff;
129 1 P3 |= 0xC0;
130 1 P5 = 0xff;
131 1 }
132
133 //-----------------------------------------------------------------
134 //函數名稱:void HWOKLEDControl(unsigned char uchOKStatus)
135 //功 能:檢測系統OK燈的控制P3.5
136 //輸入參數:OK狀態(tài)
137 //返 回:無
138 //完成日期:4/12/2007
139 //-----------------------------------------------------------------
140 void HWOKLEDControl(unsigned char uchOKStatus)
141 {
142 1 if (uchOKStatus != 0)
143 1 {
144 2 LED_OK = 0;
145 2 }
146 1 if (uchOKStatus == 0)
147 1 {
148 2 LED_OK = 1;
149 2 }
150 1 }
151
152 //--------------------------------------------------------------------------------------------------
153 //函數名稱:void LEDCommunicationControl(void)
154 //功 能:控制通信燈的執(zhí)行
155 //輸入參數:無
156 //返 回:無
157 //完成日期:4/16/2007
158 //--------------------------------------------------------------------------------------------------
159 void LEDCommunicationControl(void)
160 {
161 1 LED_OK = ~ LED_OK;
162 1 }
163
164 //-----------------------------------------------------------------
165 //函數名稱:void RunLEDStartControl(void)
166 //功 能:檢測系統運行狀態(tài)控制燈開始運行
167 //輸入參數:無
168 //返 回:無
169 //完成日期:4/12/2007
170 //-----------------------------------------------------------------
171 void RunLEDStartControl(void)
172 {
173 1 P4 &= ~0x08;
174 1 }
175
176 //-----------------------------------------------------------------
C51 COMPILER V7.10 HARDWARE 09/18/2008 14:09:27 PAGE 4
177 //函數名稱:void RunLEDStopControl(void)
178 //功 能:檢測系統運行狀態(tài)控制燈停止運行
179 //輸入參數:無
180 //返 回:無
181 //完成日期:4/12/2007
182 //-----------------------------------------------------------------
183 void RunLEDStopControl(void)
184 {
185 1 P4 |= 0x08;
186 1 }
187
188 //-----------------------------------------------------------------
189 //函數名稱:void AlarmLEDControl(unsigned char uchAlarmStatus)
190 //功 能:檢測系統是否報警的燈的控制P3.6
191 //輸入參數:報警與否狀態(tài)
192 //返 回:無
193 //完成日期:4/12/2007
194 //-----------------------------------------------------------------
195 void AlarmLEDControl(unsigned char uchAlarmStatus)
196 {
197 1 if (uchAlarmStatus == 0)
198 1 {
199 2 LED_Alarm = 1;
200 2 }
201 1 else
202 1 {
203 2 LED_Alarm = 0;
204 2 }
205 1 }
206
207 //-----------------------------------------------------------------
208 //函數名稱:void SetOKIOControl(unsigned char uchChannel)
209 //功 能:通過狀態(tài)判斷得到P4.2、P4.1和P4.0端口的狀態(tài)供三冗余使用
210 //輸入參數:通道號
211 //返 回:無
212 //完成日期:4/12/2007
213 //-----------------------------------------------------------------
214 void SetOKIOControl(unsigned char uchChannel)
215 {
216 1 unsigned char uchTemp;
217 1 if (uchChannel == 1)
218 1 {
219 2 P4 = P4 & 0xf8; //0 0 0
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -