找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3989|回复: 4
收起左侧

简易自动入库小车设计制作源码+报告

[复制链接]
ID:229453 发表于 2017-8-31 10:17 | 显示全部楼层 |阅读模式
我们设计制作了一个具有寻线功能的简易自动入库小车。主要功能如下:遥控启动;自动入库功能(沿着黑线进入车库),并伴随灯光提示;检测车库中心所放置的铁片并停车,伴随语音和灯光提示,计算并显示入库,停留和出库所用的时间。
   为使小车运行更加灵活可靠,我们采用了后轮用两个直流电机分别驱动,前轮采用自制的万向轮的驱动方式,采用L298双通道直流电机驱动芯片作为主控电路,将红外传感器采集的信号,经单片机处理后 ,控制驱动电机的PWM的占空比和方向,从而实现了题目要求的一系列动作,通过红外遥控启车,显示时间,和实时语音提示功能的实现,增加了作品的趣味性,技术性和智能程度;另外通过自制的霍尔金属传感器和自制万向轮的使用,更好的减轻了整车的重量,增加了小车的灵活性。

0.png

设计报告内容截图:
0.png
目录
一、设计要求和主要指标………………………………………… 2
1、任务………………………………………………………………2
2、要求………………………………………………………………2
3、主要指标…………………………………………………………3
二、设计制作报告……………………………………………………4
摘要、关键词…………………………………………………………4
1、总体方案设计……………………………………………………4
2、硬件模块电路设计……………………………………………… 5
3、软件程序设计……………………………………………………11
4、调试及性能分析…………………………………………………17
5、结论………………………………………………………………17
6、参考文献………………………………………………………… 18


单片机源程序如下:
  1. ZUOLUN BIT P1.5 ;
  2. YOULUN BIT P1.4;
  3. ZUOLUN_DIR BIT P1.6;
  4. YOULUN_DIR BIT P1.7;
  5. ZUO_CHEWEI BIT P1.0;车尾传感器信号输入端,高电平有效
  6. YOU_CHEWEI BIT P1.1;
  7. YUYIN_CLK BIT P3.5;
  8. shachedeng bit p3.7
  9. ;-----------------------------
  10. ZUOQIAN_CHUANGANQI EQU P1.3
  11. ;-----------------------------------
  12. JISHUQI_MIAOGEWEI EQU 45H;定60MS的倍数
  13. JISHUQI_MIAOSHIWEI EQU 46H ;此地址里放的是秒数;
  14. RUKU_TIME EQU 47H;
  15. TINGCHE_TIME EQU 48H;
  16. CHUKU_TIME EQU 49H;
  17. ;--------------------------------------
  18. IRCOM  EQU  20H       ;20H-23H IR使用
  19. IRIN   bit  P3.6      ;遥控信号输入端
  20. ;---------------------------------------
  21. FC_MARK bit 05h; 检测返程标志
  22. ZHUANWAN_OK BIT 00H
  23. HUI_5S EQU 52H
  24. shachedeng0 equ 53h
  25. shachedeng1 equ 54h
  26. ;---------------------------
  27. DISPLAY_CLOCKGE EQU P3.0;左数码管锁存端
  28. DISPLAY_CLOCKSHI EQU P3.1;右数码管锁存端
  29. DATA_DISPLAY EQU 50H
  30. ZANTING_OVER BIT 08H
  31. XIAOYIN4511 BIT P1.3
  32. ;--------------------------
  33. ;*********************************************
  34. ;--------------------------
  35. org 0000h;
  36. sjmp start;
  37. org 0003h;
  38. ljmp ZUOLUN_ZHUAN;P3.2_zuolun zhong duan  ru kou
  39. org 000bh;
  40. LJMP JIANCE_TIEPIAN ;dian shi qi dang zhongduan yong ,jian ce tie pian
  41. org 0013h;
  42. ljmp YOULUN_ZHUAN;P3.3_youlun zhongduan ru kou
  43. ORG 001BH;
  44. LJMP TIMER_1;全程实现定时

  45. ;--------------------------
  46. org 0030h; 程序开始执行,初始化
  47. ;---------------------------
  48. start:mov SP,#60h;
  49.         mov P1,#00h;
  50.        ; SETB P1.2
  51.         MOV P3,#0FFH;
  52.         MOV TMOD,#15h ;定时器0计数检测铁片,定时器1工作定时状态
  53.         MOV TH0,#0FFH;
  54.         MOV TL0,#0FFH;
  55.         mov th1,#4Ch;定时50MS,方式1
  56.         mov tl1,#00h
  57.         mov IP,#0Ah;现在定时器0,检测铁片中断级别最高
  58.         mov TCON,#00h ;DI DIAN PIAN CHU FA
  59.         mov IE,#0FH  ; 开两个外中断及两个定时器中断,关总中断
  60.         clr FC_MARK   ;此条程序是想用P2。0,返程标志检测,换速度
  61.         CLR ZHUANWAN_OK
  62.         CLR ZUO_CHEWEI;初始化停车信号位
  63.         CLR YOU_CHEWEI;
  64.         CLR XIAOYIN4511
  65.         MOV  HUI_5S,#00H
  66.         ;;;;;;;;;;;;;;;;;;;;;;CLR MANSU4_MARK
  67.         ;;;;;;;;;;;;;;;;;;;;;CLR CHANGSU_MARK
  68.         ;;;;;;;;;;;;;;;;;;;;;;CLR MANSU3_MARK
  69.         MOV JISHUQI_MIAOGEWEI,#00H;   清时间值
  70.         MOV JISHUQI_MIAOSHIWEI,#00H;
  71.         MOV RUKU_TIME,#00H;
  72.         MOV TINGCHE_TIME,#00H;
  73.         MOV CHUKU_TIME,#00H;
  74.         MOV DATA_DISPLAY,#00H
  75.         mov shachedeng0,#100
  76.         mov shachedeng1,#1
  77.         setb shachedeng
  78.         MOV B,#10
  79.         CLR ZANTING_OVER
  80.           SETB ZUO_CHEWEI
  81.                SETB YOU_CHEWEI
  82.                SETB P1.2
  83.                mov p0,#00h;接语音芯片,先不说话
  84.         LCALL YUYIN_MAICONG;
  85. ;------------------------------------
  86. QIDONG:   MOV   A,#00H
  87.           MOV   R0,#20H
  88. LOOP0:    MOV   @R0,A          ;20H-24H清零
  89.           INC   R0
  90.           CJNE  R0,#25H,LOOP0
  91.           SETB  IRIN
  92.           MOV  22H,#0FFH
  93. LOOP1:    CALL  IR_IN
  94.           MOV A,22H;
  95.           CJNE A,#0FFH,LOOP3;
  96.           SJMP LOOP1
  97. LOOP3:    CJNE A,#01,LOOP1;
  98.           SJMP MAIN1;

  99. ;---------------------------------------------------
  100. ; IR 译码子程序
  101. ;引导码9MS低电平,4.375MS高电平,
  102. ;8窄8宽固定码(0.5MS/0.6MS;1.5MS/0.6MS)
  103. ;8位数据码;8位数据反码,(0.5MS/0.6MS;1.5MS/0.6MS)
  104. ;---------------------------------------------------
  105. IR_IN:
  106.           MOV   R0,#IRCOM
  107. I1:      JNB P1.2,MAIN1
  108.           JNB  IRIN,I2       ;等待 IR 信号出现
  109.           JMP  I1
  110. I2:      MOV  R4,#20
  111. I20:     CALL  DEL
  112.           DJNZ  R4,I20
  113.           JB  IRIN,I1        ;确认IR信号出现
  114. I21:     JB  IRIN,I3        ;等 IR 变为高电平
  115.           CALL  DEL
  116.           JMP  I21
  117. I3:      MOV  R3,#0         ;8位数清为0
  118. LL:      JNB  IRIN,I4       ;等 IR 变为低电平
  119.           CALL  DEL
  120.           JMP  LL
  121. I4:      JB  IRIN,I5        ;等 IR 变为高电平
  122.           CALL  DEL
  123.           JMP  I4
  124. I5:      MOV  R2,#0         ;0.14ms 计数
  125. L1:      CALL  DEL
  126.           JB  IRIN, N1       ;等 IR 变为高电平

  127.                              ;IR=0,检查R2中的计数值
  128.           MOV  A,#8          ;0.14MS*8=1.12ms;A>8,是高电平;A<8,低电平
  129.           CLR  C
  130.           SUBB  A,R2         ;判断高低位
  131.                              ;IF C=0  BIT=0
  132.           MOV  A,@R0
  133.           RRC  A
  134.           MOV  @R0,A         ;处理完一位
  135.           INC  R3
  136.           CJNE  R3,#8,LL     ;需处理完8位
  137.           MOV  R3,#0
  138.           INC  R0            ;调整接收数据存储地址,20H-23H,22H里放的数据;
  139.           CJNE  R0,#24H,LL   ;收集到4字节了?不等就是没接收完;相等就接收完了;
  140. N1:      INC  R2
  141.           CJNE  R2,#30,L1    ;0.14ms 计数过长则时间到自动离开
  142.           RET
  143. ;---------------------------------------------------------------
  144. ; DELAY  R5*0.14MS
  145. DEL:
  146.           MOV  R5,#1       ;IR解码使用
  147. DEL0:     MOV  R6,#2
  148. DEL1:     MOV  R7,#32
  149. DEL2:     DJNZ  R7,DEL2
  150.           DJNZ  R6,DEL1
  151.           DJNZ  R5,DEL0
  152.           RET

  153. DELAY1:                    ;延时5MS
  154.          MOV  R6,#25
  155.   DL2:   MOV  R7,#100
  156.          DJNZ  R7,$
  157.          DJNZ  R6,DL2
  158.          RET
  159. ;***************************************
  160. ;            主程序
  161. ;***************************************
  162. MAIN1: MOV P0,#00011110B;车辆启动
  163.        LCALL YUYIN_MAICONG;
  164.        MOV DATA_DISPLAY,RUKU_TIME
  165.        call DISPLAY


  166.        call shachedengcx
  167.        SJMP ZHU


  168. ;--------------------------------------
  169.       ZHU:SETB EA;
  170.       setb tr1;
  171.       setb tr0;
  172.       SETB XIAOYIN4511
  173. ;--------------------------------------
  174. MAIN:
  175.      MOV A,RUKU_TIME
  176.      CJNE A,#8,BI
  177. CHANGSU:SETB ZUOLUN;
  178.      SETB YOULUN;
  179.      CALL YAN_1
  180.      CALL YAN_2;
  181.      CLR ZUOLUN
  182.      CLR YOULUN;
  183.      CALL YAN_2;
  184.      SJMP MAIN
  185.   BI:JC CHANGSU
  186. MAIN_JIANSU:
  187.      SETB ZUOLUN;
  188.      SETB YOULUN
  189.      CALL YAN_1;
  190.      CLR ZUOLUN
  191.      CLR YOULUN
  192.      CALL YAN_1;
  193.      CALL YAN_1
  194.      JB ZHUANWAN_OK,FANCHENG;            全速前进程序
  195.      JB FC_MARK,TING_60S
  196.      SJMP MAIN
  197. ;-----------------------------------------停车60秒程序
  198. TING_60S:SETB EA;
  199.          SETB TR1
  200.          SETB ET1
  201.          CLR EX0;
  202.          CLR EX1;

  203.          MOV JISHUQI_MIAOSHIWEI,#00H
  204.         ; MOV P0,#01010011B
  205.          ;CALL YUYIN_CLK;

  206. WAIT_ZHUANWAN: MOV TINGCHE_TIME,JISHUQI_MIAOSHIWEI;
  207.      MOV DATA_DISPLAY,TINGCHE_TIME
  208.      LCALL DISPLAY

  209.      MOV A,JISHUQI_MIAOSHIWEI
  210.          CJNE A,#61,WAIT_ZHUANWAN;先暂时让车停六十秒
  211.          CLR TR1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  212.          SETB ZANTING_OVER
  213.          MOV JISHUQI_MIAOSHIWEI,#00H;再次清零,以便计返程时间
  214.          MOV JISHUQI_MIAOGEWEI,#00H;
  215. ;---------------------------------------转弯程序
  216.          ZHUANWAN1: mov p0,#01011010b; 播放转弯语音
  217.                    lcall YUYIN_MAICONG
  218.                    MOV DISPLAY,CHUKU_TIME
  219.                    LCALL DISPLAY
  220.                    SETB TR1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  221.       ZHUANWAN:CLR ZUOLUN_DIR;
  222.                SETB  YOULUN_DIR ;
  223.                SETB ZUOLUN;
  224.                SETB YOULUN;
  225.                call YANSHI_CHANG;
  226.                JB P3.3,CHU_ZHUANWAN
  227.                CLR ZUOLUN;
  228.                CLR YOULUN;
  229.                CALL YANSHI_DUAN;
  230.                JNB P3.3,ZHUANWAN
  231. ;--------------------------------转弯已完成,准备跳出转弯程序
  232.   CHU_ZHUANWAN:
  233.                CLR ZUOLUN;
  234.                CLR YOULUN;
  235.                CLR ZUOLUN_DIR
  236.                CLR YOULUN_DIR;
  237.                MOV R4,#250
  238.                DJNZ R4,$
  239.                SETB ZHUANWAN_OK  ;转弯成功标志
  240.                SETB EX1;
  241.                SETB EX0;
  242.                SETB TR1
  243.                SETB EA
  244.                SETB SHACHEDENG
  245.                LJMP MAIN

  246. ;*************************************************************
  247. ;------------------------------------返回程序
  248. FANCHENG:
  249.           MOV HUI_5S,CHUKU_TIME
  250.           MOV A,CHUKU_TIME

  251.      FANCHENG_ZC:SETB ZUOLUN;与来时一样的速度返回
  252.      SETB YOULUN;
  253.      CALL YAN_1

  254.      CLR ZUOLUN
  255.      CLR YOULUN;
  256.      CALL YAN_2;
  257.      SJMP FANCHENG

  258. ;***************************************
  259. ;*************************************************************
  260. ;--------------------------------------掉显示程序时延时
  261.         DELAY_1S:MOV R4,#250
  262.                  Z3:MOV R5,#250
  263.                  Z2:MOV R6,#8
  264.                  Z1:DJNZ R6,Z1
  265.                  DJNZ R5,Z2
  266.                  DJNZ R4,Z3
  267.                  RET
  268. ;-------------------------------停车时用特短延时
  269. TEDUAN_DELAY0:MOV R4,#20
  270.               DJNZ R4,$
  271.               RET;
  272. TEDUAN_DELAY1:MOV R4,#40;
  273.               DJNZ R4,$;
  274.               RET;
  275. ;--------------------------------  左轮调整程序

  276. ……………………

  277. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:



回复

使用道具 举报

ID:87193 发表于 2017-9-27 10:47 | 显示全部楼层
怎么没看到附件资料呢
回复

使用道具 举报

ID:156160 发表于 2017-10-11 12:42 | 显示全部楼层
看看这个程序怎么写
回复

使用道具 举报

ID:113327 发表于 2018-5-7 21:13 来自手机 | 显示全部楼层
汇编语言
回复

使用道具 举报

ID:113327 发表于 2018-5-7 21:14 来自手机 | 显示全部楼层
唉,汇编语言
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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