当前位置:文档之家› 汽车倒车测距仪设计

汽车倒车测距仪设计

《微机原理》课程设计——汽车倒车测距仪学院:自动化专业:自动化班级:09(2)班姓名:李轶平学号: 2(15)设计日期:2010年1月13日目录一、课程设计目的及要求 (3)1.1设计目的 (3)1.2设计内容和要求 (3)1.3 设计任务 (3)二、超声波简介 (4)2.1 超声波的含义 (4)2.2 超声波的特点 (4)三、设计方案分析 (4)3.1 设计的思路 (4)3.2 硬件部分 (4)四、硬件部分设计 (6)4.1整机连接图 (6)4.2 8088最小系统 (6)4.3 8255与数码管电路 (7)4.4 8253及8259部分电路 (8)五、软件部分设计 (9)5.1设计思路及流程图 (9)5.2程序清单 (11)六、设计体会及总结 (16)七、参考文献 (17)一、课程设计目的及要求1.1设计目的1. 学会用汇编语言编写一个较完整的实用程序。

2. 掌握微型计算机技术应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。

3、复习巩固本学期学到的相关知识,提高自身思考问题解决问题的能力,培养对本课程的兴趣,提高动手的能力。

4、加强课程学习与生活实践的联系,运用所学知识与日常生活实践的结合。

5、学会用8086/8088解决实际问题的能力、硬件使用原理。

1.2设计内容和要求1、设计一个微机控制的汽车倒车测距仪,能测量并显示车辆后部障碍物离车辆的距离,同时用间歇的“嘟嘟”声发出警报,“嘟嘟”声间隙随障碍物距离缩短而缩短,驾驶员不但可以直接观察到检测的距离,还可以凭听觉判断车后障碍物离车辆距离的远近;①开机后先显示“———”,并有开机指示灯。

②CPU发射超声波1ms,然后显示60ms;即1ms+60ms为一个工作周期,等待回波,在次周期内完成一次探测。

③根据距离远近发出报警声并显示距离。

④障碍物距离小于1m,距离值变化5cm更换显示,否则不更换;距离在1m以上,新值与原显示值之差大于10cm更换,否则不更换。

⑤用三LED位数码管显示障碍物距离2、硬件电路原理图和软件框图;3、编写控制程序,写出设计任务书(总结报告)。

1.3 设计任务1、选用8088和适当的存储器及接口芯片完成相应的功能。

2、用LED显示器显示电子锁的当前状态。

3、画出详细的硬件连接原理图。

4、给出程序设计思路、画出软件流程图。

5、给出地址分配表。

6、给出所有程序清单并加上必要注释。

7、完成设计说明书(列出参考文献,所用器件型号)。

二、超声波简介2.1 超声波的含义当物体振动时会发出声音,科学家们将每秒振动的次数称为声音的频率,他的单位是HZ。

我们人类耳朵能听到声波频率为20-20000HZ,当声波的频率大于20000HZ或小于20HZ时,我们便听不到。

因此我们把频率高于20000HZ的声波称为超声波。

2.2 超声波的特点(一) 超声波在传播时,方向性强,能量易于集中。

(二) 超声波能在各种不同媒质中传播,且可传播足够远的距离。

(三) 超声波与传声媒质的相互作用适中,易于携带有关传声媒质状态的信息(诊断或对传声媒质产生效应)。

(治疗)超声波是一种波动形式,它可以作为探测与负载信息的载体或媒介(如B超等用作诊断)。

声波同时又是一种能量形式,当其强度超过一定值时,它就可以通过与传播超声波的媒质的相互作用,去影响,改变以致破坏后者的状态,性质及结构(用作治疗)。

三、设计方案分析3.1 设计的思路本系统的设计思想是采用以C8051F单片机为核心,来设计一种低成本、高精度、微型化数字显示超声波测距仪。

超声波测距可测出回波和发射脉冲之间的时间间隔,利用S=Ct/2就可以算出距离,再在LED上显示出来。

当然还可以设置若干个键,以用来控制电路的工作状态。

限制的最大可测距离存有四个因素:超声波的幅度,反射面的质地,反射面和入射声波之间的夹角以及接收换能器的灵敏度。

接收换能器对声波脉冲的直接接收能力将决定最小的可测距离。

3.2 硬件部分本制作需要以8088为核心,其他可能还需要用到计数器8253、并行接口芯片8255、中断控制器8259,这些芯片我们在课堂上都已经有了解,现在通过课设将他们运用到实际题目要求系统能够用三位数码管显示当前的距离值,用到的数据端口会比较多。

而8088的数据端口有限,需要通过8255进行并行扩展,通过8255扩展端口,以满足设计的端口需要。

同时题目要求用间歇的“嘟嘟”声发出警报,“嘟嘟”声间隙随障碍物距离缩短而缩短,驾驶员不但可以直接观察到检测的距离,还可以凭听觉判断车后障碍物离车辆距离的远近,而且要求根据距离远近发出报警声并显示距离。

