📄 t1main.lst
字号:
C51 COMPILER V6.02 T1MAIN 09/11/2005 06:36:51 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE T1MAIN
OBJECT MODULE PLACED IN .\T1main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\T1main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "AT51S_89C52.h"
2 #include "hd7279.h"
3 #include "DisplayControl.h"
4 #include "SPICommunication.h"
5 extern void KeilWordToBcd(unsigned char idata *pWord,unsigned char idata *pBcd);
6 extern void KeilLongToBcd(unsigned char idata *pLong,unsigned char idata *pBcd);
7
8 //Dog Line is for reset Watchdog chip.
9 sbit DogLine = P1^7;
10 // define fsselct,psel0,psel1
11 sbit fselect = P3^6;
12 sbit PSEL0 = P2^3;
13 sbit PSEL1 = P2^4;
14
15 //-------------------------Use for keyboard and display----------------------------------------
16 unsigned char idata KeyCode;
17 bit KeyMark;
18 bit PSKKey=0;
19 bit ASKKey=0;
20 bit PSKFreflags=0;
21 bit ASKFreflags=0;
22
23 unsigned char KeyTimer;
24 unsigned char idata BcdBuf[7];
25
26
27 unsigned char idata DisStatus;
28 //Macro Define for DisStatus
29
30
31 #define Working_DS 0
32 #define SetupFrequency 1
33 #define PSKFrequency 2
34 #define ASKFrequency 3
35 #define DisStatusNUMs 4
36
37 //Macro Define for KeyCode
38 #define Status_KEYCODE 7
39 #define Shiftleft_KEYCODE 21
40 #define Shiftright_KEYCODE 14
41 #define Up_KEYCODE 28
42 #define Down_KEYCODE 35
43 #define Yes_KEYCODE 56
44
45
46 //-----------------------useful for Frequency --------------------------------
47 unsigned long frequency_AD9835;
48 unsigned char shiftBit; //0~7
49 unsigned char idata frequencyBCDCode[8];
50 unsigned long int fre;
51
52 //----------------------------------------------------------------------------
53 //----------------------------------------------------------------------------
54 void ExInt0Rsp(void) interrupt 0 using 0 //INTO
55 {
C51 COMPILER V6.02 T1MAIN 09/11/2005 06:36:51 PAGE 2
56 1 EX0 = 0;
57 1 }
58
59 void Timer0IntRsp(void) interrupt 1 using 1//T0
60 {
61 1 // ET0 = 0;
62 1 if ((PSKFreflags==1))
63 1 PSEL1 = ! PSEL1;
64 1 else if((ASKFreflags==1))
65 1 fselect = ! fselect;
66 1 }
67
68 void ExInt1Rsp(void) interrupt 2 using 2
69 {
70 1 KeyMark = 1;
71 1 EX1 = 0;
72 1 }
73 void Timer1IntRsp(void) interrupt 3 using 2
74 {
75 1 TR1 = 0;
76 1 TH1 = 0xDF;
77 1 TL1 = 0x73;
78 1 TR1 = 1;
79 1
80 1 if( KeyTimer<100 )
81 1 KeyTimer++;
82 1 }
83 void SerialPortIntRsp(void) interrupt 4 using 2
84 {
85 1 ES=0;
86 1 }
87 void Timer2IntRsp(void) interrupt 5 using 2
88 {
89 1 ET2 = 0;
90 1 }
91
92
93 void updateFrequency(void)
94 {
95 1 unsigned char i;
96 1 unsigned long temFrequ = 0;
97 1 for( i=0; i<8; i++ ){
98 2 temFrequ = temFrequ*10 + frequencyBCDCode[i];
99 2 }
100 1 frequency_AD9835 = temFrequ;
101 1 DisStatus = Working_DS;
102 1
103 1 if( frequency_AD9835 >= 10000000 )
104 1 frequency_AD9835 = 10000000;
105 1 if( frequency_AD9835<= 1000)
106 1 frequency_AD9835 = 1000;
107 1
108 1 testAD9875(frequency_AD9835);
109 1 }
110 //喂狗函数
111 void FeedDog(void)
112 {
113 1 DogLine=0;
114 1 _nop_();
115 1 _nop_();
116 1 DogLine=1;
117 1 }
C51 COMPILER V6.02 T1MAIN 09/11/2005 06:36:51 PAGE 3
118 //Status键处理函数
119 void StatusKeyProc(void)
120 {
121 1 DisStatus++;
122 1 if( DisStatus>=DisStatusNUMs )
123 1 DisStatus = 0;
124 1 if( DisStatus==SetupFrequency )
125 1 { fre=frequency_AD9835;
126 2 KeilLongToBcd((unsigned char *)&frequency_AD9835, &(BcdBuf[0]));
127 2 frequencyBCDCode[0] = BcdBuf[1]>>4;
128 2 frequencyBCDCode[1] = BcdBuf[1]&0x0f;
129 2 frequencyBCDCode[2] = BcdBuf[2]>>4;
130 2 frequencyBCDCode[3] = BcdBuf[2]&0x0f;
131 2 frequencyBCDCode[4] = BcdBuf[3]>>4;
132 2 frequencyBCDCode[5] = BcdBuf[3]&0x0f;
133 2 frequencyBCDCode[6] = BcdBuf[4]>>4;
134 2 frequencyBCDCode[7] = BcdBuf[4]&0x0f;
135 2 shiftBit = 0;
136 2 }
137 1
138 1 if(DisStatus==PSKFrequency)
139 1 { PSKKey=1;
140 2 testAD9875(100000);
141 2 TR0 = 1;
142 2 ET0 = 1;
143 2 PSKFreflags=1;
144 2 ASKFreflags=0;
145 2 }
146 1 else if(DisStatus==ASKFrequency)
147 1 { //PSKKey=1;
148 2 testAD9875(100000);
149 2 TR0 = 1;
150 2 ET0 = 1;
151 2 PSKFreflags=0;
152 2 ASKFreflags=1;
153 2 }
154 1 else
155 1 { testAD9875(fre) ;
156 2 fselect = 0;
157 2 PSEL0 = 0;
158 2 PSEL1 = 0;
159 2 PSKFreflags=0;
160 2 ASKFreflags=0;
161 2 ET0=0;
162 2 TR0=0;
163 2
164 2 }
165 1
166 1
167 1
168 1 /* if(DisStatus==ASKFrequency)
169 1 {;}*/
170 1 }
171
172
173
174 //---------------------------------------------
175 //Shift键处理函数
176 void ShiftKeyleftProc(void)
177 {
178 1 switch(DisStatus){
179 2 case Working_DS:
C51 COMPILER V6.02 T1MAIN 09/11/2005 06:36:51 PAGE 4
180 2 break;
181 2 case SetupFrequency:
182 2 shiftBit++;
183 2 if( shiftBit >5 )
184 2 shiftBit = 0;
185 2 break;
186 2 case PSKFrequency:
187 2 break;
188 2 case ASKFrequency:
189 2 break;
190 2 default:
191 2 break;
192 2 }
193 1 }
194 //----------------------------------------
195 void ShiftKeyrightProc(void)
196 {
197 1 switch(DisStatus){
198 2 case Working_DS:
199 2 break;
200 2 case SetupFrequency:
201 2
202 2 if( shiftBit >0 )
203 2 shiftBit--;
204 2 else
205 2 shiftBit = 5;
206 2
207 2 break;
208 2 case PSKFrequency:
209 2 break;
210 2 case ASKFrequency:
211 2 break;
212 2 default:
213 2 break;
214 2 }
215 1 }
216 //----------------------------------------
217 void UpKeyProc(void)
218 {
219 1 switch(DisStatus){
220 2 case Working_DS:
221 2 frequency_AD9835 += 100;
222 2 if( frequency_AD9835 >= 10000000 )
223 2 frequency_AD9835 = 10000000;
224 2 testAD9875(frequency_AD9835);
225 2 break;
226 2 case SetupFrequency:
227 2 frequencyBCDCode[shiftBit]++;
228 2 if( frequencyBCDCode[shiftBit]>9 )
229 2 frequencyBCDCode[shiftBit]=0;
230 2 break;
231 2 case PSKFrequency:
232 2 break;
233 2 case ASKFrequency:
234 2 break;
235 2 default:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -