STC向单片机发送数据小程序(C语言)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include"stc12c5a60s2.h"

#define uchar unsigned char;

void initiate(void);

void check_zero(void);

void time0_on(void);

void send_char(void);

uchar shu,t,n=1,i=0;

uchar code value[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,

0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};

//**************************************************************

void main()

{

initiate();

for(;;)

check_zero();

}

//****************************************************************

void initiate(void)

{

TMOD=0X21; //定时器T1溢出提供波特率,定时器T0定时。

TL1=0XFD; //fosc=11.0592mHz,波特率9600bps对应初值

TH1=0XFD;

PCON=0X00; //波特率不加倍。

SCON=0X50; //串口工作方式一,允许接受。

ET1=0;

EA=1;

TR1=1;

}

//*****************************************************************

void check_zero(void)

{

if(RI==1)

{

if(SBUF==0)

{

RI=0;

SCON=0X40;

time0_on();

}

else

{RI=0;}

}

else {;}

}

//*******************************************************************

void time0_on(void)

{

TL0=0XAF; //定时50ms对应初值

TH0=0X3C;

TR0=1;

ET0=1;

}

//***********************************************************************

void time0(void) interrupt 1 using 3

{

TL0=0XAF; //定时50ms对应初值

TH0=0X3C;

n++;

if(n==20)

{

n=1;

send_char();

}

}

//**********************************************************************

void send_char(void)

{

SBUF=value[i];

ff:if(TI==1) {TI=0;}

else goto ff;

i++;

if(i==16) {i=0;}

}

相关文档
最新文档