📄 byteone.c
字号:
#include <reg54.h>
#include <series sub.h>
#include <intrins.h>
#include <delay subroutine.h>
#define uchar unsigned char
#define uint unsigned int
//sbit CTRLDIR = P3^3;
//sbit CTRL = P3^4;
sbit BDR=P1^5;
sbit BDT=P3^5;
sbit RST=P1^7;
/*
void delay(long delaytime)
{
while(--delaytime)
{
_nop_();
}
}
*/
void TrBit0(uchar bit0_vh,bit0_vl)
{
// int bdmcycle;
BDT=0;
while(--bit0_vh)
{
_nop_();
}
// for(bdmcycle=0;bdmcycle<bit0_vh;bdmcycle++)
// {
// _nop_();
// }
// Timer_Delay(bit0_vh,bit0_vl);
BDT=1;//sbi(PORTD,PD2);
while(--bit0_vl)
{
_nop_();
}
// for(bdmcycle=0;bdmcycle<bit0_vl;bdmcycle++)
// {
// _nop_();
// }
// Timer_Delay(0x3f,0x01);
}
void TrBit1(uchar bit0_vh,bit0_vl)
{
// int bdmcycle;
BDT=0;
while(--bit0_vh)
{
}
_nop_();
// for(bdmcycle=0;bdmcycle<bit0_vh;bdmcycle++)
// {
// _nop_();
// }
// Timer_Delay(bit0_vh,bit0_vl);
BDT=1;//sbi(PORTD,PD2);
while(--bit0_vl)
{
_nop_();
}
// for(bdmcycle=0;bdmcycle<bit0_vl;bdmcycle++)
// {
// _nop_();
// }
// Timer_Delay(0x3f,0x01);
}
void Trbyte(uint tdata,uchar byte_v1,byte_v0)
{
int p;
byte_v0=byte_v1*2;
for(p=0;p<8;p++)
{
if(tdata&0x80)
{
TrBit1(byte_v1,byte_v1);
}
else
{
TrBit0(byte_v0,byte_v1);
}
tdata<<=1;
}
}
uchar RecByte(uchar byte_r)
{
int q;
uchar bdmcycle;
uchar rdata=0;
for(q=0;q<8;q++)
{
bdmcycle=byte_r;
BDT=0;//cbi(PORTD,PD2);
while(--bdmcycle)
{
//_nop_();
}
BDT=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
if(BDR==1)
{
rdata|=(1<<0);
}
else
{
rdata&=~(1<<0);
}
if(q!=7)
{rdata<<=1;}
// BDR=1;
BDT=1;//sbi(PORTD,PD2);
bdmcycle=byte_r;
while(--bdmcycle)
{
//_nop_();
}
}
return(rdata);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -