?? print.c
字號:
/****************************************************************
* print Lite for 51 (#fal)
* printf51簡化版(編譯后代碼體積小)
void print_init(void); //串口初始化
void print_Str(const char*p); //串口輸出字符串
void print_Char(unsigned char c); //串口輸出單個字符
void print_Dec(unsigned char n,unsigned char flag); //n:需要轉換的數 flag:是否加回車
void print_Hex(unsigned char n,unsigned char flag); //串口輸出16進數
* 占用串行口中斷
* http://www.newmsg.com/bbs
****************************************************************/
#include "print.h"
#ifdef PRINT_USE
char *pUART; //字符串指針
unsigned char uRxUART;
void UART_INT(void) interrupt 4
{
if (RI)
{ //無線串口代碼
uRxUART = SBUF;
SBUF = uRxUART;
uRxUART = '\0';
pUART=&uRxUART;
RI = 0;
}
else //TI
{
TI=0; //發送中斷標志位(SCON)
if (*pUART != '\0')
{
SBUF = *pUART;
pUART++;
}
else pUART=0; //不會啟動下一次發送
}
}
void print_Str(const char*p)
{
pUART=p;
TI=1;
while (pUART!=0); //遇到 '\0',輸出完畢
}
#ifdef PRINT_CHAR
void print_Char(unsigned char c)
{
SBUF = c;
c = '\0';
pUART=&c;
while (pUART!=0);
}
#endif
#define DEC_MAX 6
#ifdef PRINT_DEC
void print_Dec(unsigned char n,unsigned char flag) //n:需要轉換的數 flag:回車標志符
{
unsigned char c[DEC_MAX+1];
unsigned char i;
c[DEC_MAX] = '\0';
i=DEC_MAX-1;
do
{
c[i]=n%10+48;
i--;
n=n/10;
}while (n!=0);
print_Str(c+i+1);
print_Str(" ");
if (flag!=0) print_Str("\n\r");
}
#endif
#ifdef PRINT_HEX
void print_Hex(unsigned char n,unsigned char flag)
{
unsigned char c[DEC_MAX+1];
unsigned char i;
c[DEC_MAX] = '\0';
i=DEC_MAX-1;
do
{
c[i]= (n&0x0f) >9? (n&0x0f)+87 : (n&0x0f)+48;
i--;
n=n>>4;
}while(n!=0);
if (i==DEC_MAX-2)
{
c[i]='0';
i--;
}
c[i]='x';
c[i-1]='0';
print_Str(c+i-1);
print_Str(" ");
if (flag!=0) print_Str("\n\r");
}
#endif
//<--串口初始化-->
void print_init(void)
{
SCON = 0x40; //串行口控制寄存器SCON 工作方式1: 10位UART 以定時器T1作為波特率發生器
TMOD = 0x21; //定時/計數控制器 T1:自動重裝 T0:16位定時器
TH1 = 0xfd; //波特率9600
TL1 = 0xfd;
ET1 = 0; //T1 中斷禁用
ES = 1; //串行中斷允許
EA = 1; //所有中斷允許
PS = 1; //串口中斷高優先
REN = 1;
TR1 = 1; //T1啟動
}
#endif //PRINT_USE
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -