一、 設(shè)計題目:
設(shè)計一簡易電子琴,要求能夠發(fā)出1、2、3、4、5、6、7等七個音符。
使用元件:AT89C51、LM324,喇叭,按鍵等
二、 設(shè)計目的
(1)能夠?qū)﹄娮与娐、電子元器件、印制電路板等方面的知識有進一步的認識,獨立對其進行測試與檢查。
(2)熟悉8051單片機的內(nèi)部結(jié)構(gòu)和功能,合理使用其內(nèi)部寄存器,能夠完成相關(guān)軟件編程設(shè)計工作。
(3)為實現(xiàn)預期功能,能夠?qū)ο到y(tǒng)進行快速的調(diào)試,并能夠?qū)Τ霈F(xiàn)的功能故障進行分析,及時修改相關(guān)軟硬件。
(4)對軟件編程、排錯調(diào)試、焊接技術(shù)、相關(guān)儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。
方案一:產(chǎn)生按鍵音符
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP BREAK
MAIN: MOV TMOD,#01H ;設(shè)置定時器0的工作方式
SETB EA
SETB ET0 ; 設(shè)置定時器0中斷
SETB TR0 ; 啟動定時器0
WAIT1: LCALL KEY ; 調(diào)用KEY子程序,判斷有鍵按下否?第幾個鍵?
CLR EA ;屏蔽中斷
CJNE R3,#00H,WAIT1 ;如果R3=0,表示有鍵按下
MOV A,22H ;將22H里存放的按鍵號送給A
RL A ; 因為查表里都是字,所以得乘2查得數(shù)據(jù)
MOV DPTR,#TABLE ;指向表頭
MOVC A,@A+DPTR ; 查表
MOV TH0,A ;將數(shù)據(jù)高位送TH0
MOV 21H,A ; 將高位備份
MOV A,22H ;將22H里存放的按鍵號送給A
RL A ;因為查表里都是字,所以得乘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子程序,判斷有鍵按下否?第幾個鍵?
MOV R1,#0FFH
MOV R0,#00H
MOV A,R1
MOV
|