📄 text1.c
字号:
#include <reg51.h>
#include<stdio.h>
#define RX_PAN_UP 0x40 //串口命令字 上
#define RX_PAN_DOWN 0x41 //串口命令字 下
#define RX_PAN_LEFT 0x42 //串口命令字 左
#define RX_PAN_RIGHT 0x43 //串口命令字 右
#define uchar unsigned char
#define uint unsigned int
xdata uchar RxByte; //通过串口接收到的命令
Uart_Init();
sbit P10=0x90; //P1.0位
sbit P11=0x91; //P1.1位
sbit P12=0x92; //P1.2位
sbit P13=0x93; //P1.3位
void Translate_RxByte(uchar RxByte);
//将命令字转化为控制信号
void Delay() ; //延时子程序
bit Change_Flag;
void Update_LED();
main()
{ Uart_Init();
P0=0XFF; //初始化输出为1
P1=0X00; //初始化输出为0
P2=0XFF;
P3=0XFF;
Delay(); //延时
ES=1; /* 串行口中断允许 */
EA=1; /* 全局中断允许 */
while(1)
{ ;
}
}
void Serial_int() interrupt 4 using 0
{ //串行口中断
if(RI==1)
{ RxByte=SBUF;
Translate_RxByte(RxByte);
//将命令字转化为控制信号
}
TI=0; //清串行口中断标准位
RI=0;
}
void Translate_RxByte(uchar RxByte )
{ switch(RxByte)
{ case RX_PAN_UP: P12=1; //云台上转
break;
case RX_PAN_DOWN: P13=1;//云台下转
break;
case RX_PAN_LEFT: P10=1;//云台左转
break;
case RX_PAN_RIGHT: P11=1;//云台右转
break;
default : P1=0x00; //云台停止转动
break;
}
}
Uart_Init()
{SCON = 0x52; /* 设置串行口控制寄存器SCON*/
TMOD = 0x21; /* 12M时钟时波特率为2400 */
TCON = 0x69; /* TCON */
TH1 = 0xf3; /* TH1 */
}
void Delay()
{
uint i;
for(i=0;i<200;i++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -