📄 mcu_init.lst
字号:
C51 COMPILER V8.01 MCU_INIT 08/21/2008 08:59:22 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE MCU_INIT
OBJECT MODULE PLACED IN MCU_Init.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MCU_Init.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 /***********************************************************************************************/
2 // 初始化模块
3 // 模块功能:时钟初始化、端口初始化、串口(UART)初始化、AD-DA初始化、定时器(T3)初始化
4 // PCA初始化
5 /***********************************************************************************************/
6 #include<MCU_Init.h>
7 #include<C8051F000.h>
8 //--------------------------------------------------------------------------------------------------/
9 // 时钟初始化
10 //--------------------------------------------------------------------------------------------------/
11 void SYSCLK_Init() //时钟初始化
12 {
13 1 OSCICN=OSCICN|0x03; //启用内部晶振16MHZ
14 1 }
15 //--------------------------------------------------------------------------------------------------/
16 // 端口初始化
17 //--------------------------------------------------------------------------------------------------/
18 void PORT_Init() //端口初始化
19 {
20 1 XBR0=0x00;
21 1 XBR1=0x00;
22 1 XBR2=0x40;
23 1 PRT0CF=0xFF; //PO推挽输出
24 1 PRT1CF=0xFF; //PO推挽输出
25 1 PRT3CF=0xff; //P3设置为推挽输出
26 1 P0=0x0F; //用于键盘判断
27 1 P1=0x0ff;
28 1 }
29 //--------------------------------------------------------------------------------------------------/
30 // 串口初始化
31 //--------------------------------------------------------------------------------------------------/
32 void Uart_Init() //串口初始化
33 {
34 1 TMOD=0x20; //定时器T1方式2,作波特率发生器(若用T2:TCON.5、TCON.4须置1)
35 1 TH1=0xe8;
36 1 TL1=0xe8;
37 1 PCON=0x00;
38 1 TR1=1;
39 1 SCON=0x50; //UART方式1(方式2、方式3适于多机通讯(SM2))
40 1 }
41 //--------------------------------------------------------------------------------------------------/
42 // ADC初始化
43 //--------------------------------------------------------------------------------------------------/
44 void ADC0_Init() //ADC初始化
45 {
46 1 ADC0CN=0x00; //ADC0禁止、ADCBUSY写1、数据右对齐
47 1 REF0CN=0x03; //AD基准选择:内部基准源
48 1 AMX0CF=0x00; //ADC输入方式选择:单端输入
49 1 AMX0SL=0x00; //选择通道0作为电压AD输入 AMX0SL=0x01;
50 1 ADC0CF=0x80; //分频系数(为16〕与增益(为1)设置
51 1 EIE2&=0xFD; //禁止ADC中断
52 1 }
53 //--------------------------------------------------------------------------------------------------/
54 // 定时器3初始化
55 //--------------------------------------------------------------------------------------------------/
C51 COMPILER V8.01 MCU_INIT 08/21/2008 08:59:22 PAGE 2
56 void Timer3_Init(unsigned int counts)
57 {
58 1 TMR3CN=0x02; //停止定时器3,清除TF3,系统时钟为时基
59 1 TMR3RL=~counts+1; //赋初值
60 1 TMR3=TMR3RL;
61 1 EIE2&=!0x01; //关T3中断
62 1 TMR3CN|=0x04; //启动T3
63 1 }
64
65 //--------------------------------------------------------------------------------------------------/
66 // DAC初始化
67 //--------------------------------------------------------------------------------------------------/
68 void DAC_Init() //DAC初始化
69 {
70 1 DAC0CN=0x81; //DAC允许, 右对齐方式
71 1 }
72
73 //--------------------------------------------------------------------------------------------------/
74 // PCA初始化
75 //--------------------------------------------------------------------------------------------------
76 void PCA_Init()
77 {
78 1
79 1 PCA0MD=0x03; //CPU等待时PCA0正常工作;系统时钟的1/4为计数脉冲源溢出中断允许
80 1 PCA0CPM0=0x02; //模块0:8位脉宽调制方式、脉宽调制允许、电平切换匹配中断禁止
81 1 PCA0CPM1=0x61; //模块1:正边沿捕捉方式、匹配中断允许
82 1 EIE1|=0x08; //允许PCA0中断
83 1 PCA0CPH0=0xd0;
84 1 CR=0; //关PCA0
85 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 117 ----
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 + -