📄 rs232.lst
字号:
C51 COMPILER V6.23a RS232 04/06/2005 10:34:54 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE RS232
OBJECT MODULE PLACED IN Rs232.OBJ
COMPILER INVOKED BY: C:\TOOLS\Keil\C51\BIN\C51.EXE Rs232.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*实验名称:RS232通信实验
2 功能:接收电脑送过来的数据,并且显示16进制数,并将数据回传到电脑
3 作者:http://www.mcuprog.com
4 05-02-01
5 */
6 #include <reg51.h>
7 //LCD的口线
8 sbit E=P3^5;
9 sbit RW=P3^6;
10 sbit RS=P3^7;
11 //8字LED的连接方法
12 //P0.7 P.06 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
13 // H G F E D C B A
14
15 unsigned char recdata; //RS232收到的值
16 unsigned char code ledcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
17 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //数码管段码表
18
19 void Delay_ms(unsigned int t); //延时 t秒钟 :fosc=12MHz
20 void rs232(void);
21
22 void main(void)
23 {
24 1 E=0; //取消LCD对LED的影响
25 1 RW=0;
26 1 RS=1;
27 1
28 1 TMOD=0x20;
29 1 TH1=0xfd;
30 1 TL1=0xfd;
31 1 SCON=0x50;
32 1 TR1=1;
33 1 REN=1;
34 1 IE=0x90;
35 1 while(1)
36 1 {
37 2 P2=0xff; //关显示
38 2 P0=ledcode[(recdata>>4)&0x0f];
39 2 P2=0xfe;
40 2 Delay_ms(1);
41 2
42 2 P2=0xff;
43 2 P0=ledcode[recdata&0x0f];
44 2 P2=0xfd;
45 2 Delay_ms(1);
46 2 }
47 1 }
48
49 //以下为串口中断程序
50 void rs232(void) interrupt 4
51 {
52 1 if(RI==1)
53 1 {
54 2 RI=0;
55 2 recdata=SBUF;
C51 COMPILER V6.23a RS232 04/06/2005 10:34:54 PAGE 2
56 2 SBUF=recdata;
57 2 }
58 1 else
59 1 {
60 2 TI=0;
61 2 }
62 1 }
63
64 void Delay_ms(unsigned int t) //Delay t ms for 12MHz crystal
65 {unsigned char i;
66 1 while(t--)
67 1 {for(i=0;i<125;i++);
68 2 }
69 1 }
70
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 120 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
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 + -