本帖最后由 张栋佳佳 于 2015-10-23 22:25 编辑
我想用单片机通过串口发送一串二进制数(例如:0100101,不是8位也不是16位的数),我只会C语言,但是c语言好像不能发二进制的,求高手指点。
类似这种:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
void init_uart(void);
void delay(uint x);
unsigned char code SHUJU[]={0x82,0x03,0x0a,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x24,0x03,0x39,0x71};
void main()
{
init_uart();
while(1)
{
{
SBUF =SHUJU[a];
while(!TI);
TI=0;
}
c=356;
while(c--);
}
}
void init_uart()
{
TMOD=0X20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0X40;
PCON=0X80;
// ES=1; //打开接收中断
// EA=1; //打开总中断
//打开计数器
}
SBUF =SHUJU[a]; 这里要是能写成SBUF=0100101B就好了,当然我不是为了用二进制表示16进制,我想让串口输出单纯二进制,长串的二进制
其实我是想模拟一下这个波形(这个波形用16进制不能表示,也可能是我不会)
MSB=1是地址
|