找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2297|回復: 4
收起左側(cè)

51單片機串口數(shù)據(jù),咋能判斷這單詞有幾個字母,每個字母是什么啊?

[復制鏈接]
ID:379175 發(fā)表于 2020-4-5 15:12 | 顯示全部樓層 |閱讀模式
大神大哥大姐美女請問用串口發(fā)過去一個英語單詞,咋能判斷這單詞有幾個字母,每個字母是什么啊。



#include "reg52.h"    //此文件中定義了單片機的一些特殊功能寄存器
sbit led=P2^0;   
typedef unsigned int u16;   //對數(shù)據(jù)類型進行聲明定義
typedef unsigned char u8;
/*******************************************************************************
* 函數(shù)名         :UsartInit()
* 函數(shù)功能     :設置串口
* 輸入           : 無
* 輸出           : 無
*******************************************************************************/
void UsartInit()
{
SCON=0X50;   //設置為工作方式1
TMOD=0X20;   //設置計數(shù)器工作方式2
PCON=0X80;   //波特率加倍
TH1=0XF3;    //計數(shù)器初始值設置,注意波特率是4800的
TL1=0XF3;
ES=1;      //打開接收中斷
EA=1;      //打開總中斷
TR1=1;     //打開計數(shù)器
}
/*******************************************************************************
* 函 數(shù) 名       : main
* 函數(shù)功能   : 主函數(shù)
* 輸    入       : 無
* 輸    出      : 無
*******************************************************************************/
void main()
{
UsartInit();  // 串口初始化

while(1);  
}
/*******************************************************************************
* 函數(shù)名         : Usart() interrupt 4
* 函數(shù)功能    : 串口通信中斷函數(shù)
* 輸入           : 無
* 輸出           : 無
*******************************************************************************/
void Usart() interrupt 4
{
u8 receiveData;
receiveData=SBUF;//出去接收到的數(shù)據(jù)
RI = 0;//清除接收中斷標志位
SBUF=receiveData;//將接收到的數(shù)據(jù)放入到發(fā)送寄存器
while(!TI);    //等待發(fā)送數(shù)據(jù)完成
TI=0;       //清除發(fā)送完成標志位
  if(receiveData=='A'||receiveData=='a')
        led=0;
     if(receiveData=='B'||receiveData=='b')
        led=1;
}
回復

使用道具 舉報

ID:213173 發(fā)表于 2020-4-5 16:54 | 顯示全部樓層
你這程序只能判斷單個字符,要改成接收字符串才能解析單詞。
回復

使用道具 舉報

ID:248046 發(fā)表于 2020-4-5 19:19 | 顯示全部樓層
定義一個接收buf,rx_buf[max],接收長度LEN,其中max = 255;在中斷函數(shù)void Usart() interrupt 4   ,LEN++;rx_buf[LEN] = SBUF;定時接收數(shù)據(jù),然后仿真就可以知道rx_buf接收到了什么字符串
回復

使用道具 舉報

ID:379175 發(fā)表于 2020-4-5 23:44 | 顯示全部樓層
wulin 發(fā)表于 2020-4-5 16:54
你這程序只能判斷單個字符,要改成接收字符串才能解析單詞。

謝謝解答
回復

使用道具 舉報

ID:379175 發(fā)表于 2020-4-5 23:44 | 顯示全部樓層
ktoto2011 發(fā)表于 2020-4-5 19:19
定義一個接收buf,rx_buf[max],接收長度LEN,其中max = 255;在中斷函數(shù)void Usart() interrupt 4   ,LEN++; ...

謝謝解答
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表