?? per.c
字號(hào):
#include <at89s52.h>
#include <stdio.h>
#include <intrins.h>
#include<per.h>
extern unsigned char MSA[3][4];
/*
void DelayTime(uchar T)
{
uchar i;
for(i=T;i>0;i--);
}*/
void WDT(void)
{
WDT_CONTR=0x3C;
}
void Project_Int(void)
{
TMOD=0X21;
// SCON=0Xf0;//串口工作在方式三,SM2=1,REN=1,處于接收狀態(tài)
PCON=0X80;
TL0=T0_L;
TH0=T0_H;
// TL1=T1_L;//
// TH1=T1_H;
IP=0x10;//Uart has the highest interrupt priority
TR0=1;
// TR1=1;
ET0=1;
// ES=1;
WDT();
EA=1;
}
void SendBit(bit b)
{
uchar i;
Dat_SP2=b;
for(i=9;i>0;i--);//20us
Clk_SP2=0;
for(i=18;i>0;i--);//40us
Clk_SP2=1;
for(i=9;i>0;i--);//20us
}
//================
//if send success,return 0;if inhibit by host,return 0xfe;if interrupt by host,return 0xff;
//================
/*
uchar SendByte(uchar dat)
{
uchar temp,i,sum;
bit s;
sum=0;
temp=dat;
if(Clk_SP2)
{
for(i=23;i>0;i--);//50us
if(Clk_SP2)
{
if(Dat_SP2)
{
for(i=9;i>0;i--);//20us
SendBit(0);//start bit
for(i=0;i<8;i++)
{
s=temp&0x01;
sum+=(uchar)s;
temp>>=1;
SendBit(s);//8 data bit
}
sum+=1;
s=sum&0x01;
SendBit(s);//parity bit
SendBit(1);//stop bit
for(i=14;i>0;i--);//30us
return 0;//send success
}
else
return 0xff;//send lose
}
else
return 0xff;//send lose
}
else
return 0xff;//send lose
}*/
uchar SendByte(uchar dat)
{
uchar temp,i,sum;
bit s;
sum=0;
temp=dat;
Clk_SP2 = 1;
Dat_SP2 = 1;
if(Clk_SP2)
{
for(i=23;i>0;i--);//50us
if(Clk_SP2)
{
if(Dat_SP2)
{
for(i=9;i>0;i--);//20us
SendBit(0);//start bit
if(!Clk_SP2)
return 0xfe;
for(i=0;i<8;i++)
{
s=temp&0x01;
sum+=(uchar)s;
temp>>=1;
SendBit(s);//8 data bit
if(!Clk_SP2)
return 0xfe;
}
sum+=1;
s=sum&0x01;
SendBit(s);//parity bit
if(!Clk_SP2)
return 0xfe;
SendBit(1);//stop bit
for(i=14;i>0;i--);//30us
return 0;//send success
}
else
return 0xff;//send lose
}
else
return 0xff;//send lose
}
else
return 0xff;//send lose
}
/*
uchar SendCode(uchar *px)
{
uchar sendnumtemp;
uchar *p1;
p1=px;
while((*p1)!=0)
{
if(!SendByte(*p1))
{
p1++;
sendnumtemp++;
}
else
return sendnumtemp;
}
return sendnumtemp;
}
void SendMakeCode(uchar num,uchar *p)
{
uchar i;
bit b;
for(i=num;i>0;i--)
{
b=SendByte(*p);
if(b)
p++;
else
i++;
}
}
void SendbreakCode(uchar num,uchar *p)
{
uchar i;
bit b;
do
b=SendByte(0xf0);
while(!b);
for(i=num;i>0;i--)
{
b=SendByte(*p);
if(b)
p++;
else
i++;
}
}
*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -