uchar?idata?SystemBuf[10];??//用于接收
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括忠縣網(wǎng)站建設(shè)、忠縣網(wǎng)站制作、忠縣網(wǎng)頁(yè)制作以及忠縣網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,忠縣網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到忠縣省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
uchar?Rx=0;??????????????????????//接收數(shù)據(jù)條數(shù)
uchar?code?AT[]="YES,IT?IS";
void?UART_init?(void)
{
TMOD=0x20;//用定時(shí)器1?
PCON=0x00;??//波特率不加倍???
SCON=0x50;//串行方式1
TH1=0xFD;//9600
TL1=0xFD;//????
EA=1;//
ES=1;//
TR1=1;
}
void?sendchar(uchar?ch)??//串口送一個(gè)字節(jié)
{
SBUF=ch;
while(TI==0);
TI=0;
}
void?sendstring(uchar?*p)???//送字符串
{
while(*p)
{
sendchar(*p);
p++;
}
}
///////
void?receive(void)?interrupt?4?using?1???//中斷
{
if(RI)
{
if(Rx10)??????????????????????//這兒最多收10個(gè)字節(jié)
{
SystemBuf[Rx]=SBUF;
Rx++;
}
RI=0;
}
}
///
void?main()
{
uchar??i;
UART_init();
while(1)
{
if(SystemBuf=='S')
{
sendstring(AT);
for(i=0;i10;i++)??????????//接收清0
{
SystemBuf[i]=0;
}
Rx=0;
}
}
}
#includewindows.h
#includestdio.h
int?main()
{
HANDLE?hComm;
hComm?=?CreateFile(“COM1”,??????????//?for?COM1—COM9?only
GENERIC_READ?|?GENERIC_WRITE,?//Read/Write
0,???????????????//?No?Sharing
NULL,????????????//?No?Security
OPEN_EXISTING,???//?Open?existing?port?only
0,???????????????//?Non?Overlapped?I/O
NULL);
if?(hComm?==?INVALID_HANDLE_VALUE)
printf(“Error?in?opening?serial?port”);
else
printf(“opening?serial?port?successful”);
char?lpBuffer[]?=?0x01;
DWORD?dNoOFBytestoWrite;?????????//?No?of?bytes?to?write?into?the?port
DWORD?dNoOfBytesWritten?=?0;?????//?No?of?bytes?written?to?the?port
dNoOFBytestoWrite?=?sizeof(lpBuffer);
Status?=?WriteFile(hComm,????????//?Handle?to?the?Serial?port
lpBuffer,?????//?Data?to?be?written?to?the?port
dNoOFBytestoWrite,??//No?of?bytes?to?write
dNoOfBytesWritten,?//Bytes?written
NULL);
CloseHandle(hComm);//Closing?the?Serial?Port
return?0;
}
#include reg51.h
#include intrins.h
unsigned char key_s, key_v, tmp;
char code str[] = "welcome!??\n\r";
void send_str();
bit scan_key();
void proc_key();
void delayms(unsigned char ms);
void send_char(unsigned char txd);
sbit K1 = P1^4;
main()
{
TMOD = 0x20; // 定時(shí)器1工作于8位自動(dòng)重載模式, 用于產(chǎn)生波特率
TH1 = 0xFD; // 波特率9600
TL1 = 0xFD;
SCON = 0x50; // 設(shè)定串行口工作方式
PCON = 0xef; // 波特率不倍增
TR1 = 1; // 啟動(dòng)定時(shí)器1
IE = 0x0; // 禁止任何中斷
while(1)
{
if(scan_key()) // 掃描按鍵
{
delayms(10); // 延時(shí)去抖動(dòng)
if(scan_key()) // 再次掃描
{
key_v = key_s; // 保存鍵值
proc_key(); // 鍵處理
}
}
if(RI) // 是否有數(shù)據(jù)到來
{
RI = 0;
tmp = SBUF; // 暫存接收到的數(shù)據(jù)
P0 = tmp; // 數(shù)據(jù)傳送到P0口
send_char(tmp); // 回傳接收到的數(shù)據(jù)
}
}
}
bit scan_key()
// 掃描按鍵
{
key_s = 0x00;
key_s |= K1;
return(key_s ^ key_v);
}
void proc_key()
// 鍵處理
{
if((key_v 0x01) == 0)
{ // K1按下
send_str(); // 傳送字串"welcome!...
}
}
void send_char(unsigned char txd)
// 傳送一個(gè)字符
{
SBUF = txd;
while(!TI); // 等特?cái)?shù)據(jù)傳送
TI = 0; // 清除數(shù)據(jù)傳送標(biāo)志
}
void send_str()
// 傳送字串
{
unsigned char i = 0;
while(str[i] != '\0')
{
SBUF = str[i];
while(!TI); // 等特?cái)?shù)據(jù)傳送
TI = 0; // 清除數(shù)據(jù)傳送標(biāo)志
i++; // 下一個(gè)字符
}
}
void delayms(unsigned char ms)
// 延時(shí)子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i 120; i++);
}
}
拓展資料
C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。
盡管C語言提供了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱MCU)以及超級(jí)電腦等作業(yè)平臺(tái)。
二十世紀(jì)八十年代,為了避免各開發(fā)廠商用的C語言語法產(chǎn)生差異,由美國(guó)國(guó)家標(biāo)準(zhǔn)局為C語言制定了一套完整的美國(guó)國(guó)家標(biāo)準(zhǔn)語法,稱為ANSI C,作為C語言最初的標(biāo)準(zhǔn)。目前2011年12月8日,國(guó)際標(biāo)準(zhǔn)化組織(ISO)和國(guó)際電工委員會(huì)(IEC)發(fā)布的C11標(biāo)準(zhǔn)是C語言的第三個(gè)官方標(biāo)準(zhǔn),也是C語言的最新標(biāo)準(zhǔn),該標(biāo)準(zhǔn)更好的支持了漢字函數(shù)名和漢字標(biāo)識(shí)符,一定程度上實(shí)現(xiàn)了漢字編程。