机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 6402|回复: 13
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2009-10-7 13:40:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jili1986729 于 2009-10-7 13:42 编辑 - U  }$ g& V' j' b. u  i5 H

( R' f: X. L$ `3 H! d$ F3 A8 M我自己用单片机做的电子琴,比较简单,用了一个功放,自己做了个矩阵键盘
8 ]& x/ Q; W. w; N5 o9 g单片机应该用892051,这里89c51,有点浪费5 }3 j8 W' K/ P; p  `$ f2 c, ]
( f# [6 c2 V- c/ g; A9 y) g- V, d
程序:
  Q3 y  W5 ^+ t, XORG 00H; C% k3 }1 ?6 i% w1 n, ?
AJMP START
% N% U1 Q3 H/ R3 L7 MORG 001BH
  R  r  {2 Z7 _LJMP TIME1- @* a1 \: s! j1 D' R
ORG 30H
6 {8 K: S% V* F, t8 W; }# TSTART:MOV TMOD,#10H
6 H6 A( Y- B+ K% g      MOV IE,#88H8 G, \  p9 `6 h5 P$ e+ q0 }  A1 Z
KEY:SETB F01 T! G2 P" W# A
    CLR EA) R$ W! B5 [% @, ]  M2 Y; h1 a* v
CLR TR1
; {' G) c, g% U9 I3 h  q    MOV P1,#0F0H  J9 Z0 o" R  a
KEY1:MOV A,P17 L% M5 _7 R+ B, ], S
  CPL A/ |: l0 p* W- Q! Q) b* Q* G
  ANL A,#0F0H5 `6 G3 ]& K3 r* s+ |
  JZ KEY" r5 ?  w- ?5 [. J/ C
  CLR F0. P  v; Y3 O$ f4 w
L1: LCALL SKEY/ a& [+ b3 Z  L& H) y, r, l
  CLR EA
9 z2 {3 j- w. E1 G/ N  CLR TR1. g: ^# k0 J4 j3 r7 k
  JB F0,KEY) f7 N; J2 S6 Q( W+ y
MOV 22H,A
7 W& h) [: R7 q4 Z& j   ADD A,22H* m' ]* x9 y% L, x. u1 ^
   MOV R3,A% I4 A7 y. _6 k6 q* w  P. N
   MOV DPTR,#TABLE1
6 Y$ x; d- o+ s5 G2 M: ?   MOVC A,@A+DPTR& R2 j% N# ~+ s
   MOV TH1,A$ |- n. n/ o  u* U
   MOV 21H,A# C4 Y3 x" G. \( c+ r9 F
   MOV A,R3
7 }% ^: x6 Y1 F   INC A% h  @# U) M( u% g' \
   MOVC A,@A+DPTR
$ W/ ^7 H. ~  ]2 [$ M+ u! X! a  R   MOV TL1,A
9 }" B" r, r0 [  t   MOV 20H,A7 k+ k) @, ^; m" E& E
      SETB EA1 X& [0 }8 [3 M
   SETB TR1
$ J. `7 Z0 Y5 t% Y. M# L- a8 rL2:CALL SKEY
% L% ^) D- X6 P   SETB EA7 A* l) p2 R, f3 l& ~+ R+ A
   SETB TR1" E9 m9 W, a& Q4 s1 F
   JB F0,KEY
/ p& Z  a$ t. m/ h   LJMP L2+ e& v  B! i! ^# t! h
SKEY:MOV A,#006 {6 y: F1 t" m+ y1 H% C; y. g
     MOV R0,A+ ~+ ?. _1 w+ S, m1 i2 w/ h
  MOV R1,A
2 k0 k/ `/ E5 [; t  MOV R3,#0FEH" F+ Z. p$ r2 p8 o
SKEY2:MOV A,R3
3 J+ Q/ O# ~" o% U% M, H5 o3 f      MOV P1,A8 D) E: t8 e: \8 m5 u, y
   NOP
* n" }% X+ ^3 Q3 \  z   NOP
1 D$ ]; l2 x2 v" C  i8 z1 P   NOP4 p. \+ u; n0 j5 N; j. j9 H3 _6 f" f
   MOV A,P1
. G5 `, u8 s8 S! _/ S   MOV R1,A
+ L/ K8 {, E! e3 M- L      CPL A5 R* K5 [' @+ m: v0 N: `
   ANL A,#0F0H) A6 f  l/ W5 Q$ P: V
S123:JNZ SKEY3! T, A" X$ T5 R% k  a* @& T9 H
  SETB F0
9 K( _) l5 p& L     INC R0
: x- r) d, Q$ H7 t$ Y  SETB C0 ?# K1 D1 ^  }& J. B
  MOV A,R38 p( n2 I5 `9 f. T0 c9 e' N- F1 n
  RLC A0 T5 }; L$ N' C/ n1 A( u
  MOV R3,A
" P4 }0 }! N2 S  MOV A,R01 X3 E) k" ~+ C  ^
  CJNE A,#04H,SKEY2
0 P- [, R+ E5 ?; x1 ]EKEY:RET
. d; `8 K- |$ }6 _( I/ sSKEY3:CLR F0  G& u( I, K- _; Y0 c4 z: \
      MOV A,R1
: ^/ O: `7 q" s      JNB ACC.4,SKEY5. M" Z9 m% x5 \+ Q+ U# i
   JNB ACC.5,SKEY6
/ B. O3 Y: e% i   JNB ACC.6,SKEY7  Q8 O) c/ x! F5 ]) A; H
   JNB ACC.7,SKEY8
1 m& j: }0 W# F% ^, s, Z2 F+ O! a   AJMP EKEY2 W0 T" [. Y; B5 d2 g# H5 h# `( F
SKEY5:MOV A,#00H+ U& R( H1 `5 ]8 E+ j- ^
      MOV R2,A
8 B6 w* Y$ X! {  W9 M4 q7 v+ c3 S   AJMP DKEY) r) ~% W, |; ?# }% p3 [
SKEY6:MOV A,#01H5 f5 ~$ n; z) i# C) a9 J! G
      MOV R2,A2 t# E5 [5 x& ^3 |5 T5 P* L# H- v
   AJMP DKEY9 _1 q! E! R% b
SKEY7:MOV A,#02H
$ b5 U4 I/ j7 T2 n0 O% X     MOV R2,A
5 r6 i' |* w  ?# X: L+ g+ D  AJMP DKEY7 a2 l5 \8 {% b3 Q1 X$ x7 c( ]
SKEY8:MOV A,#03H7 ?' Q$ H. s, e4 I  l: T
      MOV R2,A  |4 w7 _% V3 |* [
   AJMP DKEY9 |3 o1 M4 r' u, u9 p; U; l/ n1 ]
DKEY:MOV A,R0
8 i2 k5 x& a. C; R* W0 L: G! A     ACALL DECODE
( g* d7 p1 h6 w* \4 T  AJMP EKEY
6 ?: |; _' [: y* |% T" }4 M" ADECODE:MOV A,R01 }& [# j$ e+ s( O, D
       MOV B,#04H$ g/ J$ I. E. Z- Q( b' x& }
    MUL AB
4 C1 S9 D9 J, q+ R7 x: V) i    ADD A,R2: R' c5 q- S/ _- b
    RET2 W- \2 i7 [- p& h, w
TIME1:   PUSH ACC
* X* Q# x$ ?7 x5 F      PUSH PSW
0 P% ]# @/ {+ H2 {0 Q   CPL P2.49 W  t( u/ M* c  u9 I6 q. f
   MOV TL1,20H
3 F7 m, x& P% h   MOV TH1,21H9 n: i$ c' _: z$ G4 C+ f
   POP PSW; \0 ^& q8 A  _' ?- u+ H' h  S8 ^
   POP ACC
1 l; G4 h7 P- M/ T! w- [2 o   RETI
% `( v6 k! b+ @8 G0 F/ \% M- VTABLE1:  DW 64021,64103,64260,64400,64524,64580,64684,64777
6 l0 d% x4 u2 m3 ~       DW 64820,64898,64968,65030,65058,65110,65157,65178& p7 ]$ l5 m4 A# v& X
END

本帖子中包含更多资源

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

x
回复

使用道具 举报

2#
发表于 2009-10-8 06:51:24 | 只看该作者
jili1986729 网友好!$ ~2 Y$ R) ^- f$ {
.0 ^, L- ~7 e8 L
进入任何一门“陌生”的知识领域,选准正确的路径由为重要,会使你少走弯路。
6 R- }  m/ ~7 M4 I! C, N6 b: X.
* u0 F8 Y, G# _" E5 s; N4 x7 ?) D汇编语言,是在计算机技术发展的过程中,由机器码走向高级语言的过程中的一个( l6 W" a9 l5 z+ \% C
过渡语言,当出现了能做底层操作的高级语言的C语言后,汇编语言就应该从高校的
) z  u6 D4 N( n& F. }9 ^8 G教材中清除出去,以免浪费学生的精力,以提高学时的有效性。
& ~% {+ _4 U. B; F: q" t: Y.
1 ]9 `: a7 ^- f/ a" P" `& K我国高校教材的更新存在着滞后现象,做为学生应该学会取舍。
4 V8 l# x3 b0 t$ t" U对此,我能给出如下建议:4 Z5 C2 L% c' r/ k8 }6 w
.
  M2 r! K8 Z9 p5 @, f/ I, I1、学单片机应该改用C语言,而抛弃汇编。
- ~3 C" R% B, ~2、应该尽可能的设计出一套自己专用的万能板,以应对“所有的项目”。0 ?% V: `  v- r5 p& x" X1 t: _
3、一定要在画专业的PCB电路板方面下足功夫。
0 s5 T) `) v8 b" p. X* l4 e8 [4、……" v0 S- H& N3 j1 S2 d* ^6 ?
.
% |  M& b$ e7 B0 l0 m% P  ?8 H3 rsyw  091008---06.51
回复 支持 反对

使用道具 举报

3#
发表于 2009-10-8 10:21:03 | 只看该作者
不错啊,我在学习!
回复 支持 反对

使用道具 举报

4#
发表于 2009-10-8 13:27:28 | 只看该作者
现在用C语言的比较多
回复 支持 反对

使用道具 举报

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

使用道具 举报

6#
 楼主| 发表于 2009-10-8 18:42:02 | 只看该作者
恩,谢谢提醒。8 X# ^7 K: h; C' G  m
因为在学校里学的是汇编。
6 d0 E  p- D) Z2 H; N- ?现在正在学习C语言,感觉C有它的好处,但有时汇编语言也有优势
回复 支持 反对

使用道具 举报

7#
发表于 2009-10-9 11:21:54 | 只看该作者
造车总工
9 f1 V& y/ L+ Y  e1 A9 M  j现在的C语言支持底层编程,能大体说说优势吗?我有10多年没用过汇编了,记得96年用C编了段程序,用工具转换成低汇编,程序量太大了,而直接用汇编编程,短短的几行就可以,不知道现在支持底层编程的C这方面改进的怎么样了,多年没接触单片机,以为大家还都在用汇编呢
回复 支持 反对

使用道具 举报

8#
发表于 2009-10-17 17:18:27 | 只看该作者
牛人
回复 支持 反对

使用道具 举报

9#
发表于 2009-10-17 19:54:55 | 只看该作者
在学校时摸索的用用也挺好
回复 支持 反对

使用道具 举报

10#
发表于 2009-10-17 20:50:37 | 只看该作者
对于很多低端的单片机,还是用汇编比较多,因为考虑到汇编可以更加精简,可以节省很多程序空间,这对于低成本的单片机来说尤为重要。原因很简单,你如果程序量太大,就只好选用程序空间更多,也更贵的单片机来做。像义隆,中翰等单片机都是用汇编的多。# X# |' m9 o; Z0 j
不过,现在的趋势上,单片机的程序空间越来越大 ,成本越来越低,用C成为了大势所趋。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-10-15 19:21 , Processed in 0.058338 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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