下面這支程式的 baudrate 是 38400 使用 40MHz 的震盪器。主要功能就是你輸入什麼,就顯示什麼。依此下列程式再加上 SDCC 裏的 printf 就可以用來做 debug 輸出功能了,短小精幹好用。
PS: 由於沒有使用到 ES 中斷,所以可以很放心的在中斷函數中使用 printf 來輸出訊息。
#include <8052.h>
void putchar(char value)
{
while (!TI);
TI = 0;
SBUF = value;
}
char getchar(void)
{
while(!RI);
RI= 0;
return SBUF;
}
void uart_init(void)
{
RCAP2H = 0xff;
RCAP2L = 0xe1;
TH2 = RCAP2H;
TL2 = RCAP2L;
T2CON = 0x34;
SCON = 0x52;
}
void main(void)
{
uart_init();
while (1) {
putchar(getchar());
}
}
PS: 因為我不會用 8051 的模擬器,所以都用 printf 在做 debug,有人說這樣不方便,其實用久習慣就好了。不管黑貓白貓,可以抓到老鼠就是好貓。
嗨嗨
回覆刪除看到您的文章受益良多
不過,如果是這樣的寫法
在 Kerl 中有辦法一樣用 printf debug Uart2
嗎
例如: 除了新唐 W77E058 外的 IC MPC,C8051 等
IC 的第二個 Serial Port
謝謝您