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

📄 debug.c

📁 采用台湾MRT晶捷公司的MRT4方案的液晶电视的程序
💻 C
字号:
#include <reg51.h>
#include "MASCOT.h"
#include "osd.h"
#include "global.h"
 

#if RS232DBG 

bit                 fgRS232=0;
bit                 fgRcv232=0;
unsigned char idata Rcv232idx=0;
unsigned char idata Rcv232buf[3];

void Init_232(void)
{

#if 1
  ET1=0;                  //disable Timer1 interrupt
  PCON=PCON|0x80;
  SCON=0x40;              //mode 1, 10bit
#if (CPUCLOCK == 12)
  TH1=TL1=243;            //BoudRate = 4800
#else
  TH1=TL1=250;            //BoudRate = 9600
#endif
  TMOD=(TMOD&0x0f)|0x20;  //Timer1 = Auto Reload mode
  TR1=1;
#endif

  REN=1;

  wr_232_str("\x0a\x0d");
  wr_232_str("RS232 Initial TEST\x0a\x0d");
  wr_232_hex(0x11,0);
  wr_232_1w(0x4142);
  wr_232_hex4(0x4455,0);
  wr_232_dec(6677);
  wr_232_str("\x0a\x0d");
  fgRS232=1;
}

void wr_232_1b(unsigned char dat)
{
  unsigned char tmp;
  
  tmp=IE;
  EA=0;
  TI=0;
  SBUF=dat;
  while(TI==0);
  TI=0;
  IE=tmp;
}

void wr_232_1w(unsigned int dat)
{
  unsigned char tmp;
  
  tmp=IE;
  EA=0;
  TI=0;
  SBUF=bHiByte(dat);
  while(TI==0);
  TI=0;
  SBUF=bLoByte(dat);
  while(TI==0);
  TI=0;
  IE=tmp;
}

void wr_232_str(unsigned char *str)
{
  while(*str!='\0'){
    wr_232_1b(*str);
    str++;
  }
}

void wr_232_hex(unsigned char dt,bit h)
{
   unsigned char dat;
  
  dat=dt;
  if((dat&0xf0)>=0xa0){   //convert high nibble
     dat>>=4;
     dat+=55;
  }
  else{
    dat>>=4;
    dat+=0x30;
  }
  wr_232_1b(dat);

  dat=dt&0x0f;
  if(dat>=0x0a){   //convert low nibble
     dat+=55;
  }
  else{
    dat+=0x30;
  }
  wr_232_1b(dat);
  if(h) wr_232_1b('h');
}

void wr_232_hex4(unsigned int dt, bit h)
{
   unsigned char dat;
   unsigned char i;
  
  for(i=4; i>0; i--){
    dat=(unsigned char)(dt>>((i-1)*4));
    dat=dat&0x0f;
    if(dat>=0x0a){   //convert low nibble
      dat+=55;
    }
    else{
      dat+=0x30;
    }
    wr_232_1b(dat);
  }
  
  if(h) wr_232_1b('h');
}

void wr_232_dec(unsigned int dt)
{
   unsigned char dat;
   unsigned int  i;
   unsigned char fz;
  
  fz=0;
  for(i=10000; i>0; i/=10){
    dat=(unsigned char)(dt/i);
    if(fz==0){
      if(dat!=0) fz=1;
    }
    
    if(fz){
      dt=dt-dat*i;  
      if(dat>=0x0a){   
        dat+=55;
      }
      else{
        dat+=0x30;
      }
      wr_232_1b(dat);
    }
  }
  
  if(fz==0) wr_232_1b('0');
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -