📄 debug.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 + -