📄 serial.lst
字号:
C51 COMPILER V7.07 SERIAL 06/01/2004 12:59:40 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN serial.OBJ
COMPILER INVOKED BY: c:\Keil7\C51\BIN\C51.EXE serial.c OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*
2 extern char getbyte(void);//从接收缓冲区取一个byte,如不想等待则在调用前检测inbufsign是否为1。
3 extern putbyte(char c);//放入一个字节到发送缓冲区
4 extern putstring(uchar *puts);//发送一个字符串到串口
5 extern puthex(uchar c);//发送一个字节的hex码,分成两个字节发。
6 extern bit inbufsign;
7 #define CR putstring("\r\n")//发送一个回车换行
8 extern void serial_init (void);
9 extern putint(uint n);
10 */
11
12 //*************************************************************************
13 #include <reg52.h>
14 #define uchar unsigned char
15 #define uint unsigned int
16
17 //#define ILEN 16 //32 //设置串口中断接收缓冲区大小
18 //idata uchar inbuf[ILEN];
19 //data uchar idata *inlast=inbuf; //最后由中断进入接收缓冲区的字节位置
20 //data uchar idata *getlast=inbuf; //最后取走的字节位置
21 //bit inbufsign; //接收缓冲区非空标志 有=1
22 //bit inbufful; //输入缓冲区满标志 满=1
23 #define CR putstring("\r\n") //CR=回车换行
24
25 //*****************************
26 //放入一个字节到发送缓冲区
27 putbyte(unsigned char c)
28 {
29 1 SBUF=c;
30 1 while(!TI);TI=0;
31 1 }
32
33 //***************************************
34 //发送一个定义在程序存储区的字符串到串口
35 putstring(uchar *puts)
36 {
37 1 for(;*puts!=0;puts++) //遇到停止符0结束
38 1 putbyte(*puts);
39 1 }
40 //*************************************
41 //发送一个字节的hex码,分成两个字节发。
42 uchar code hex_[]={"0123456789ABCDEF"};
43 puthex(unsigned char c)
44 {
45 1 int ch;
46 1 ch=(c>>4)&0x0f;
47 1 putbyte(hex_[ch]);
48 1 ch=c&0x0f;
49 1 putbyte(hex_[ch]);
50 1 }
51 //*************************************
52 //从接收缓冲区取一个byte,如不想等待则在调用前检测inbufsign是否为1。
53 uchar getbyte (void)
54 {
55 1 while(!RI);
C51 COMPILER V7.07 SERIAL 06/01/2004 12:59:40 PAGE 2
56 1 RI=0;
57 1 return (SBUF); //取回数据
58 1 }
59
60 //*****************************
61 //串口初始化 0xfd=19200,0xfa=9600,0xf4=4800,0xe8=2400,0xd0=1200 110592
62 void serial_init (void)
63 {
64 1 //用t1作波特率
65 1
66 1 SCON = 0x50; // mode 1: 8-bit UART, enable receiver
67 1 TMOD |= 0x21; // timer 1 mode 2: 8-Bit reload th0 1X16
68 1 PCON |= 0x80;
69 1 TH1 = 0xfd;//fd, //baud*2 /* reload value 19200 baud
70 1 TR1 = 1; // timer 1 run
71 1
72 1 //用t2作波特率
73 1 /*
74 1 T2CON=0x30;
75 1 RCAP2H=0xFF;
76 1 RCAP2L=0xb8;//70=4800,b8=9600,dc=19200,ee=38400,f4=57600,fa=115200
77 1 TR2=1;ET2=1;
78 1 SCON=0x50;//SCON=0xd0;
79 1 */
80 1
81 1 //ES = 1;
82 1 REN=1;
83 1 //EA=1;
84 1 SM2=1; //SM2=1时收到的第9位为1才置位RI标志
85 1
86 1 }
87
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 82 ----
CONSTANT SIZE = 17 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -