serial.lst
来自「含有大量的单片机代码」· LST 代码 · 共 86 行
LST
86 行
C51 COMPILER V7.06 SERIAL 12/01/2006 19:38:54 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN Serial.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Serial.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*单片机与MAX232之间的通信程序*/
2
3 #include "reg51.h"
4 #include <absacc.h>
5 #define uchar unsigned char
6 #define uint unsigned int
7 #define COM81551 XBYTE[0xfd00]
8 #define PA81551 XBYTE[0xfd01]
9 #define PB81551 XBYTE[0xfd02]
10 #define PC81551 XBYTE[0xfd03]
11
12 #define COM81552 XBYTE[0xfe00]
13 #define PA81552 XBYTE[0xfe01]
14 #define PB81552 XBYTE[0xfe02]
15 #define PC81552 XBYTE[0xfe03]
16 volatile uchar asting;//全局变量声明,以后就用这个全局变量进行命令字的接受和传送
17 void interupt(void) interrupt 4 using 0
18 {
19 1 if(RI)
20 1 {
21 2 RI=0;
22 2 asting=SBUF;
23 2 }
24 1 if(TI)
25 1 {
26 2 TI=0;
27 2 //这里也可以添加发送后的简单操作,不可以存在死循环
28 2 }
29 1 }
30 void McuTx(void)
31 {
32 1 SBUF=asting;
33 1 while(TI==0);//发生中断
34 1 //下面的内容就是发送后的处理程序
35 1 }
36 void McuRx(void)
37 {
38 1 while(RI==0);//发生中断
39 1 //下面的内容就是接收后的处理程序
40 1 }
41 void _44B0_MCU(void)
42 {
43 1 TMOD =0x20;
44 1 //TL1=0xf3;TH1=0xf3;
45 1 //TL1=0xCC;TH1=0xCC;
46 1 TL1=0xd0;TH1=0xd0;
47 1 SCON =0xd8;
48 1 PCON=0x00; //串口接受字符RI复位,允许串口接收
49 1 IE=0x90;
50 1 TR1=1;
51 1 COM81551=0x0f;//写8155的命令字
52 1 PB81551=0;
53 1 McuRx();//跟44B0的发送程序联系起来
54 1 McuTx();//跟44B0的接受程序联系起来
55 1 PB81551=asting;//送8155的指示灯显示
C51 COMPILER V7.06 SERIAL 12/01/2006 19:38:54 PAGE 2
56 1 }
57 void main()
58 {
59 1 _44B0_MCU();
60 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 69 ----
CONSTANT SIZE = ---- ----
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 + =
减小字号Ctrl + -
显示快捷键?