📄 cpu_init.lst
字号:
C51 COMPILER V7.50 CPU_INIT 03/17/2007 13:51:24 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE CPU_INIT
OBJECT MODULE PLACED IN CPU_Init.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CPU_Init.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //函数声明
2 #include <c8051f020.h> // SFR 声明
3 void Port_IO_Init() //IO口以及存储器初始化
4 {
5 1 EMI0CF = 0x2C; //选择高端口模式,只用外部存储器,EMIF工作在
6 1 //地址/数据复用方式,/WR和/RD占用12个SYSCLK周期
7 1 EMI0TC = 0x3C; //地址建立/保持时间为0,ALE高/低脉宽占1个SYSCLK周期
8 1 P3MDOUT = 0x2D; //P3.5--> LCD_RES,P3.3--> LCD_REQ,P3.2--> OE574,
9 1 //P3.0--> OE574 四位设置为推拉输出方式;
10 1 //P3.4--> LCD_BUSY,P3.1-->PS2_DATA两位设置为开漏输出方式。
11 1 P74OUT = 0xFF; //将P4,P6,P5,P7口配置为推拉输出方式
12 1 P0MDOUT = 0x01; //将TX0,TX1设置为推拉输出方式
13 1 P1MDOUT = 0x01;
14 1 XBR0 = 0xDF; //按照配置表进行各个外设的配置
15 1 XBR1 = 0x1C;
16 1 XBR2 = 0x44;
17 1 /*额外的配置请在本行文字以下进行配置并请加详细注释*/
18 1
19 1 /*------------------------------------------------*/
20 1 }
21 void Oscillator_Init() //晶振初始化
22 {
23 1 int i = 0;
24 1 OSCXCN = 0x67;
25 1 for (i = 0; i < 3000; i++); // Wait 1ms for initialization
26 1 while ((OSCXCN & 0x80) == 0);
27 1 OSCICN = 0x88;//使用外部22.1184M晶振,使能时钟丢失检测
28 1 }
29
30 /**************************************************************************************************/
31
32 void Interrupts_Init() //中断初始化
33 {
34 1 IE = 0x10;//使能UART0中断
35 1 IP = 0x10;//设置UART0中断为高优先级
36 1 EIE2 |= 0x02;//使能ADC0中断
37 1 }
38 void Timer_Init()
39 {
40 1 CKCON = 0x10;//定时器1选择系统时钟为时钟源
41 1 TMOD = 0x20;//定时器1工作在8位自动重载方式
42 1 TH1 = 0xB8;//UART0波特率设为9600bps
43 1 TCON = 0x41;//使能定时器1并使外部中断0配置为边沿触发方式
44 1 TMR3 = 0x0FFF; //1.5ms启动一次转换
45 1 TMR3RLL= 0x0FFF;
46 1 TMR3CN = 0x02;//定时器3使用系统时钟
47 1 }
48
49 void UART0_Init(void)
50 {
51 1 SCON0=0xF0; //通信方式3允许多机通信方式,允许接收
52 1 SADDR0=0x01;//主机地址为0x01
53 1 SADEN0=0xFF;//全字节地址匹配
54 1 }
55
C51 COMPILER V7.50 CPU_INIT 03/17/2007 13:51:24 PAGE 2
56 void ADC0_Init(void)
57 {
58 1 AMX0CF=0x00;//配置各通道为单端输入方式
59 1 AMX0SL=0x01;//起始通道为0
60 1 ADC0CF = 0x40;//AD时钟为2.5M,PGA增益为1
61 1 ADC0CN = 0x44;//关闭AD,使用转换前3SAR跟踪保持方式,使用定时器3溢出启动采集
62 1 REF0CN = 0x03;//使能带隙基准和缓冲放大器
63 1 }
64
65 void Init_Device(void)
66 {
67 1 Oscillator_Init();
68 1 Port_IO_Init();
69 1 Interrupts_Init();
70 1 Timer_Init();
71 1 UART0_Init();
72 1 ADC0_Init();
73 1 }
74
75
76
77
78
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 133 ----
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 + -