找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3382|回复: 1
打印 上一主题 下一主题
收起左侧

智能小车控制程序

[复制链接]
跳转到指定楼层
楼主
ID:70976 发表于 2014-12-27 16:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


  1. ;======================================================================
  2. ;编写者:兰建文 时间:2009-7-24  地点:源点IC嵌入式培训机构
  3. ;多功能小车 (小车能寻迹、壁障、无线遥控、电机调速)  
  4. ;使用ATMEL89C2051单片机
  5. ;P1.7控制后轮前进方向  P1.3----循迹左
  6. ;P1.6控制后轮后退方向  P1.2----循迹右
  7. ;P1.5控制前轮左转方向  P3.1----蜂鸣器
  8. ;P1.4控制前轮右转方向  P3.5----左转指示灯
  9. ;P3.2壁障红外检测   P3.4----右转指示灯
  10. ;P3.0无线遥控检测   P3.3控制555产生38KHZ红外线
  11. ;定时器中断0用于调节电机速度,调节PWM
  12. ;===========================系统程序===================================
  13.   ORG  0000H
  14.   JMP  START
  15.   ORG  000BH
  16.   JMP  IN_T1
  17.   ORG  0030H
  18. ;===========================程序开始===================================
  19. START:
  20.   MOV  P1,#0FFH  ;端口初始化
  21.   MOV  P3,#0FFH

  22.   MOV    TMOD,#01H     ;定时器0工作方式1
  23.   MOV    TL0,#0D4H  ;定时0.9ms 设定时初值
  24.   MOV    TH0,#0FEH
  25.   MOV    IE,#82H   ;开总中断与定时器中断
  26.   SETB   TR0    ;开定时器
  27.   MOV  R1,#3   ;设置占空比
  28.   SETB F0     ;节拍标志位
  29. MAIN:
  30.   JNB  P1.2,NEXT1  ;判断是否左转,光电对管出轨迹,就继续判断。
  31.   JNB  P1.3,NEXT2  ;判断是否右转,光电对管出轨迹,就右转。
  32. ;=========================== 小车直走===================================
  33. NEXT4:
  34.   SETB P1.6   ;二个光电对管都在轨迹内,小车就向前直走。
  35.   SETB P1.5
  36.   SETB P1.4
  37.   SETB P3.5
  38.   SETB P3.4
  39.   JMP  MAIN1

  40. NEXT1:
  41.   JB  P1.3,NEXT3
  42. ;=========================== 小车后退===================================
  43.   SETB P1.7   ;两个光电对管都出了轨迹就后退。
  44.   CLR  P1.6   
  45.   SETB P1.5
  46.   SETB P1.4
  47.   CLR  P3.5     ;亮后退指示灯
  48.   CLR  P3.4
  49. ;=========================== 小车左转 ==================================     
  50. NEXT3:  
  51.   SETB P1.6
  52.   CLR  P1.4   
  53.   SETB P1.5

  54.   SETB P3.5
  55.   CLR  P3.4   ;亮左转指示灯
  56.   JMP  MAIN1
  57. ;=========================== 小车右转 ==================================
  58. NEXT2:      
  59.   SETB P1.6
  60.   SETB P1.4
  61.   CLR  P1.5   

  62.   CLR  P3.5   ;亮右转指示灯
  63.   SETB P3.4
  64.   JMP  MAIN1
  65. ;=============================调节PWM==================================
  66. MAIN1:
  67.   JNB  F0,MAIN
  68.   CLR  F0
  69.   DJNZ R1,LL
  70.   MOV  R1,#3
  71.   SETB P1.7
  72.   SETB P1.6
  73.   JMP  MAIN
  74. LL:
  75.   CLR  P1.7
  76.   SETB P1.6
  77.   JMP  MAIN
  78. ;==========================定时器中断0服务子程序=======================
  79. ;输入: TL0、TH0
  80. ;输出:无
  81. ;实现的功能:影响标志位F0
  82. ;======================================================================   
  83. IN_T1:
  84.   MOV    TL0,#0D4H    ;定时0.9MS
  85.   MOV    TH0,#0FEH
  86.   SETB F0
  87.   RETI
  88. ;==========================延时子程序==================================
  89. ;输入: 无
  90. ;输出:无
  91. ;实现的功能:延时一段时间
  92. ;======================================================================
  93. DELAY:
  94.   MOV  R7,#200
  95. L:
  96.   MOV  R6,#200
  97.   DJNZ R6,$
  98.   DJNZ R7,L
  99.   RET  
  100. ;===========================程序结束===================================
  101.   END
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:72053 发表于 2015-1-12 13:10 | 只看该作者
研究研究
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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