障碍物距离小于1m,距离值变化5cm更换显示,否则不更换;距离在1m以上,新值与原显示值之差大于10cm更换,否则不更换。

这就需要有一个能够准确计数和计时的芯片,而我们这学期微机课程所学的计数器8253刚好可以满足这个要求,因而选用8255作为系统的计数器和计时器。

系统需要通过中断来判断计时或计数是否完成,而中断控制器8259有七个可屏蔽中断口,通过与计数器8253输出相连可以反映计数的结束与否。

触发单片机进行中断处理,因而选用8259作为中断处理器。

四、硬件部分设计4.1整机连接图4.2 8088最小系统本设计8088最小工作模式中,用了1片8284A作为时钟发生器,74LS373,用作地址锁存器;用了1片74LS245作为数据总线收发器,增加数据总线的驱动能力。

原理图如图所示。

当用晶体振荡器作为振荡源时,晶体振荡器连在8284A 的X1和X2两端上,F/C接地。

8284A输出的时钟频率均为振荡源频率的三分之一。

同时它对READY 准备好信号和RESET复位信号进行同步,外部设备可以在任何时候发出这两个信号,8284A的内部逻辑电路在时钟后沿(下降沿)处使READY和RESET有效。

74LS373,作为地址锁存器。

8282(8283)是带有三态缓冲器的8位通用数据锁存器。

它们的引脚和内部结构如图2.9所示。

两者的区别仅在于8282的8位输入信号和输出信号之间是同相的,而8283的是反相的。

当系统中所连的存储器和外设较多时,需要增加数据总线的驱动能力,这时,要用1片74LS245作为总线收发器。

74LS245是三态输出8位双向数据缓冲器,OE是开启缓冲器的控制信号。

当OE有效时,允许数据通过缓冲器;当OE无效时,禁止数据通过缓冲器,输出呈高阻状态。

DIR是数据传送方向控制信号。

4.3 8255与数码管电路8255是Intel系列的并行接口芯片,本电路中8255作为8088系统与外部设备接口。

如图四所示8255数据线和控制线与8088单片机相连,以使单片机可以对8255进行编程。

8255的A、B、C端口均定义为输出。

A端口接数码管的字形线通过对8255三个端口的定义可以控制超声波的发射、蜂鸣器的鸣响和距离的显示。

8255的端口地址经过分析可得88H-8AH(分别为端口A、端口B、端口C及方式控制字)4.4 8253及8259部分电路8253内部有3个独立的16位定时/计数器通道。

计数器可按照二进制或十进制计数,计数和定时范围可在1—65535之间改变,每个通道有6种工作方式,计数频率可高达2MHz以上。

本设计中用74LS138对8253和8259进行选址,电路中用到通道0和通道1两个计数端口,通道0用来计算超声波发射到接收的时间,通道1用来定时,控制“嘟嘟声”声的频率。

其接口电路如图三所示可编程控制器8259是在多中断源系统中,用于8088等单片机的CPU实现对外部中断请求管理里工作,对他们实现优先权的排队,想CPU发出中断请求信号,提供中断类型码,屏蔽中断输入等功能的中断控制芯片。

8259A采单片或多拍级联方式,可管理不同多级中断。

本设计中使用了8259单级中断,用了IRQ5、IRQ6、IRQ7三个中断源,分别作为超声波回波信号、响铃频率计时、计数器计数中断。

(8253端口地址为84H-87H)五、软件部分设计5.1设计思路及流程图本次设计的软件部分首先分别对各个芯片进行初始化处理,随后,根据要求,画出相应流程图进行汇编编程设计开始8253、8255、8259初始化编程发射超声波信号1ms,且8253开始计数开中断是否有回波?5.2程序清单DA TA SEGMENTTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;数码管显示表(从0-9)LONG DW FFFFH ;距离值SELECT DB 01H,02H,03HNUM DB 00HRING DB 00HDA TA ENDSSTACK SEGMENT STACKDW 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE, SS:STACK, DS:DA TA, ES:DATASTART: MOV AX,DA TAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,DATAMOV ES,AXMOV DX,01HCLI;8253初始化MOV AL,34H ;计数器0,方式2,二进制,低高位写入;用于计算时间OUT 87H,ALMOV AL,6CH ;1ms一次负脉冲OUT 84H,ALMOV AL,38HOUT 84H,ALMOV AL,74H ;计数器1,方式2,二进制,低高位写入;用于蜂鸣器的声响OUT 87H,ALMOV AL,6CH ;1ms一次负脉冲OUT 84H,ALMOV AL,38HOUT 84H,AL;8255初始化MOV AL,80H ;配置A、B口为输出,工作于方式0MOV DX,8AHOUT DX,ALMOV AL,40H ;数码管段选择MOV DX,88HOUT DX,ALMOV AL,07HMOV DX,84H ;选中三个数码管OUT DX,AL;8259初始化MOV AX,0000H ;段基地址MOV DS,AXLEA AX,INTR7 ;用于每5cm一次负脉冲MOV SI,003CHMOV [SI],AXMOV AX,SEG IN2 ;入口段基址MOV SI,003EHMOV [SI],AXLEA AX,INTR6 ;用于每30ms一次脉冲,作为控制喇叭的方波频率 MOV SI,0038HMOV [SI],AXMOV AX,SEG IN1MOV SI,003AHMOV [SI],AXLEA AX,INTR5 ;用于接受超声波时,产生中断MOV SI,0034HMOV [SI],AXMOV AX,SEG IN0MOV SI,0036HMOV [SI],AX;发送1ms的脉冲SENT: MOV AL,02HOUT 61H,ALCALL DELAY1 ;延时1msMOV AL,00HOUT 61H,ALIN AL,21AND AL,1F ;开中断5,6,7OUT 21,ALMOV AX,SEG DATADISP:MOV AX,OFFSET LONG ;比较是否为初始值MOV SI,AXMOV AX,[SI]CMP AX,FFFFHJNE DIFMOV AL,40H ;相同则仍然显示"---"OUT 60H,ALMOV AL,07HOUT 62H,ALJMP DISP ;且循环,直至60ms中断后,重新到GO处MOV DS,AXDIF:MOV BX,0FFSET TABLEMOV DI,BXMOV BX,0FFSET SELECTMOV SI,BXCMP AX,64H ;比较1M,然后转到不同的显示程序JBE SMALLER;对下述程序的解释:如果当距离小于1米时,选择调用smaller程序,否则调用bigger(bigger 要求显示十米为一个单位)BIGGER: CALL DISP_MOSTMOV BL,00 ;个位为0CALL DISP_DAN ;调用单位显示子程序JMP DISPLAYSMALLER: CALL DISP_MOSTMOV BL,AH ;个位放入缓存CALL DISP_DAN ;调用单位显示子程序JMP DISPLAYDISP_DAN:PUSH AXMOV AL,B[BX+DI] ;查表得显示码OUT 60,AL ;向数码管输出显示码MOV AL,B[SI] ;查表得数码管片选OUT 62,AL ;向数码管输出片选CALL DALL YINC SI ;片选+1POP AXRETDISP_MOST:MOV BL,64H ;除以100,得百位DIV BL ;百位放在AL,余数放在AHMOV BH,00 ;为查表显示作准备MOV BL,AL ;百位放入缓存CALL DP_1 ;调用单位显示子程序MOV AL,AH ;对余数再进行除法运算MOV AH,00MOV BL,0AH ;除以10,得十位及个位(0AH表示十进制的10)DIV BL ;十位放在AL,个位放在AH(依次放)MOV BL,AL ;十位放入缓存CALL DP_1 ;调用单位显示子程序RETCODE ENDSEND START;中断5,超声波接受中断,计算车与障碍物的距离INTR5 PROC FARPUSH SI ;压堆栈(SI BX AX)PUSH BXPUSH AXMOV AX,OFFSET COUNT ;取5cm计数标志MOV SI,AXMOV AL,[SI]MOV BL,05HMUL BL ;乘以5cm,得总长度MOV BX,OFFSET LENGTH ;放入LENGTH标志位MOV SI,BXMOV [SI],AXPOP AXPOP BXPOP SIIRETINTR5 ENDP;中断6,用于产生不同频率来控制蜂鸣器发不同声音INTR6 PROC FARPUSH SIPUSH AXMOV AX,OFFSET LONGMOV SI,AXMOV AX,[SI]CMP AX,FFFFHJE BACKMOV AX,OFFSET SENTMOV SI,ALMOV AL,[SI]DEC ALCMP AL,00HJNE BACK ;不为0则返回XOR DLOUT 61H,DL ;取反输出给B口JMP BACKNOT_FFFF:MOV AL,00HOUT 61H,AL ;当检测范围大于10m关喇叭BACK:POP AXPOP SIIRETINTR6 ENDP;中断7,用于累计COUNT值,代表距离INTR7 PROC FARPUSH SIPUSH AXMOV AX,OFFSET COUNTMOV SI,AXMOV AL,[SI]INC ALCMP AL,CCHJNE BBCAKMOV AL,00HMOV [SI],AL ;COUNT标志位复位为00HMOV AX,OFFSET LENGTHMOV SI,AXMOV AX,FFFFHMOV [SI],AX ;length标志位复位为FFFFH BBACK:POP AXPOP SIJMP GOIRETINTR7 ENDP;延时子程序延时1msDALL Y PROC FARPUSH CXPUSH AXMOV CX,0FFFFHD1: MOV AX,000FFHD2: DEC AXJNE D2LOOP D1POP AXPOP CXRETDALL Y ENDP;延时子程序延时60msDALL Y_60 PROC FARPUSH CXPUSH AXMOV CX,78HD1: MOV AX,50HD2: DEC AXJNE D2LOOP D1POP AXPOP CXRETDALL Y_60 ENDP六、设计体会及总结本次课设最基本的原来全部都来自于我们的书本,所以一切我们都需要回到书本,回到课堂曾经用过的知识,我觉得这一点很好。

相关主题