标题:
十六进制怎么用单片机串口发送出去?
[打印本页]
作者:
鬼推磨
时间:
2023-6-12 19:28
标题:
十六进制怎么用单片机串口发送出去?
0X03,0XFD,0X10,0XE8,0X00,0X00,0X0C,0X80,0X6B
上面
十六进制怎么串口发送出去,
下面是我的程序。编译也没有错误,按钮按了也没有见发送出去。
#include <STC15W204S.h>
#include <intrins.h>
#define uchar unsigned char //定义一下方便后面使用
#define uint unsigned int //定义一下方便后面使用
#define ulong unsigned long //定义一下方便后面使用
#define COMM_BAUD_RATE 9600 //串口波特率
#define FOSC 11059200L //晶振设置,默认使用11.0592M Hz,
sbit KEY1 = P3^3; //触发
void UartInit(void) {
//8位数据,可变波特率
SCON = 0x50;
//串口1选择定时器2为波特率发生器
AUXR |= 0x01;
//定时器2时钟为Fosc,即1T
AUXR |= 0x04;
//内部RC时钟设置为11.0592的定时器2初值设置
//设定定时初值
T2L = 0xE0;
//设定定时初值
T2H = 0xFE;
//启动定时器2
AUXR |= 0x10;
//允许UART串口中断
ES = 1 ;
//允许总中断
EA = 1 ;
}
void send(uchar dat)
{
SBUF=dat; //发送指令到SBUF
while(!TI); //等待发送结束
TI=0; //清除结束标志,以便再发送数据
}
void main()
{
UartInit();//串口寄存器的初始化设置
while(1)
{
if(KEY1==0) //判断是否按下键盘
{
send(0X03);
send(0XFD);
send(0X14);
send(0XFF);
send(0X00);
send(0X00);
send(0X00);
send(0X0F);
send(0X6B);
}
while(KEY1==0);//按键锁定,每按一次count只加1.
}
}
}
作者:
wys91203
时间:
2023-6-12 22:24
初始化程序中你开了中断,ES=1,EA=1,则TI=1时就会进入中断,而你没有中断程序,你是用的查询方式发码,所以要把ES=1关了,ES=0. 也就是不用中断。
作者:
wulin
时间:
2023-6-13 07:14
#include <STC15W204S.h>
#include <intrins.h>
#define uchar unsigned char //定义一下方便后面使用
#define uint unsigned int //定义一下方便后面使用
#define ulong unsigned long //定义一下方便后面使用
#define COMM_BAUD_RATE 9600 //串口波特率
#define FOSC 11059200L //晶振设置,默认使用11.0592M Hz,
sbit KEY1 = P3^3; //触发
uchar code Table[]={0X03,0Xfd,0X14,0Xff,0X00,0X00,0X00,0X0f,0X6b};
void Delay10ms() //@11.0592MHz
{
unsigned char i, j;
i = 18;
j = 235;
do
{
while (--j);
} while (--i);
}
void UartInit(void)
{
SCON = 0x50;//8位数据,可变波特率
AUXR |= 0x01;//串口1选择定时器2为波特率发生器
AUXR |= 0x04;//定时器2时钟为Fosc,即1T
//内部RC时钟设置为11.0592的定时器2初值设置
T2L = 0xE0;//设定定时初值
T2H = 0xFE;//设定定时初值
AUXR |= 0x10;//启动定时器2
ES = 1 ;//允许UART串口中断
EA = 1 ;//允许总中断
}
void send(uchar dat)
{
SBUF=dat; //发送指令到SBUF
while(!TI); //等待发送结束
TI=0; //清除结束标志,以便再发送数据
}
void main()
{
uchar i;
UartInit();//串口寄存器的初始化设置
while(1)
{
if(KEY1==0) //判断是否按下键盘
{
Delay10ms();
if(KEY1==0)
{
for(i=0;i<9;i++)
send(Table[i]);
/* send(0X03);
send(0XFD);
send(0X14);
send(0XFF);
send(0X00);
send(0X00);
send(0X00);
send(0X0F);
send(0X6B);
*/
}
while(!KEY1);//按键锁定,每按一次count只加1.
}
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1