台湾程程
|
分享:
▼
x0
|
[学习] 8051自走车程式要如何加上音乐?
这一次暑假要写一个自走车程式~ 但要更改程式~他音乐程式我写的出来 但我不会把他加上去,所以我想请教一下会8051的大大要如何在倒车的时候放音乐? 还有惠按INT0键时他会放音乐...还有...在按另INT1键时会启动7段显示器并加一 按一下就加一,按T0键按一次会减一 要如何在这程式改写?? ;******************************************** ; 自走车控制程式 (有后退修正板本) ;******************************************** Right_Motor: .REG P2.0 ;右马达on/off的位元宣告 Rev_Right: .REG P2.1 ;右马达正/反转的位元宣告 Left_Motor: .REG P2.2 ;左马达on/off的位元宣告 Rev_Left: .REG P2.3 ;左马达正/反转的位元宣告 MIC: .REG P3.5 ;哨音电路检测器的位元宣告
ORG 0H ;宣告以下程式由位址0000H储存 JMP MAIN ORG 50H ;宣告程式由位址0050H储存 MAIN: MOV P2,#11110000B ;初始化,令左右马达正转,停止 MOV P3,#0FFH MOV R5,#50 ;呼叫延迟副程式,延迟1秒 ACALL DELAY JB MIC,$ ;等待哨音启动 ;---------------------------------------- START: MOV A,P0 ;取出光感测器信号 MOV P1,A ;显示在LED上 ANL A,#7 ;取出P0的最低三位元L、C、R
CJNE A,#2,MOTOR1 ;与010比较,若不相同则往下一控制模式比较 SETB Right_Motor SETB Left_Motor ;执行<前进>对策,即左前进,右前进 JMP START MOTOR1: CJNE A,#3,MOTOR2 ;与011比较,检查机身是否稍偏左 SETB Right_Motor SETB Left_Motor ;执行<继续前进>对策,即左前进,右前进 JMP START MOTOR2: CJNE A,#1,MOTOR3 ;与001比较,检查机身是否偏左 CLR Right_Motor SETB Left_Motor ;执行<向右修正>对策,即左前进,右停止 JMP START MOTOR3: CJNE A,#6,MOTOR4 ;与110比较,检查机身是否稍偏右 SETB Right_Motor SETB Left_Motor ;执行<继续前进>对策,即左前进,右前进 JMP START MOTOR4: CJNE A,#4,MOTOR5 ;与100比较,检查机身是否偏右 SETB Right_Motor CLR Left_Motor ;执行<向左修正>对策,即左停止,右前进 JMP START MOTOR5: CJNE A,#7,START ;与111比较,若不相同则代表所有控制模式已比较完成,跳回至START CLR Right_Motor CLR Left_Motor ;执行<停止>对策,即左停止,右停止 JMP START
;**************************************** ; 延迟副程式: R5*20ms ;**************************************** DELAY: MOV R6,#40 $1: MOV R7,#249 DJNZ R7,$ ;R7减1不为0跳至本列 DJNZ R6,$1 ;R6减1不为0跳至 $1 列 DJNZ R5,DELAY RET END
[ 此文章被台湾程程在2006-07-26 11:26重新编辑 ]
|