⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2.c

📁 中断方式实现软件串口通信,基于ht82k95a单片机。
💻 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 + -