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