📄 test0c.lst
字号:
C51 COMPILER V8.02 TEST0C 11/24/2006 12:47:38 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TEST0C
OBJECT MODULE PLACED IN test0c.OBJ
COMPILER INVOKED BY: C:\xpsystem\Keil\C51\BIN\C51.EXE test0c.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include <stdio.h>
3 #include <string.h>
4 #define INBUF_LEN 4
5 unsigned char inbuf1[INBUF_LEN];
6 unsigned char checksum,count3;
7 bit read_flag=0;
8 void init_serialcomm(void)
9 {
10 1 SCON =0x50;
11 1 TMOD = 0x20;
12 1 PCON = 0x80;
13 1 TH1 = 0xF4;
14 1 IE=0x90;
15 1 TR1 = 1;
16 1
17 1 }
18 void send_char_com(unsigned char ch)
19 {
20 1 SBUF=ch;
21 1 while (TI==0);
22 1 TI=0;
23 1 } //向川口发送一个字符串,strlen为该字符传长度
24 void send_string_com(unsigned char *str,unsigned int strlen)
25 {
26 1 unsigned int k=0;
27 1 do
28 1 {
29 2 send_char_com(*(str + k ));
30 2 k++;
31 2
32 2 }while (k < strlen);
33 1
34 1 }
35 void serial() interrupt 4 using 3 //串口接受中断函数
36 {if (RI)
37 1 {
38 2 unsigned char ch;
39 2 RI = 0;
40 2 ch =SBUF;
41 2 if (ch > 127)
42 2 {count3=0;
43 3 inbuf1[count3]=ch;
44 3 checksum= ch-128;
45 3
46 3 }
47 2 else
48 2 {count3 ++;
49 3 inbuf1[count3]=ch;
50 3 checksum ^=ch;
51 3 //if ((coun3 ==(INBUF_LEN-1))&&(checksum))
52 3 //{read_flag=1; //如果川口接收的数据达到inbuf_len
53 3 //且教研没错,就职位取数标志
54 3 //}
55 3 }
C51 COMPILER V8.02 TEST0C 11/24/2006 12:47:38 PAGE 2
56 2 }
57 1 }
58 main()
59 {init_serialcomm(); //初始化川口
60 1 while(1)
61 1 {if (read_flag) //如果取数标志已经置位 ,就将读到的数据从川口发出
62 2 {read_flag=0; //取数标志清0
63 3 send_string_com(inbuf1,INBUF_LEN);
64 3 }
65 2 }
66 1 }
67
68
69
70
71
72
73
74
75
76
77
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 152 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 6
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -