机械必威体育网址

找回密码
注册会员

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2009-10-7 13:40:44 | 只看该作者 回帖奖励 | 倒序浏览 | 阅读模式
本帖最后由 jili1986729 于 2009-10-7 13:42 编辑
: a' ^) b% N& }: U# b# m
: M8 c8 g6 q9 h, b. d$ k; q我自己用单片机做的电子琴,比较简单,用了一个功放,自己做了个矩阵键盘) [ n; g* q& {3 F% }+ F3 ?
单片机应该用892051,这里89c51,有点浪费; W' G! _* ]/ {9 T

& Z* L" f6 d" h' O- F程序:
! T. i: V8 I4 j' B$ b( o2 H" FORG 00H
4 {* B6 `! n& X: F! b6 RAJMP START
4 o' H5 ~, H1 @% }! j6 `" mORG 001BH
1 P* c! N8 I% [3 E# e- eLJMP TIME1) y% q: A! z% i
ORG 30H
# E1 m( G8 K( A0 P. QSTART:MOV TMOD,#10H
J: L4 i% {8 D2 t" m- [MOV IE,#88H6 m* u% ?0 z8 J Y
KEY:SETB F0
: c9 Q7 Q% F5 A7 X K! p, n$ fCLR EA- y4 z# A' D' w2 x) ^
CLR TR1
3 r0 D( R# e% lMOV P1,#0F0H
s% d" H, v" ~( i' BKEY1:MOV A,P1! W$ m+ `# ]. U" |) f
CPL A
. @6 _, o* |2 a. d" V2 c9 ?ANL A,#0F0H
& z' x4 J9 \2 q, b% ~8 V, jJZ KEY
/ W4 `0 h% h' n5 X' T$ T& ]CLR F0
* h* |; h4 L, H* v- YL1: LCALL SKEY4 ]3 b2 N4 y- C- _2 J
CLR EA9 a# l2 k a( E3 M' w
CLR TR1% ?+ g, X( V* t2 U1 D
JB F0,KEY
9 y* o5 M2 B& D) k% f/ ^9 PMOV 22H,A
7 \# {4 p7 s) G, m$ W5 j0 _; uADD A,22H
6 _6 @) D3 `3 B3 jMOV R3,A; C: ~8 J0 i' k. B3 I- r q
MOV DPTR,#TABLE1
9 n$ V6 x$ f$ b& e) i4 t4 UMOVC A,@A+DPTR1 ?9 w0 W/ g; B
MOV TH1,A" e2 W$ |' s9 j' @4 G' a- i
MOV 21H,A$ D; S8 V* K; d7 j6 Z+ s/ O3 a8 J
MOV A,R3
+ F- M$ |4 d7 z' V7 `6 GINC A/ B9 e) I S S5 V+ k' S) x
MOVC A,@A+DPTR
! Y/ g$ [) J8 F: ZMOV TL1,A2 P! l, T- ?: |, M6 ^7 }' D
MOV 20H,A
1 r l* F6 f8 E' _, fSETB EA5 ^: c! m& ?# a" v$ U
SETB TR1; {+ w% k, I" N3 K5 G
L2:CALL SKEY
' {" L- {& ]: |; OSETB EA
9 B. [# `7 X1 @: k2 NSETB TR1' \7 R! K- J ], O
JB F0,KEY
" f8 p" J$ A' p XLJMP L2
. @0 D, V l9 _SKEY:MOV A,#000 \1 F. G, P6 V* M' d- b5 x
MOV R0,A& o# _- B5 _( H
MOV R1,A
4 j5 f4 ?! `; e1 xMOV R3,#0FEH
3 O. {) k n( o$ t2 `SKEY2:MOV A,R32 |: |/ M+ U" J2 z7 ~( x
MOV P1,A* ^! j/ ]% P6 {$ h& X* F( b
NOP
* @+ s+ ?2 G, Y2 E. V1 Q% U' c. DNOP
- ^) n! d5 s7 WNOP6 E+ K3 J0 Z" i' ^) v+ p% _5 B
MOV A,P1
& ]: g+ @1 ?: kMOV R1,A) L2 [; U7 F; Y( z) b6 ]- X- K
CPL A/ t j. T! l% W0 N
ANL A,#0F0H
; S4 z( Q% X- K2 Z! I% ]S123:JNZ SKEY3/ H4 c+ l: T+ K) q4 B
SETB F0
7 v+ v# N1 g+ Y4 }& Z# D! I' L; GINC R0
3 b$ ?$ u! Z: |! o, s" BSETB C
0 Z4 L8 a) I3 j! |/ MMOV A,R3: U' B7 l1 l5 T; Y
RLC A# U7 F; [6 T; H
MOV R3,A) p! [( `: j7 Z- V# W
MOV A,R00 x" `( ?6 ]' n$ q, ~( y
CJNE A,#04H,SKEY2
3 y9 H3 K; d, I3 ~" j3 [! dEKEY:RET* W6 h$ y9 E, ]+ x% l0 l
SKEY3:CLR F0& Q. b1 z0 ^ V: |8 w# j; }0 P! `# |
MOV A,R1( O" ^) e- N9 ]8 L' J
JNB ACC.4,SKEY55 Q$ P' y- d7 r' m9 w
JNB ACC.5,SKEY6: T; J" u+ q( [
JNB ACC.6,SKEY7
& e% c/ T. @; |, x( M4 ?- t8 mJNB ACC.7,SKEY84 T! B0 m7 c. V% F7 W9 u7 ]
AJMP EKEY
) v3 h' s" i8 X+ i0 P) a+ zSKEY5:MOV A,#00H
0 i; n( ]( j3 e1 j4 P1 BMOV R2,A# K8 b" |, n, y
AJMP DKEY
: w4 H4 i' T) p- tSKEY6:MOV A,#01H& m' U- I% Q! G% M4 [# f
MOV R2,A* u! V9 G" X% Q0 P& ?
AJMP DKEY, m4 {) y, c9 N' ~. F; C+ H9 u
SKEY7:MOV A,#02H
6 X; E; d/ \. ~/ `) R+ ~MOV R2,A: [* e: v: f: l
AJMP DKEY
8 C2 w3 p& ~. y K) lSKEY8:MOV A,#03H
, t( Y& c6 S5 L6 ]( e9 b) }/ O! ?MOV R2,A+ b, U# h+ p) Y6 V! t: N
AJMP DKEY: l- s7 S b+ S3 j, n
DKEY:MOV A,R0
, }2 @- S& ]4 I1 G) oACALL DECODE
- m4 l% a% f* K4 `/ X- R8 qAJMP EKEY
3 G e' }3 R6 R* v! C, D8 Q2 g' }' ?4 }DECODE:MOV A,R0' K: q$ X1 F% L; h9 E
MOV B,#04H+ i1 [" k, p: ]8 {1 Y" }
MUL AB; `. v6 j0 \+ [( y# d; o' o6 ^( e
ADD A,R22 w9 g; N- k, ^0 r5 t
RET' @# @% G$ X* M5 C$ H7 C
TIME1: PUSH ACC
2 h; @% \. `3 WPUSH PSW
' }$ l* q$ Z0 r4 ~" p( U2 ~CPL P2.4
5 w A9 _' y5 U" B# b3 P" eMOV TL1,20H
& c- B F6 T9 ~' M0 ~/ ~ xMOV TH1,21H0 X. V1 Q5 J. l9 W) M
POP PSW
' A- t* A3 \6 rPOP ACC5 w) \3 t. r) t: W: y* ]# ?8 K
RETI
8 H2 E, A1 `/ A! q# gTABLE1: DW 64021,64103,64260,64400,64524,64580,64684,64777! s7 R$ v7 S8 a w
DW 64820,64898,64968,65030,65058,65110,65157,65178
& J+ W4 ~3 |( W6 k/ ~1 `END

本帖子中包含更多资源

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

x
2#
发表于 2009-10-8 06:51:24 | 只看该作者
jili1986729 网友好!
2 L5 [8 Y" I# U4 ~- L6 A.
, R6 i. y3 E1 Y进入任何一门“陌生”的知识领域,选准正确的路径由为重要,会使你少走弯路。
6 E: L9 J* @1 d3 \.6 W4 G( K1 A0 g6 w8 G, b) D# G
汇编语言,是在计算机技术发展的过程中,由机器码走向高级语言的过程中的一个8 I, u6 q5 }# B0 s. [5 _
过渡语言,当出现了能做底层操作的高级语言的C语言后,汇编语言就应该从高校的
5 Z1 R$ j# s2 T' V' ~教材中清除出去,以免浪费学生的精力,以提高学时的有效性。
, J; Y2 R: t$ T$ q.9 h3 G/ P0 l5 |% A) Y: p2 L
我国高校教材的更新存在着滞后现象,做为学生应该学会取舍。
" P# R& M( O$ J$ Q$ y对此,我能给出如下建议:/ s: o2 g8 H5 g" R. i* h
.
" O* x: W5 A! X' o; x1、学单片机应该改用C语言,而抛弃汇编。
' i( p: ^2 d& u' \! x2 Z3 x2、应该尽可能的设计出一套自己专用的万能板,以应对“所有的项目”。7 y( G- m" ~' M# s1 k: N
3、一定要在画专业的PCB电路板方面下足功夫。
/ |2 ~# N( I+ b9 J( T' y ^: w4、……( H- ~, R3 Y- ?9 P8 ]% E2 P" `9 A
.; h8 }( `, m* \" Q# i
syw 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 | 只看该作者
恩,谢谢提醒。4 N! ~9 ?2 v0 o8 t+ q3 d% _2 I
因为在学校里学的是汇编。
1 o+ z+ Z' }2 R1 I现在正在学习C语言,感觉C有它的好处,但有时汇编语言也有优势
7#
发表于 2009-10-9 11:21:54 | 只看该作者
造车总工
. m3 Q& Z# R/ f现在的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 | 只看该作者
对于很多低端的单片机,还是用汇编比较多,因为考虑到汇编可以更加精简,可以节省很多程序空间,这对于低成本的单片机来说尤为重要。原因很简单,你如果程序量太大,就只好选用程序空间更多,也更贵的单片机来做。像义隆,中翰等单片机都是用汇编的多。
) O5 Y. g, A C0 N/ c, q' Y; ]不过,现在的趋势上,单片机的程序空间越来越大 ,成本越来越低,用C成为了大势所趋。
您需要登录后才可以回帖 登录| 注册会员

本版积分规则

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

GMT+8, 2024-7-24 23:20, Processed in 0.056968 second(s), 16 queries , Gzip On.

Powered byDiscuz!X3.4Licensed

? 2001-2017Comsenz Inc.

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