📄 sys_init.lst
字号:
C51 COMPILER V7.50 SYS_INIT 11/24/2008 09:12:32 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE SYS_INIT
OBJECT MODULE PLACED IN Sys_Init.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE Sys_Init.C BROWSE DEFINE(__DEBUG__) DEBUG OBJECTEXTEND
line level source
1 /*===============================================================================//
2 //== 文 件 名:Sys_Init.c
3 //== author :gnsusn
4 //== 说 明:
5 //== 修改日志:2008.7.14 创建文件
6 //==
7 //===============================================================================*/
8 #include <reg52.H>
9
10 //===============================================================================//
11 //== 函 数 名:Sys_Init
12 //== 功 能 :初始化单片机资源
13 //== 说 明 :
14 //== 时 间 :2008.7.14 创建函数
15 //== 入口参数:无
16 //== 返 回 值:
17 //===============================================================================//
18 unsigned char Sys_Init(void)
19 {
20 1 //== PCON: |SMOD| -- | -- | -- | GF1| GF0| PD | IDL| ::电源控制寄存器
21 1 //== : 1 0 0 0 0 0 0 0
22 1 //---------------------------------------------------
23 1 PCON |= 0x80; //== SMOD::波特率不加倍
24 1 //== GF1,GF0
25 1 //== PD::掉电模式
26 1 //== IDL::空闲模式
27 1
28 1 //== SCON: SM0 SM1 SM2 REN TB8 RB8 TI RI
29 1 //== : 0 1 0 1 0 0 0 0
30 1 //---------------------------------------------------
31 1 SCON |= 0x50; //== 串行口控制寄存器,方式1,允许RI中断
32 1 //== SM2: 多机通信控制位 =1时,如果RB8也等于1,则激发RI中断
33 1 //== _ _
34 1 //== TMOD: |GATE| C/T| M1 | M0 |GATE| C/T| M1 | M0 | ::定时器方式选择寄存器
35 1 //== : 0 0 1 0 0 0 0 1
36 1 //---------------------------------------------------
37 1 //== GATE=0用TR0和TR1来控制T1和T0的启动; GATE=1则用外部中断来控制
38 1 //== C/T为0表示定时器模式。为1表示计数器模式,对T0或T1的外部负跳变脉冲计数
39 1 TMOD |= 0x21; //== 定时器0:模式1,16位计数器; 模式0:13位计数器
40 1 //== 定时器1:模式2,自动重装载模式; 模式3:T0分为两个8位计数器,T1停止工作
41 1
42 1 TH1 = 0xfe; //== 自动重装值
43 1 TL1 = 0xfe; //== 11.0592MHz 波特率57600B/s
44 1 //== 波特率9600B/s 0xfa
45 1 //== 22.1184MHz 波特率 ff 115200
46 1 TH0 = 0x00; //== 定时器0的初始值
47 1 TL0 = 0x00;
48 1
49 1 //== IP: - - - PS PT1 PX1 PT0 PX0 :: 中断优先级控制寄存器
50 1 //== : 0 0 0 0 0 0 0 1 :: 中断可以被中断
51 1 //---------------------------------------------------
52 1 IP = 0x01; //== PS :: 串口中断优先级别
53 1 //== PT1:: 定时/计数器T1的中断优先级别
54 1 //== PX1:: 外部中断1的中断优先级别
55 1 //== PT0:: 定时/计数器T0的中断优先级别
C51 COMPILER V7.50 SYS_INIT 11/24/2008 09:12:32 PAGE 2
56 1 //== PX0:: 外部中断0的中断优先级别
57 1
58 1 //== TCON: TF1 TR1 TF0 TR0 IE1 IE0 IT1 IT0 ::定时器控制寄存器
59 1 //== : 0 1 0 0 0 0 0 0
60 1 //---------------------------------------------------
61 1 TCON = 0x40; //== TF:: 计数器/定时器溢出中断标志,硬件置1,硬件清0(可软件清0)
62 1 //== TR:: 控制定时器的运行
63 1 //== IE:: 外部中断请求标志,1时执行中断,执行中断后硬件自动清0(硬件置1,硬件清0)
64 1 //== IT:: 外部中断类型控制位, 0:低电平时触发; 1:下降沿触发
65 1
66 1
67 1 //== IE: EA - ET2 ES ET1 EX1 ET0 EX0 ::中断允许控制寄存器 1:允许;0:禁止
68 1 //== : 1 0 1 0 0 0 0
69 1 //---------------------------------------------------
70 1 IE = 0x90; //== EA :: 总控制位
71 1 //== ET2:: T2中断控制位
72 1 //== ES :: 串口中断控制位
73 1 //== ET1:: T1中断控制位
74 1 //== EX1:: INT1中断控制位
75 1 //== ET0:: T0中断控制位
76 1 //== EX0:: INT0中断控制位
77 1
78 1 return 0; //== 成功返回
79 1 }
80
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 31 ----
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 + -