📄 io.lst
字号:
C51 COMPILER V7.09 IO 04/03/2007 16:19:06 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE IO
OBJECT MODULE PLACED IN IO.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE IO.c BROWSE
line level source
1 #include "fx2.h"
2 #include "fx2regs.h"
3 #include "io.h"
4
5 //#define OTimer_Macro_1msTH 0xD1 /*CLKOUT(48M)/4,24M晶振,1ms定时器中断定时值*/
6 //#define OTimer_Macro_1msTL 0x20 /*1ms定时器中断定时值*/
7 #define OTimer_Macro_1msTH 0xF8 /*CLKOUT(48M)/4,24M晶振,1ms定时器中断定时值*/
8 //#define OTimer_Macro_1msTH 0x88
9 #define OTimer_Macro_1msTL 0x30 /*1ms定时器中断定时值*/
10
11 //#define OTimer_Macro_1msTH 0xFC /*CLKOUT(12M)/4,24M晶振,1ms定时器中断定时值*/
12 //#define OTimer_Macro_1msTL 0x18 /*2ms定时器中断定时值*/
13
14 //#define OTimer_Macro_1msTH 0xFE /*CLKOUT(12M)/4,24M晶振,1ms定时器中断定时值*/
15 //#define OTimer_Macro_1msTL 0x0C /*1ms定时器中断定时值*/
16 char AD_X;
17
18 //char AD0809;
19 int tttttt=0;
20 void IO_Init()
21 {
22 1 PORTECFG &= ~WORK_LED;
23 1 //端口E的PE3取反
24 1 PORTECFG &= ~CPLD_RST;
25 1 /////////////////////////////
26 1 // PORTECFG &= ~LED_TS0 ;
27 1 // PORTECFG &= ~LED_TS1 ;
28 1 //端口E的PE4取反
29 1
30 1 OEE |= WORK_LED;
31 1 OEE |= CPLD_RST;
32 1
33 1 ////////////////
34 1 OEE |= LED_TS0;
35 1 OEE |= LED_TS1;
36 1 OEE |= LED_TS2;
37 1
38 1 //端口输出使能
39 1 /////////////////////////////
40 1 IOE &= ~CPLD_RST; //CPLD reset
41 1 IOE |= CPLD_RST;
42 1 IOE &= ~WORK_LED; //Word Led Light
43 1
44 1 // IOE |= WORK_LED;
45 1 // IOE &= ~WORK_LED;
46 1
47 1 ////////////////////
48 1 IOE &= ~LED_TS0;
49 1 IOE &= ~LED_TS1;
50 1 IOE &= ~LED_TS2;
51 1 ////////////////////
52 1 //需要初始化A和C的端口
53 1 PORTACFG=0x00;
54 1 OEA=0xFF;
55 1 IOA|=0x06;//PA2=1;ADPA1=1
C51 COMPILER V7.09 IO 04/03/2007 16:19:06 PAGE 2
56 1 PORTCCFG=0x00;
57 1 OEC=0x00;
58 1 ///////////////////////////// add by myself
59 1 }
60
61 void REG_Init()
62 {
63 1 CPUCS = 0x10; //48Mhz
64 1 CKCON = (CKCON&(~bmSTRETCH)) | 1; // Set stretch to 0 (after renumeration)
65 1 }
66
67 void Sys_Timer0_Init ()
68 {
69 1 ET0 = 0; /* Forbid T0 INT */
70 1 TMOD = (TMOD & 0xF0) | 0x01; /*方式1*/
71 1 // CKCON |= 0x08; //T0M = CLKOUT/4
72 1 CKCON &= 0xF7; //T0M = CLKOUT/12
73 1 TF0 = 0; /* Reset */
74 1 TH0 = OTimer_Macro_1msTH;
75 1 TL0 = OTimer_Macro_1msTL;
76 1 EA = 1 ; /* CPU Open INT */
77 1 ET0 = 1; /* Permit T0 INT */
78 1 PT0 = 0; /* Lower Priority */
79 1 TR0 = 1; /* Start T0 */
80 1 return ;
81 1 }
82
83
84
85 /*
86 void Sys_Timer1_Init ()
87 {
88 TH2 = T1_VALUE ; // 设置定时器1的初值
89 TL2 = T1_VALUE;
90 T2CON= 0x04;
91 return ;
92 }
93 */
94 /*
95
96 void Timer0_Interrupt() interrupt 2//中断1
97
98 {
99 TH0 = 0x01; //0xD1
100 TL0 = 0x20; //0x20
101 // 定时器1的定时时间是1到2US之间
102 PA7=~PA7;
103
104 }
105 */
106 /*
107 void Timer1_Interrupt() interrupt 3//中断1
108
109
110
111 {
112
113 TH0 = 0x33; //0xD1
114 TL0 = 0x20; //0x20
115
116 PA2=~PA2;
117
C51 COMPILER V7.09 IO 04/03/2007 16:19:06 PAGE 3
118 }
119
120
121 */
122 /*
123 定时器2的定时时间是1MS左右
124 PA2=1;
125
126 PA2=0;
127 //delay(100);
128 PA2=1;//意思是让PA2定时产生一个低电平,经过反向后就是一个AD的启动正脉冲了。
129 */
130
131
132
133
134 //////////////////////--------------------------------------------------------------
135
136
137
138
139 /*********************************************
140 串口0中断服务程序
141 *********************************************/
142
143 //是不是中断的速度太快了呢?????
144 //为什么每一个程序中断的都不一样呢?
145
146 /*
147 void Time1_Interrupt() interrupt 3
148 {
149 //TF1 =0;
150 // TH1 = 0x00 ; // 设置定时器1的初值
151 // TL1 = 0x10;
152 tttttt=tttttt+1;
153 if(tttttt==20000)
154 {
155 tttttt=0;
156 // PA6=~PA6;
157 // PA5=~PA5;
158 if(tttttt%2==0)
159 {IOA=0x00;}
160 if(tttttt%2==1)
161 {IOA=0xFF;}
162 }
163
164 }
165 */
166
167 void Timer0_Interrupt() interrupt 1
168 {
169 1
170 1 TH0 = OTimer_Macro_1msTH;
171 1 TL0 = OTimer_Macro_1msTL;
172 1 PA7=~PA7;
173 1 PA2=0;
174 1 PA2=0;
175 1 PA2=0;
176 1 PA2=0;
177 1 PA2=0;
178 1 PA2=0;
179 1
C51 COMPILER V7.09 IO 04/03/2007 16:19:06 PAGE 4
180 1 PA2=1;
181 1 // PA2=~PA2;
182 1 tttttt++;
183 1 if(tttttt>=100)
184 1 {
185 2 tttttt=0;
186 2 PA5=~PA5;
187 2 }
188 1 }
189
190
191
192 void ad0809()
193 {
194 1 //int i;
195 1 //while(PA0==0)
196 1 //{i++;}
197 1
198 1 if (PA0==1)
199 1 { PA1=0;
200 2 // for (i=0; i < 4; i++) ;
201 2
202 2 AD_X=IOC;
203 2 PA1=1;
204 2 }
205 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 176 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
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 + -