📄 sf.lst
字号:
C51 COMPILER V7.50 SF 09/10/2007 15:17:33 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE SF
OBJECT MODULE PLACED IN sf.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE sf.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "STC12C2052AD.H"
2
3 /****************************************************************************/
4 sbit RESET = P1^0;
5
6 unsigned char UartStauts =0; //串口接收状态
7 unsigned char DataWord; //接收到数据字节
8 unsigned char b_validFrame; //桢标志
9
10 unsigned int Count =0;
11 /****************************************************************************/
12
13
14 /******************************************************************************
15
16 ******************************************************************************/
17
18
19 /************单片机初始化************************/
20 void mcu_int(void)
21 {
22 1 TMOD=0x21; //timer1 mode2 timer0 mode1
23 1
24 1 TL1=0xfc; TH1=0xfc; //9600bps
25 1 //BAUD
26 1 PCON=0; //SMOD=0
27 1 SCON=0x50; //seria0 mode 1
28 1
29 1 IP=0X10; //give the highest interrupt priority
30 1 //16f5--50ms(14.31818)
31 1 TL0=0x16; //timer is 50ms
32 1 TH0=0xf5;
33 1
34 1
35 1 ET0=1; //Enable time0
36 1 ES=1; //Enable serial
37 1
38 1 EA=1;
39 1 TI = 0;
40 1
41 1 TR0=1;
42 1 TR1=1;
43 1
44 1 }
45 /*******************UART 中断处理程序*****************************/
46 void serial0_process(void) interrupt 4 using 1
47 {
48 1 if(RI)
49 1 {
50 2 EA=0;RI=0;
51 2
52 2 switch(UartStauts)
53 2 {
54 3 case 0 :
55 3 if(SBUF != 0xeb)UartStauts=0x00;
C51 COMPILER V7.50 SF 09/10/2007 15:17:33 PAGE 2
56 3 else UartStauts=0x01;
57 3 break;
58 3
59 3 case 1 :
60 3 DataWord=SBUF;
61 3 UartStauts=0x02;
62 3 break;
63 3
64 3 case 2 :
65 3 if(SBUF == 0xfb)
66 3 b_validFrame = 1;
67 3 else b_validFrame = 0;
68 3 UartStauts=0x00;
69 3 break;
70 3
71 3 }
72 2
73 2 EA=1;
74 2 }
75 1 }
76
77 /****************************************************************************/
78 void timer0(void) interrupt 1 using 1
79 {
80 1
81 1 TL0=0x16; //timer is 50ms
82 1 TH0=0xf5;
83 1 ET0=0; //turn off the time0`s interrupt
84 1
85 1 Count ++;
86 1 if(Count >= 3500 )
87 1 {
88 2 Count = 0 ;
89 2
90 2 }
91 1
92 1
93 1 ET0=1; //turn on the time1`s interrupt
94 1 }
95
96
97
98 /****************************************************************************/
99 void main()
100 {
101 1 RESET = 0;
102 1 mcu_int();
103 1 while(1)
104 1 {
105 2 if(b_validFrame == 1)
106 2 {
107 3 b_validFrame = 0;
108 3 if(DataWord == 0x01)
109 3 {
110 4 Count = 0;
111 4 }
112 3 }
113 2 if(Count == 3200)
114 2 {
115 3 RESET = 1;
116 3 }
117 2 if(Count == 3450)
C51 COMPILER V7.50 SF 09/10/2007 15:17:33 PAGE 3
118 2 {
119 3 RESET = 0 ;
120 3 }
121 2 }
122 1
123 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 195 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
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 + -