📄 uait0_1.lst
字号:
C51 COMPILER V6.20c UAIT0_1 06/21/2007 21:37:53 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE UAIT0_1
OBJECT MODULE PLACED IN uait0_1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE uait0_1.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 #include"my.h"
3 //使用w77e58 片内1k SRAM, 要定义为xdata ,
4 //为确保使用的是片内1k RAM, 最好和 _at_ 0x0000;联合使用
5 /**************************************************
6 串口0队列 pc
7 **************************************************/
8 unsigned char xdata xBuf_0[131] _at_ 0x90;
9 unsigned char data Seri0_SendNum;
10 unsigned char data Seri0_ReciNum;
11 /**************************************************
12 //串口1队列
13 **************************************************/
14 unsigned char xdata xBuf_1[0x20] _at_ 0x120;
15 unsigned char xdata pagedata[128]_at_ 0x140;
16 unsigned char xdata *pagedataPoint;
17 unsigned char data Seri1_SendNum;
18 unsigned char data Seri1_ReciNum;
19 /**************************************************
20 //串口2队列
21 **************************************************/
22 unsigned char xdata xBuf_2[384] _at_ 0x1C0;
23
24 bit fSeri0_Send_Ok;
25 bit fSeri1_Send_Ok;
26 bit fSeri0_Reci_Ok;
27 bit fSeri1_Reci_Ok;
28 bit fSeri2_Send_Ok;
29 bit fSeri2_Reci_Ok;
30
31 void uart01_init(void){
32 1 //system init ,其中串口0用定时器2,串口1用定时器1
33 1 //串口1的设置
34 1 IE=0x90; //允许总中断和串口0的中断
35 1 TMOD=0x20; //定时器1工作在模式1
36 1 TL1=0xfd; //baud rate=9600
37 1 TH1=0xfd;
38 1 SCON1=0x58; //工作在模式1,允许接收
39 1 PCON=0x00; // SM0=0 SM1=1 在10位异步收发模式 SMOD=0 溢出速率/32
40 1 ES1=1; //串口1中断允许
41 1 //
42 1 SCON=0x58; //工作在模式1,接收允许
43 1 T2CON=0x30; //用定时器2做串口0的波特率发生器
44 1 RCAP2H=0xff;
45 1 RCAP2L=0xdc; // 11.0592M晶振下,baud rate=9600
46 1 TR2=1;
47 1 TR1=1;
48 1 }
49
50 void Int_serial0() interrupt 4 using 1{
51 1 // ES=0; /*关串行口中断
52 1 if(TI){//允许中断处理
53 2 TI = 0; //*清发送中断标志
54 2 if(fSeri0_Send_Ok){
55 3 if(Seri0_SendNum<130){
C51 COMPILER V6.20c UAIT0_1 06/21/2007 21:37:53 PAGE 2
56 4 SBUF=xBuf_0[Seri0_SendNum];
57 4 Seri0_SendNum++;
58 4 if (Seri0_SendNum==130)
59 4 fSeri0_Send_Ok=0;//容许程序处理
60 4
61 4 }
62 3 }
63 2 }
64 1 if(RI){//允许中断处理
65 2 RI = 0;
66 2 if(fSeri0_Reci_Ok){
67 3 if(Seri0_ReciNum<130){
68 4 xBuf_0[Seri0_ReciNum]=SBUF;
69 4 Seri0_ReciNum++;
70 4 }
71 3 if(Seri0_ReciNum==130)
72 3 fSeri0_Reci_Ok=0;//容许程序处理
73 3 }
74 2 }
75 1 // ES=1; //*开中断/
76 1 }
77
78
79 /**************************************************
80 串口1中断 Reader
81 **************************************************/
82 unsigned char t=2;
83 void Int_serial1() interrupt 7 using 1{
84 1 // ES1=0; /*关串行口中断*/
85 1 if(TI_1){//允许中断处理
86 2 TI_1 = 0; //清发送中断标志*
87 2 // if(Seri1_SendNum==23){
88 2 if(Seri1_SendNum==7){
89 3 fSeri1_Send_Ok=0; //容许程序处
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -