中翰单片机C语言,我自己用单片机做的电子琴

本帖最后由 jili1986729 于 2009-10-7 13:42 编辑* i2 D' H# ?" G' d

5 T! C( S  i" e" T+ q% f  g4 _' D4 N我自己用单片机做的电子琴,比较简单,用了一个功放,自己做了个矩阵键盘- @- n" ^$ p+ N0 ?5 U' ]9 o

单片机应该用892051,这里89c51,有点浪费* ?$ n- b, T1 u1 _: M% n

. O: W! A, R: h. B6 g+ g程序:: s3 T- B7 @9 R" H: d$ G$ P4 _

ORG 00H7 w, T8 [6 k5 ~3 x! W2 A5 s2 q

AJMP START

1 t5 p/ _; K$ h$ J# P0 ~, \4 eORG 001BH+ m7 I9 v- p" |) t" Y3 l9 X

LJMP TIME12 Q* F( w! o$ f3 E8 X5 ]

ORG 30H

6 T! l6 K' C0 M  jSTART:MOV TMOD,#10H* N. a7 `5 E+ w6 {- e- x

MOV IE,#88H

N0 A* }+ X/ w; x/ h! B7 h0 yKEY:SETB F0

1 N( x5 S4 V7 `9 E  q    CLR EA1 r8 l+ G$ w# f" V

CLR TR1* P* a$ i% X+ m# l3 o7 q

MOV P1,#0F0H/ m6 S0 W# [) Z3 h1 `- a

KEY1:MOV A,P1

' O0 H  S' {  n; k, V' E+ w  CPL A

5 N9 r! R, j7 A1 @  ANL A,#0F0H7 I  W& u2 A7 l7 q

JZ KEY

% \% W6 \9 z& I- s  CLR F0

: S$ y- A. a: U1 }$ ^L1: LCALL SKEY

) d1 b9 i8 [6 h- x2 r+ T  CLR EA

|; h9 Z2 H) c1 a4 j+ n( P  CLR TR1+ ?+ a4 ]. J) p& J6 [6 Z

JB F0,KEY

9 O  D, {0 l9 u& `. X4 j+ E3 ^( UMOV 22H,A

5 |  r; w' a6 q$ n! a: |  @3 d   ADD A,22H

; r0 d. K6 {) C$ z  ]3 F   MOV R3,A3 v: L# i0 C: W# v/ O

MOV DPTR,#TABLE1! k6 T& v* L( m2 Z/ T2 o" u& i* ?, \

MOVC A,@A+DPTR- b) g; i3 Y$ l2 p

MOV TH1,Aj4 `& t8 Y) J" t

MOV 21H,A* R5 K; \5 k# D* K$ F, @& t' B

MOV A,R3% v$ i( G3 l% ^! F4 L

INC A% g+ x% {" o4 x2 a! V: e: U

MOVC A,@A+DPTR

3 N/ I7 `3 Y5 i   MOV TL1,A2 k- `1 H: m" s& S2 m6 U5 D7 b% S0 _0 `

MOV 20H,A

3 e+ Q9 C7 c6 t0 j- D6 J& a      SETB EA0 O( v) \" t: R: ?! A2 |! H0 b

SETB TR1

. C  W) n- j7 b: p! PL2:CALL SKEY

9 g% |4 C. @1 z   SETB EAs, ~2 O( Z+ S; w7 e& v! \

SETB TR1

# I3 s9 A- M" Q5 q   JB F0,KEY

) j, p, C2 d' y- m! g# U9 ]9 L   LJMP L2

# V# ]+ p9 ?* j& z- MSKEY:MOV A,#00% a$ d! \0 A6 B+ ?4 E

MOV R0,A+ q8 A6 i# E9 r7 {4 M( F* u

MOV R1,A

k: I& u- P6 U- W* R) }, h  MOV R3,#0FEH

6 [. J% S8 t9 FSKEY2:MOV A,R3

/ a2 K0 E" ]' Y5 Y& W6 h' \      MOV P1,A

; P0 Z* x: u+ K" l$ N: L6 P   NOP0 `: g# C) f! ?. y3 K' J

NOP

6 q7 }- v' z! l, T" Z3 O   NOP$ D- _. [' V  ]0 T2 r+ k- ]/ b

MOV A,P1

s, I1 d# N( m8 O2 a$ P   MOV R1,A

