導航:首頁 > 操作系統 > 單片機音樂盒按鍵系統

單片機音樂盒按鍵系統

發布時間:2025-02-19 14:42:51

單片機開發板有什麼用途

1、可以作為燒寫器(即編程器),將自己寫好的程序寫入單片機中,但燒寫單片機的種類單一 ,型號也不會太多。

2、可以利用開發板上的一些硬體做一些單片機實驗(不需要自己搭建實驗電路)有利於初學者使用。

單片機的學習需要理論和動手,理論與實踐並重。

(1)單片機音樂盒按鍵系統擴展閱讀:

單片機開發板介紹

單片機開發板是用於學習51、STC、AVR型號的單片機實驗設備。

根據單片機使用的型號又有51單片機開發板、STC單片機開發板、AVR單片機開發板。

常見配套有硬體、實驗程序源碼、電路原理圖、電路PCB圖等學習資料。

例如電子人單片機開發板,針對部分學者需要特別配套有VB上位機軟體開發,游戲開發等教程學習資料,開發此類單片機開發板的公司一般提供完善的售後服務與技術支持。

② 跪求51單片機音樂盒匯編語言程序,急用!!!!謝謝@@

HUAN BIT 20H
ORG 0000H
JMP MAIN
ORG 000BH
MOV TL0,R2
MOV TH0,R3
CPL P2.0
ORG 001BH
DJNZ R4,GOON
MOV IE,#80H
JMP T1END
GOON: MOV TL1,#0B0H
MOV TH1,#3CH
T1END: RETI
ORG 0100H
MAIN: MOV R5,#99H
LOOP: MOV TMOD,#11H
MOV IP,#02H
MOV TL0,#0B0H
SETB EA
NEXT: MOV DPTR,#TAB
MOV R1,#00H
L1: MOV A,R1
MOVC A,@A+DPTR
MOV R3,A
JZ L3
INC R1
MOV A,R1
MOVC A,@A+DPTR
MOV R2,A
XRL A,#0FFH
JNZ L4
MOV A,R3
XRL A,#0FFH
JZ L5
L4: INC R1
MOV A,R1
L3: MOVC A,@A+DPTR
MOV R4,A
MOV TH0,R3
MOV TL0,R2
SETB ET0
SETB TR0
SETB ET1
SETB TR1
SETB HUAN
JB HUAN,$
INC R1
CJNE R1,#00H,L2
INC DPH
L2: JMP L1
L5: DJNZ R5,LOOP
JMP $
;《兩只老虎》播放數據
TAB: DB 0FBH,0F9H,08H,0FCH,066H,08H,0FCH,0C7H,08H,0FBH,0F9H,08H
DB 0FBH,0F9H,08H,0FCH,066H,08H,0FCH,0C7H,08H,0FBH,0F9H,08H
DB 0FCH,0C7H,08H,0FCH,0F3H,08H,0FDH,0A4H,10H,0FCH,0C7H,08H
DB 0FCH,0F3H,08H,0FDH,04AH,08H,0FDH,04AH,04H,0FDH,095H,04H
DB 0FDH,04AH,04H,0FCH,0F3H,04H,0FCH,0C7H,08H,0FBH,0F9H,08H
DB 0FDH,04AH,04H,0FDH,095H,04H,0FDH,4AH,08H,04H,0FCH,0FCH,04H
DB 0FCH,0C7H,08H,0FBH,0F9H,08H,0FCH,066H,08H,0FAH,093H,08H
DB 0FBH,0F9H,08H,00H,08H,0FCH,66H,04H,0FAH,093H,08H
DB 0FBH,0F9H,08H,00H,10H,0FFH,0FFH
END
要播放其餘的歌則用相應的播放數據

③ 求一份基於AT89C51單片機課程設計音樂盒,程序是C語言寫的,不是匯編。在數碼管上顯示四首歌的序號,1~4。

#include <reg52.h>
#include "Music.h"
#include "SoundPlay.h"
#include "lcd.h"
#define SYSTEM_OSC 12000000 //定義晶振頻率12000000HZ
#define SOUND_SPACE 4/5 //定義普通音符演奏的長度分率,//每4分音符間隔
sbit BeepIO = P2^0; //定義輸出管腳
unsigned char code an[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//an code 0~9
unsigned int code FreTab[12] = { 262,277,294,311,330,349,369,392,415,440,466,494 }; //原始頻率表
unsigned char code SignTab[7] = { 0,2,4,5,7,9,11 }; //1~7在頻率表中的位置
unsigned char code LengthTab[7]= { 1,2,4,8,16,32,64 };
unsigned char Sound_Temp_TH0,Sound_Temp_TL0; //音符定時器初值暫存
unsigned char Sound_Temp_TH1,Sound_Temp_TL1; //音長定時器初值暫存
//*******************************************************************
#define MaxNo 3 //定義歌曲數目
unsigned char code *Sound;
unsigned char code * code Music[MaxNo]={Music_4,Music_8,Music_7,Music_6,Music_5,Music_9,Music_3,Music_2,Music_1};
signed char FlagNo=0;
static unsigned char KeyScan(void);
static void Beep(void);
bit RunStop = 1;//1表示運行
sbit KeyB =P3^2; // 上一首
sbit KeyF =P3^3; //下一首
sbit KeyT =P3^5; //暫停
extern void Delay1ms(unsigned int);
void InitialSound(void)
{
BeepIO = 0;
Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256; // 計算TL1應裝入的初值 (10ms的初裝值)
Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256; // 計算TH1應裝入的初值
TH1 = Sound_Temp_TH1;
TL1 = Sound_Temp_TL1;
TMOD |= 0x11; //兩個定時器都工作在方式1
ET0 = 1;
ET1 = 0;
TR0 = 0;
TR1 = 0;
EA = 1;
FlagNo = 0;
Sound = Music[FlagNo];
P1 = an[FlagNo+1];
}
void BeepTimer0(void) interrupt 1 //音符發生中斷
{
BeepIO = !BeepIO;
TH0 = Sound_Temp_TH0;
TL0 = Sound_Temp_TL0;
}
//*******************************************************************
void Play(unsigned char Signature,unsigned Octachord,unsigned int Speed)
{
unsigned int NewFreTab[12]; //新的頻率表
unsigned char i,j;
unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength;
unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;
#ifdef USE_LCD
lcd_init();
lcd_write_string(0,"MusicPlayer");
#endif
Again :
Delay1ms(600);
for(i=0;i<12;i++) // 根據調號及升降八度來生成新的頻率表
{
j = i + Signature;
if(j > 11)
{
j = j-12;
NewFreTab[i] = FreTab[j]*2;
}
else
NewFreTab[i] = FreTab[j];
if(Octachord == 1)
NewFreTab[i]>>=2;
else if(Octachord == 3)
NewFreTab[i]<<=2;
}
SoundLength = 0;
while(Sound[SoundLength] != 0x00) //計算歌曲長度
{
SoundLength+=2;
}
Point = 0;
Tone = Sound[Point];
Length = Sound[Point+1]; // 讀出第一個音符和它時時值
LDiv0 = 12000/Speed; // 算出1分音符的長度(幾個10ms)
LDiv4 = LDiv0/4; // 算出4分音符的長度
LDiv4 = LDiv4-LDiv4*SOUND_SPACE; // 普通音最長間隔標准
TR0 = 0;
TR1 = 1;
while(Point < SoundLength)
{
if(KeyScan())goto Again; /*more keyscan for speed*/
SL=Tone%10; //計算出音符
SM=Tone/10%10; //計算出高低音
SH=Tone/100; //計算出是否升半
CurrentFre = NewFreTab[SignTab[SL-1]+SH]; //查出對應音符的頻率
if(KeyScan())goto Again; /*more keyscan for speed*/
if(SL!=0)
{
if (SM==1) CurrentFre >>= 2; //低音
if (SM==3) CurrentFre <<= 2; //高音
Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);//計算計數器初值
Sound_Temp_TH0 = Temp_T/256;
Sound_Temp_TL0 = Temp_T%256;
TH0 = Sound_Temp_TH0;
TL0 = Sound_Temp_TL0 + 12; //加12是對中斷延時的補償
}
if(KeyScan())goto Again; /*more keyscan for speed*/
SLen=LengthTab[Length%10]; //算出是幾分音符
XG=Length/10%10; //算出音符類型(0普通1連音2頓音)
FD=Length/100;
LDiv=LDiv0/SLen; //算出連音音符演奏的長度(多少個10ms)
if (FD==1)
LDiv=LDiv+LDiv/2;
if(XG!=1)
if(XG==0) //算出普通音符的演奏長度
if (SLen<=4)
LDiv1=LDiv-LDiv4;
else
LDiv1=LDiv*SOUND_SPACE;
else
LDiv1=LDiv/2; //算出頓音的演奏長度
else
LDiv1=LDiv;
if(SL==0) LDiv1=0;
LDiv2=LDiv-LDiv1; //算出不發音的長度
if(KeyScan())goto Again; /*more keyscan for speed*/
if (SL!=0)
{
TR0=1;
for(i=LDiv1;i>0;i--) //發規定長度的音
{
while(TF1==0);
TH1 = Sound_Temp_TH1;
TL1 = Sound_Temp_TL1;
TF1=0;
if(KeyScan())goto Again; /*more keyscan for speed*/
}
}
if(KeyScan())goto Again; /*more keyscan for speed*/
if(LDiv2!=0)
{
TR0=0; BeepIO=0;
for(i=LDiv2;i>0;i--) //音符間的間隔
{
while(TF1==0);
TH1 = Sound_Temp_TH1;
TL1 = Sound_Temp_TL1;
TF1=0;
if(KeyScan())goto Again; /*more keyscan for speed*/
}
}
Point+=2;
Tone=Sound[Point];
Length=Sound[Point+1];
if(KeyScan())goto Again; /*more keyscan for speed*/
#ifdef USE_LCD
lcd_write_char(12,FlagNo+49);
#endif
}
BeepIO = 0;
FlagNo ++;
if (FlagNo == MaxNo)FlagNo =0;
Sound = Music[FlagNo];
P1 = an[FlagNo+1];
}
/**************************************************************
功能: 鍵盤掃描函數
入參: viod KeyF 下一首
KeyB 上一首
KeyT 暫停
返回: unsigned char
1 需跳轉 0 不跳轉
***************************************************************/
static unsigned char KeyScan(void)
{
unsigned char Cont;
if (KeyF == 0){ //前進
Delay1ms(5);
if (KeyF == 0){
while(KeyF == 0){
EA = 0;
FlagNo ++;
if (FlagNo == MaxNo)FlagNo =0;
P1 = an[FlagNo+1];
Beep();
Delay1ms(600); //是長按
EA = 1;
}
if (FlagNo == MaxNo)FlagNo =0;
Sound = Music[FlagNo];
P1= an[FlagNo+1]; //刷顯示
while(KeyF == 0);
return 1;
}
}
if (KeyB == 0){ //後退
Delay1ms(5);
if (KeyB == 0){
while(KeyB == 0){
EA = 0;
FlagNo --;
if (FlagNo == -1)FlagNo =MaxNo-1;
P1 = an[FlagNo+1];//刷顯示
Beep();
Delay1ms(600); //是長按
EA = 1;
}
if (FlagNo == -1)FlagNo =MaxNo-1;
Sound = Music[FlagNo];
P1 = an[FlagNo+1];
while(KeyB == 0);
return 1;
}
}
if (KeyT == 0){ //暫停
Delay1ms(20);
Cont = 0;
EA = 0;
TR0 = 0;
TR1 = 0;
if (KeyT == 0){
RunStop = ~RunStop;
while(KeyT == 0); //等待第一次釋放
Beep();
if (!RunStop){ //是暫停 則關中斷和定時器
EA = 0;
TR0 = 0;
TR1 = 0;
while(KeyT == 0); //檢測第二次按鍵 並等待它釋放(若有的話)
while (KeyT){ //第二次釋放了 等待第三次按下
P1 = an[Cont++%10]; //第三次未按下 則暫停數秒0~9
Delay1ms(100);
} //此處暫停 直到再次有按鍵低電平
EA = 1; //重開定時器和中斷
TR0 = 1;
TR1 = 1;
Sound = Music[FlagNo];
P1 = an[FlagNo+1]; //恢復原來的顯示
}
}
EA = 1;
TR0 = 1;
TR1 = 1;
return 0;
}
return 0;
}
void Beep(void)
{
unsigned char i;
for(i = 0;i < 200 ;i ++){
BeepIO = ~BeepIO;
Delay1ms(1);
}
}
Playmusic:
#include <REG52.H>
#include "Music.h"
#include "SoundPlay.h"
void Delay1ms(unsigned int count)
{
unsigned int i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++);
}
main()
{
InitialSound();
while(1)
{
Play(0,3,380);
Delay1ms(500);
}
}
Music:
#include "Music.h" //*****************************Music********************************
//揮著翅膀的女孩
unsigned char code Music_1[]={
0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03,
0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03,
0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03,
0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02,
0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03,
0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03,
0x1B,0x03, 0x1F,0x03, 0x1F,0x03, 0x17,0x03, 0x18,0x03,
0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03,
0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03,
0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02,
0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,
0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,
0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,
0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03,
0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03,
0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,
0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,
0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,
0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,
0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03,
0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03,
0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,0x03,
0x17,0x04, 0x18,0x0E, 0x18,0x03, 0x17,0x04, 0x18,0x0E,
0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03,
0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66,
0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03,
0x1F,0x66, 0x1F,0x04, 0x1B,0x0E, 0x1B,0x03, 0x19,0x03,
0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,
0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04,
0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,
0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03,
0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03,
0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,
0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02,
0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02,
0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00};
//同一首歌
unsigned char code Music_2[]={
0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03,
0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02
0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02,
0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66,
0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00,
0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03,
0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02,
0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03,
0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03,
0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C,
0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66,
0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03,
0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01,
0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02,
0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03,
0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70,
0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66,
0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02,
0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C,
0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66,
0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00,
0x00,0x00 };
//兩只蝴蝶
unsigned char code Music_3[] ={
0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03,
0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02,
0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,
0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03,
0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01,
0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03,
0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x01,
0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03,
0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02,
0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,
0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x19,0x03,
0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01,
0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03,
0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0D, 0x15,0x00,
0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03,
0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03,
0x16,0x0D, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03,
0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03,
0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03,
0x19,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E,
0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E,
0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03,
0x17,0x0D, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03,
0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03,
0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x03,
0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02,
0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01,
0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03,
0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x0F,0x02,
0x10,0x03, 0x15,0x00, 0x00,0x00 };

④ 想在單片機中燒一首歌(MP3)做音樂盒 需要哪些器材 怎麼做

呃,。。

這個比較復雜,
存在的問題如下:

1.一般的單片機的容量有限,幾K到幾十K甚至上百K不等,而一首MP3一般要幾M大小。。。這個差距你也能看的出來。。。除非外擴存儲空間,比如說flash,比如說SD卡之類的。。。

2.MP3是壓縮格式,按你說的做成音樂盒的話,肯定要解壓縮,一般的單片機的RAM也很有限,運算速度也很一般,軟解碼的話不現實;除非選擇硬解碼,這樣的話就要外加晶元。。。

再這樣分析下去估計你做成的就不是一個音樂盒了,而是一款「MP3」了。。。

生活中常見的那些會唱歌的玩具呀,短暫錄音的喇叭呀,汽車上那種「倒車請注意」或者語音報站之類的東西呀,都不是用你想像的方案實現的,用的是專門的語音錄制晶元。。。

當然,也可能是在下的見識有限,沒有接觸過能實現你這個要求的方案,

還有就是有個「凌陽」的單片機,似乎在語音方面比較擅長(本人也沒用過,不敢妄斷),你可以在網上了解一下。

希望以上回答能對你有所幫助。

---------------------------mscfox

---------------------------
我想知道你還想了解哪方面的?

⑤ 單片機音樂盒MOV DPTR,#DAT ;表頭地址送DPTR 怎樣送

如:MOV DPTR,#07EE
MOV @DPTR #0056
的意思是把立即數(DAT)送到DPTR中,其中DPH是高8位,DPL是低8位,
然後DPTR的內容作為地址,就是將0056送到07EE這個單元中。懂了么,不懂的話, 可以找我,QQ:309570317

閱讀全文

與單片機音樂盒按鍵系統相關的資料

熱點內容
口才訓練手冊編譯口才精品書系 瀏覽:995
linuxfunc 瀏覽:266
高德地圖解壓後的文件 瀏覽:636
php加水印類 瀏覽:225
編譯原理定義表格和編寫查找函數 瀏覽:349
指數函數和對數函數的高精度快速演算法 瀏覽:207
c預編譯干什麼 瀏覽:24
hp網路共享文件夾 瀏覽:365
程序員如何不被廢 瀏覽:806
二進制流轉pdf 瀏覽:916
php判斷爬蟲 瀏覽:571
960除24除4簡便演算法 瀏覽:786
關於解壓英語翻譯 瀏覽:565
python控制鍵盤右鍵 瀏覽:921
php沒有libmysqldll 瀏覽:829
時政新聞app哪個好 瀏覽:906
手機已加密怎麼辦 瀏覽:201
安卓手機截屏怎麼傳到蘋果 瀏覽:529
京管家app哪裡下載 瀏覽:33
文件夾橫向排列的豎向排列 瀏覽:454