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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請問各位大神我這個單片機電子琴程序實物為何無法實現呢?

   關閉 [復制鏈接]
跳轉到指定樓層
樓主
(89C51)通過proteus ISIS已經仿真確診沒有問題16按鍵矩陣各方面都沒毛病。但通過開發板烤制出來連接電路為什么就不能發音呢?
同樣是仿真軟件烤制,同學的 計算機、測距儀等等通過仿真烤制程序配合各模塊都能實現,可我的就是不行,莫非我RP不好?

電子琴設計.zip (76.07 KB, 下載次數: 19)




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

使用道具 舉報

沙發
ID:626055 發表于 2020-11-24 16:10 | 只看該作者
既然已經成功的例子了,那就更容易的對比試驗找到問題所在了。
有成功的證明程序不會有什么問題!一點一點的排查,可以慢慢確定到底是你的電腦燒寫程序設置,還是單片機,還是單片某個模塊。。。
回復

使用道具 舉報

板凳
ID:367934 發表于 2020-11-24 17:53 | 只看該作者
理論與實踐還是存在著一定的距離。仿真軟件里面的電子元件都是工作在理想狀態。而實物就是實物。仿真沒問題那你就看看連接,電源方面有沒有問題。
回復

使用道具 舉報

地板
ID:278840 發表于 2020-11-24 18:39 | 只看該作者
電路圖有嗎,有就發出來看看
回復

使用道具 舉報

5#
ID:822067 發表于 2020-11-24 22:45 | 只看該作者
T_Trigger 發表于 2020-11-24 16:10
既然已經成功的例子了,那就更容易的對比試驗找到問題所在了。
有成功的證明程序不會有什么問題!一點一點 ...

我用的就是開發板燒的,然后定義十六種不同頻率的聲音,我也不知道仿真為什么就可以做到十六個聲音信號(我也覺得新奇)
但實際開發板上操作矩陣按鍵就只有四個按鍵可以按同頻沙啞的聲音
回復

使用道具 舉報

6#
ID:822067 發表于 2020-11-24 22:47 | 只看該作者
適得府君書 發表于 2020-11-24 17:53
理論與實踐還是存在著一定的距離。仿真軟件里面的電子元件都是工作在理想狀態。而實物就是實物。仿真沒問題 ...

就是正常的可以考烤程序開發板,理論來說沒問題
回復

使用道具 舉報

7#
ID:822067 發表于 2020-11-24 22:48 | 只看該作者
器車人 發表于 2020-11-24 18:39
電路圖有嗎,有就發出來看看




回復

使用道具 舉報

8#
ID:822067 發表于 2020-11-24 22:50 | 只看該作者
程序/圖如下,希望懂哥幫我看看
回復

使用道具 舉報

9#
ID:822067 發表于 2020-11-24 22:54 | 只看該作者

回復

使用道具 舉報

10#
ID:822067 發表于 2020-11-24 23:06 | 只看該作者

回復

使用道具 舉報

11#
ID:311846 發表于 2020-11-25 09:16 | 只看該作者
蜂鳴器用上拉驅動試試,有條件的可以檢測下驅動口的信號頻率是否正確
回復

使用道具 舉報

12#
ID:420836 發表于 2020-11-25 09:59 | 只看該作者
模擬并不總是適用于實際電路。
回復

使用道具 舉報

13#
ID:701852 發表于 2020-11-25 20:01 | 只看該作者
你看看那個矩陣接線對嗎
回復

使用道具 舉報

14#
ID:822067 發表于 2020-11-25 22:57 | 只看該作者
13487086265 發表于 2020-11-25 20:01
你看看那個矩陣接線對嗎

仿真的時候沒問題,我就是在開發板上直接將hex烤進單片機實物然后就不行了
回復

使用道具 舉報

15#
ID:822067 發表于 2020-11-25 22:58 | 只看該作者
權威人物 發表于 2020-11-25 09:16
蜂鳴器用上拉驅動試試,有條件的可以檢測下驅動口的信號頻率是否正確

我用的各種模塊來做的
蜂鳴器,矩陣,單片機
就這仨模塊接上來做,感覺還是有點小問題
回復

使用道具 舉報

16#
ID:844772 發表于 2020-11-25 23:26 | 只看該作者
看程序,我算了一下,晶振應該是12M的,你的是不是太低了?另外,你這個音頻是方波,諧波太多了,應該濾波,否則聲音會非常嘈雜,聽起來就怪怪的;最后,你用什么放音的,別是嗡鳴器吧?反正,好多無源的播音有頻率限制,eg:2KHz以上,它就放不出你這么低的頻率。
回復

使用道具 舉報

17#
ID:738117 發表于 2020-11-26 05:01 | 只看該作者
你的頻率不對,#include <reg51.h>

#define uint unsigned int

#define uchar unsigned char

#define output P1

#define input P1

//方便移植在其他電路板上,我的電路使用P1口做鍵盤輸入接口

//定義16個按鍵

enum KEY{key0,key1,key2,key3,key4,key5,key6,key7,key8,key9,key10,key11,key12,key13,key14,key15};

uchar code table[]={                                  //數組定義,顯示數碼管

            0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

            0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};

unsigned int code Freqtab[] = {         //定時半周期的初始值

     64021,64103,64260,64400,      //低音3 4 5 6

     64524,64580,64684,64777,      //低音7,中音1 2 3

     64820,64898,64968,65030,      //中音4 5 6 7

     65058,65110,65157,65178};     //高音1 2 3 4

uint FreqTemp;

//蜂鳴器聲音不怎么樣,我們使用揚聲器,接P3.7口

sbit SPEAK = P3^7;

void delay1ms(uint n)   //誤差 0us ,延時n毫秒

{

    uint a,b,c;

        for(c=n;c>0;c--)

            for(b=199;b>0;b--)

                for(a=1;a>0;a--);

}



uint key_input(void)

{

        uchar temp1,temp2;                        //臨時保存讀取的行或者列

        uchar num = 16;                                   //返回按鍵的值

        output = 0x0f;               

           temp1 = input;                                //先讀取行

        if(0x0f != temp1)                   //按鍵按下

        {                                          

                delay1ms(5);                        //延時,消除抖動

                temp1 = input;                        //再次讀取行

                if(0x0f != temp1)                //說明按鍵確實按下       

                {

                        temp1 = temp1 & 0x0f;        //保留低4位

                        output = 0xf0;                        //準備讀取列

                        delay1ms(1);                        //延時一下,防止下一句讀不到

                        temp2 = input;                        //直接讀取列

                        temp2 = temp2 & 0xf0;        //保留高4位

                        temp1 = temp1 | temp2;        //將temp1和temp2的值合并

                }

        }

        switch(temp1)

        {

                case 0xee:num=0;break;  

        case 0xde:num=1;break;  

        case 0xbe:num=2;break;   

        case 0x7e:num=3;break;

                case 0xed:num=4;break;               

        case 0xdd:num=5;break;           

        case 0xbd:num=6;break;            

        case 0x7d:num=7;break;   

                case 0xeb:num=8;break;   

        case 0xdb:num=9;break;   

        case 0xbb:num=10;break;   

        case 0x7b:num=11;break;   

                case 0xe7:num=12;break;   

        case 0xd7:num=13;break;   

        case 0xb7:num=14;break;   

        case 0x77:num=15;break;      

                default:break;

        }

        return num;

}

void T0_INT(void) interrupt 1

{

     TL0 = FreqTemp;                //載入定時半周期的初始值

     TH0 = FreqTemp >> 8;

     SPEAK = ~SPEAK;                    //發音

}

int main()

{

        TMOD = 0X01;                //定時器T0設置為方式1

        EA = 1;

        ET0 = 1;

        TR0 = 0;

        while(1)

        {

                uint num,temp;

                num = key_input();

                temp = num;

                P0 = table[num];

                if(16 != num)

                {

                        FreqTemp = Freqtab[num];

                        TR0 = 1;

                        while(0xf0 != output);                //檢測按鍵松開

                        TR0 = 0;

                        SPEAK = 1;       

                }               

        }

        return 0;

}
回復

使用道具 舉報

18#
ID:849367 發表于 2020-11-26 08:40 來自手機 | 只看該作者
多次實踐
回復

使用道具 舉報

19#
ID:822067 發表于 2020-11-26 21:23 | 只看該作者
glinfei 發表于 2020-11-25 23:26
看程序,我算了一下,晶振應該是12M的,你的是不是太低了?另外,你這個音頻是方波,諧波太多了,應該濾波 ...

就是蜂鳴器,但按理說沒超過2Khz 這個雜音就一直很煩
回復

使用道具 舉報

20#
ID:822067 發表于 2020-11-26 21:27 | 只看該作者
glinfei 發表于 2020-11-25 23:26
看程序,我算了一下,晶振應該是12M的,你的是不是太低了?另外,你這個音頻是方波,諧波太多了,應該濾波 ...

難道蜂鳴器模塊不行嗎?
回復

使用道具 舉報

21#
ID:822067 發表于 2020-11-26 21:28 | 只看該作者
你你摸摸你的 發表于 2020-11-26 05:01
你的頻率不對,#include  

#define uint unsigned int

謝謝,我參考試試
回復

使用道具 舉報

22#
ID:822067 發表于 2020-11-26 23:06 | 只看該作者
各位hxdm,我發現問題了。
好像我開發板的上的1.3腳 因矩陣腳和蜂鳴器腳雷同有沖突,貌似這樣就會有干擾對嗎???
回復

使用道具 舉報

23#
ID:213173 發表于 2020-11-27 07:59 | 只看該作者
王論夜舞111 發表于 2020-11-26 23:06
各位hxdm,我發現問題了。
好像我開發板的上的1.3腳 因矩陣腳和蜂鳴器腳雷同有沖突,貌似這樣就會有干擾對 ...

如果開發板上矩陣鍵盤有端口與蜂鳴器共用那只能把程序改成3*4矩陣鍵盤,另外開發板上多為有源蜂鳴器,發聲頻率固定,不適合播放音樂。
回復

使用道具 舉報

24#
ID:822067 發表于 2020-11-27 18:51 | 只看該作者
wulin 發表于 2020-11-27 07:59
如果開發板上矩陣鍵盤有端口與蜂鳴器共用那只能把程序改成3*4矩陣鍵盤,另外開發板上多為有源蜂鳴器,發 ...

我測試了一下,好想是的,發出來基本頂多就幾個音調,一點都不抑揚頓挫
回復

使用道具 舉報

25#
ID:822067 發表于 2020-11-28 20:59 | 只看該作者
此貼終結,謝謝各位hxd
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 神马影院一区二区三区 | 日韩一级欧美一级 | 日韩毛片在线免费观看 | 国产一区二区影院 | 国产日产精品一区二区三区四区 | 91玖玖| 搞黄网站在线观看 | 精品欧美二区 | 久久网国产 | 欧美成人手机在线 | 粉色午夜视频 | 久在线视频播放免费视频 | 国产精品无码久久久久 | 亚洲嫩草 | 国产精品高潮呻吟久久aⅴ码 | 国产一区二区免费在线 | 综合久久久久久久 | 精品乱子伦一区二区三区 | 国产精品美女久久久av超清 | 在线精品国产 | 国产精品毛片无码 | 日本一道本视频 | 久久精品这里 | 黄网站涩免费蜜桃网站 | 成人av一区 | 中文字幕一区二区三区四区五区 | 97国产精品视频 | 国产网站在线免费观看 | 久久精品久久精品久久精品 | 日韩一区中文字幕 | 久久亚洲一区二区三区四区 | 欧美视频三区 | 欧洲精品视频一区 | 特黄特色大片免费视频观看 | 亚洲成人免费av | 精品国产伦一区二区三区观看说明 | 免费人成激情视频在线观看冫 | 国产精品亚洲综合 | 色婷婷av久久久久久久 | 久久精品| 狠狠亚洲 |