找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2260|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:379175 發(fā)表于 2020-4-5 15:12 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
大神大哥大姐美女請(qǐng)問用串口發(fā)過去一個(gè)英語(yǔ)單詞,咋能判斷這單詞有幾個(gè)字母,每個(gè)字母是什么啊。



#include "reg52.h"    //此文件中定義了單片機(jī)的一些特殊功能寄存器
sbit led=P2^0;   
typedef unsigned int u16;   //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;
/*******************************************************************************
* 函數(shù)名         :UsartInit()
* 函數(shù)功能     :設(shè)置串口
* 輸入           : 無
* 輸出           : 無
*******************************************************************************/
void UsartInit()
{
SCON=0X50;   //設(shè)置為工作方式1
TMOD=0X20;   //設(shè)置計(jì)數(shù)器工作方式2
PCON=0X80;   //波特率加倍
TH1=0XF3;    //計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的
TL1=0XF3;
ES=1;      //打開接收中斷
EA=1;      //打開總中斷
TR1=1;     //打開計(jì)數(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;//清除接收中斷標(biāo)志位
SBUF=receiveData;//將接收到的數(shù)據(jù)放入到發(fā)送寄存器
while(!TI);    //等待發(fā)送數(shù)據(jù)完成
TI=0;       //清除發(fā)送完成標(biāo)志位
  if(receiveData=='A'||receiveData=='a')
        led=0;
     if(receiveData=='B'||receiveData=='b')
        led=1;
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:213173 發(fā)表于 2020-4-5 16:54 | 只看該作者
你這程序只能判斷單個(gè)字符,要改成接收字符串才能解析單詞。
回復(fù)

使用道具 舉報(bào)

板凳
ID:248046 發(fā)表于 2020-4-5 19:19 | 只看該作者
定義一個(gè)接收buf,rx_buf[max],接收長(zhǎng)度LEN,其中max = 255;在中斷函數(shù)void Usart() interrupt 4   ,LEN++;rx_buf[LEN] = SBUF;定時(shí)接收數(shù)據(jù),然后仿真就可以知道rx_buf接收到了什么字符串
回復(fù)

使用道具 舉報(bào)

地板
ID:379175 發(fā)表于 2020-4-5 23:44 | 只看該作者
wulin 發(fā)表于 2020-4-5 16:54
你這程序只能判斷單個(gè)字符,要改成接收字符串才能解析單詞。

謝謝解答
回復(fù)

使用道具 舉報(bào)

5#
ID:379175 發(fā)表于 2020-4-5 23:44 | 只看該作者
ktoto2011 發(fā)表于 2020-4-5 19:19
定義一個(gè)接收buf,rx_buf[max],接收長(zhǎng)度LEN,其中max = 255;在中斷函數(shù)void Usart() interrupt 4   ,LEN++; ...

謝謝解答
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表