国产精品久久久久久久久免费,高潮迭起av乳颜射后入,国产对白老熟女正在播放,国产精品igao视频网网址,丰满人妻熟妇乱又伦精品

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
簡(jiǎn)易電子琴的設(shè)計(jì)
簡(jiǎn)易電子琴的設(shè)計(jì)
 更新時(shí)間:2008-7-27 16:16:24  點(diǎn)擊數(shù):2
【字體: 字體顏色
簡(jiǎn)易電子琴的設(shè)計(jì)

一、             設(shè)計(jì)題目:

設(shè)計(jì)一簡(jiǎn)易電子琴,要求能夠發(fā)出1、23、4、567等七個(gè)音符。

使用元件:AT89C51、LM324,喇叭,按鍵等

 

二、             設(shè)計(jì)目的

  1)能夠?qū)﹄娮与娐、電子元器件、印制電路板等方面的知識(shí)有進(jìn)一步的認(rèn)識(shí),獨(dú)立對(duì)其進(jìn)行測(cè)試與檢查。

2)熟悉8051單片機(jī)的內(nèi)部結(jié)構(gòu)和功能,合理使用其內(nèi)部寄存器,能夠完成相關(guān)軟件編程設(shè)計(jì)工作。

3)為實(shí)現(xiàn)預(yù)期功能,能夠?qū)ο到y(tǒng)進(jìn)行快速的調(diào)試,并能夠?qū)Τ霈F(xiàn)的功能故障進(jìn)行分析,及時(shí)修改相關(guān)軟硬件。

4)對(duì)軟件編程、排錯(cuò)調(diào)試、焊接技術(shù)、相關(guān)儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。

三、             系統(tǒng)硬件圖

 

      流程圖:

                    

        原理:

(一)   音樂(lè)產(chǎn)生原理及硬件設(shè)計(jì)

由于一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,當(dāng)然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。

本次設(shè)計(jì)中單片機(jī)晶振為12MHZ,那么定時(shí)器的計(jì)數(shù)周期為1MHZ,假如選擇工作方式1,那T值便為T= 216--5105/相應(yīng)的頻率 ,那么根據(jù)不同的頻率計(jì)算出應(yīng)該賦給定時(shí)器的計(jì)數(shù)值,列出不同音符與單片機(jī)計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如下表所示:

音符

頻率(HZ

簡(jiǎn)譜碼(T值)

1 DO

523

64580

2 RE

587

64684

3 M

659

64777

4 FA

698

64820

5 SO

784

64898

6 LA

880

64968

7 SI

988

65030

采用查表程序進(jìn)行查表時(shí),可以為這個(gè)音符建立一個(gè)表格,有助于單片機(jī)通過(guò)查表的方式來(lái)獲得相應(yīng)的數(shù)據(jù):

TABLE DW 64580,64684,6477764820,6489864968,65030

 

        源程序:

方案一:產(chǎn)生按鍵音符

  ORG 0000H

        LJMP MAIN

        ORG 000BH

        LJMP BREAK

MAIN:  MOV TMOD,#01H       ;設(shè)置定時(shí)器0的工作方式

        SETB EA

       SETB ET0               ; 設(shè)置定時(shí)器0中斷

       SETB TR0               ; 啟動(dòng)定時(shí)器0

WAIT1: LCALL KEY             ; 調(diào)用KEY子程序,判斷有鍵按下否?第幾個(gè)鍵?

       CLR EA                 ;屏蔽中斷

       CJNE R3,#00H,WAIT1     ;如果R3=0,表示有鍵按下

       MOV A,22H              ;22H里存放的按鍵號(hào)送給A

       RL A                   ; 因?yàn)椴楸砝锒际亲,所以得?/SPAN>2查得數(shù)據(jù)

       MOV DPTR,#TABLE      ;指向表頭

       MOVC A,@A+DPTR      ; 查表

       MOV TH0,A             ;將數(shù)據(jù)高位送TH0

       MOV 21H,A             ; 將高位備份

       MOV A,22H             ;22H里存放的按鍵號(hào)送給A

       RL A                   ;因?yàn)椴楸砝锒际亲,所以得?/SPAN>2查得數(shù)據(jù)

       INC A                  ;取低位數(shù)據(jù)

       MOVC A,@A+DPTR

       MOV TL0,A

       MOV 20H,A

WAIT2: LCALL KEY

       SETB EA

       CJNE R3,#00H,WAIT1

       JMP WAIT2

KEY:   MOV R3,#00H          ; KEY子程序,判斷有鍵按下否?第幾個(gè)鍵?

       MOV R1,#0FFH

       MOV R0,#00H

       MOV A,R1

       MOV P2,A

       MOV A,P2

       CLR C

       CPL C               ;利用標(biāo)志位CY來(lái)判斷是哪個(gè)鍵按下

       MOV R2,#08H

WAIT3: RLC A               ;移位判斷

       JNC STORE

       INC R0      

       DJNZ R2,WAIT3

STORE: MOV 22H,R0        ; 將按鍵號(hào)存22H,R3=0有鍵按下

       MOV R3,#00H

       RET

BREAK: PUSH ACC          ;  中斷產(chǎn)生方波,從P1.0口輸出

       PUSH PSW

       MOV TL0,20H

       MOV TH0,21H

       CPL P1.0

       POP PSW

       POP ACC

       RETI

TABLE: DW 65030,64968,64898,64820,64777,64684,64580 ; 7,65,4,3,2,1

       END

方案二:產(chǎn)生按鍵音符

       ORG 0000H

       SJMP START

       ORG 000BH

       AJMP INT_0

       ORG 0030H

