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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求助!51單片機如何能將樂譜顯示在LCD1602上

[復制鏈接]
跳轉到指定樓層
樓主
ID:988297 發表于 2021-12-6 20:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 Yihan_H 于 2021-12-6 21:00 編輯

要求如下:使用矩陣4X4按鍵播放一首完整的音樂,按1~7數字鍵則模擬鋼琴琴鍵,發出1、2、3、4、5、6、7的聲音,使用定時器中斷實現1~2、3、4、5、6、7頻率的設定,同時在LCD1602上實時顯示播放音樂的樂譜。
但是現在是在數碼管上顯示播放音樂的樂譜,大佬們,要怎么改才能在LCD1602上顯示?
原理圖如下以及后面是現在的代碼:因為原理圖太大了所以放在后面的附件里了



  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. #define SOUND_SPACE         4/5
  5. extern uchar Break_Flag;
  6. unsigned int  code FreTab[12]  = { 262,277,294,311,330,349,369,392,415,440,466,494 }; //原始頻率表
  7. unsigned char code SignTab[7]  = { 0,2,4,5,7,9,11 };                                                                   //1~7在頻率表中的位置
  8. unsigned char code SignTab1[7] = {1,2,3,4,5,6,7};
  9. unsigned char code LengthTab[7]= { 1,2,4,8,16,32,64 };
  10. unsigned char Sound_Temp_TH0,Sound_Temp_TL0;        //音符定時器初值暫存
  11. unsigned char Sound_Temp_TH1,Sound_Temp_TL1;        //音長定時器初值暫存
  12. #define SYSTEM_OSC                 12000000        //定義晶振頻率12000000HZ

  13. sbit dula=P2^6;                  
  14. sbit wela=P2^7;                  
  15. sbit beep=P2^3;

  16. uint a,b;
  17. uchar key,shu[20];
  18. /*說明**************************************************************************
  19. 曲譜存貯格式 unsigned char code MusicName{音高,音長,音高,音長...., 0,0};        末尾:0,0 表示結束(Important)

  20. 音高由三位數字組成:
  21.                  個位是表示 1~7 這七個音符
  22.                  十位是表示音符所在的音區:1-低音,2-中音,3-高音;
  23.                  百位表示這個音符是否要升半音: 0-不升,1-升半音。

  24. 音長最多由三位數字組成:
  25.                  個位表示音符的時值,其對應關系是:
  26.                          |數值(n):  |0 |1 |2 |3 | 4 | 5 | 6
  27.                          |幾分音符: |1 |2 |4 |8 |16 |32 |64                 音符=2^n
  28.                  十位表示音符的演奏效果(0-2):  0-普通,1-連音,2-頓音
  29.                  百位是符點位: 0-無符點,1-有符點

  30. 調用演奏子程序的格式
  31.                  Play(樂曲名,調號,升降八度,演奏速度);
  32.         |樂曲名           : 要播放的樂曲指針,結尾以(0,0)結束;
  33.         |調號(0-11)       :        是指樂曲升多少個半音演奏;
  34.         |升降八度(1-3)          : 1:降八度, 2:不升不降, 3:升八度;
  35.         |演奏速度(1-12000):        值越大速度越快;

  36. ***************************************************************************/
  37. unsigned char code Music_Xing[]={ 0x0D,0x02, 0x0F,0x02, 0x10,0x03, 0x15,0x02, 0x16,0x03,
  38.                                   0x10,0x03, 0x15,0x03, 0x0F,0x02, 0x19,0x02, 0x1F,0x03,
  39.                                   0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03, 0x16,0x00,
  40.                                   0x16,0x02, 0x17,0x03, 0x11,0x02, 0x10,0x02, 0x0F,0x02,
  41.                                   0x10,0x03, 0x15,0x02, 0x16,0x02, 0x0D,0x02, 0x15,0x02,
  42.                                   0x10,0x03, 0x0F,0x03, 0x10,0x03, 0x15,0x03, 0x0F,0x00,
  43.                                   0x17,0x66, 0x19,0x03, 0x11,0x02, 0x16,0x02, 0x10,0x03,
  44.                                   0x15,0x03, 0x0F,0x00, 0x0D,0x03, 0x0F,0x04, 0x0D,0x02,
  45.                                   0x0F,0x67, 0x10,0x04, 0x11,0x03, 0x16,0x03, 0x10,0x00,
  46.                                   0x0F,0x03, 0x10,0x03, 0x15,0x66, 0x16,0x03, 0x19,0x02,
  47.                                   0x17,0x02, 0x16,0x02, 0x16,0x03, 0x17,0x03, 0x15,0x02,
  48.                                   0x10,0x03, 0x0F,0x03, 0x0D,0x01, 0x15,0x01, 0x10,0x67,
  49.                                   0x15,0x04, 0x10,0x03, 0x0F,0x03, 0x0D,0x03, 0x0F,0x03,
  50.                                   0x10,0x03, 0x15,0x03, 0x0F,0x00, 0x00,0x00};
  51. int i=-1;

  52. uint code Freqtab[] = {
  53.      64580,64684,64777,      
  54.      64820,64898,64968,65030};      

  55. uchar code table[]={
  56. 0x00,0x06,0x5b,0x4f,
  57. 0x66,0x6d,0x7d,0x07,
  58. 0x7f,0x6f,0x77,0x7c,
  59. 0x39,0x5e,0x79,0x71};




  60. void delay(uint x)
  61. {
  62.         uint i,j;
  63.         for(i=x;i>0;i--)
  64.                 for(j=110;j>0;j--);
  65. }
復制代碼

原理圖和代碼.rar

69.23 KB, 下載次數: 8

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

使用道具 舉報

沙發
ID:624769 發表于 2021-12-6 21:56 | 只看該作者
根據你的按鍵,解析后顯示。但是,節拍比較麻煩,要根據你按鍵時間長短,才能定義出,多少拍,所以,實時顯示是不太可能了?啥ǖ醚雍笠粋音。
回復

使用道具 舉報

板凳
ID:988297 發表于 2021-12-7 00:32 來自觸屏版 | 只看該作者
188610329 發表于 2021-12-6 21:56
根據你的按鍵,解析后顯示。但是,節拍比較麻煩,要根據你按鍵時間長短,才能定義出,多少拍,所以,實時顯 ...

那請問一下怎么改代碼才可以實現呢?在LCD1602上顯示。今天改了一整晚,都沒改出來
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: а_天堂中文最新版地址 | 国产亚洲黄色片 | 亚洲精品久久久一区二区三区 | 嫩草影院网址 | 一区二区三区高清 | 久久精品国产久精国产 | 欧美最猛黑人 | 欧美激情精品久久久久久免费 | 99精品免费视频 | 日本特黄特色aaa大片免费 | 国产一区不卡 | 亚洲精品亚洲人成人网 | 久久免费精品 | 免费视频久久久久 | 日韩av高清 | 亚洲精品一区中文字幕乱码 | 国产高清性xxxxxxxx | 成人黄色三级毛片 | 天天爽天天干 | 91中文在线观看 | 日韩欧美网 | 视频一区二区中文字幕 | av av在线 | 涩爱av一区二区三区 | 精品一区二区三区在线观看 | 亚洲美女视频 | 免费黄色av网站 | 国产精品福利一区二区三区 | 国产女人与拘做视频免费 | 中文字幕视频网 | 青青草av网站 | 国产精品久久久久久av公交车 | 欧美久久视频 | 午夜视频在线观看一区二区 | 欧洲亚洲精品久久久久 | 老子午夜影院 | 免费在线一区二区 | 老司机成人在线 | 蜜桃黄网| 欧美精品tv | 521av网站 |