找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7470|回复: 13

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

[复制链接]
发表于 2009-10-7 13:40:44 | 显示全部楼层 |阅读模式
本帖最后由 jili1986729 于 2009-10-7 13:42 编辑
+ i; b* ]+ D1 c
! c* F9 F  s" U我自己用单片机做的电子琴,比较简单,用了一个功放,自己做了个矩阵键盘# R6 c( f3 r: b6 }, ?
单片机应该用892051,这里89c51,有点浪费- u: J. i, G) Q+ e8 g+ j
; v* `  d& g) u4 C
程序:/ L9 u; D7 B. z& g0 n3 N
ORG 00H( M( y8 _" R2 w1 C* g' g( {
AJMP START# j1 [# J7 A5 |5 `& k0 T
ORG 001BH
- L# w5 w$ ^$ G& Z: l5 tLJMP TIME1+ x3 N) |& b, C2 @2 T# @
ORG 30H1 l; P- b7 j$ W* M# n
START:MOV TMOD,#10H
. |. k$ Z, ?# y" X$ G. B8 d. K      MOV IE,#88H
9 d+ }( ~5 A( JKEY:SETB F0& H+ d  Q/ W( Z; J/ i
    CLR EA- C- R7 G4 F1 C
CLR TR1
) n% o* ]5 N' N6 x/ c- F    MOV P1,#0F0H
* Q" Q5 m+ q6 B3 G0 b1 xKEY1:MOV A,P1
8 k. F& _. O. o1 f: w( C$ J# W  CPL A/ {2 l- B! R# L3 c2 T# e  {% h0 Z/ [) H
  ANL A,#0F0H$ f3 \$ H9 B0 M* T. \/ c
  JZ KEY
( I/ d4 u. s" a6 ]' n4 t0 X9 G  CLR F0
+ e) Z2 ]$ G* O  ^L1: LCALL SKEY
6 p5 ^* R* |# G" o3 J1 k  CLR EA6 _0 X. ]8 N  v/ z3 q
  CLR TR1
9 H4 V( S! E, c( \' m/ `- ?  JB F0,KEY
" s9 u# C. K1 i* JMOV 22H,A9 C& O& C# ]( Q
   ADD A,22H+ k# f& P8 w4 [/ {4 s
   MOV R3,A
; R& p5 P# Y% r9 {% T: o4 n8 Q- D   MOV DPTR,#TABLE1
- ]% ?1 f/ E6 C   MOVC A,@A+DPTR: q7 p& V; a* q+ ?
   MOV TH1,A4 @3 X) k! f/ w3 s% b" M
   MOV 21H,A$ I' q' n0 x6 W% q
   MOV A,R3
& O- F' K3 s& O( W/ y9 T3 H   INC A
6 e. m9 D) T& ]8 b9 x   MOVC A,@A+DPTR9 M$ d; O$ `8 b- E4 p2 Y$ F! ^! H4 ?+ d
   MOV TL1,A
7 q7 w8 n: ~/ E   MOV 20H,A
4 p9 e5 G( S: I: o5 Y* h! {& N      SETB EA
0 y2 D4 r* D9 l   SETB TR1% F- L9 X' s! f$ v$ w, t
L2:CALL SKEY# Q& ?' c- e2 b+ a
   SETB EA: U+ y( h+ U8 O0 |* S4 ~2 M
   SETB TR18 t* T9 }) v; q0 a8 ?
   JB F0,KEY
8 k0 ~4 i+ B' I; b   LJMP L2
: e: l9 ?- y# pSKEY:MOV A,#00
0 f* F1 H& [% H* U* \     MOV R0,A
& t) I! H5 `0 }2 f% Y) ~  MOV R1,A) k" R+ i2 @( w5 W9 Y
  MOV R3,#0FEH) Q8 A* [- a3 O& m) a/ T
SKEY2:MOV A,R3
9 {# ?9 h! z5 Z& M+ z      MOV P1,A9 O" h- ?- e  u  ?; |
   NOP; e! Q0 g1 C: o
   NOP2 n: Q% P& m" x
   NOP
: C9 b. C0 s5 u: E5 m; E   MOV A,P1
. w/ A3 [8 k; d. H# [8 i   MOV R1,A
/ f: C% Y2 F  U6 Q      CPL A' u7 z6 x1 `' H* }4 b6 u4 r
   ANL A,#0F0H2 U) P; B# d- o" V3 @  r& [7 ?
S123:JNZ SKEY3/ i2 R7 \! g+ i  l: |
  SETB F0
) K% ]  ]5 P+ G" L. t     INC R0
, b. j/ d+ L* D7 B7 P1 m  SETB C
+ o: K9 m! i) S8 W( \2 ]  MOV A,R3' Q3 J9 B  B, H: v% Y. H
  RLC A9 y5 F. m! Z4 |9 ~& N
  MOV R3,A+ w) l0 I. v, k2 O* ^& R3 H: F
  MOV A,R0
9 h) ^& h% V" V6 H. d* ^  CJNE A,#04H,SKEY2
8 x% q* F7 W- \0 o1 XEKEY:RET
  e) n: L" v* B: |SKEY3:CLR F0
' n9 s; f# T- a% ^1 D6 v# U      MOV A,R1
, k: }5 F7 y0 V; ^. t) Q      JNB ACC.4,SKEY5
* Y4 O* t- W1 I0 Y  s4 K3 W! x   JNB ACC.5,SKEY63 `/ D! Q7 |' g0 ~* \+ D$ X, N9 x# w$ I
   JNB ACC.6,SKEY7
2 D- Y  v' j  K/ A5 w   JNB ACC.7,SKEY8
) k. m& n; |2 z   AJMP EKEY
3 C5 g% M" q! X* H$ o7 S$ d3 MSKEY5:MOV A,#00H/ K1 K" ~& {; W3 K
      MOV R2,A
2 a6 K) x8 ~% J& z2 a1 z1 C: Z3 u' ]* x   AJMP DKEY
* W7 P3 K' q8 n, t2 X3 OSKEY6:MOV A,#01H
9 G7 h- K% J7 d2 p4 T  a: ?      MOV R2,A
, E# v+ O# b7 }9 s+ O5 m2 Z: r   AJMP DKEY
7 {7 F( [. r2 h# @/ }" ~9 HSKEY7:MOV A,#02H
$ \  x5 A3 J# ^     MOV R2,A
  ^5 l* v6 P" X  AJMP DKEY
/ y$ }& I6 g6 a/ {# u3 Q2 HSKEY8:MOV A,#03H6 q' `9 Z, o/ _$ k7 \
      MOV R2,A
. Z8 R! s" a. \8 S9 b+ l   AJMP DKEY; I7 s0 x7 X& w. O
DKEY:MOV A,R0
: @/ Q9 R) C  ^6 r  v, Y" Y     ACALL DECODE1 G3 E# u( j0 S0 Y1 L( ]6 d
  AJMP EKEY
1 V* J" V7 M& e) TDECODE:MOV A,R0
8 u8 n4 P1 N7 v5 Q       MOV B,#04H
) w/ I# h* p3 G; p) {3 ~5 }    MUL AB# G8 `- z0 F0 }, f
    ADD A,R2+ Y# s8 E7 f6 W
    RET7 [% C  K/ J5 T1 ^% z3 Z1 ^
TIME1:   PUSH ACC# U- ^: `. d8 w
      PUSH PSW/ w! p2 g# v8 m( V  }# x+ ]0 G
   CPL P2.4
5 r# i$ [& B  K- n6 V( L& B   MOV TL1,20H/ m8 H$ H/ P1 F% K9 W
   MOV TH1,21H
5 h1 I4 c. h" _$ Z   POP PSW
3 O. H' p0 t0 C: V   POP ACC$ V6 r& m. |. z2 s2 B7 _3 [
   RETI
) P8 R1 @6 U$ o9 u( o! z, \1 pTABLE1:  DW 64021,64103,64260,64400,64524,64580,64684,64777$ h0 X9 W; s  i" W  n% D$ H
       DW 64820,64898,64968,65030,65058,65110,65157,65178$ |# G  D" h9 g# F* v
END

本帖子中包含更多资源

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

×
回复

使用道具 举报

发表于 2009-10-8 06:51:24 | 显示全部楼层
jili1986729 网友好!, f1 e& I* A& v- q$ l9 ~
.
$ B. z4 U( |) a( q, F5 S" l$ a7 c进入任何一门“陌生”的知识领域,选准正确的路径由为重要,会使你少走弯路。
* m* S' [. x6 O* g" B2 j.
  s/ a7 S, |1 q1 w2 o  S汇编语言,是在计算机技术发展的过程中,由机器码走向高级语言的过程中的一个+ V5 y3 _7 i8 P( n+ h* ]
过渡语言,当出现了能做底层操作的高级语言的C语言后,汇编语言就应该从高校的: a. N; \+ D- S5 q  Y$ \
教材中清除出去,以免浪费学生的精力,以提高学时的有效性。
* E7 B. @' m" t.. J& z9 [) L5 F
我国高校教材的更新存在着滞后现象,做为学生应该学会取舍。: i: A4 g3 A8 a8 n4 _
对此,我能给出如下建议:
  y4 X+ v( U: M$ t* i, d.  |% N! o& h2 R3 s
1、学单片机应该改用C语言,而抛弃汇编。% L% D  L6 H4 U( X/ h( j0 }
2、应该尽可能的设计出一套自己专用的万能板,以应对“所有的项目”。
8 V- t3 P! C0 L& }& h: _+ c3、一定要在画专业的PCB电路板方面下足功夫。4 `: d: a1 v3 g5 o/ ^6 g" |
4、……7 V; m, u: A' P$ ]1 f( H' @7 w7 @
.
- @2 b# b, k9 Vsyw  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 | 显示全部楼层
恩,谢谢提醒。
7 |! [5 N" k; A7 n因为在学校里学的是汇编。
9 E& X. e8 P7 O; N4 p& K现在正在学习C语言,感觉C有它的好处,但有时汇编语言也有优势
发表于 2009-10-9 11:21:54 | 显示全部楼层
造车总工7 h, }1 d5 y! J; l% }; S
现在的C语言支持底层编程,能大体说说优势吗?我有10多年没用过汇编了,记得96年用C编了段程序,用工具转换成低汇编,程序量太大了,而直接用汇编编程,短短的几行就可以,不知道现在支持底层编程的C这方面改进的怎么样了,多年没接触单片机,以为大家还都在用汇编呢
发表于 2009-10-17 17:18:27 | 显示全部楼层
牛人
发表于 2009-10-17 19:54:55 | 显示全部楼层
在学校时摸索的用用也挺好
发表于 2009-10-17 20:50:37 | 显示全部楼层
对于很多低端的单片机,还是用汇编比较多,因为考虑到汇编可以更加精简,可以节省很多程序空间,这对于低成本的单片机来说尤为重要。原因很简单,你如果程序量太大,就只好选用程序空间更多,也更贵的单片机来做。像义隆,中翰等单片机都是用汇编的多。
( {+ u7 s: x! X% K$ j8 V  ~不过,现在的趋势上,单片机的程序空间越来越大 ,成本越来越低,用C成为了大势所趋。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-10-22 11:13 , Processed in 0.068744 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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