有编程高手能提供一个汇编语言实现的简易电子琴程序吗?急!谢谢 50

要求:1~7实现中音,按下左SHIFT实现低音,按下右SHIFT实现高音谢谢啦... 要求:1~7实现中音,按下左SHIFT实现低音,按下右SHIFT实现高音 谢谢啦 展开
 我来答
zhxiufan
推荐于2017-10-16 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38387
国家科技进步奖

向TA提问 私信TA
展开全部
	T0H	EQU 30H
T0L EQU 31H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV SP,#5FH
MOV TMOD,#01H
SETB ET0
SETB EA
LOOP:
MOV DPTR,#FREQ
MOV A,P2 ;控制高中低音区
MOV R1,#0
ANL A,#03H
JB ACC.0,LOOP01
MOV R1,#14
SJMP LOOP0
LOOP01:
JB ACC.1,LOOP0
MOV R1,#28
LOOP0:
JB P0.0,LOOP1 ;控制音频1234567
MOV A,R1
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP1:
JB P0.1,LOOP2
MOV A,R1
ADD A,#2
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
ADD A,#2
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP2:
JB P0.2,LOOP3
MOV A,R1
ADD A,#4
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
ADD A,#4
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP3:
JB P0.3,LOOP4
MOV A,R1
ADD A,#6
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
ADD A,#6
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP4:
JB P0.4,LOOP5
MOV A,R1
ADD A,#8
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
ADD A,#8
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP5:
JB P0.5,LOOP6
MOV A,R1
ADD A,#10
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
ADD A,#10
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP6:
JB P0.6,LOOP7
MOV A,R1
ADD A,#12
MOVC A,@A+DPTR
MOV T0H,A
INC DPTR
MOV A,R1
ADD A,#12
MOVC A,@A+DPTR
MOV T0L,A
LJMP LOOP
LOOP7:
CLR TR0
LJMP LOOP
;-----------------------------
T0ISR:
CLR TR0
MOV TH0,T0H
MOV TL0,T0L
SETB TR0
CPL P3.0
RETI
;-----------------------------
FREQ:
DB 0F2H,03DH ;低音1
DB 0F3H,0BDH ;低音2
DB 0F5H,014H ;低音3
DB 0F5H,0B1H ;低音4
DB 0F6H,0D0H ;低音5
DB 0F7H,0D1H ;低音6
DB 0F8H,0B5H ;低音7

DB 0F9H,01EH ;中音1
DB 0F9H,0DEH ;中音2
DB 0FAH,08AH ;中音3
DB 0FAH,0D8H ;中音4
DB 0FBH,068H ;中音5
DB 0FBH,0E8H ;中音6
DB 0FCH,05AH ;中音7
 
DB 0FCH,08FH ;高音1
DB 0FCH,0EFH ;高音2
DB 0FDH,045H ;高音3
DB 0FDH,06CH ;高音4
DB 0FDH,0B4H ;高音5
DB 0FDH,0F4H ;高音6
DB 0FEH,029H ;高音7
;-----------------------------
END
anan640925
2012-11-29 · TA获得超过5421个赞
知道大有可为答主
回答量:4868
采纳率:51%
帮助的人:1107万
展开全部
两个步骤
1要用中断程序16读到键盘的状态,

2要利用8253控制输出频率,发出声音来。

假如读取中断16不够信息的话,就改造中断9,把相关键盘状态记录到特定位置。

这个程序的水平好高啊,这个可是俺们当时的梦想啊
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙里波特
2012-11-25 · TA获得超过5251个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:642万
展开全部
是不是,小写时,低音,大写时,高音?
追问
是同时按下左shift和数字键发出低音,同时按下右shift和数字键发出低音
追答
难到不难,就是麻烦点。

读出左、右shift,需要读出两个字节。

一般,键盘上,上、下排列了四行按键,输出不同的音调,也够用了。
每个按键,读出一个字节,就行了,没有弄过读出两个字节的。

如果这样深入要求,左右Ctrl,还可以升降半音,或者加上颤音,
太麻烦了,大概没有人会弄的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lichuangdt
2012-11-24
知道答主
回答量:18
采纳率:0%
帮助的人:10.2万
展开全部
没有
追问
不带这样欺负人的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泥凌波Rs
2012-12-03 · TA获得超过1920个赞
知道大有可为答主
回答量:8784
采纳率:0%
帮助的人:2123万
展开全部
要求真
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式