机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 6812|回复: 13

我自己用单片机做的电子琴

[复制链接]
发表于 2009-10-7 13:40:44 | 显示全部楼层 |阅读模式
本帖最后由 jili1986729 于 2009-10-7 13:42 编辑
' s- ?/ X2 T7 b: n) P" Z5 C$ d; U0 [9 l. P* z
我自己用单片机做的电子琴,比较简单,用了一个功放,自己做了个矩阵键盘
4 C) Z* [% k9 k9 G" J; y单片机应该用892051,这里89c51,有点浪费
0 F: u8 `* j0 V7 \3 s" C
; {; |8 X: \3 y$ U程序:9 V/ G7 B- k& c& G
ORG 00H2 P1 }+ d# ?& Q& X  F9 m
AJMP START
6 K( S7 o& b% GORG 001BH
% s/ [- E2 M! h: wLJMP TIME12 _9 \0 `+ r  Y3 w; ^& [
ORG 30H  K# N; ]1 {/ ?  @: P$ T5 n
START:MOV TMOD,#10H, ~! I# R! p; ]! Q% H: |, k8 T
      MOV IE,#88H
/ q% L2 l; ~3 n# {# |KEY:SETB F0
6 O6 ~" @4 M5 {% p    CLR EA
# g  U0 E! n( `8 n3 h) QCLR TR1; @  A. @$ ~. Y1 U% p5 n
    MOV P1,#0F0H, T' s% s" r! z
KEY1:MOV A,P1& b; q8 h1 u2 x
  CPL A2 V( J2 y8 q* {- ]* ^
  ANL A,#0F0H- T4 K+ E8 D3 ^) I
  JZ KEY
% I1 G% t* Q) }3 w' b, y  CLR F0
1 N0 g1 e1 P9 b) w. B, B7 j8 UL1: LCALL SKEY
, }9 r# N3 {+ c1 q, D  CLR EA8 {) a; M# ~* m  y; Y
  CLR TR1# p8 N$ k: b1 o$ E
  JB F0,KEY
- H& d2 d7 ^) UMOV 22H,A
1 {' M; k* ^8 \' f8 _0 k$ _   ADD A,22H
0 b% W: x; y' h2 \. ^9 [) m& x   MOV R3,A
' I: _1 [+ h1 Y! z. u   MOV DPTR,#TABLE1& U' q% v7 l2 d8 d! q' N: s9 ~+ E
   MOVC A,@A+DPTR! n, N7 h( U/ \' _) R0 _
   MOV TH1,A$ Y. o* o* x  S! ]
   MOV 21H,A; M& H$ }6 _5 E
   MOV A,R3" v3 U3 `! t; g8 c
   INC A
