广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 6173 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
台湾程程 手机
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x120
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 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


本帖包含附件
zip 简易自走电路图(全).rar   (2022-06-09 14:01 / 21 KB)  
说明: 这是电路图
下载次数:49


[ 此文章被台湾程程在2006-07-26 11:26重新编辑 ]



~~~淳淳老公永远爱你唷~~~

献花 x1 回到顶端 [楼 主] From:台湾亚太线上 | Posted:2006-07-20 17:43 |
rei 手机
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖
小人物
级别: 小人物 该用户目前不上站
推文 x2 鲜花 x366
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

先把音乐的部份写好(用timer0 或 timer1 或 timer2)
再把SETB TR0 ( 或TR1, TR2)放在想出现音乐的地方,就ok啦
然后在别的地方加 CLR TR0 ( 或TR1, TR2),看什么情况发生,就关闭音乐

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

以上是问朋友所提供的= =

希望会对您有用处!? 表情


人生要是跟等巴士一样...
  你愿意搭哪一种车?
爆满?脏车?旧车?新车?空车?还是...走路?
献花 x1 回到顶端 [1 楼] From:台湾中华电信 | Posted:2006-07-25 20:41 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.056527 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言