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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于PIC32的激光電子琴制作

[復制鏈接]
跳轉到指定樓層
樓主
ID:99624 發表于 2015-12-25 04:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這里是視頻演示:給力隊友彈奏演示(沒有學過音樂,彈得丑了點)


  本來這可以幾周內做好的作品,但由于元件的采購,學業的壓力,還有的是那份惰性,導致了它的難產。正好元旦放假,寢室的該找媽的都回去找媽了,找不成媽的也找...(你懂得)。也好一個人在寢室清靜清靜,沒有復雜的氛圍來左右我自戀的給它拍個照了。
      完成后效果圖:

只能說激光在平常條件下是難以看到的,所以為了顯示效果故意放了個三角尺高手別介意。

這都是我們組員設計的外包裝,還算可以吧簡單樸素。

好了,開始來干貨了,以下內容可能會讓你感到不適,眩暈,鄙視,請你選擇性略過。
首先要擬好硬件的電路圖,才能確定要采購的元器件。

圖太大了,先看個大概的情況,稍后附件里添加DSN電路圖文件,慢慢仔細看看,這是最小的系統框圖,考慮到我們發的試驗開發板,左邊一列的AN1AN2AN3已經連接好了按鍵,就先不動它,PGD1PGC1為程序代碼燒錄端口寫的程序就通過這個燒錄進單片機的。OSC1OSC2連接的是外部晶振8MHz,就像心臟一樣維持著單片機的運行。

通過圖片可以看到我們還有4個可用的引腳RB2RB4RA4RB5.本來RB4RA4是用來接輔助晶振的我們用不到就可以去除了。留下盡可能多的引腳口,畢竟至少要有7根弦吧,對于我們的開發板來說就要手動的做些硬件上的改動了。

好,現在細說我們這塊開發板硬件的改動,非本次賽課計劃的可以忽略以下內容了。
關于輔助晶振的改動已經說了是為了多留出兩個引腳端口。關鍵是左側的四個電阻的去除,這尤為重要,關系到寫入程序后是否能正常運行,兩個電容也是防止按鍵電壓不穩。還有添加芯片左右兩側的排針,背面的上拉電阻,硬件改動就這些了。

   可見這個連接口可謂是錯綜復雜,有按鍵的端口引腳還有OC1PWM1)共用。OC1(PWM1)輸出不同頻率的方波從而通過揚聲器器發出不同的音調,而按鍵是否按下需要單片機時刻檢測電平的變化信號,方波通過電阻R1影響AN1端口的電平,導致無法正常的檢測按鍵的電平。所以要OC1就不能用按鍵1,反之亦然,就必須把中間連接的電阻R1去掉,但是去掉電阻后按鍵的電壓會不穩定,注意R3及以上部分是我后來加上去的上拉電阻,加上上拉電阻后電壓就穩定了。
   硬件的背面按鍵上拉電阻:

背面多加了兩個電阻接到高電壓,老師是將左側(正面看)的2,7上拉的電阻,由電路圖可以看出,是選擇的按鍵AN1和按鍵AN4。我個人就直接把AN1AN2上拉電阻了方便,當然對應老師給的代碼也需要修改小部分。

回歸大眾,我們繼續來看看還有那些端口可用。

   圖中已經說了SCLK,SLCK,SDO接數碼管芯片,為了簡單就不用再敘述數碼管的連接方式了(又是一個傷腦筋的東西)。對于我們開發板來說還可以用的引腳有RB10,RB11,RB13.加上之前的四個看7個引腳夠了,如果還嫌少可以把按鍵的引腳也拿來用用。RB7定義為PWM從而輸出波形,通過三極管S8050放大電流由發聲器發出聲音。

    已經可用的RB2,RB4,RA4,RB5RB10,RB11,RB13,七個端口就可以接光敏電阻或者激光接收器(推薦)了,在通過寫入程序檢測七個端口電壓從而發出不同的音調。
   
看一下實驗的電路圖吧,前方多圖高能預警。


   圖中由于是實驗性質的,所以并沒有接光敏電阻這么高級的東西,就是把7個端口引出來,通過電阻與高電平相連,然后引出一條相對地線,依次接觸七個端口就會使接觸的那個端口電壓變低,一樣的效果也會發出對應的聲音。


   比對電路原理圖,所引出的7個的端口如圖所示,第幾個可要對清楚,例如1(DO)是左側第6個端口,2(RE)是第11個端口。

接上激光和激光接收器后亂如麻的線路:

以下放送外殼的加工,隊友給力呀,沒什么可多說的了,看圖吧







   就此結束了,結果還可以吧,程序(老師給好的)見附件下載吧,有一些注釋,結合我前幾篇的基礎講解應該可以看懂吧,也可以試著修改看看多加幾根弦如何(發現沒我是9根弦)?


難得有心情,再完善一下,更新下最新作品,隔得時間有點久了.....   貼上最新作品制作過程(2015年6月版)
框架定型




