📄 ext_c.lst
字号:
C51 COMPILER V7.20 EXT_C 07/15/2004 13:22:22 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE EXT_C
OBJECT MODULE PLACED IN EXT_C.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE EXT_C.C BROWSE DEBUG OBJECTEXTEND CODE LISTINCLUDE SYMBOLS
line level source
1 //---------------------------------------------------
2 #include <reg52.h>
1 =1 /*--------------------------------------------------------------------------
2 =1 REG52.H
3 =1
4 =1 Header file for generic 80C52 and 80C32 microcontroller.
5 =1 Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
6 =1 All rights reserved.
7 =1 --------------------------------------------------------------------------*/
8 =1
9 =1 #ifndef __REG52_H__
10 =1 #define __REG52_H__
11 =1
12 =1 /* BYTE Registers */
13 =1 sfr P0 = 0x80;
14 =1 sfr P1 = 0x90;
15 =1 sfr P2 = 0xA0;
16 =1 sfr P3 = 0xB0;
17 =1 sfr PSW = 0xD0;
18 =1 sfr ACC = 0xE0;
19 =1 sfr B = 0xF0;
20 =1 sfr SP = 0x81;
21 =1 sfr DPL = 0x82;
22 =1 sfr DPH = 0x83;
23 =1 sfr PCON = 0x87;
24 =1 sfr TCON = 0x88;
25 =1 sfr TMOD = 0x89;
26 =1 sfr TL0 = 0x8A;
27 =1 sfr TL1 = 0x8B;
28 =1 sfr TH0 = 0x8C;
29 =1 sfr TH1 = 0x8D;
30 =1 sfr IE = 0xA8;
31 =1 sfr IP = 0xB8;
32 =1 sfr SCON = 0x98;
33 =1 sfr SBUF = 0x99;
34 =1
35 =1 /* 8052 Extensions */
36 =1 sfr T2CON = 0xC8;
37 =1 sfr RCAP2L = 0xCA;
38 =1 sfr RCAP2H = 0xCB;
39 =1 sfr TL2 = 0xCC;
40 =1 sfr TH2 = 0xCD;
41 =1
42 =1
43 =1 /* BIT Registers */
44 =1 /* PSW */
45 =1 sbit CY = PSW^7;
46 =1 sbit AC = PSW^6;
47 =1 sbit F0 = PSW^5;
48 =1 sbit RS1 = PSW^4;
49 =1 sbit RS0 = PSW^3;
50 =1 sbit OV = PSW^2;
51 =1 sbit P = PSW^0; //8052 only
52 =1
53 =1 /* TCON */
C51 COMPILER V7.20 EXT_C 07/15/2004 13:22:22 PAGE 2
54 =1 sbit TF1 = TCON^7;
55 =1 sbit TR1 = TCON^6;
56 =1 sbit TF0 = TCON^5;
57 =1 sbit TR0 = TCON^4;
58 =1 sbit IE1 = TCON^3;
59 =1 sbit IT1 = TCON^2;
60 =1 sbit IE0 = TCON^1;
61 =1 sbit IT0 = TCON^0;
62 =1
63 =1 /* IE */
64 =1 sbit EA = IE^7;
65 =1 sbit ET2 = IE^5; //8052 only
66 =1 sbit ES = IE^4;
67 =1 sbit ET1 = IE^3;
68 =1 sbit EX1 = IE^2;
69 =1 sbit ET0 = IE^1;
70 =1 sbit EX0 = IE^0;
71 =1
72 =1 /* IP */
73 =1 sbit PT2 = IP^5;
74 =1 sbit PS = IP^4;
75 =1 sbit PT1 = IP^3;
76 =1 sbit PX1 = IP^2;
77 =1 sbit PT0 = IP^1;
78 =1 sbit PX0 = IP^0;
79 =1
80 =1 /* P3 */
81 =1 sbit RD = P3^7;
82 =1 sbit WR = P3^6;
83 =1 sbit T1 = P3^5;
84 =1 sbit T0 = P3^4;
85 =1 sbit INT1 = P3^3;
86 =1 sbit INT0 = P3^2;
87 =1 sbit TXD = P3^1;
88 =1 sbit RXD = P3^0;
89 =1
90 =1 /* SCON */
91 =1 sbit SM0 = SCON^7;
92 =1 sbit SM1 = SCON^6;
93 =1 sbit SM2 = SCON^5;
94 =1 sbit REN = SCON^4;
95 =1 sbit TB8 = SCON^3;
96 =1 sbit RB8 = SCON^2;
97 =1 sbit TI = SCON^1;
98 =1 sbit RI = SCON^0;
99 =1
100 =1 /* P1 */
101 =1 sbit T2EX = P1^1; // 8052 only
102 =1 sbit T2 = P1^0; // 8052 only
103 =1
104 =1 /* T2CON */
105 =1 sbit TF2 = T2CON^7;
106 =1 sbit EXF2 = T2CON^6;
107 =1 sbit RCLK = T2CON^5;
108 =1 sbit TCLK = T2CON^4;
109 =1 sbit EXEN2 = T2CON^3;
110 =1 sbit TR2 = T2CON^2;
111 =1 sbit C_T2 = T2CON^1;
112 =1 sbit CP_RL2 = T2CON^0;
113 =1
114 =1 #endif
3 //---------------------------------------------------
C51 COMPILER V7.20 EXT_C 07/15/2004 13:22:22 PAGE 3
4 //重定义I/0引脚名称
5 sbit led1=P1^0;
6 sbit led2=P1^1;
7 sbit led3=P1^2;
8 sbit led4=P1^3;
9
10 sbit P13=P1^3;
11 //---------------------------------------------------
12 //全局变量及位标志定义
13 bit FINT0;
14 bit FINT1;
15 bit FT0;
16 bit FT1;
17 bit FT2;
18
19 unsigned char T0_10ms;
20 unsigned char T0_50ms;
21 unsigned char T0_100ms;
22 //---------------------------------------------------
23 //固定函数声明
24 void int_0(); //外部中断0
25 void int_1(); //外部中断1
26 void timer_0(); //定时器中断1
27 void timer_1(); //定时器中断2
28 void serial_1(); //串行中断1
29 void serial_2(); //串行中断2
30 //---------------------------------------------------
31 //用户函数声明
32 void initial(); //初始化
33
34
35 //---------------------------------------------------
36 void main(){
37 1 initial();
38 1
39 1 while(1){
40 2
41 2 P13=0; //为了使按'取消'、'确定'键能够产生INT0及INT1中断
42 2 //led4=0; //上一句等价于此句
43 2
44 2 if(FINT0){ //中断0来到要做什么事情
45 3 FINT0=0;
46 3 led1=0; //INT0中断时点亮
47 3 led2=0;
48 3 led3=0;
49 3 led3=0; //可以在此设一个断点
50 3 }
51 2 if(FINT1){ //中断1来到要做什么事情
52 3 FINT1=0;
53 3 led1=1; //INT1中断时熄灭
54 3 led2=1;
55 3 led3=1;
56 3 }
57 2 if(FT0){
58 3 FT0=0;
59 3 if(++T0_10ms>30){
60 4 T0_10ms=0;
61 4 //定时多少做什么事,未初始化里定时器尚未设置
62 4 }
63 3 }
64 2 }
65 1 }
C51 COMPILER V7.20 EXT_C 07/15/2004 13:22:22 PAGE 4
66 //-------------------------------------------------------------------
67 void initial(){
68 1 EA=1; // CPU所有中断开(IE最高位MSB)
69 1
70 1 EX0=1; // INT0中断开
71 1 IT0=0; // INT0低电平触发(为1则为下降沿触发)
72 1
73 1 EX1=1; // INT1中断开
74 1 IT1=0; // INT1低电平触发(为1则为下降沿触发)
75 1
76 1 return;
77 1 }
78 //-------------------------------------------------------------------
79 //INT0中断 由P3.2引脚产生
80 void int_0() interrupt 0 using 0
81 {
82 1 FINT0=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -