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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2926|回復: 1
收起左側

AT89C51簡易電子琴設計 求制作思路

[復制鏈接]
ID:930703 發表于 2021-6-1 16:28 來自觸屏版 | 顯示全部樓層 |閱讀模式
150黑幣
由于本論壇禁止直接求程序,禁止伸手黨,所以向大家請教一下大致的實現方法與思路,理清頭緒后我自己來寫程序去實現,謝謝大家
設計內容:
用矩陣鍵盤代表琴鍵,至少能彈出8個音符,分別是:音符 1,2,3,4,5,6,7, 鍵
按下的時間長短表征節拍的長短
用蜂鳴器發出聲音
點陣實時動態顯示音符高低  自由顯示
要用AT89C51來實現

回復

使用道具 舉報

ID:935187 發表于 2021-6-20 14:13 | 顯示全部樓層
#include <AT89X51.H>

sbit SPEAKER  = P3^7;
#define KEY  P1
unsigned char MUSIC;
unsigned char STH0;
unsigned char STL0;
unsigned int code tab[]={
64021,64103,64260,64400,//低音3開始
64524,64580,64684,64777,
64820,64898,64968,65030,
65058,65110,65157,65178
};

void main(void){
        TMOD=0x01;
        ET0=1;
        EA=1;
        KEY = 0xff;
        while(1){        
                if(KEY != 0xff){
                switch (~KEY){//顯示的列位置               
                                case 0x01://                       
                                        MUSIC = 7;      
                                        break;//               
                                case 0x02://                       
                                        MUSIC = 6;      
                                        break;//               
                                case 0x04://                       
                                        MUSIC = 5;      
                                        break;//               
                                case 0x08://                       
                                        MUSIC = 4;      
                                        break;//               
                                case 0x10://                       
                                        MUSIC = 3;      
                                        break;//               
                                case 0x20://                       
                                        MUSIC = 2;      
                                        break;//               
                                case 0x40://                       
                                        MUSIC = 1;      
                                        break;//               
                                case 0x80://                       
                                        MUSIC = 0;      
                                        break;//               
                }      

                    STH0=tab[MUSIC]/256;
                    STL0=tab[MUSIC]%256;
                    TR0=1;
                }else{
                    SPEAKER = 1;
                        TR0=0;
                }
    }
}
void t0(void) interrupt 1 using 0{
  TH0=STH0;
  TL0=STL0;
  SPEAKER=~SPEAKER;
}
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 福利小视频在线观看 | 久草成人 | 亚洲欧美一区二区三区四区 | 免费网站av | 国产精品伦子伦免费视频 | 久久精品小视频 | 亚洲黄色成人 | 免费日韩视频 | 一区二区三区精品视频 | 色婷婷久久综合 | 中文字幕av网站 | 亚洲精品自拍视频 | 国产成人免费在线视频 | 日韩伦理在线播放 | 亚洲综合第一页 | 九九热在线精品 | 欧美性生交xxxxx | 狠狠干 | 久久伊人网站 | 五月婷婷 | 日本天堂在线 | 一区二区在线免费观看 | 欧美福利视频 | 国产www| 99视频在线精品免费观看2 | 天堂一区二区三区 | 免费黄网站在线观看 | 在线看片你懂的 | 久久合 | 伊人天堂网 | 精品日韩一区二区三区 | 黄色片免费在线观看 | 日韩中文字幕视频 | 全部免费毛片在线播放高潮 | 国产一级大片 | 91av在线免费观看 | 好色影院| 免费日韩视频 | 成人一级片 | 日韩 欧美 亚洲 | 91免费网 |