( s% p0 |( B/ A# _; h) t( g& }% N/ ]0 x   MOVC A,@A+DPTR
8 q( G! ?: g. _8 ]. o7 c   MOV TL1,A
- u5 O- v6 j% t8 f   MOV 20H,A5 _& E6 X" u) C* q1 l  f/ ^- b: H
      SETB EA
( o  H7 |' e* y, D   SETB TR1
+ j9 u' j, }, l4 q4 \L2:CALL SKEY
( o" ^( t  P$ b2 J* Q. j   SETB EA
( a$ Q& w9 P/ F  Q   SETB TR1. C/ Q# U' d7 q; C
   JB F0,KEY' r% I5 L" j& e
   LJMP L2
1 N+ x% A) f8 W( O: S+ P5 y; VSKEY:MOV A,#00( r2 ^$ L6 a! d8 E0 d' ?
     MOV R0,A
. U1 q+ J4 N+ Y) |  MOV R1,A4 \0 D! s1 W5 W; M: ]6 x
  MOV R3,#0FEH
8 X$ I( n0 S0 n4 Y6 ~; xSKEY2:MOV A,R33 J+ P' M. o3 g3 t/ P/ d2 a: c% Y
      MOV P1,A/ L( m2 L& E! T7 M, m( k! J+ U5 X
   NOP
' s& Q7 Z  i, ^5 `" H   NOP
# j2 Z4 v  y) B$ a5 M9 C4 _   NOP
, w; {* m5 e. m  `   MOV A,P15 s1 }4 e- o5 q, A
   MOV R1,A
: k" F- _8 [/ u      CPL A
; b# ]3 @4 I- [3 ^" _) P) S   ANL A,#0F0H
+ I# w" e9 @2 H" s9 k2 b% vS123:JNZ SKEY3
- V% n% F! P3 `- H  SETB F0. H6 c' \; ?1 q. h
     INC R0
3 e- d5 R8 V& ~  SETB C  c8 c& _9 ^1 |2 H, s0 x: V* L* ]
  MOV A,R3* g0 F& x8 O4 i6 T3 Z  n( H
  RLC A
7 m) l/ A; K: p8 ~+ h  MOV R3,A# \4 i" t( _' c" N
  MOV A,R09 p* X( e, y5 M  Z
  CJNE A,#04H,SKEY24 x5 M4 K* T0 c; m
EKEY:RET
+ i( }6 ^5 N9 @; I8 `SKEY3:CLR F0
1 C& j6 t2 Z7 M6 A( W      MOV A,R1
; l$ N6 Q/ }  v3 ?8 I# T. G: s      JNB ACC.4,SKEY51 G+ N, d) X/ ]+ a( a
   JNB ACC.5,SKEY67 P$ Q( {$ T- ^& z2 l
   JNB ACC.6,SKEY78 }# t4 }. K$ F- @- I# h. A
   JNB ACC.7,SKEY8
: P6 A; ]" M9 S9 y+ G9 C1 v% _/ h   AJMP EKEY
) ~1 X* I% B3 R6 o7 H3 E" jSKEY5:MOV A,#00H5 D4 h: P, B0 D, K
      MOV R2,A
5 O/ I4 o5 _3 r8 ?  t0 F3 b   AJMP DKEY4 l5 H! i7 c: p
SKEY6:MOV A,#01H
' B+ @: D* i3 w) J: S  z      MOV R2,A# |) I% ^1 M' l1 ]0 ?  ]
   AJMP DKEY
2 j5 M4 F& @- Q, V% p9 _SKEY7:MOV A,#02H
- W$ p, D3 m' \( |     MOV R2,A* S$ s+ F3 u( b* ?- z& E  I! M
  AJMP DKEY: W8 E  |% I1 Z1 s& R! l+ b
SKEY8:MOV A,#03H! I; L! L- h( E2 s! b- I
      MOV R2,A
% }4 x$ d; C" y+ B5 i+ T   AJMP DKEY
9 C$ \& N, D; o# G( I/ ~DKEY:MOV A,R0
+ @% x! S+ x& v7 Y     ACALL DECODE% ~- L6 m+ q+ ~
  AJMP EKEY+ l/ C; m% L; _5 x$ h! q$ C5 S
DECODE:MOV A,R0
0 i0 m7 k) E( H! X       MOV B,#04H; l1 I( z/ O4 V% T  j
    MUL AB& Y4 _8 F4 U6 P, _
    ADD A,R2
- U/ ]9 @4 r, ~+ t    RET) N) I  ?9 }. L
TIME1:   PUSH ACC
" K& I$ t. }  d% ]      PUSH PSW8 E& |  U- @5 X
   CPL P2.4
" m* x9 _4 o" }+ h2 I* Y8 ?   MOV TL1,20H
' N8 r* P2 V: O: P* W   MOV TH1,21H  M0 h/ [- j1 o7 s
   POP PSW( T2 e! h, X" K$ H9 D0 M. a" l
   POP ACC- h7 a" ^. j: k
   RETI0 [* }, N, k2 O" E/ ?
TABLE1:  DW 64021,64103,64260,64400,64524,64580,64684,64777
3 I) E  Q+ c; y' O6 M: p       DW 64820,64898,64968,65030,65058,65110,65157,65178! d0 F* ^5 F7 t; ?* Z7 m
END

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
回复

使用道具 举报

发表于 2009-10-8 06:51:24 | 显示全部楼层
jili1986729 网友好!
! t( F7 r5 i9 u. l' |.) o  }- r! l2 ?. i, h' Y0 T* J
进入任何一门“陌生”的知识领域,选准正确的路径由为重要,会使你少走弯路。
. j( Y$ o# Y2 K3 p4 D  [: j, t; `# l./ V5 J  E. N; D  @
汇编语言,是在计算机技术发展的过程中,由机器码走向高级语言的过程中的一个1 d  j4 C% y# q6 i' B4 S/ P( ]6 c
过渡语言,当出现了能做底层操作的高级语言的C语言后,汇编语言就应该从高校的5 }' O* W1 N2 P5 @' a) |2 [; N
教材中清除出去,以免浪费学生的精力,以提高学时的有效性。& B1 I7 w/ E! g' b: J% ]! Q
.1 V( F  C$ K8 q/ y7 n: v6 L5 w
我国高校教材的更新存在着滞后现象,做为学生应该学会取舍。' N- h7 p( e6 x; }
对此,我能给出如下建议:) s& n+ O: t( c6 m
.
* o0 t8 n% E, k8 p4 F. Z2 [# e( p1、学单片机应该改用C语言,而抛弃汇编。3 M$ ~9 e1 D; Q. J+ }6 D
2、应该尽可能的设计出一套自己专用的万能板,以应对“所有的项目”。
% x, h2 i2 \& X5 W) K. N3、一定要在画专业的PCB电路板方面下足功夫。( \- Y, p9 B0 e
4、……) A+ Q5 F  e5 ]# z$ r
." M9 F0 X7 o- r" q) D2 F3 n5 s; |
syw  091008---06.51
回复 支持 反对

使用道具 举报

发表于 2009-10-8 10:21:03 | 显示全部楼层
不错啊,我在学习!
回复 支持 反对

使用道具 举报

发表于 2009-10-8 13:27:28 | 显示全部楼层
现在用C语言的比较多
回复 支持 反对

使用道具 举报

发表于 2009-10-8 14:42:44 | 显示全部楼层
嗯 不错 其实不应该叫电子琴  这个离电子琴远啦  不过能自己动手做东西还是很好的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-8 18:42:02 | 显示全部楼层
恩,谢谢提醒。
3 F. J! b! \# u因为在学校里学的是汇编。
. g# {5 |. ^2 G" H现在正在学习C语言,感觉C有它的好处,但有时汇编语言也有优势
回复 支持 反对

使用道具 举报

发表于 2009-10-9 11:21:54 | 显示全部楼层
造车总工8 n: v, V1 S6 L6 M( ~
现在的C语言支持底层编程,能大体说说优势吗?我有10多年没用过汇编了,记得96年用C编了段程序,用工具转换成低汇编,程序量太大了,而直接用汇编编程,短短的几行就可以,不知道现在支持底层编程的C这方面改进的怎么样了,多年没接触单片机,以为大家还都在用汇编呢
回复 支持 反对

使用道具 举报

发表于 2009-10-17 17:18:27 | 显示全部楼层
牛人
回复 支持 反对

使用道具 举报

发表于 2009-10-17 19:54:55 | 显示全部楼层
在学校时摸索的用用也挺好
回复 支持 反对

使用道具 举报

发表于 2009-10-17 20:50:37 | 显示全部楼层
对于很多低端的单片机,还是用汇编比较多,因为考虑到汇编可以更加精简,可以节省很多程序空间,这对于低成本的单片机来说尤为重要。原因很简单,你如果程序量太大,就只好选用程序空间更多,也更贵的单片机来做。像义隆,中翰等单片机都是用汇编的多。" \% ^: a0 a  O0 l6 A4 v% p2 r
不过,现在的趋势上,单片机的程序空间越来越大 ,成本越来越低,用C成为了大势所趋。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-2-19 06:17 , Processed in 0.064729 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表