📄 text1.lst
字号:
C51 COMPILER V7.50 TEXT1 06/02/2006 17:20:55 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include<stdio.h>
3 #define RX_PAN_UP 0x40 //串口命令字 上
4 #define RX_PAN_DOWN 0x41 //串口命令字 下
5 #define RX_PAN_LEFT 0x42 //串口命令字 左
6 #define RX_PAN_RIGHT 0x43 //串口命令字 右
7 #define uchar unsigned char
8 #define uint unsigned int
9 xdata uchar RxByte[4]; //定义数据缓冲区
10 xdata uchar ReadIndex; //缓冲区读指针
11 xdata uchar WriteIndex; //缓冲区写指针
12 Uart_Init();
13 sbit P10=0x90; //P1.0位
14 sbit P11=0x91; //P1.1位
15 sbit P12=0x92; //P1.2位
16 sbit P13=0x93; //P1.3位
17 void Translate_RxByte(uchar RxByte);
18 //将命令字转化为控制信号
19 bit Change_Flag;
20 void Update_LED();
21 main()
22 { uchar CurrentByte;
23 1 Uart_Init();
24 1 P0=0XFF; //初始化输出为1
25 1 P1=0X00; //初始化输出为0
26 1 P2=0XFF;
27 1 P3=0XFF;
28 1 ReadIndex=0; //读指针置0
29 1 WriteIndex=0; //写指针置0
30 1 ES=1; /* 串行口中断允许 */
31 1 EA=1; /* 全局中断允许 */
32 1 for(;;)
33 1 {
34 2 if(WriteIndex!=ReadIndex)
35 2 CurrentByte=RxByte[ReadIndex];
36 2
37 2 if(ReadIndex==2)
38 2 {
39 3 Translate_RxByte(CurrentByte);
40 3 //将命令字转化为控制信号
41 3 }
42 2 ReadIndex++;
43 2 if(ReadIndex>3) ReadIndex=0;
44 2
45 2 }
46 1 }
47 void Translate_RxByte(uchar RxByte )
48
49 { switch(RxByte)
50 1 { case RX_PAN_UP: P12=1; //云台上转
51 2 break;
52 2 case RX_PAN_DOWN: P13=1;//云台下转
53 2 break;
54 2
55 2 case RX_PAN_LEFT: P10=1;//云台左转
C51 COMPILER V7.50 TEXT1 06/02/2006 17:20:55 PAGE 2
56 2 break;
57 2
58 2 case RX_PAN_RIGHT: P11=1;//云台右转
59 2 break;
60 2 default : P1=0x00; //云台停止转动
61 2 break;
62 2 }
63 1 }
64 Uart_Init()
65 {SCON = 0x52; /* 设置串行口控制寄存器SCON*/
66 1 TMOD = 0x21; /* 12M时钟时波特率为2400 */
67 1 TCON = 0x69; /* TCON */
68 1 TH1 = 0xf3; /* TH1 */
69 1 }
70 void Serial_int() interrupt 4 using 0
71 { //串行口中断
72 1 if(RI==1)
73 1 { RxByte[WriteIndex]=SBUF;
74 2 if(WriteIndex>3) WriteIndex=0;
75 2 WriteIndex++;
76 2
77 2 }
78 1
79 1 TI=0; //清串行口中断标准位
80 1 RI=0;
81 1 }
82
83
84
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 185 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 6 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
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 + -