📄 sysinitialize.lst
字号:
C51 COMPILER V7.50 SYSINITIALIZE 04/22/2008 10:26:30 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE SYSINITIALIZE
OBJECT MODULE PLACED IN SysInitialize.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SysInitialize.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 /*************************************
2 文件名:SysInitialize.c
3 日期:2006-4-25
4 作者:李升义
5 说明:系统初始化文件,对C8051F020进行配置
6 *************************************/
7 #include "c8051F020.h"
8 // Peripheral specific initialization functions,
9 // Called from the Init_Device() function
10 void Timer_Init()
11 {
12 1 CKCON = 0x08; //Timer0使用系统时钟
13 1 TMOD = 0x02; //Timer0设定为8位重载
14 1 }
15
16 void PCA_Init()
17 {
18 1
19 1 PCA0CN = 0x00;
20 1 PCA0MD = 0x00;
21 1 // PCA0CPM0 = 0x4D;
22 1 PCA0CPM1 = 0x00;
23 1 PCA0CPL1 = 0x00;
24 1 PCA0CPH1 = 0x00;
25 1
26 1 }
27
28 void ADC_Init()
29 {
30 1 ADC0CF = 0x00;
31 1 ADC0CN = 0x00;
32 1 ADC1CN = 0x00;
33 1 }
34
35 void DAC_Init()
36 {
37 1 int i=0;
38 1 REF0CN = 0x03;//内部电压基准开,
39 1 DAC1CN = 0x80;//开启DA1输出
40 1 DAC0CN = 0x80;//开启DA0输出
41 1
42 1 // ValueOut_DA1 = 0xfff;//DA1输出初始值
43 1 DAC1L = 0xff;
44 1 DAC1H = 0x0f;
45 1 // for(i=0;i<10000;i++);
46 1
47 1 DAC0L = 0xff;
48 1 DAC0H = 0x0f;
49 1 for(i=0;i<20000;i++);
50 1
51 1
52 1
53 1 // ValueOut_DA0 = 0xfff;//DA1输出初始值
54 1
55 1
C51 COMPILER V7.50 SYSINITIALIZE 04/22/2008 10:26:30 PAGE 2
56 1 }
57
58 void Port_IO_Init()
59 {
60 1 // P0.0 - TX0 (UART0), Open-Drain, Digital
61 1 // P0.1 - RX0 (UART0), Open-Drain, Digital
62 1 // P0.2 - SDA (SMBus), Open-Drain, Digital
63 1 // P0.3 - SCL (SMBus), Open-Drain, Digital
64 1 // P0.4 - TX1 (UART1), Open-Drain, Digital
65 1 // P0.5 - RX1 (UART1), Open-Drain, Digital
66 1 // P0.6 - CEX0 (PCA), Open-Drain, Digital
67 1 // P0.7 - CEX1 (PCA), Open-Drain, Digital
68 1
69 1 // P1.0 - Skipped, Open-Drain, Analog
70 1 // P1.1 - Skipped, Open-Drain, Analog
71 1 // P1.2 - Skipped, Open-Drain, Analog
72 1 // P1.3 - Skipped, Open-Drain, Analog
73 1 // P1.4 - Skipped, Open-Drain, Analog
74 1 // P1.5 - Skipped, Open-Drain, Analog
75 1 // P1.6 - Skipped, Open-Drain, Analog
76 1 // P1.7 - Skipped, Open-Drain, Analog
77 1
78 1 // P2.0 - INT0 (Tmr0), Open-Drain, Digital
79 1 // P2.1 - INT1 (Tmr1), Open-Drain, Digital
80 1 // P2.2 - T2EX (Tmr2), Open-Drain, Digital
81 1 // P2.3 - T4EX (Tmr4), Open-Drain, Digital
82 1 // P2.4 - Unassigned, Open-Drain, Digital
83 1 // P2.5 - Unassigned, Open-Drain, Digital
84 1 // P2.6 - Unassigned, Open-Drain, Digital
85 1 // P2.7 - Unassigned, Open-Drain, Digital
86 1
87 1 // P3.0 - Unassigned, Open-Drain, Digital
88 1 // P3.1 - Unassigned, Open-Drain, Digital
89 1 // P3.2 - Unassigned, Open-Drain, Digital
90 1 // P3.3 - Unassigned, Open-Drain, Digital
91 1 // P3.4 - Unassigned, Open-Drain, Digital
92 1 // P3.5 - Unassigned, Open-Drain, Digital
93 1 // P3.6 - Unassigned, Open-Drain, Digital
94 1 // P3.7 - Unassigned, Open-Drain, Digital
95 1
96 1 P1MDIN = 0x00;
97 1 XBR0 = 0x15;
98 1 XBR1 = 0x54;
99 1 XBR2 = 0x54;
100 1
101 1
102 1 // P1MDIN = 0x00;//将P1配置为模拟输入
103 1 // XBR0 = 0x15;
104 1 /// XBR1 = 0x40;//T2EX接到外部引脚//0x14;
105 1 // XBR2 = 0x54;//T4EX接到外部引脚//0x44;//0x46;//与P0.7(cex1)有关
106 1 P2MDOUT = 0X00;
107 1 P2 =0XFF;
108 1 P3MDOUT = 0x3f; //P3的0~5配置为推挽输出(区动六个继电器)
109 1 // P3MDOUT = 0x00; //驱动继电器不用推挽输出,漏极开路即可
110 1 P3 |= 0xc0;//P3的7~6配置为输入
111 1 // P74OUT |= 0x80;//P7高4位为推挽输出
112 1 P74OUT &= 0x3f;//P7低四位配置为漏极开路
113 1 P74OUT |= 0x03;//P4配置为推挽输出
114 1 P7 = 0x0f;//P7低四位配置为输入
115 1 P0MDOUT |= 0xc0;//P0.6~7配置为推挽输出
116 1 P0 = 0xff;
117 1 //EMIFLE(XBR2.1)
C51 COMPILER V7.50 SYSINITIALIZE 04/22/2008 10:26:30 PAGE 3
118 1 P3IF = 0x00;//P3.7中断由下降沿触发
119 1 EIE2 |= 0x20;//允许INT7外部中断
120 1 EIP2 |= 0x20;//INT7外部中断置为高优先级
121 1 //-----USB Write--------------
122 1 P74OUT = 0xcc;//P7、P5配置为推挽 ,P6、P4配置为漏极开路
123 1 P6 = 0xff;//P6配置为输入
124 1 // P4 = 0xff;//P6配置为输入
125 1 P7 = 0x00;//P7低四位配置为输入
126 1 P74OUT &= 0xF3;
127 1 P5 = 0xff;//设置P5为输入
128 1 //----------------------------
129 1
130 1 }
131
132 void Oscillator_Init()
133 {
134 1
135 1 int i; // 延时计数器
136 1 OSCXCN = 0x67; // 起动外部振荡器11.0592MHz晶体
137 1 for (i=0; i < 3000; i++) ; // 等待振荡器启动
138 1 while (!(OSCXCN & 0x80)) ; // 等待晶体振荡器稳定
139 1 OSCICN = 0x8f;//0x08; // 选择外部振荡器为系统时钟源并使能丢失时钟检测器*/
140 1 }
141
142 void Interrupts_Init()
143 {
144 1 IE = 0x00; //由于Timer0 中断优先级高于PCA,所以有关掉TIMER0 0x1B
145 1 //关掉两个外部中断0、1
146 1 EIE1 = 0x08;//允许PCA中断
147 1 // IP = 0x01; //INT0优先级置高
148 1 EIP1 = 0x08; //PCA中断优先级置高
149 1 // EIE2 = 0x01;//允许Timer3中断
150 1 // EIP2 = 0x01;// Timer3中断优先级置
151 1 }
152
153 // Initialization function for device,
154 // Call Init_Device() from your main program
155 void Init_Device(void)
156 {
157 1 // Timer_Init();
158 1 // PCA_Init();
159 1 // ADC_Init();
160 1 DAC_Init();
161 1 Port_IO_Init();
162 1 Oscillator_Init();
163 1 // Interrupts_Init();
164 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 169 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -