📄 serial.c
字号:
#include "config.h"
unsigned char Buf[NBYTE-3];
void InitSerial(void)
{
SCON=0x50;
PCON=0x80;
TMOD=TMOD&0x0f;
TMOD=TMOD|0x20;
TH1=0xf3; //com is 4800 b/s
TL1=0xf3;
TR1=1;
ES=1;
}
void main(void)
{
InitSerial();
TMOD=(TMOD & 0XF0) | 0X01;
TL0=0x0;
TH0=0x0;
TR0=1;
ET0=1;
TF0=0;
OSStart();
}
void comm(void) interrupt 4
{
OS_INT_ENTER();
if(RI==1)
{
RI=0;
OSIntSendSignal(RECIVE_TASK_ID);
}
if(TI==1)
{
TI=0;
OSIntSendSignal(1);
}
OSIntExit();
}
void Recuve(void)
{
unsigned char temp,temp1,Sum,i;
OSWait(K_SIG,0);
temp=SBUF;
while(1)
{
while(1)
{
OSWait(K_SIG,0);
temp1=SBUF;
if((temp==STARTBYTE1)&&(temp1==STARTBYTE2)) break;
temp=temp1;
}
Sum=STARTBYTE1+STARTBYTE2;
OSWait(K_SIG,0);
temp=SBUF;
for(i=0;i<NBYTE-3;i++)
{
OSWait(K_SIG,0);
temp1=SBUF;
if((temp==STARTBYTE1)&&(temp1==STARTBYTE2))
{
OSWait(K_SIG,0);
temp=SBUF;
i=-1;
Sum=STARTBYTE1+STARTBYTE2;
continue;
}
Buf[i]=temp;
Sum+=temp;
temp=temp1;
}
Sum+=temp1;
if(Sum==0) OSSendSignal(1);
}
}
void TaskB(void)
{
while(1)
{
OSWait(K_SIG,0);
SBUF='O';
OSWait(K_SIG,0);
SBUF='K';
OSWait(K_SIG,0);
SBUF='!';
OSWait(K_SIG,0);
}
}
void TaskC(void)
{
while(1)
{
PCON=PCON|0x01;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -