📄 myserialport.lst
字号:
C51 COMPILER V8.08 MYSERIALPORT 04/23/2008 10:50:27 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MYSERIALPORT
OBJECT MODULE PLACED IN MySerialPort.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE MySerialPort.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include <stdio.h>
3
4 typedef unsigned char BYTE; //宏定义
5 typedef unsigned short WORD;
6 typedef unsigned long DWORD;
7
8 #define MSB(word) (BYTE)(((WORD)(word) >> 8) & 0xff)
9 #define LSB(word) (BYTE)((WORD)(word) & 0xff)
10
11 sbit P3_2=P3^2; //计算机发送,单片机接收的标志
12 sbit P3_3=P3^3; //单片机发送,计算机接收的标志
13 sbit P3_4=P3^4; //HM628128最高位地址
14 sbit P3_6=P3^6; //HM628128写使能
15 sbit P3_7=P3^7; //HM628128读使能
16
17 bit AT89S52Send=0; //单片机发送,计算机接收的软件标志位
18
19 void main(void) //主程序
20 {
21 1 unsigned int count;
22 1 DWORD t;
23 1 int i,j;
24 1 count=0; //初始化变量
25 1 t=0;
26 1
27 1 SCON=0x50; //串口模式1,允许接收
28 1 TMOD|=0x20; //初始化T1为定时功能,模式2
29 1 PCON|=0x80; //设置SMOD=1
30 1 TL1=0xF4; //波特率4800bit/s,初值
31 1 TH1=0xF4;
32 1 IE|=0x90; //中断
33 1 TR1=1; //启动定时器
34 1 P3_6=1; //写使能
35 1 P3_7=1; //读使能
36 1 AT89S52Send=1; //软件标志
37 1
38 1 while(1) //主循环
39 1 {
40 2 while(P3_2==0) //计算机发送,单片机接收
41 2 {
42 3 if(RI) //如果单片机接收到数据
43 3 {
44 4 P0=LSB(count); //取低8位
45 4 P2=MSB(count); //取高8位
46 4 if(t<=0xFFFF)
47 4 {
48 5 P3_4=0; //最高位
49 5 }
50 4 else
51 4 {
52 5 P3_4=1;
53 5 }
54 4 count++; //计数递增
55 4 t++;
C51 COMPILER V8.08 MYSERIALPORT 04/23/2008 10:50:27 PAGE 2
56 4
57 4 P3_6=0; //HM628128写使能
58 4 RI=0; //RI清零
59 4 P1=SBUF; //将计算机发送的数据写入P1口
60 4 P3_6=1; //HM628128禁止写
61 4 }
62 3
63 3 AT89S52Send=1; //软件标志位
64 3 }
65 2
66 2 while(P3_3==0 & AT89S52Send==1) //单片机发送,计算机接收
67 2 {
68 3 for (j=0;j<=0xFF;j++) //读0000H~FFFFH
69 3 {
70 4 P3_4=0;
71 4 for(i=0;i<=0xFF;i++)
72 4 {
73 5 P0=i;
74 5 P2=j;
75 5 P3_7=0; //HM628128读使能
76 5 SBUF=P1; //将读到的数据写入SBUF,启动串行发送
77 5 while(TI==0); //等待发送完毕
78 5 TI=0; //TI清零
79 5 P3_7=1; //HM628128禁止读
80 5 }
81 4 P3_7=1;
82 4 }
83 3
84 3 for (j=0;j<=0xFF;j++) //读10000H~1FFFFH
85 3 {
86 4 P3_4=1;
87 4 for(i=0;i<=0xFF;i++)
88 4 {
89 5 P0=i;
90 5 P2=j;
91 5 P3_7=0; //HM628128读使能
92 5 SBUF=P1; //将读到的数据写入SBUF,启动串行发送
93 5 while(TI==0); //等待发送完毕
94 5 TI=0; //TI清零
95 5 P3_7=1; //HM628128禁止读
96 5 }
97 4 P3_7=1;
98 4 }
99 3 AT89S52Send=0; //读标志清零
100 3 }
101 2 }
102 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 265 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 8
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 + -