📄 out.c
字号:
#include <reg52.h>
/*#pragma NOAREGS*/
#define send_a_byte(a_byte) TI=0;SBUF=a_byte;while(!TI);
void com_init(void)
{
SCON=0x50; /*串口工作在模式1*/
REN=1; /*允许接收*/
ES=0; /*禁止串行中断*/
TMOD=(TMOD & 0x0F)|0x20; /*定时器1工作在模式2*/
TR1=1;
PCON|=0x80;
TL1=0xF3;
TH1=0XF3;
}/*串口初始化函数,使用24M晶体(波特率9600)*/
unsigned char get_a_byte(unsigned char c)
{
unsigned char temp;
do
{
if(RI)
{
temp=SBUF;
RI=0;
return temp;
}
if(c!=0)
{
--c;
if(!c) return 0xff; //约定为无效命令
}
}
while(1);
}//从串口接收一字节数据,c=0时死等,c!=0时判断 c 次数就跳出*/
void com_prints(void *p,unsigned char en)
{
unsigned char *temp;
temp =p;
while(*temp !=0)
{
send_a_byte(*temp);
temp++;;
}
if(en)
{
send_a_byte(13);
send_a_byte(10);
}
}/*发送一个字符串,en为非0则换行*/
void com_send_number(unsigned char i )
{
unsigned char j;
unsigned char k;
j=i&0xf;
if(j>=0x0a)
{
j=0x37+j;
}
else
{
j+=0x30;
}
k=i>>4;
if(k>=0x0a)
{
k=0x37+k;
}
else
{
k+=0x30;
}
send_a_byte(k);
send_a_byte(j);
}/*发送一个数字*/
void com_send_arry(void *p,unsigned short length,unsigned char en)
{
unsigned char *temp;
temp =p;
while(length)
{
com_send_number(*temp);
send_a_byte(32); /*加入空格*/
temp++;
--length;
}
if(en)
{
send_a_byte(13);
send_a_byte(10);
}
}/*发送在任意空间连续的数据(*p为开始地址,length为发送的字节数,en为非0则换行)*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -