📄 2.lst
字号:
C51 COMPILER V8.09 2 04/13/2009 14:05:08 PAGE 1
C51 COMPILER V8.09, COMPILATION OF MODULE 2
OBJECT MODULE PLACED IN 2.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE 2.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "STC12C5410AD.H"
2 #define uint unsigned int
3 #define uchar unsigned char
4 sfr AURX1=0xA2;
5
6 sbit N485=P3^2;
7 sbit N4852=P3^5;
8 sbit led1=P1^3;
9 sbit led2=P1^4;
10 uchar bdata DATA;
11 sbit BIT0=DATA^0;
12 sbit BIT7=DATA^7;
13
14 uchar idata RX[10],TX[28];
15 uchar Rx_Num;
16 uchar FASONG;
17
18 void IN1_init() //外中断1初始化
19 {
20 1 PX1=1; //中断最高级
21 1 EX1=1; //中断允许
22 1 IT1=1; //下降沿触发
23 1 }
24
25
26 void ser_int1 (void) interrupt 2 using 3
27 {
28 1 EX1=0;
29 1 AURX1=0x80;
30 1 FASONG=1;
31 1 }
32 void InitialUart()
33 {
34 1 SCON = 0x50;
35 1 TMOD |= 0x20;
36 1 TH1 = 0xFa;
37 1 TL1 = 0xFa;
38 1 TR1 = 1;
39 1 ES = 1;
40 1 }
41 //-----------------------------------------------------------------------------
42 //串口发送一个字节
43 //功能:发送一个字节数据
44 //入口参数:发送数据
45 //出口参数:无
46 //-----------------------------------------------------------------------------
47 void Send_Data(uchar Serial_data)
48 {
49 1 TI = 0;
50 1 SBUF = Serial_data;
51 1 while(!TI);
52 1 TI = 0;
53 1 }
54 //-----------------------------------------------------------------------------
55 //发送一帧数据函数
C51 COMPILER V8.09 2 04/13/2009 14:05:08 PAGE 2
56 //原型:void TXD_Int(uchar *TX);
57 //功能:发送一帧数据
58 //入口参数:发送数据帧地址指针,Send_Num:发送数据的个数
59 //出口参数:无
60 //-----------------------------------------------------------------------------
61 void TXD_Int(uchar *TX,uchar Send_Num)
62 {
63 1 uchar i;
64 1 for(i = 0; i < Send_Num; i ++) Send_Data(*(TX+i));
65 1 RI = 0;
66 1 }
67
68 //-----------------------------------------------------------------------------
69 //UART0_interrupt
70 //-----------------------------------------------------------------------------
71 void UART0_ISR (void) interrupt 4
72 {
73 1 if(RI == 1)
74 1 {
75 2 RI = 0;
76 2 RX[Rx_Num] = SBUF;
77 2 Rx_Num ++;
78 2 if((Rx_Num >= 5)&&(FASONG==1))
79 2 {
80 3 N4852=0;
81 3 Rx_Num = 0;
82 3 TXD_Int(RX,5);
83 3 N4852=1;
84 3 AURX1=0x00;
85 3 FASONG=0;
86 3 EX1=1;
87 3 }
88 2 }
89 1 }
90
91
92 void T0_init(void) //定时器0初始化
93 {
94 1 TR0=0;
95 1 TMOD = 0X01;
96 1 TL0 =0X66;
97 1 TH0 =0XFC;
98 1 TR0=1;
99 1 ET0 = 1; //置中断优先级为高
100 1 PT0 = 1; //允许定时器中断
101 1 }
102 void timer0 (void) interrupt 1 using 3
103 {
104 1 uchar i;
105 1 int j;
106 1 TR0=0;
107 1 TL0 =0X66;
108 1 TH0 =0XFC;
109 1 j++;
110 1 if ((j>=2000)&&(FASONG==1))
111 1 {
112 2 j=0;
113 2 AURX1=0x00;
114 2 EX1=0;
115 2 N485=0;
116 2 for (i=0;i<24;i++) TX[i]=i+16;
117 2 TXD_Int(TX,24);
C51 COMPILER V8.09 2 04/13/2009 14:05:08 PAGE 3
118 2 N485=1;
119 2 EX1=1;
120 2 }
121 1 TR0=1;
122 1 }
123 void main(void)
124 {
125 1 unsigned int ShowNum;
126 1 for(ShowNum = 0; ShowNum < 0xffff; ShowNum ++);
127 1 T0_init();
128 1 InitialUart();
129 1 IN1_init();
130 1 EA=1;
131 1 ES = 1;
132 1 N485=1;
133 1 Rx_Num = 0;
134 1 while (1)
135 1 {
136 2
137 2 }
138 1 }
139
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 327 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 5
IDATA SIZE = 38 ----
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 + -