START: MOV P1,#00H

       SETB EA

       SETB ET0                       ;計(jì)數(shù)器0

       MOV TMOD,#02H

       MOV TH1,#09CH

       MOV TL1,#09CH                 ;定時(shí)器初植

       CLR TR0                        ;定時(shí)器不允許

SCAN:                                 ;鍵盤(pán)掃描

       MOV A,P2                   ;判斷鍵盤(pán)按下,跳到SCAN_1,若未按,繼續(xù)掃描

       CJNE A,#0FFH,SCAN_1

       NOP

       SJMP SCAN

SCAN_1:ACALL DELAY ;是不是真的要按下?如果是,則跳轉(zhuǎn)SU_KEY查詢(xún)是哪個(gè)按下?

       MOV A,P2

       CJNE A,#0FFH,SU_KEY

       NOP

       SJMP SCAN

SU_KEY:JNB P2.1,MU_1                  ;判斷是哪個(gè)鍵按下?

       JNB P2.2,MU_2

       JNB P2.3,MU_3

       JNB P2.4,MU_4

       JNB P2.5,MU_5

       JNB P2.6,MU_6

       JNB P2.7,MU_7

       SJMP SCAN

                                       ;R1信號(hào)周期

MU_1:  MOV R1,#19                ;如果第一個(gè)按鍵按下,則R1=19,同時(shí)程序轉(zhuǎn)NEXT

       SJMP NEXT

MU_2:  MOV R1,#17            

       SJMP NEXT

MU_3:  MOV R1,#15

       SJMP NEXT

MU_4:  MOV R1,#14

       SJMP NEXT

MU_5:  MOV R1,#13

       SJMP NEXT

MU_6:  MOV R1,#11

       SJMP NEXT

MU_7:  MOV R1,#10

       SJMP NEXT

NEXT:  MOV A,R1               

       MOV R0,A

       SETB TR0                       ;啟動(dòng)定時(shí)器0                        

NEXT_1:MOV A,P2                     ; 沒(méi)鍵按下繼續(xù)執(zhí)行,有鍵按下,返回讀引腳

       CJNE A,#0FFH,NEXT_1

       ACALL DELAY

       MOV A,P2                       ;真的沒(méi)鍵按下?

       CJNE A,#0FFH,NEXT_1

       CLR TR0                        ;不響

       AJMP SCAN                     ;掃描鍵盤(pán)去

INT_0:                                 ;中斷程序

      DJNZ R0,RE                      ;R0不等于0時(shí),返回

      CPL P1.0

      MOV A,R1

      MOV R0,A

RE:   RETI

DELAY:MOV R7,#100                    ;延長(zhǎng)時(shí)間等待,鍵盤(pán)消抖

D1:   MOV R6,#10

D2:   DJNZ R6,D2

      DJNZ R7,D1

      RET

      END

 

生日快樂(lè)歌:(擴(kuò)展功能部分程序)

 

      ORG 0000H

      JMP MAIN

      ORG 000BH

      JMP TT0

MAIN: MOV TMOD,#01H               ;設(shè)置定時(shí)器0工作方式

      MOV IE,#82H                    ;設(shè)置中斷

MAIN0:MOV 30H,#00H

NEXT: MOV A,30H

      MOV DPTR,#TABLE              ;查表

      MOVC A,@A+DPTR

      MOV R2,A

      JZ STOP

      ANL A,0FH

      MOV R5,A

      MOV A,R2

      SWAP A

      ANL A,#0FH

      JNZ SING

      CLR TR0

      JMP W1

SING: DEC A

      MOV 22H,A

      RL A

      MOV DPTR,#TABLE1                   ;查表

      MOVC A,@A+DPTR

      MOV TH0,A

      MOV 21H,A

      MOV A,22H

      RL A

      INC A

      MOVC A,@A+DPTR

      MOV TL0,A

      MOV 20H,A

      SETB TR0

W1:   CALL DELAY

      INC 30H

      JMP NEXT

STOP: CLR TR0           

      JMP MAIN0

TT0:  PUSH ACC                            ;中斷服務(wù)程序

      PUSH PSW

      MOV TL0,20H

      MOV TH0,21H

      CPL P1.0

      POP PSW

      POP ACC

      RETI

DELAY:MOV R7,#2                      ;延時(shí)187ms

 W2:  MOV R4,#187

 W3:  MOV R3,#248

      DJNZ R3,$

      DJNZ R4,W3

      DJNZ R7,W2

      DJNZ R5,DELAY

      RET

TABLE1:DW 64260,64400,64524,64580        ;音符計(jì)數(shù)植

       DW 64684,64777,64820,64898

       DW 64968,65030,65058,65110

DW 65157,65178,65217

 

 TABLE:DB 82H,01H,81H,94H,84H           ;節(jié)拍表

       DB 0B4H,0A4H,04H

       DB 82H,01H,81H,94H,84H

DB 0C4H,0B4H,04H

 

 

       DB 82H,01H,81H,0F4H,0D4H

       DB 0B4H,0A4H,94H

       DB 0E2H,01H,0E1H,0D4H,0B4H

DB 0C4H,0B4H,04H

 

 

       DB 82H,01H,81H,94H,84H

       DB 0B4H,0A4H,04H

       DB 82H,01H,81H,94H,84H

DB 0C4H,0B4H,04H

 

 

       DB 82H,01H,81H,0F4H,0D4H

       DB 0B4H,0A4H,94H

       DB 0E2H,01H,0E1H,0D4H,0B4H

       DB 0C4H,0B4H,04H

       DB 00H

END

  • 上一篇: 廣告燈設(shè)計(jì)(利用取表方式)
  • 下一篇: 用C51實(shí)現(xiàn)單片機(jī)的中文輸入法
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話(huà):0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1