📄 test1.lst
字号:
C51 COMPILER V7.07 TEST1 06/13/2004 22:46:19 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE TEST1
OBJECT MODULE PLACED IN test1.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE test1.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*------------------------------------------------------------------------------
2 rs232.C
3
4 Copyright 1995-1999 Keil Software, Inc.
5 ------------------------------------------------------------------------------*/
6
7 #include <AT89X51.h>
8 #include <stdio.h>
9
10 #define XTAL 11059200
11 #define baudrate 9600
12
13 #define OLEN 8
14
15 unsigned char ostart;
16 unsigned char oend;
17 char idata outbuf[OLEN];
18
19 #define ILEN 8
20
21 unsigned char istart;
22 unsigned char iend;
23 char idata inbuf[ILEN];
24 bit sendfull;
25 bit sendactive;
26
27 static void com_isr(void) interrupt 4 using 1
28 {
29 1 char c;
30 1 if(RI) {
31 2 c=SBUF;
32 2 RI=0;
33 2 if(istart+ILEN != iend) {
34 3 inbuf[iend++ & (ILEN-1)]=c;
35 3 }
36 2 }
37 1 if(TI!=0) {
38 2 TI=0;
39 2 if(ostart != oend) {
40 3 SBUF=outbuf[ostart++ & (OLEN-1)];
41 3 sendfull=0;
42 3 }
43 2 else {
44 3 sendactive=0;
45 3 }
46 2 }
47 1 }
48 void com_initialize(void) {
49 1 istart=0;
50 1 iend=0;
51 1 ostart=0;
52 1 oend=0;
53 1 sendactive=0;
54 1 sendfull=0;
55 1 PCON |= 0x80;
C51 COMPILER V7.07 TEST1 06/13/2004 22:46:19 PAGE 2
56 1 TMOD|=0x20;
57 1 TH1=(unsigned char) (256-(XTAL/(16L*12L*baudrate)));
58 1 TR1=1;
59 1 SCON=0x50;
60 1 ES=1;
61 1 }
62
63 void putbuf(char c) {
64 1 if(!sendfull) {
65 2 if(!sendactive) {
66 3 sendactive=1;
67 3 SBUF=c;
68 3 }
69 2 else {
70 3 ES=0;
71 3 outbuf[oend++ & (OLEN-1)]=c;
72 3 if((( oend ^ ostart) & (OLEN-1))==0) {
73 4 sendfull=1;
74 4 }
75 3 ES=1;
76 3 }
77 2 }
78 1 }
79 char putchar(char c)
80 {
81 1 if(c == '\n') {
82 2 while(sendfull);
83 2 putbuf(0x0D);
84 2 }
85 1 while(sendfull);
86 1 putbuf(c);
87 1 return(c);
88 1 }
89
90 char _getkey(void) {
91 1 char c;
92 1 while(iend==istart) {
93 2 ;
94 2 }
95 1 ES=0;
96 1 c=inbuf[istart++ & (ILEN-1)];
97 1 ES=1;
98 1 return(c);
99 1 }
100
101 void main (void) {
102 1 EA=1;
103 1
104 1 com_initialize();
105 1 while(1) {
106 2 char c;
107 2 c=getchar();
108 2 printf("\nYou typed the character %c.\n",c);
109 2 }
110 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 214 ----
CONSTANT SIZE = 30 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V7.07 TEST1 06/13/2004 22:46:19 PAGE 3
DATA SIZE = 4 1
IDATA SIZE = 16 ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -