(1):硬盘MP3 PLAYER 程序
(2):硬盘MP3 PLAYER原理图.pdf
(3):图片
1150780724.pdf1150780937.rar A:按钮控制-彩灯全亮_全灭(仿真器在自制的MCU8051/ARM编程仿真板(Protel99se格式)
;以下为一个控制灯全亮/全灭试验。(P3.2按下灯全亮 / P3.3按下灯全灭)
;以下程序为配合Ledkey.dll程序使用。
;如果有不会使用请到网络上找"弱电之家"
;复制下面的代码到Keil中,按视频教程要求设置好参数,就能运行了。
ORG 0000H
LJMP START
ORG 30H
START:MOV SP,#5FH
MOV p1,#0FFH
MOV p3,#0FFH
L1:JNB P3.2,L2 ;P3.2上接有一只按键,它按下时,P3.2=0
JNB P3.3,L3 ;P3.3上接有一只按键,它按下时,P3.3=0
LJMP L1
L2:MOV P1,#00H
LJMP L1
L3:MOV P1,#0FFH
LJMP L1
END
B:发送字符,通过串口查看被发送字符内容 (keil 中调试通过)
MOV SP,#5FH
CALL SER_INIT
LOOP:
JBC RI,NEXT
JMP LOOP
NEXT:
MOV A,SBUF
MOV SBUF,A
SEND:
JBC TI,LOOP
JMP SEND
SER_INIT:
MOV SCON,#50H
ORL TMOD,#20H
ORL PCON,#80H
MOV TH1,#0FDH
SETB TR1
SETB REN
SETB SM2
RET
END
C:;实现广告灯效果(左移,右移效果)。
;以下程序为配合Ledkey.dll程序使用。
;如果有不会使用请到网络上找“弱电之家”
;复制下面的代码到Keil中,按视频教程要求设置好参数,就能运行了。
ORG 0
START: MOV R2,#8
MOV A,#0FEH
SETB C
LOOP: MOV P1,A
LCALL DELAY
RLC A
DJNZ R2,LOOP
MOV R2,#8
LOOP1: MOV P1,A
LCALL DELAY
RRC A
DJNZ R2,LOOP1
LJMP START
DELAY: MOV R5,#20 ;
D1: MOV R6,#200
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
D:监视开关K1(接在P3.2端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态
;如果开关合上,L1亮,开关打开,L1熄灭。
;以下程序为配合Ledkey.dll程序使用。
;如果有不会使用请到网络上找“弱电之家”
;复制下面的代码到Keil中,按视频教程要求设置好参数,就能运行了。
ORG 00H
START: JB P3.2,LIG
CLR P1.0
SJMP START
LIG: SETB P1.0
SJMP START
END
E:;以下为一个流水灯试验。
;以下程序为配合Ledkey.dll程序使用。
;如果有不会使用请到网络上找“弱电之家”
;复制下面的代码到Keil中,按视频教程要求设置好参数,就能运行了。
loop: clr p1.0
acall d01s
setb p1.0
clr p1.1
acall d01s
setb p1.1
clr p1.2
acall d01s
setb p1.2
clr p1.3
acall d01s
setb p1.3
clr p1.4
acall d01s
setb p1.4
clr p1.5
acall d01s
setb p1.5
clr p1.6
acall d01s
setb p1.6
clr p1.7
acall d01s
setb p1.7
acall d01s
ljmp loop
;延时子程序,如果显示过快,可修改参数。
d01s: mov r0,#255
d01l1: mov r1,#195
djnz r1,$
djnz r0,d01l1
ret
end
F:以下为一个控制灯全亮/全灭试验。(采用中断定时方式,速度很快,可能只看到L1常灯)
;以下程序为配合Ledkey.dll程序使用。
;如果有不会使用请到网络上找"弱电之家"
;复制下面的代码到Keil中,按视频教程要求设置好参数,就能运行了。
ORG 0000H
AJMP START
ORG 000BH ;定时器0的中断向量地址
AJMP TIME0 ;跳转到真正的定时器程序处
ORG 30H
START:
MOV P1,#0FFH ;关所 灯
MOV TMOD,#00000001B ; 定时/计数器0工作于方式1
MOV TH0,#15H
MOV TL0,#0A0H ;即数5536
SETB EA ;开总中断允许
SETB ET0 ;开定时/计数器0允许
SETB TR0 ;定时/计数器0开始运行
LOOP: AJMP LOOP ;真正工作时,这里可写任意程序
TIME0: ;定时器0的中断处理程序
PUSH ACC
PUSH PSW ;将PSW和ACC推入堆栈保护
CPL P1.0
MOV TH0,#15H
MOV TL0,#0A0H ;重置定时常数
POP PSW
POP ACC
RETI
END
1150867843.pcb
用户25478 2007-2-2 11:43
支持,顶个贴