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