久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2515|回復: 12
打印 上一主題 下一主題
收起左側

做了一個單片機語音控制模塊有一個難點始終沒有攻破求解

[復制鏈接]
跳轉到指定樓層
樓主
ID:467178 發表于 2022-9-8 19:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
近期搞了一個傳感器模塊A和一個音樂模塊B,A傳感器串口輸出AA 55 01 02 03的數據一共有10組,模塊B一共有30個觸發串口地址為 55 03 11 01 02 ,55 03 11 02 02,55 04 01 03 02類似格式的數據,比如單片機收到傳感器AA 55 01 02 03數據后,讓它TXd口輸出 55 03 11 01 02,然后再過1秒輸出 55 03 11 02 02到B模塊。意思就是收到X,發送Y延時1秒發送Z,怎么寫這部分代碼,我絞盡腦汁也沒弄好請求大神幫忙

單片機源程序如下:
//晶振為11.0592Mhz 波特率9600
#include "reg52.h"
#define uint unsigned int
sbit d=P1^5;
sbit a=P1^1;
uint x,y,z;
void delay(z); //聲明子函數
void UART_Init()
{
        SCON=0x50;
        PCON |=0X80;
        TMOD &=0x0f;
        TMOD |=0x20;
        TL1=0XFD;
        TH1=0XFD;
        TF1=0;
        TR1=1;
        ET1=0;
        EA=1;
        ES=1;

}
void main()
{
        UART_Init();        
        while(1)
        {


        }
}
void UART_SendByte(unsigned char Byte)
{
        SBUF=Byte;
        while(TI==0);
        TI=0;
  }
void UART_Routine() interrupt 4
{
        if(RI==1)
        {
                RI=0;
               
                UART_SendByte(SBUF);
        
        }
}

void delay(z)   
{
                for(x=z;x>0;x--)
                        for(y=114;y>0;y--);
                        
                        
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:123289 發表于 2022-9-9 08:53 | 只看該作者
1、開辟一個緩沖區域A,用于存入串入的數據。
2、串行通訊用中斷,中斷接收程序中只負責將接收到的數據存入A區,滿一幀數據做個標記S=1,不做判斷處理。
3、判斷識別在主程序的進行:
如果S=1(已收到一幀數據),就分析處理數據,然后清除S。
如果S=0(沒有數據),就跳過。
回復

使用道具 舉報

板凳
ID:161164 發表于 2022-9-9 11:53 | 只看該作者






Test.zip

1.1 KB, 下載次數: 11

回復

使用道具 舉報

地板
ID:467178 發表于 2022-9-12 14:18 | 只看該作者
感謝總工程師呀,也感謝1樓的工程師太牛逼你們
回復

使用道具 舉報

5#
ID:467178 發表于 2022-9-12 18:16 | 只看該作者

哥們請問我在編譯的時候為什么出現錯誤了?(89C52)

51hei截圖20220912181256.jpg (42.91 KB, 下載次數: 85)

51hei截圖20220912181256.jpg
回復

使用道具 舉報

6#
ID:467178 發表于 2022-9-12 18:33 | 只看該作者
yzwzfyz 發表于 2022-9-9 08:53
1、開辟一個緩沖區域A,用于存入串入的數據。
2、串行通訊用中斷,中斷接收程序中只負責將接收到的數據存 ...

感謝哥們,你的思路讓我有了方向
回復

使用道具 舉報

7#
ID:467178 發表于 2022-9-12 18:36 | 只看該作者

哥們我把你這個代碼原封不動的復制,編譯的時候出現了錯誤,是不是要聲明一下這個StartUp

51hei截圖20220912181256.jpg (42.91 KB, 下載次數: 82)

有一行錯誤的地方無法編譯

有一行錯誤的地方無法編譯
回復

使用道具 舉報

8#
ID:467178 發表于 2022-9-12 20:02 | 只看該作者

你好哥們:我把你的代碼復制進去后進行編譯,出現了一條錯誤麻煩你看看
指向這段代碼 UART_Send_Array(StatrUp,sizeof(StartUp));
錯誤c202:’StatrUp‘:undefined identifier
是不是’StatrUp需要聲明?
回復

使用道具 舉報

9#
ID:883242 發表于 2022-9-13 12:33 | 只看該作者
zhhdok 發表于 2022-9-12 20:02
你好哥們:我把你的代碼復制進去后進行編譯,出現了一條錯誤麻煩你看看
指向這段代碼 UART_Send_Array(S ...

他的這個StartUp是要發送的字符串,后面跟的sizeof(StartUp)是字符串長度。

我不知道你是怎么用的,但是樓主位你的代碼里面是一個字節一個字節的發送,所以你把這部分注釋掉就行了。
回復

使用道具 舉報

10#
ID:467178 發表于 2022-9-14 11:53 來自觸屏版 | 只看該作者
Hephaestus 發表于 2022-9-13 12:33
他的這個StartUp是要發送的字符串,后面跟的sizeof(StartUp)是字符串長度。

我不知道你是怎么用的,但 ...

你好,我是想和他模擬的那個一樣的,接收到指定的后,然后發送指定的5位 16進制數據,這個代碼編譯的時候就出錯在startup
我要怎么改?才能順利編譯
回復

使用道具 舉報

11#
ID:161164 發表于 2022-10-17 09:09 | 只看該作者
你沒有創建startup數組嗎?
回復

使用道具 舉報

12#
ID:467178 發表于 2023-4-9 14:05 | 只看該作者
lkc8210 發表于 2022-10-17 09:09
你沒有創建startup數組嗎?

弄好了過程很曲折
回復

使用道具 舉報

13#
ID:291668 發表于 2023-4-9 15:08 | 只看該作者
實現了功能就行。這個帖子很久了吧?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国内久久精品 | 成人午夜影院 | 亚洲精品一区二区在线观看 | 在线国产视频 | 欧产日产国产精品视频 | 久久久www成人免费无遮挡大片 | 国产精品一区二区三区久久久 | 久久黄网| 国产高清在线视频 | 国产成人久久精品一区二区三区 | av一区二区三区在线观看 | 久草在线 | 亚洲精品欧美一区二区三区 | 亚洲最新在线视频 | 亚洲免费精品 | 最新日韩精品 | 国产精品九九九 | 综合久久久 | 99热这里都是精品 | 国产精品视频一区二区三 | 正在播放国产精品 | 久久精品中文 | 欧美视频在线播放 | 国产精品免费视频一区 | 日日干日日操 | 国产精品网址 | 91精品国产综合久久久亚洲 | 可以看黄的视频 | 久久国产精品无码网站 | 日韩精品一区二区三区老鸭窝 | 精品一二三区在线观看 | 欧美日韩18 | 国产精品成人一区二区三区 | 欧美色专区| 国产日韩欧美中文 | 日韩一区二区三区精品 | 一级黄色影片在线观看 | 久久久久亚洲 | 国产精品久久久久久久久免费软件 | 久久久久久九九九九九九 | 一区二区三区免费观看 |