找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3383|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

智能小車控制程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:70976 發(fā)表于 2014-12-27 16:47 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式


  1. ;======================================================================
  2. ;編寫者:蘭建文 時間:2009-7-24  地點(diǎn):源點(diǎn)IC嵌入式培訓(xùn)機(jī)構(gòu)
  3. ;多功能小車 (小車能尋跡、壁障、無線遙控、電機(jī)調(diào)速)  
  4. ;使用ATMEL89C2051單片機(jī)
  5. ;P1.7控制后輪前進(jìn)方向  P1.3----循跡左
  6. ;P1.6控制后輪后退方向  P1.2----循跡右
  7. ;P1.5控制前輪左轉(zhuǎn)方向  P3.1----蜂鳴器
  8. ;P1.4控制前輪右轉(zhuǎn)方向  P3.5----左轉(zhuǎn)指示燈
  9. ;P3.2壁障紅外檢測   P3.4----右轉(zhuǎn)指示燈
  10. ;P3.0無線遙控檢測   P3.3控制555產(chǎn)生38KHZ紅外線
  11. ;定時器中斷0用于調(diào)節(jié)電機(jī)速度,調(diào)節(jié)PWM
  12. ;===========================系統(tǒng)程序===================================
  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 設(shè)定時初值
  24.   MOV    TH0,#0FEH
  25.   MOV    IE,#82H   ;開總中斷與定時器中斷
  26.   SETB   TR0    ;開定時器
  27.   MOV  R1,#3   ;設(shè)置占空比
  28.   SETB F0     ;節(jié)拍標(biāo)志位
  29. MAIN:
  30.   JNB  P1.2,NEXT1  ;判斷是否左轉(zhuǎn),光電對管出軌跡,就繼續(xù)判斷。
  31.   JNB  P1.3,NEXT2  ;判斷是否右轉(zhuǎn),光電對管出軌跡,就右轉(zhuǎn)。
  32. ;=========================== 小車直走===================================
  33. NEXT4:
  34.   SETB P1.6   ;二個光電對管都在軌跡內(nèi),小車就向前直走。
  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. ;=========================== 小車左轉(zhuǎn) ==================================     
  50. NEXT3:  
  51.   SETB P1.6
  52.   CLR  P1.4   
  53.   SETB P1.5

  54.   SETB P3.5
  55.   CLR  P3.4   ;亮左轉(zhuǎn)指示燈
  56.   JMP  MAIN1
  57. ;=========================== 小車右轉(zhuǎn) ==================================
  58. NEXT2:      
  59.   SETB P1.6
  60.   SETB P1.4
  61.   CLR  P1.5   

  62.   CLR  P3.5   ;亮右轉(zhuǎn)指示燈
  63.   SETB P3.4
  64.   JMP  MAIN1
  65. ;=============================調(diào)節(jié)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服務(wù)子程序=======================
  79. ;輸入: TL0、TH0
  80. ;輸出:無
  81. ;實(shí)現(xiàn)的功能:影響標(biāo)志位F0
  82. ;======================================================================   
  83. IN_T1:
  84.   MOV    TL0,#0D4H    ;定時0.9MS
  85.   MOV    TH0,#0FEH
  86.   SETB F0
  87.   RETI
  88. ;==========================延時子程序==================================
  89. ;輸入: 無
  90. ;輸出:無
  91. ;實(shí)現(xiàn)的功能:延時一段時間
  92. ;======================================================================
  93. DELAY:
  94.   MOV  R7,#200
  95. L:
  96.   MOV  R6,#200
  97.   DJNZ R6,$
  98.   DJNZ R7,L
  99.   RET  
  100. ;===========================程序結(jié)束===================================
  101.   END
復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:72053 發(fā)表于 2015-1-12 13:10 | 只看該作者
研究研究
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表