看板 ASM 關於我們 聯絡資訊
#include <reg51.h> sbit SMOD = 0x87^7; main() { P2=0xff; TMOD=0x20; SMOD=0; /*將SMOD設定為0*/ TH1=0xfd; /*鮑率設定為9600bps */ TR1=1; /*啟動Timer 1*/ SCON=0x50; /*設定為mode 0*/ while(1) /* while迴圈開始*/ { SBUF=P2; /*將指撥開關狀態,放入SBUF*/ while (RI==0); /*檢查是否完成接收?*/ RI=0; /*RI=1時(接收完成),清除RI旗標*/ P0=SBUF; /*將所接收的資料輸出到Port 0*/ TI=0; /*清除TI旗標*/ } /* while迴圈結束*/ } /* 主程式結束 */ 功能是:燒到2個51並測試RX TX的輸入能操控這2個51的PORT 這個程式是我用Keil uVision4-C寫的,我是照書上打的程式碼,可是,編譯時就會不過 錯誤訊息是 rxtx.c(3): error C142: 'SFR': invalid base address rxtx.c(9): error C202: 'SMOD': undefined identifier -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.2.161
ruemann:sbit SMOD = 0x87^7; 這行有問題 01/20 20:42
huangwow10:不要意思大大剛學不久...請問該如何修改? 01/20 20:56
ruemann:SFR PCON = 0x87; 01/20 21:06
ruemann:sbit SMOD = PCON^7; 01/20 21:07
ruemann:等一下,PCON好像不支援BIT ACCRESS,所以你不能這樣用吧 01/20 21:09
ruemann:請用 PCON &= 0x7F;清除smod,用 PCON |= 0x80; 設定smod 01/20 21:10