欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3033|回復: 7
收起左側

如何讓單片機控制播報模塊隨機播報聲音或顯示屏顯示隨機圖片

[復制鏈接]
ID:547210 發表于 2019-11-16 20:40 | 顯示全部樓層 |閱讀模式
100黑幣
最好用STC15系列的單片機產生隨機的圖片。

回復

使用道具 舉報

ID:617449 發表于 2019-11-16 22:19 | 顯示全部樓層
1、是什么樣的圖片
2、顯示用什么?真彩還是黑白?
回復

使用道具 舉報

ID:25310 發表于 2019-11-17 08:09 | 顯示全部樓層
產生隨機數:
rand()是一個可以生成隨機數的函數隨機數,函數返回的隨機數在0-RAND_MAX(32767)之間;
rand()%100結果是隨機數除以100后所得的余數,即限定隨機的范圍是在0~99之間;
使用rand()函數需添加頭文件:#include <stdlib.h>


建個數組,產生隨機數后調用數組里面的子函數處理隨機語音或圖片,
MCU控制串口語音模塊
MCU調用EEPROM中圖片顯示到LCD。

評分

參與人數 1黑幣 +10 收起 理由
aaaa520 + 10 贊一個!

查看全部評分

回復

使用道具 舉報

ID:390150 發表于 2019-11-17 11:01 | 顯示全部樓層
用stm32系列比較好,因為32系列的內存大,運算速度快,和語音播報模塊和顯示模塊都可以很好的通信,我也正在研究stm32驅動語音模塊的課設
回復

使用道具 舉報

ID:547210 發表于 2019-11-17 15:04 | 顯示全部樓層
來51學習1 發表于 2019-11-16 22:19
1、是什么樣的圖片
2、顯示用什么?真彩還是黑白?

圖片都可以,可以用12864,主要是用單片機控制顯示模塊隨機顯示16張圖片
回復

使用道具 舉報

ID:466505 發表于 2019-11-17 15:15 | 顯示全部樓層
對某個變化的電壓進行ADC轉換,每次取最后一位數,16次就湊成一個int 8次湊成 1個char,這樣就很隨機了
回復

使用道具 舉報

ID:547210 發表于 2019-11-17 15:21 | 顯示全部樓層
pcbboy 發表于 2019-11-17 08:09
產生隨機數:
rand()是一個可以生成隨機數的函數隨機數,函數返回的隨機數在0-RAND_MAX(32767)之間;
rand ...

是不是下面rand()隨機函數,如果用單片機控制12864隨機顯示圖片或控制語音模塊隨機播報聲音,用rand()隨機函數像下面一定要用定時器嗎

#include<reg52.h>  
#include<stdlib.h> //包含 rand()隨機函數的頭文件
unsigned char t,k,i,j,a,f,n[10];
//t 是計時變量,k 是按鍵標志,i 是數組下標,f 是隨機數重復標志,n[10]
是存放隨機數的數組


void init()      //初始化函數
{
    t = 0;
    i = 0;
    f = 0;
    k = 0;
    TMOD = 0x02;    //設置定時器 0 為工作方式 2
    TH0 = 7;        //裝初值                          
    TL0 = 7;                                 
    EA = 1;         //開總中斷
    ET0 = 1;        //開定時器 0 中斷
    TR0 = 1;        //啟動定時 0
    EX0 = 1;        //開外部中斷 0,同按鍵的效果一樣
    IT0 = 1;        //下降沿觸發   
}
void main()
{


    init();
    while(1)
    {
        while(k)                     //外部中斷 0 觸發循環
        {
            if(!i)                  //i=0時取第一個隨機數放入數組
n[0]
            {
                srand(t);           //隨機數初始化      
                a = (char)(rand() % 10); //取隨機數(0~9)
                n[0] = a;              //存入數組
                i++;                 //數組下標加 1
            }
            else
                while(i < 10)             //存放剩下的 9 個隨機數
                {  
                    srand(t);           //隨機數初始化      
                    a = (char)(rand() % 10);  //取隨機數


                    for(j = 0; j < i; j++)      //與前面的隨機數比較
                    {  
                        if(n[j] == a)        //與前面的隨機數相同
                            f = 1;           //標志置 1  
                    }
                    if(f)                  //有重復執行
                    {  
                        f = 0;               //標志清 0
                        continue;          //結束本次循環
                    }
                    n = a;                //不同則存入數組中
                    i++;                   //數組下標加 1
                }  
        }
    }
}
void inter0() interrupt 0    //外部中斷 0


{
    k = 1;                     //按鍵標志置 1,主函數執行取隨機數  
}
void time0() interrupt 1     //定時器 0 中斷
{         
    t++;        //時間加 1
    if(t == 100)
    {
        t = 0;  
    }
}  
回復

使用道具 舉報

ID:547210 發表于 2019-11-17 15:30 | 顯示全部樓層
巨人肩上看世界 發表于 2019-11-17 11:01
用stm32系列比較好,因為32系列的內存大,運算速度快,和語音播報模塊和顯示模塊都可以很好的通信,我也正 ...

我現在主要用的是stc系列,主要是如何用MCU控制一些模塊來產生一些隨機的東西(數字,圖片,語音等)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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