c語言上位機
⑴ 誰有上位機與下位機的串口通訊代碼(c語言的)
兄弟,下面是我自己寫的,希望給你幫助,把數據用send_one_uart()這個函數直接發送到串口就行了!最後求採納,哈哈!
//-----頭文件
#include<reg52.h>
//-----定義全局變數
unsigned
char
temp;
/***************************************************
**
函數名稱:
uart_init
**
功能描述:
串口初始化函數
**
輸
入:無
**
輸
出:
無
**
說
明:
無
****************************************************/
void
uart_init(void)
{
scon
=
0x50;
//-----scon:
模式
1,
8-bit
uart,
使能接收
tmod
|=
0x20;
//-----tmod:
timer
1,
mode
2,
8-bit
重裝
th1
=
0xfd;
//-----th1:
重裝值
9600
波特率
晶振
11.0592mhz
tr1
=
1;
//-----tr1:
timer
1
打開
es
=
1;
//-----打開串口中斷
ea
=
1;
//-----打開總中斷
}
/***************************************************
**
函數名稱:
sendbyte
**
功能描述:
發送位元組函數
**
輸
入:無
**
輸
出:
無
**
說
明:
無
****************************************************/
void
sendbyte(unsigned
char
dat)
{
sbuf
=
dat;
while(!ti);
ti
=
0;
}
/***************************************************
**
函數名稱:
sendstr
**
功能描述:
發送字元串函數
**
輸
入:無
**
輸
出:
無
**
說
明:
無
****************************************************/
void
sendstr(unsigned
char
*s)
{
while(*s!='\0')
{
sendbyte(*s);
s++;
}
}
/***************************************************
**
函數名稱:
main
**
功能描述:
主函數
**
輸
入:無
**
輸
出:
無
**
說
明:
無
****************************************************/
void
main
(void)
{
uart_init();
//-----串口初始化
while(1)
{
if(temp=='h'&&'i')
{
temp=0;
sendstr("hello");
}
}
}
/***************************************************
**
函數名稱:
uart_ser
**
功能描述:
串口中斷服務子函數
**
輸
入:無
**
輸
出:
無
**
說
明:
無
****************************************************/
void
uart_ser
(void)
interrupt
4
//-----串列中斷服務程序
{
if(ri)
//-----判斷是接收中斷產生
{
ri=0;
//-----標志位清零
temp=sbuf;
//-----讀入緩沖區的值
}
}
⑵ 如何用c語言開發自己的上位機軟體
一般開發上位機軟體都是帶圖形界面的。C也能做出圖形界面的軟體,但是開發周期太長也不實用。所以最好還是需要會一些其他語言,例如C++,C#,Java這些做圖形界面開發周期短的語言。既然會C,那麼學習其他語言也只是一個熟悉語法的過程。所以很快就能上手,因為語言都是相通的嘛。可以開闊自己的視野去學習一下新的語言。不是說只會C有什麼弊端,只是想說會的多才會知道語言之間的優劣。