<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機音樂(lè )盒DIY―生日快樂(lè )歌程序

單片機音樂(lè )盒DIY―生日快樂(lè )歌程序

作者: 時(shí)間:2011-12-23 來(lái)源:網(wǎng)絡(luò ) 收藏

基于STC89C52的七彩迷你。在最小系統的基礎上,對其他兩個(gè)I/O口連接硬件電路。P1.0接一個(gè)七彩快閃LED燈。P1.5口接一個(gè)NPN型三極管的放大電路,再連接一個(gè)無(wú)源蜂鳴器(用來(lái)播放樂(lè )曲)。

本文引用地址:http://dyxdggzs.com/article/172292.htm

這樣一個(gè)迷你就完成了。硬件電路非常簡(jiǎn)單,其中任意一個(gè)I/O口都可以作為樂(lè )曲的輸出,信號經(jīng)過(guò)NPN三極管放大驅動(dòng)蜂鳴器發(fā)出電子樂(lè )曲。

緊接著(zhù)就是為單片機設計運行的了,這里我用匯編寫(xiě)了一段《》的。大家可以仿照,我的思路修改樂(lè )曲。

手記:用C52這么大塊頭的單片機,確實(shí)很浪費。因為一共有32個(gè)I/O引腳,設計只用了其中的兩個(gè),非常的浪費。大家可以用其他的單片機代替,例如16引腳的單片機。價(jià)格相對會(huì )便宜一點(diǎn)。

單片機匯編源代碼分享:

  org 0000h

  ajmp main

  org 000bh

  jmp tim0

  org 0030h

  main: ;主

  setb p1.1

  clr p1.4

  setb p3.0

  mov tmod,#01h ;設定時(shí)方式

  mov ie,#82h ;開(kāi)中斷

  start0:

  mov 30h,#00h ;

  next:mov a,30h

  mov dptr,#table

  movc a,@a+dptr ;查表取音調和節拍

  mov r2,a

  jz end0 ;為零,不進(jìn)行處理.

  anl a,#0fh

  mov r5,a ;將節拍存入R5

  mov a,r2

  swap a

  anl a,#0fh

  jnz sing ;根據音調決定是否演奏.

  clr tr0

  jmp d1

  sing:dec a

  mov 22h,a ;將音調存入22H.

  rl a

  mov dptr,#table1

  movc a,@a+dptr ;根據音調決定定時(shí)器初值.

  mov th0,a ;放入TH0

  mov 21h,a

  mov a,22h

  rl a

  inc a

  movc a,@a+dptr

  mov tl0,a ;放入TL0

  mov 20h,a

  setb tr0 ;啟動(dòng)定時(shí)

  d1: call delay

  inc 30h

  jmp next

  end0:clr tr0

  jmp start0

  tim0: ;定時(shí)器中斷服務(wù)程序

  push acc

  push psw

  mov tl0,20h ;重賦初值.

  mov th0,21h

  cpl p1.7

  pop psw

  pop acc

  retidelay:mov r7,#02h ;延時(shí)子程序

  d2: mov r4,#130

  d3: mov r3,#248

  djnz r3,$

  djnz r4,d3

  djnz r7,d2

  djnz r5,delay

  ret

  table1: ;決定音調的定時(shí)初值.

  dw 64260,64400,64524,64580

  dw 64684,64777,64820,64898

  dw 64968,65030,65058,65110

  dw 65157,65178,65217

  table: ;決定音調和節拍的表格,不同的歌曲只是此表不同

  ;1

  db 82h,01h,81h,94h,84h,0b4h,0a4h,04h,82h,01h,81h,94h,84h,0c4h,0b4h,04h

  ;2

  db 82h,01h,81h,0f4h,0d4h,0b4h,0a4h,94h,0e2h,01h,0e1h,0d4h,0b4h,0c4h,0b4h,04h

  ;3

  db 82h,01h,81h,94h,84h,0b4h,0a4h,04h,82h,01h,81h,94h,84h,0c4h,0b4h,04h

  ;4

  db 82h,01h,81h,0f4h,0d4h,0b4h,0a4h,94h,0e2h,01h,0e1h,0d4h,0b4h,0c4h,0b4h,04h,00

  end

DIY機械鍵盤(pán)相關(guān)社區:機械鍵盤(pán)DIY


蜂鳴器相關(guān)文章:蜂鳴器原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>