日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機(jī)入門 >> C51語言編程:單片機(jī)與 PC 串口通信程序

C51語言編程:單片機(jī)與 PC 串口通信程序

關(guān)鍵字:C51 單片機(jī) 串口通信 作者:admin 來源:不詳 發(fā)布時(shí)間:2018-05-18  瀏覽:8

單片機(jī)接收PC機(jī)發(fā)來的指令信號,然后單片機(jī)又向PC機(jī)發(fā)送字符串。具體要求如下:

當(dāng)接收指令信號為:'go',單片機(jī)向PC機(jī)發(fā)送字符串:WELCOME TO CHINA!;

當(dāng)接收指令信號為:'who',單片機(jī)向PC機(jī)發(fā)送字符串:MY NAME IS LIMING;

當(dāng)接收指令信號為:'home',單片機(jī)向PC機(jī)發(fā)送字符串:YINGYONGKEXUEXUEYUAN。

PC機(jī)上的串口調(diào)試軟件,會(huì)在窗口顯示出單片機(jī)送回來相應(yīng)字符串;

如果接送的字符串不正確,單片機(jī)不響應(yīng)。

采用C語言。

題目鏈接:http://zhidao.baidu.com/question/282477940.html

//---------------------------------------------------------

做而論道回答如下:

看看下面的。

//---------------------------------------------------------

#include

#include

#define uchar unsigned char

#define uint unsigned int

//---------------------------------------------------

uchar idata trdata1[] = {

'W','E','L','C','O','M','E',' ','T','O',' ','C','H','I','N','A','!',0x0d,0x0a,0x00};

uchar idata trdata2[] = {

'M','Y',' ','N','A','M','E',' ','I','S',' ','L','I','M','I','N','G',0x0d,0x0a,0x00};

uchar idata trdata3[] = {

'Y','I','N','G','Y','O','N','G','K','E','X','U','E','X','U','E','Y','U','A','N',0x0d,0x0a,0x00};

uchar RxBuf[5], Rx_p, Rx_i, TX_p, Tx_i;

//---------------------------------------------------

void UART_Init(void) //串口初始化

{

PCON = 0x00;

SCON = 0x50; //串口工作方式為1,允許接收.

TMOD = 0x20; // T1 定時(shí)方式2

TH1 = 0xfd; //波特率 9600bps @ fosc = 11.0592MHz

TL1 = 0xfd;

TR1 = 1; //啟動(dòng)T1

ES = 1; //開串口中斷.

EA = 1; //開總中斷.

}

//---------------------------------------------------

void main()

{

UART_Init();

Rx_p = 0;

Rx_p = 2;

while(1) {

if (Rx_p != 0) {

TX_p = Rx_p;//字符串1 2 3

Tx_i = 0; //字符指針.

Rx_p = 0; //清零.

Rx_i = 0;

TI = 1; //啟動(dòng)發(fā)送中斷.

} }

}

//---------------------------------------------------

void Uart_INT(void) interrupt 4 //串口中斷函數(shù)

{

uchar Tcv = 0;

if(RI) { //接收?.

RI = 0; //標(biāo)志位清零.

RxBuf[Rx_i] = SBUF;

if((RxBuf[Rx_i - 1] == 'g') && (RxBuf[Rx_i] == 'o')) Rx_p = 1;

if((RxBuf[Rx_i - 2] == 'w') && (RxBuf[Rx_i - 1] == 'h') && (RxBuf[Rx_i] == 'o')) Rx_p = 2;

if((RxBuf[Rx_i - 3] == 'h') && (RxBuf[Rx_i - 2] == 'o') && (RxBuf[Rx_i - 1] == 'm') && (RxBuf[Rx_i] == 'e')) Rx_p = 3;

P1 = Rx_p; //在P1顯示收到的信息.

Rx_i++;

Rx_i %= 5;

}

else {

TI = 0;

if (TX_p == 1) Tcv = trdata1[Tx_i]; //取來待發(fā)字符.

if (TX_p == 2) Tcv = trdata2[Tx_i];

if (TX_p == 3) Tcv = trdata3[Tx_i];

if (Tcv != 0) {SBUF = Tcv; Tx_i++;} //不是0就發(fā)送.

}

 

}

編輯:admin  最后修改時(shí)間:2018-05-18

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

讷河市| 马关县| 得荣县| 巢湖市| 伊春市| 鄂托克旗| 临江市| 上虞市| 平陆县| 富蕴县| 嘉禾县| 锡林郭勒盟| 海宁市| 通渭县| 辉南县| 奉节县| 晋州市| 铅山县| 纳雍县| 宜川县| 清徐县| 惠州市| 肥乡县| 曲沃县| 孙吴县| 扶余县| 翁牛特旗| 三门县| 永州市| 南城县| 莒南县| 绥宁县| 江都市| 河津市| 蓝田县| 华坪县| 正阳县| 克山县| 昭平县| 林口县| 万州区|