剛開始的棺材板一般的造型,后來淘寶換材料,記得是端午節剛到然后當天加工好,第二天就交作品了(真懸)
















  1. #include "DZQConfig.h"

  2. //按鍵和顯示
  3. //顯示:RB8-RB9-RB15
  4. //按鍵:RA0-RB3
  5. //說明:RB15-SPI的CLK時鐘信號;RB8-SPI的SDO數據信號;RB9-SPI的LCK數據鎖存信號
  6. //     AN1-RA0;AN4-RB3
  7. void InitKeyDisp(void)
  8. {
  9.     SpiOpenFlags oFlags;
  10.     oFlags = SPI_OPEN_MSTEN | SPI_OPEN_CKP_HIGH | SPI_OPEN_MODE8 | SPI_OPEN_ON;        
  11.     SpiChnOpen(2, oFlags, 6);
  12.     PPSOutput(2, RPB8, SDO2);
  13.     PORTSetPinsDigitalOut(IOPORT_B, BIT_9);

  14.     PORTSetPinsDigitalIn(IOPORT_A,BIT_0);
  15.     PORTSetPinsDigitalIn(IOPORT_B,BIT_3);
  16. }
  17. // 對定時器1進行初始化
  18. void InitTimer1(void)
  19. {
  20.     OpenTimer1(T1_ON | T1_SOURCE_INT | T1_PS_1_1, PERIOD);
  21.     INTEnable(INT_T1, INT_ENABLED);
  22.     INTSetVectorPriority(INT_TIMER_1_VECTOR, INT_PRIORITY_LEVEL_2);
  23.     INTSetVectorSubPriority(INT_TIMER_1_VECTOR, INT_SUB_PRIORITY_LEVEL_0);

  24. }
  25. // 對蜂鳴器進行初始化
  26. // PWM1-RB7
  27. // 說明:48MHZ系統頻率,4分頻為12MHZ,使用定時器2產生
  28. //       200HZ對應周期值為60000,2KHZ對應6000;
  29. void InitBeep(void)
  30. {
  31.     OC1CON = 0x0000;
  32.     RPB7Rbits.RPB7R = 0b0101;       // PWM1-RB7
  33.     OC1RS = 0;                  // 占空比
  34.     PR2 = 60000;                    // 周期
  35.     OC1CON = 0x0006;                // 配置位PWM模式
  36.     OC1CONSET = 0x8000;             // 使能PWM1
  37.         T2CONSET = 0x8020;              // 使能定時器2和4分頻48MHZ/4 = 12MHZ
  38. }
  39. //對激光接收管進行初始化
  40. void InitInput(void)
  41. {
  42.     u32 in=0;
  43.     in = in | BIT_2 |BIT_4 |BIT_5 |BIT_10|BIT_11|BIT_13|BIT_14;
  44.     PORTSetPinsDigitalIn(IOPORT_B,in);

  45.     // 其他沒用的引腳配置成輸出,并輸出為低
  46.     PORTSetPinsDigitalOut(IOPORT_A,BIT_1|BIT_4);
  47.     PORTClearBits(IOPORT_A, BIT_1|BIT_4);
  48. }

  49. // 系統硬件初始化
  50. void BSP_Init(void)
  51. {
  52.     SYSTEMConfig(PERIOD, SYS_CFG_WAIT_STATES |SYS_CFG_PCACHE);
  53.     INTDisableInterrupts();
  54.     INTConfigureSystem(INT_SYSTEM_CONFIG_MULT_VECTOR);

  55.     InitKeyDisp();
  56.     InitTimer1();
  57.     InitBeep();
  58.     InitInput();

  59.     INTEnableInterrupts();
  60. }

復制代碼
關于程序代碼,解壓后用MPLAB打開文件夾工程。
DZQ-1.X.zip (175.02 KB, 下載次數: 15)



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

使用道具 舉報

沙發
ID:210627 發表于 2017-9-8 21:41 | 只看該作者
可以改成基于STC的單片機吧
回復

使用道具 舉報

板凳
ID:704585 發表于 2020-6-20 17:30 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲iv一区二区三区 | 日韩午夜网站 | 一区二区三区在线免费观看视频 | 在线观看视频h | 久久一区精品 | 成人免费视频观看视频 | 亚洲a视频| 日韩av一区二区在线观看 | 一区二区三区四区电影 | 在线欧美视频 | 亚洲欧美日韩精品久久亚洲区 | 亚洲免费在线 | 午夜精品视频 | 日韩国产一区二区三区 | 色妞av| 一区二区av | 欧美视频 亚洲视频 | 国产95在线| 欧洲一区二区三区 | 亚洲欧美精品在线 | 中文字幕在线不卡播放 | 国产美女特级嫩嫩嫩bbb片 | 2018天天干天天操 | 欧美精品在线免费 | 男人影音 | 欧美一区二区三区在线 | 日韩视频中文字幕 | 欧美日韩精品免费观看 | 亚洲福利电影网 | 日韩成人中文字幕 | 久久一级| 一区在线观看视频 | 久久精品国产免费一区二区三区 | 伊人成人免费视频 | 国产精品成人一区二区 | 日本a在线 | 韩日在线 | 亚洲一区二区日韩 | 久草在线青青草 | 国产精品1区2区3区 男女啪啪高潮无遮挡免费动态 | 亚洲精品乱码久久久久久9色 |