简易电子琴
Speaker BIT P3.2 ;P3.2(INT0) 接扬声器 ORG 0000H ljmp Start org 000bh LJMP Timer0Int ORG 0030H
Timer0Int: ;定时中断 push PSW clr TR0
mov TH0, ToneHigh mov TL0, ToneLow setb TR0
mov C, Pulse MOV Speaker,C
CPL Pulse pop PSW reti
ToneTable:
DW 64578,64686,64778,64821 DW 64898,64968,65029 TestKey:
MOV P1, #0FFH ;P1 键盘读入口 查询式 MOV A, P1
CPL A ; 读入键状态
ret
KeyTable:DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,07FH ; 键码定义
GETKEY:
MOV R6,#10 ACALL DELAY MOV A,P1
CJNE A,#0FFH,K01 ;确有键按下 LJMP MLOOP
K01: MOV R3,#8 ;8个键 MOV R2,#0 ;键码
21
简易电子琴
MOV B,A ;暂存键值 MOV DPTR,#KeyTable K02: MOV A,R2
MOVC A,@A+DPTR ;从键值表中取键值 CJNE A,B,K04 ;键值比较 MOV A,R2 ;得键码 INC A RET
K04: INC R2 ;不相等,到继续访问键值表 DJNZ R3,K02
MOV A,#0FFH ;键值不在键值中,即多键同时按下 LJMP MLOOP
Delay: ; 延时子程序 mov r7, #0 DelayLoop:
djnz r7, DelayLoop djnz r6, Delay ret
;######################### Start:
mov sp, #70h
mov TMOD, #01 ; Timer
mov IE, #82h ; EA=1, IT0 = 1 mov Tone,#0 MLoop:
call TestKey jz MLoop call GetKey mov b, a
jz MLoop ; = 0, < 1 anl a, #8
jnz MLoop ; > 8 dec b mov a, b
rl a ; a = a*2 mov b, a
mov dptr, #ToneTable movc a, @a+dptr mov ToneHigh, a mov TH0, a
22
简易电子琴
mov a, b inc a
movc a, @a+dptr mov ToneLow, a mov TL0, a SETB TR0
MOV P1,#0FFH WAIT:
MOV A,P1
CJNE A,#0FFH, WAIT MOV R6,#10 ACALL DELAY CLR TR0 LJMP MLOOP END
3.3 面包板的结构
面包板是实验室中用于搭试电路的重要工具,它本身就是一种免焊电板,熟练掌握面包板的使用方法是提高实验效率,减少实验故障出现机会的基础之一。
下面我们就面包板的结构和使用技巧做一个简单的介绍:面包板的内部结构如图3-2所示,其外观如图3-3所示。面包板分上下两部分,上面部分一般是由一行或两行的插孔构成的窄条,行和行之间电气不连通。每5列插孔为一组,通常的面包板上有10组或11组。对于10组的结构,左边3组内部电气连通,中间4组内部电气连通,右边3组内部电气连通,但左边3组、中间4组以及右边3组之间是不连通的。对于11组的结构,左边4组内部电气连通,中间3组内部电气连通,右边4组内部电气连通,但左边4组、中间3组以及右边4组之间是不连通的。若使用的时候需要连通,必须在两者之间跨接导线。 下面部分是由中间一条隔离凹槽和上下各5行的插孔构成。在同一列中的5个插孔是互相连通的,列和列之间以及凹槽上下部分则是不连通的。
23
简易电子琴
图3-2 面包板的内部结构
在具体使用的时候,通常是两窄一宽同时使用,两个窄条的第一行一般和地线连接,第二行和电源相连。由于集成块电源一般在上面,接地在下面,如此布局有助于将集成块的电源脚和上面第二行窄条相连,接地脚和下面窄条的第一行相连,减少连线长度和跨接线的数量。中间宽条用于连接电路,由于凹槽上下是不连通的,所以集成块一般跨插在凹槽上。
图3-3面包板的外观
24