labview你應該懂吧?圖形設計,你只要會串列埠的設定就行,然後微控制器呢你只要會串列埠的設定就行,單單51裡面的串列埠沒給你貼一個簡單程式,如下
uchar LED_Buffer= 0; //從串列埠接收的資料
void Com_Init(void)
{
TMOD = 0x20;
TH1 = 0xFd; ///////設定波特率 9600
TR1 = 1;///////啟動定時器1
SCON = 0x50;
ES = 1; ////////開串列埠中斷
EA = 1; /////////開總中斷
}
這個就是51串列埠的初始化函式
呼叫如下(51的)
void Main()
Com_Init();//////呼叫到上面的COM初始化函式
while(1)
P1.0 =LED_Buffer;//不停地將LED_Buffer的值賦值給P1.0口,當電腦傳送1時,
// LED_Buffer就是1,然後P1.0就是高電位,點亮LED;發0,反之
下面是串列埠接收的中斷函式,也就是電腦傳送資訊到微控制器時,微控制器會進入這個函式
void Com_Int(void) interrupt 4
if(RI == 1) //當硬體接收到一個數據時,RI會置位
LED_Buffer = SBUF - 48; //這裡減去48是因為從電腦中傳送過來的資料是ASCII碼。
RI = 0;
labview你應該懂吧?圖形設計,你只要會串列埠的設定就行,然後微控制器呢你只要會串列埠的設定就行,單單51裡面的串列埠沒給你貼一個簡單程式,如下
uchar LED_Buffer= 0; //從串列埠接收的資料
void Com_Init(void)
{
TMOD = 0x20;
TH1 = 0xFd; ///////設定波特率 9600
TR1 = 1;///////啟動定時器1
SCON = 0x50;
ES = 1; ////////開串列埠中斷
EA = 1; /////////開總中斷
}
這個就是51串列埠的初始化函式
呼叫如下(51的)
void Main()
{
Com_Init();//////呼叫到上面的COM初始化函式
while(1)
{
P1.0 =LED_Buffer;//不停地將LED_Buffer的值賦值給P1.0口,當電腦傳送1時,
// LED_Buffer就是1,然後P1.0就是高電位,點亮LED;發0,反之
}
}
下面是串列埠接收的中斷函式,也就是電腦傳送資訊到微控制器時,微控制器會進入這個函式
void Com_Int(void) interrupt 4
{
if(RI == 1) //當硬體接收到一個數據時,RI會置位
{
LED_Buffer = SBUF - 48; //這裡減去48是因為從電腦中傳送過來的資料是ASCII碼。
RI = 0;
}
}