[. H* W. G- m      CPL A

( K1 R7 {/ }+ K8 |7 b% {; O& W   ANL A,#0F0H! S8 a  G$ e! t% }1 q

S123:JNZ SKEY3

% ~: z1 ^5 C: q- x5 u  SETB F0

' {9 ?* M+ J) i     INC R0( ]/ `3 ]: {; f

SETB C1 \( ^1 Y/ F4 {9 [. N

MOV A,R30 H" k3 h/ ~' |4 r

RLC A

) W  a$ [3 V/ `4 `  MOV R3,A9 z# [9 l0 w. I* a& Z0 ~9 U

MOV A,R0

+ b" X2 L* j3 Z$ m  CJNE A,#04H,SKEY2

- M! ~' z) e1 Z; i; L( \+ UEKEY:RET2 [8 m% m4 D) ]3 l

SKEY3:CLR F0" V/ i! r" _/ `9 `1 B# b1 ]

MOV A,R1

1 D+ U6 J( y7 t4 T! h8 P      JNB ACC.4,SKEY5. C  h+ E) O5 a7 e9 R0 V' s

JNB ACC.5,SKEY6

: H7 b8 G) X6 B, R" k   JNB ACC.6,SKEY7

- N1 A- E7 `9 j: h   JNB ACC.7,SKEY8L% [: G1 a: c5 Y. M( q* x4 R

AJMP EKEY

% G8 D( }. |+ \& T; oSKEY5:MOV A,#00HH) p! F3 e" W( h

MOV R2,A

7 i  ~. U2 Y; e* {: y   AJMP DKEY, [( j0 @8 T3 `, O& v$ X

SKEY6:MOV A,#01H0 U" Z) T. S# D# R/ B/ O8 t

MOV R2,A

8 _$ K0 ^& `; A6 ]" F. y6 X, i   AJMP DKEY

- s/ f; f2 C0 x) [" e. U, z4 {SKEY7:MOV A,#02H

% k. f' x' h, J; k& R& \$ r     MOV R2,A- c8 ~! d/ J/ c$ U; i" l

AJMP DKEY

- c% i% }) ~5 |5 e$ q2 t) OSKEY8:MOV A,#03H6 b) g9 w3 R7 N/ g! t

MOV R2,A) n  O0 v/ L2 a7 R

AJMP DKEY

! U7 i$ D% Y9 UDKEY:MOV A,R0

% M3 J+ h+ w. Y     ACALL DECODE# V$ c" [( G, z( k% b) h2 |# m

AJMP EKEY

$ T+ q$ i4 @) x  |DECODE:MOV A,R0( P4 N" B- K1 T/ G1 s1 N

MOV B,#04H" ^( P2 W) ]% {" W6 A

MUL AB

* B& [* j# E6 _8 |8 h& D  @    ADD A,R2+ k8 G: E& O* z  X& W9 y  b8 M0 R

RET

0 b( H! x* ]! MTIME1:   PUSH ACC

7 l, Q1 Q- A; R! G      PUSH PSW$ p6 @! W. d8 p. V8 K, P' C

CPL P2.4

9 \/ e0 ^& |/ q& N4 S% D( R2 o   MOV TL1,20H3 K; F3 W* V7 W2 ?% [1 F

MOV TH1,21H

( }+ ?) ?8 V2 e" [   POP PSW

) ~) W: \1 x' j9 D   POP ACC

/ }# ^; e2 b8 d# q' `   RETI

! L1 n& t  @- z/ }0 _6 aTABLE1:  DW 64021,64103,64260,64400,64524,64580,64684,647778 n# F) g9 N' |$ @" Y9 u, A

DW 64820,64898,64968,65030,65058,65110,65157,65178

1 u! O6 }2 S/ ]5 u# VEND

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:使用 JavaScript 编写的杀死幽灵游戏(附源代码) 杀死鬼魂游戏是使用 Vanilla JavaScript、CSS 和 HTML 画布开发的简单项目。这款游戏很有趣。玩家必须触摸/杀死游荡的鬼魂才能得分。您必须将鼠标悬停在鬼魂上 - 尽量得分。鬼魂在眨眼间不断从一个地方移动到另一个地方。您必须在 1 分钟内尽可能多地杀死鬼魂。 游戏制作 这个游戏项目只是用 HTML 画布、CSS 和 JavaScript 编写的。说到这个游戏的特点,用户必须触摸/杀死游荡的幽灵才能得分。游戏会根据你杀死的幽灵数量来记录你的总分。你必须将鼠标悬停在幽灵上——尽量得分。你必须在 1 分钟内尽可能多地杀死幽灵。游戏还会显示最高排名分数,如果你成功击败它,该分数会在游戏结束屏幕上更新。 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox。要玩游戏,首先,单击 index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值