📄 init_systerm.lst
字号:
C51 COMPILER V8.08 INIT_SYSTERM 04/17/2008 09:50:30 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE INIT_SYSTERM
OBJECT MODULE PLACED IN Init_systerm.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Init_systerm.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************************************************/
2 /* 单片机软件最小系统 */
3 /* V1.0 */
4 /******************************************************************************/
5
6 #include <AT89X52.H> /* special function register declarations */
7 /* for the intended 8051 derivative */
8 #include <stdio.h> /* prototype declarations for I/O functions */
9 #include <ctype.h> /* character functions */
10 #include <string.h> /* string and memory functions */
11 #include <string.h> /* string and memory functions */
12 #include <small_systerm.h> /* 系统初始化声明文件 */
13 /******************************************************************************/
14 /* 外部中断0 */
15 /* 编号: 0 */
16 /* 入口地址: 0003H */
-
17 /******************************************************************************/
18 void Extern_Int0(void) interrupt 0 using 0
19 {
20 1 IE0 = 0;
21 1 }
22 /******************************************************************************/
23 /* T0溢出中断 */
24 /* 编号: 1 */
25 /* 入口地址: 000BH */
-
26 /******************************************************************************/
27 void T0_Isr(void) interrupt 1 using 0
28 {
29 1 TF0 = 0;
30 1 }
31 /******************************************************************************/
32 /* 外部中断1 */
33 /* 编号: 2 */
34 /* 入口地址: 0013H */
-
35 /******************************************************************************/
36 void Extern_Int1(void) interrupt 2 using 0
37 {
38 1 IE1 = 0;
39 1 }
40 /******************************************************************************/
41 /* T1溢出中断 */
42 /* 编号: 3 */
43 /* 入口地址: 001BH */
-
44 /******************************************************************************/
45 void T1_Isr(void) interrupt 3 using 0
46 {
47 1 TF1 = 0;
48 1 }
49 /******************************************************************************/
50 /* 串口收发中断 */
51 /* 编号: 4 */
C51 COMPILER V8.08 INIT_SYSTERM 04/17/2008 09:50:30 PAGE 2
52 /* 入口地址: 0023H */
-
53 /******************************************************************************/
54 void Com_Isr(void) interrupt 4 using 0
55 {
56 1 RI = 0;
57 1 }
58 /******************************************************************************/
59 /* T2溢出中断 */
60 /* 编号: 5 */
61 /* 入口地址: 002BH */
-
62 /******************************************************************************/
63 void T2_Isr(void) interrupt 5 using 0
64 {
65 1 }
66 /******************************************************************************/
67 /* 初始化定时器0 */
68 /******************************************************************************/
69 void Init_T0(void)
70 {
71 1 TMOD |= 0x01;//缺省模式:定时器0工作在16位定时模式,不受外部信号控制
72 1 //|-----|-----|-----|-----|-----|-----|-----|-----|
73 1 //|GATE | C/T | M1 | M0 |GATE | C/T | M1 | M0 |
74 1 //|-----|-----|-----|-----|-----|-----|-----|-----|
75 1 //| T1 | T2 |
76 1 //GATE = 0定时器只受TR0或TR1控制,当且仅当TR0或TR1=1时运行,TR0=0
77 1 //时停止
78 1 //C/T: C/T=0为定时方式,C/T=1为计数方式
79 1 //M1M0
80 1 //-----|---------|--------------------------------------------|
81 1 // M1M0| 操作模式| 功能 |
82 1 //-----|---------|--------------------------------------------|
83 1 // 00 | 方式0 |13位计数器 |
84 1 //-----|---------|--------------------------------------------|
85 1 // 01 | 方式1 |16位计数器 |
86 1 //-----|---------|--------------------------------------------|
87 1 // 10 | 方式2 |可自动再装载的8位计数器 |
88 1 //-----|---------|--------------------------------------------|
89 1 // 11 | 方式3 |T0分为两个独立计数器,T1作为串口波特率发生器|
90 1 //-----|---------|--------------------------------------------|
91 1 TH0 = (65536-1000)/256;//计算公式=(65536-定时时间长度)/256等于初值高字节
92 1 //相对于12M晶体,1000*1uS=1mS
93 1 TL0 = (65536-1000)%256;//计算公式=(65536-定时时间长度)%256等于初值低字节
94 1 TR0 = 0; //缺省为0,停止计数
95 1 ET0 = 0; //ET0 = 0禁止T0溢出中断,ET0 = 1允许T0溢出中断
96 1 }
97 /******************************************************************************/
98 /* 初始化定时器1 */
99 /******************************************************************************/
100 void Init_T1(void)
101 {
102 1 TMOD |= 0x10;//缺省模式:定时器1工作在16位定时模式,不受外部信号控制
103 1 //|-----|-----|-----|-----|-----|-----|-----|-----|
104 1 //|GATE | C/T | M1 | M0 |GATE | C/T | M1 | M0 |
105 1 //|-----|-----|-----|-----|-----|-----|-----|-----|
106 1 //| T1 | T2 |
107 1 //GATE = 0定时器只受TR0或TR1控制,当且仅当TR0或TR1=1时运行,=0时停止
108 1 //C/T:C/T=0为定时方式,C/T=1为计数方式
109 1 //M1M0
110 1 //-----|---------|--------------------------------------------|
111 1 // M1M0| 操作模式| 功能 |
C51 COMPILER V8.08 INIT_SYSTERM 04/17/2008 09:50:30 PAGE 3
112 1 //-----|---------|--------------------------------------------|
113 1 // 00 | 方式0 |13位计数器 |
114 1 //-----|---------|--------------------------------------------|
115 1 // 01 | 方式1 |16位计数器 |
116 1 //-----|---------|--------------------------------------------|
117 1 // 10 | 方式2 |可自动再装载的8位计数器 |
118 1 //-----|---------|--------------------------------------------|
119 1 // 11 | 方式3 |T0分为两个独立计数器,T1作为串口波特率发生器|
120 1 //-----|---------|--------------------------------------------|
121 1 TH1 = (65536-1000)/256;//计算公式=(65536-定时时间长度)/256等于初值高字节
122 1 //相对于12M晶体,1000*1uS=1mS
123 1 TL1 = (65536-1000)%256;//计算公式=(65536-定时时间长度)%256等于初值低字节
124 1 TR1 = 0; //缺省为0,停止计数
125 1 ET1 = 0; //ET1 = 0禁止T1溢出中断,ET1 = 1允许T1溢出中断
126 1 }
127 /******************************************************************************/
128 /* 初始化定时器2 */
129 /******************************************************************************/
130 void Init_T2(void)
131 {
132 1 //缺省模式T2作为波特率发生器
133 1 T2CON = 0x34;//-----|-----|-----|-----|-----|-----|-----|------|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -