📄 2.c
字号:
#include <reg52.h>
sbit rx=P1^1;
sbit tx=P1^0;
sbit led=P3^0;
unsigned char DELAY_TX,DELAY_RX,i,val;
bit begin;
void timer0_inter()interrupt 1
{
begin=1;
}
void init()
{
rx=1;tx=1;
DELAY_TX=0x04;
// EA=1;
// ET0=1;
// begin=0;
// TMOD=0x02;
// TH0=TL0=0xff;
// TR0=1;
}
void wait(unsigned char time) {
unsigned char i;
for(i=0;i<time;i++);
}
void v_putchar(unsigned char date){
unsigned char i;
for(i=0;i<9;i++){
if(i) {
if(date & 0x01)
tx=1;
else
tx=0;
wait(DELAY_TX);
date=date>>1;
}
else {
tx=0;
}
wait(DELAY_TX);
}
tx=1;
wait(DELAY_TX);
}
unsigned char v_getchar(){
unsigned char i;
unsigned date;
while(rx);
led=0;
wait((DELAY_RX)/2);
//begin=0;
for(i=0;i<8;i++) {
wait(DELAY_RX);
date=date>>1;
if(rx)
date|=0x80;
else
date&=0x7f;
}
while(!rx);
wait(DELAY_RX);
//return date;
//}
if(date!=0x55) date=0x00;
else date=DELAY_RX;
//for(i=0;i<10;i++)wait(DELAY_TX);
return date;
}
void v_puts(char *str) {
while(*str!=0x00)v_putchar(*str++);
}
void main()
{
init();
while(rx);
led=0;
/* for(DELAY_TX=0;DELAY_TX<0xff;DELAY_TX++) {
v_putchar(0x55);
wait(0xff);
v_putchar(DELAY_TX);
wait(0xff);
}
/* while(1)
{
v_putchar(0xff);
wait(0xff);
wait(0xff);
wait(0xff);
}*/
// led=0;
while(1)
{
// v_putchar(0x55);
// wait(0xff);
for(DELAY_RX=0;DELAY_RX<0xff;DELAY_RX++)
{
// wait(0xff);
v_putchar(0x55);
v_putchar(v_getchar());
wait(0xff);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -