机械必威体育网址

标题:我自己用单片机做的电子琴 [打印本页]

作者:jili1986729 时间:2009-10-7 13:40
标题:我自己用单片机做的电子琴
本帖最后由 jili1986729 于 2009-10-7 13:42 编辑
6 x# d9 j; O/ R8 }/ h
( F9 J$ I8 U! [+ P2 ~我自己用单片机做的电子琴,比较简单,用了一个功放,自己做了个矩阵键盘
& A R! v6 `* U3 r$ i$ g单片机应该用892051,这里89c51,有点浪费 # G* X# L6 Z' c2 E4 b
[attach]149262[/attach][attach]149264[/attach][attach]149263[/attach]
. X7 _) l) V8 y程序: 5 T+ h; d' ^) ^
ORG 00H ) ~, j/ ~$ M4 \! M# W4 Q& M+ O
AJMP START
' k6 E0 ^& H5 `* OORG 001BH * a4 F* o3 Z4 Q5 I! _5 Z2 c
LJMP TIME1
! r) ?( D6 E6 i- C6 \6 S2 A2 gORG 30H E# r% c8 N, o! z) c
START:MOV TMOD,#10H
, O, H; {& U0 r- R, G! l- mMOV IE,#88H
7 _8 M0 o7 w \KEY:SETB F0 ' m# ?4 M$ d) {
CLR EA % }; E7 y$ H% g9 C' O$ t
CLR TR1 ! l# Q9 M, U( l" B3 |" {
MOV P1,#0F0H
# Y- ?# p- E/ S0 b+ x9 f, eKEY1:MOV A,P1
* X- L* }% T) [. C/ v. CCPL A 2 X. y2 X6 k7 {( e
ANL A,#0F0H ' g* j" R5 E( L/ q% r% ]: H
JZ KEY
: I% i& ]5 [. [/ y8 i( S1 x3 R7 ICLR F0
( N/ M2 g1 {( r" O4 J( sL1: LCALL SKEY ; @! u) H) x1 t, H+ f% C
CLR EA 3 X# z& m+ F4 o) x
CLR TR1 5 G& s+ W" s$ A1 R5 p1 q
JB F0,KEY - U$ w b3 V% t* w1 Z8 z
MOV 22H,A . C! Q& g+ |( e2 A. v
ADD A,22H 0 x, ^/ {2 B) P- O
MOV R3,A
% K2 ~' G% [8 l2 zMOV DPTR,#TABLE1
$ y" ]) Q) l1 R1 vMOVC A,@A+DPTR
% f% Y- d7 M8 u$ GMOV TH1,A : k( p8 T) }1 t# J- {6 I3 r% o* H
MOV 21H,A ) s; `: Q2 M2 H; \
MOV A,R3 $ [, N4 \% m8 s& w( T- s
INC A ) i) u# X: `3 j$ T: T; b
MOVC A,@A+DPTR 7 J: ]* p6 y( S# N
MOV TL1,A
; f8 T: O! [& A- m7 b. X! p2 [MOV 20H,A
" ]& E0 r& J6 U/ u! v/ _SETB EA
( Z; Z% b) `( s$ S7 ]3 qSETB TR1
# s+ D* e) W. b1 J: rL2:CALL SKEY
( G& j$ v V# ]: X5 I/ dSETB EA " k0 W2 F( [. S" |
SETB TR1
2 u V# H+ Q, }$ r, w0 D7 r$ {# cJB F0,KEY , z9 S& M4 W% ]- _( N
LJMP L2
2 x8 j% v/ ^' R8 D# u+ C, g0 a( P1 pSKEY:MOV A,#00 6 q: Q6 J9 I/ V( [# R
MOV R0,A 9 U/ g1 }5 n9 w1 g9 d3 k
MOV R1,A . n/ \+ }0 o* ]6 B
MOV R3,#0FEH 3 G$ S) f1 O; A. s2 X
SKEY2:MOV A,R3 # k$ ?3 g( t c- @- M+ U l, d
MOV P1,A + j2 R k) F4 ?
NOP $ w3 u% f; W, S/ g3 h Z9 G5 M
NOP
( ~+ k/ Y/ c0 _8 W9 rNOP
' F2 r8 z1 Y! c0 w. v5 tMOV A,P1 ) e/ l7 \5 t( e9 A {
MOV R1,A # X- \4 S) R! f& Z* L
CPL A : i* |$ {, U5 |( o1 R
ANL A,#0F0H
- z. Z% d9 i# w# W0 r$ tS123:JNZ SKEY3
) X `: {: l5 B: C; WSETB F0
, P3 G( ~; {1 G, RINC R0 1 E' \) B/ Z2 o: l4 R) X# h
SETB C
5 }2 r/ K4 r5 R1 jMOV A,R3
; r6 A8 D! [+ G% y- {) ORLC A
+ X/ t9 x. k' B; i0 QMOV R3,A 9 H, N2 p4 U: R, W4 v9 M& v
MOV A,R0 $ M* b; Y& m# V0 U& x! M6 s5 L
CJNE A,#04H,SKEY2 : Q2 u9 P" i: P7 z5 }* k
EKEY:RET $ `& K5 q5 |9 W
SKEY3:CLR F0 0 a# d, ~( t, P$ m# K. H2 Y
MOV A,R1
( H( S4 F8 y9 g# P' Y- G; j& `9 B% DJNB ACC.4,SKEY5 1 K" Z6 N5 j5 v3 v2 w% W
JNB ACC.5,SKEY6
: {" J. i% H/ lJNB ACC.6,SKEY7
7 b6 W% d( [8 G4 r. @0 k& PJNB ACC.7,SKEY8
8 b% O" p- B7 o" y7 X9 PAJMP EKEY
( z: ^+ c% N4 N6 }SKEY5:MOV A,#00H h) L7 o/ d3 Y6 V$ ?' ]) [& B$ h5 ^6 v
MOV R2,A
0 L9 w! g5 ^, V$ U; \6 Y# O$ ^$ ^AJMP DKEY
$ O3 R5 l( A0 H: r _+ ]SKEY6:MOV A,#01H
# y1 h, N/ b1 R) DMOV R2,A ! l# O$ Q: r9 z* Q( o
AJMP DKEY 6 K X o$ l& ^, X* c) T
SKEY7:MOV A,#02H & { W9 \+ T" q! C; I2 g
MOV R2,A
, i6 O' g8 Z, V9 v" UAJMP DKEY 9 i/ ^, f- d$ f U( _+ y
SKEY8:MOV A,#03H
" y0 y2 i. ?" M% b5 G- _MOV R2,A
2 A2 m. E" e4 M5 y1 { q7 @AJMP DKEY ' Q# j7 C; M. x. c9 m+ `" V
DKEY:MOV A,R0
6 D. p5 N& |; E; [ACALL DECODE
0 B+ H( [7 K2 `9 A- B; zAJMP EKEY ) |4 B# i! L9 p! M# y' E
DECODE:MOV A,R0 4 W- Y$ ?5 ]2 b6 w/ Q
MOV B,#04H $ I: l/ |: a9 \- P1 N
MUL AB , L; [% i$ f, T z2 B4 F: c( N3 P
ADD A,R2
- ], h: @. S. `+ l4 [) O! @RET # m3 X$ A" z2 T2 K
TIME1: PUSH ACC
7 n* c8 R M# A0 P) J$ uPUSH PSW 1 p( L: X* O& K7 T1 b, y, n
CPL P2.4
M2 C1 B7 D0 }* _/ ^, ?- @MOV TL1,20H # u `+ V% x* z' m6 Z- V% b+ R' R0 s0 p
MOV TH1,21H
o# f/ o1 p, {! ?2 KPOP PSW 9 @ y- R: u4 |" {' l" s
POP ACC
, ~2 }' a L2 Y" QRETI - z! r/ W5 f; o$ K H
TABLE1: DW 64021,64103,64260,64400,64524,64580,64684,64777
% j, L0 v E& a9 lDW 64820,64898,64968,65030,65058,65110,65157,65178 0 H3 ]% W3 B9 V6 X* o3 `: }& \7 V
END
作者:syw开门造车 时间:2009-10-8 06:51
jili1986729 网友好! ; s6 g$ d3 K$ q6 q4 u; E7 S
. 2 s6 _; { R2 e# n2 ~
进入任何一门“陌生”的知识领域,选准正确的路径由为重要,会使你少走弯路。 8 ^) v9 k! o$ H( d9 h( @. A+ `# g6 T
. # F! P/ V2 I5 Z ~9 N/ p8 l
汇编语言,是在计算机技术发展的过程中,由机器码走向高级语言的过程中的一个 6 k2 F1 ^+ c; o; ^7 M+ }' U
过渡语言,当出现了能做底层操作的高级语言的C语言后,汇编语言就应该从高校的 8 f0 E5 ^) w! ?7 U* h7 p$ M
教材中清除出去,以免浪费学生的精力,以提高学时的有效性。
# n( r# [8 ^0 `- q.
) R" j8 }$ u) {我国高校教材的更新存在着滞后现象,做为学生应该学会取舍。
* C; @9 S* V6 s3 Q1 }- e对此,我能给出如下建议: , h# i2 S! a. o4 P
. 1 X* Q5 e' a1 r
1、学单片机应该改用C语言,而抛弃汇编。 6 T3 R1 }: r, _ Z, Q. H
2、应该尽可能的设计出一套自己专用的万能板,以应对“所有的项目”。
4 Y% C, p9 H" `7 y1 F n3、一定要在画专业的PCB电路板方面下足功夫。 # G+ r. n8 r" X
4、…… 7 `$ X7 P. K1 ]6 N# z4 W
.
* E6 O1 b! a Msyw 091008---06.51
作者:郑华 时间:2009-10-8 10:21
不错啊,我在学习!
作者:FLEI200410 时间:2009-10-8 13:27
现在用C语言的比较多
作者:卓信 时间:2009-10-8 14:42
嗯 不错 其实不应该叫电子琴 这个离电子琴远啦 不过能自己动手做东西还是很好的
作者:jili1986729 时间:2009-10-8 18:42
恩,谢谢提醒。 5 d8 X7 R8 ] B* o8 L
因为在学校里学的是汇编。
& D: l2 h* O$ Z) h/ Q& M现在正在学习C语言,感觉C有它的好处,但有时汇编语言也有优势
作者:次元碎片 时间:2009-10-9 11:21
造车总工
+ W% P$ j! C% x+ W9 _ ]' t2 g现在的C语言支持底层编程,能大体说说优势吗?我有10多年没用过汇编了,记得96年用C编了段程序,用工具转换成低汇编,程序量太大了,而直接用汇编编程,短短的几行就可以,不知道现在支持底层编程的C这方面改进的怎么样了,多年没接触单片机,以为大家还都在用汇编呢
作者:zjhioau 时间:2009-10-17 17:18
牛人
作者:舟航 时间:2009-10-17 19:54
在学校时摸索的用用也挺好
作者:cc0579 时间:2009-10-17 20:50
对于很多低端的单片机,还是用汇编比较多,因为考虑到汇编可以更加精简,可以节省很多程序空间,这对于低成本的单片机来说尤为重要。原因很简单,你如果程序量太大,就只好选用程序空间更多,也更贵的单片机来做。像义隆,中翰等单片机都是用汇编的多。 2 y/ I! i: [" _
不过,现在的趋势上,单片机的程序空间越来越大 ,成本越来越低,用C成为了大势所趋。
作者:hobbylinux 时间:2010-1-12 14:08
本帖最后由 hobbylinux 于 2010-1-12 14:09 编辑
3 L3 ?* z5 _- }0 d* R
jili1986729 网友好! / v# I0 J; S) B3 F" u
. " B, x# z( Z1 F7 N9 f6 d; _4 Z; l
进入任何一门“陌生”的知识领域,选准正确的路径由为重要,会使你少走弯路。 0 d2 s! R6 W+ O/ N* q& \' J! q2 ` ! K# l3 C7 Y% T" b$ z8 k! y
. / ?2 f; Q) B; i4 H: N ]2 o5 ^% N+ ]+ B4 k
汇编语言,是在计算机技术发展的过程中,由机器码走向高级语言的过程中的一个过渡语言,当出现了能做底层操作的高级语言的C语言后,汇编语言就应该从高校的 : u+ K! w5 C* f/ i5 W* L7 f * N1 X. W3 j ]. s- ]
教材中清除出去,以免浪费学生的精力,以提高学时的有效性。 , U! [2 F; B$ y7 J2 \. V
我国高校教材的更新存在着滞后现象,做为学生应该学会取舍。 7 ]/ \0 N1 A( [) t5 M
对此,我能给出如下建议:
, L- c8 z! q6 B2 H& A 6 l6 y c9 L , m3 H+ e' r2 Z2 k z
1、学 单片机应该改用C语言,而抛弃汇编。 , }' A( l I5 L+ [; h ! }% a' D/ }( ]7 V7 N* r7 g& Q
2、应该尽可能的设计出一套自己专用的万能板,以应对“所有的项目”。
# u/ S" i/ T& B3、一定要在画专业的PCB电路板方面下足功夫。 : F) F* t$ j6 k4 h" ^, K) ~ X
) Q' O& w0 t) V/ @# m4、…… + J6 w: {) C3 ?1 [9 }( l# t) A
syw开门造车 发表于 2009-10-8 06:51

3 T( r* ~4 H7 G T, k
# n9 M5 a$ D! U6 |" W0 t syw开门造车 兄的话真是有深度,也讲得很对,
5 s& b! P; Y- G( A+ @/ A ?9 d- a我认为还要锁定好是学什么
+ ~/ k9 j) W) [
片机,AVR?或其它。! ?0 L* C% ?9 [2 d
问题是,电路不懂的话,应该从哪里下功夫?

作者:非池中 时间:2010-1-15 23:25
谢谢楼主提醒
作者:honghuzhonggong 时间:2010-1-16 21:52
楼主的单片机学的真好 羡慕死我了 上学那会老师讲单片机硬是听不懂
作者:急速电棍 时间:2010-1-16 21:57
比较简单 不过手工制作牛比




欢迎光临 机械必威体育网址 (//www.szfco.com/) Powered by Discuz! X3.4