毕业设计(论文)-基于单片机的汽车转弯信号灯控制设计.doc_第1页
毕业设计(论文)-基于单片机的汽车转弯信号灯控制设计.doc_第2页
毕业设计(论文)-基于单片机的汽车转弯信号灯控制设计.doc_第3页
毕业设计(论文)-基于单片机的汽车转弯信号灯控制设计.doc_第4页
毕业设计(论文)-基于单片机的汽车转弯信号灯控制设计.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

前 言前 言随着工业控制自动化水平的不断提高,。我们需要对系统中的多个对象进行高度智能化、自动化的控制。因此,单片机控制系统是整个控制系统中不可缺少的一部分。经过几年的专业学习,我们已基本掌握了一定的基础知识,但知识的综合应用能力仍有待提高。本次毕业设计是为了培养和提高我们的综合应用能力;加深对单片机技术的理解和利用设计工具进行综合设计应用的掌握;增强对单片机程序编写能力和使用alter公司的工具软件wave进行设计的应用;是我在校期间的最后一次综合理论的设计,也是对所学专业知识的集中检阅。在指导老师的帮助下灵活运用课堂知识,学会查阅相关参考书目,分析实际案例,通过本次设计,培养自己独立分析和解决实际问题的综合能力,扩大知识面,掌握单片机设计的基技能及编制设计技术的一般方法。传统的汽车转弯信号灯的控制采用数字逻辑电路实现,虽然这种方式较分立元件电路有了较大改进,但由于其功能完全靠硬件实现、因而存在种种弊端:在这种控制线路中、要实现某种控制只能通过各芯片间的硬件连线解决,而其控制功能已包含在固定线路之间,因此它的功能专一,不灵活;为了安全可靠、节约使用各芯片引脚,设置了许多带有制约关系的联锁电路,使电路在电源接通时,各器件都处于受制约状态。上述种种不利因素使得传统的汽车转弯信号灯控制系统很难达到更高的自动化、智能化程度,难以满足我们对设计、制作、使用、维护、功能调整和变更更加灵活方面的要求。我们在汽车转弯信号灯控制系统中采用性能价格比较优的at89c51单片机作为控制器,代替传统的控制电路、从而提高了自动化程度,增加了系统功能。37 设计人:周运华目 录目 录前言1摘要4第一章 课题内容52.2 设计目的52.2 设计内容52.3 系统的控制要求5第二章 总体方案62.1方案论证62.2器件选择、电路制作及软件编程72.3系统的调试7第三章 硬件设计84.1硬件安排及分析84.2at89c51单片机型号的选择及介绍94.2.1 主要特性104.2.2 管脚说明114.2.3振荡器特性124.2.4at89c51方框图134.2.5芯片擦除144.2.6编程方法154.2.7at89c51的极限参数及电气特性173.3 其它芯片内部逻辑结构图图 193.4硬件原理图 203.5pcb板图 203.6protel99封装总结20第四章 软件设计25 5.1程序流程图255.2设计程序275.3总体说明305.41hz闪烁信号的产生与占空比 305.530hz闪烁信号的产生与占空比305.6内存单元分配表32第六章 调试与存在的不足336.1调试方法336.2存在的问题和设计的不足33参考文献 35结束语36元件清单附图1附图2附图3摘要:本设计在分析了汽车转弯信号灯的数字逻辑电路控制方式存在的种种不利因素的基础上,提出了采用at89c51单片机作为该系统控制器的新方案,并对系统的硬件结构进行了阐述,对系统的监控程序进行了说明,对1hz、30hz闪烁信号产生与占空比形成的算法思想进行了详细的讨论。abstract: this design is on the basis of analysing all sorts of unfavourable factors that the automobile turn signals digital logical circuit control method exist , have proposed adopting at89c51 scm as the new scheme of this system controller , and has explained the hardware structure of the system, control procedure in system is it prove , produce with empty to go on the detailed discussion to 1hz , 30hz flickering signal than the algorithm thought of forming to go on.关键词:汽车转弯信号灯、控制系统、单片机、占空比keyword:automobile turn signal、control system、scm、comparison occupied in a space第三章 主要器件原理及芯片介绍 第一章 课题内容采用单片机对汽车转弯信号灯进行控制,比传统的数字逻辑电路控制要更加安全可靠,更有利于实现自动化和智能化的控制。1.1设计目的通过汽车转弯信号灯单片机控制系统的设计,培养和提高我们的综合应用能力;加深对单片机技术的理解和利用设计工具综合设计的掌握;增强对单片机程序编写能力和使用alter公司的工具软件wave进行设计的应用。1.2设计内容利用单片机,采用合理的方法设计一个汽车转弯信号灯的控制系统,用单片机语言写出硬件描述程序并使用wave和实验箱实行综合设计。1.3系统的控制要求 汽车在驾驶时有左转弯、右转弯、刹车、合紧急开关、停靠等操作。在左转弯或右转弯时,通过转弯操作杆就使左转开关或右转开关合上,从而使左头灯、仪表板左转弯灯、左尾或右头灯、仪表板右转弯灯、右尾头闪烁;合紧急开关时要求前面述及的6个信号灯全都闪烁;汽车刹车时,2个尾灯点亮;如正当转弯时刹车,则转弯时原应闪烁的信号灯仍应闪烁。以上闪烁,都是频率为1hz的低频闪烁;在汽车停靠而停靠开关合上时,左头灯、右头灯、左尾灯、右尾灯按频率为30hz的高频闪烁。综上所述,在各种操作动作时,信号灯应输出的信号表1所示。驾驶操作输出信号仪表板左转弯灯仪表板右转弯灯左头灯右头灯左尾灯右尾灯左转弯(合上左转开关)闪烁闪烁闪烁右转弯(合上右转开关)闪烁闪烁闪烁合紧急开关闪烁闪烁闪烁闪烁闪烁闪烁刹车(合上刹车开关)亮亮左转弯时刹车闪烁闪烁闪烁亮右转弯时刹车闪烁闪烁亮闪烁刹车,并合紧急开关闪烁闪烁闪烁闪烁亮亮左转弯时刹车,并合紧急开关闪烁闪烁闪烁闪烁闪烁亮右转弯时刹车,并合紧急开关闪烁闪烁闪烁闪烁亮闪烁停靠(合上停靠开关)30hz闪烁30hz闪烁30hz闪烁30hz闪烁表1第二章 总体方案根据设计内容及系统的控制要求可以确定设计大致可分为以下三个部分:2.1方案论证 需求分析,方案论证是单片机应用系统设计工作的开始,也是工作的基础。只有经过深入细致地分析,周密而科学地方案论证才能使系统设计工作顺利完成,需求分析时对方案进行考虑,以便有针对性地调查研究。 本设计需求分析的内容主要包括:被测控参数的形式(输入、输出信号),被测控参数的范围(高电平、低电平)。本设计通过对数字逻辑电路控制和单片机控制的比较,得出数字逻辑电路控制的只能通过各芯片间的硬件连线解决来实现其功能,而且其控制功能已经包含在固定线路之间,因此它的功能专一,不灵活,为了安全可靠、节约使用各芯片引脚,达到灵活控制的目的,我们采用单片机进行控制。at89c51较msc-51来说,功能更加强大、灵活性更高,且价格合理,所以我们选用at89c51作为本次设计的单片机。根据系统的控制要求,我们可以画出系统方框图:at89c51开关控制输入信号灯输出通过对开关控制输入信号和信号灯输出信号的检测,便可以简单的实现本次设计所要示的功能。在检测输入信号(p3.0p3.4)时,我们通过对开关的闭合配合反相器的工作来判断是否有输入信号(高电平)。在检测输出信号(p1.0p1.6)时,我们通过采用p1.7对晶体管的通断配合或非门的工作来判断是否有故障(低电平),如果为高电平,即有故障则点亮故障灯;如果没有故障则根据驾驶室执行相应操作。在完成硬件的设计后,通过软件编制,便可以实现这个系统的功能。2.2器件选择,电路制作及软件编程要选择合适的器件并进行测试是否好坏;电路制作要简单化,结构要清晰,编号要统一,按顺序结构进行;软件结构要做到反复的修改,要精益求精,直到满足要求为止。2.3系统的调试写完程序和焊接好线路后,不能一次性成功、正常工作是常有的事情,这就需要查错和调试, 调试完成后,应在实验室模拟现场条件,对设计的硬件,软件进行性能测定,现场试用时要对使用情况做详细记录,在各种可能的情况下都要做实验。第三章 硬件设计3.1硬件安排及分析 根据系统控制要求的表1,可画出实现这一汽车信号灯要求的相应数字逻辑电路,如图1所示。现在改用at89c51系列单片机,可实现以下三项功能:图1相同的功能;产生所需的低频(1hz)与高频(30hz)闪烁信号;有一定的故障监控性能,以提高系统的可靠性。1hz、30hz闪烁信号的产生可由单片机内部的定时器解决。图2是改用单片机控制后的硬件安排自图2可见:各种驾驶操作的信号自p3口送入单片机,而使信号灯点亮的输出信号则自p1口输出。图的下部是故障监控电路。在p1.0p1.5共6路输出中,如轮渡使1路的晶体管断开(p1口相应引脚输出低电平),这1路的信号灯将熄灭,而其它5路的晶体管接通(p1口引脚送来高电平),相应的信号灯点亮,则在正常情况下,信号灯熄灭的那路将使p1.7呈现低电平;要是p1.7出现高电平,可说明当前这1路有了故障。另外,如使6路的晶体管全部接通(p1口引脚送来高电平),在正常情况下,p1.7应呈高电平;要是p1.7出现低电平,也说明信号线路存在故障。在故障时,通过软件应使p1.6输出高电平,以点亮故障信号灯报警。除硬件安排外,单片机控制系统要实现上述功能还必须通过软件编程的配合。图1:实现表1所列汽车信号灯要求的数字逻辑电路图2:汽车转弯信号灯单片机控制系统的示意电路3.2at89c51单片机型号的选择及介绍基于下列原因我们选用at89c51作为控制核心。由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机。在单片机家族的众多成员中,mcs-51单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域的主流。mcs-51系列单片机是intel公司在20世纪80年代初研制出来的,虽然近年来该公司已经把精力集中在了计算机的cpu生产上,但是,以mcs-51技术核心为主导的微控制器技术己被atmel, phil工ps等公司所继承,并且在原有基础上又进行了新的开发,从而产生了和mcs-51兼容而功能更加强劲的微控制器系列。atmel公司所生产的89系列单片机就是基于intel公司的mcs-51系列而研制的并与mcs-51兼容的微控制器系列。atmel公司是美国在20世纪80年代中期成立并发展起来的半导体公司。该公司的技术优势在于flash存储技术、高质高可靠性的生产技术。随着业务的发展,在20世纪90年代初,atmel公司一跃成为全球最大的eeprom供应商。1994年,为了介入单片机市场,atmel公司以eeprom技术和intel公司的80c31单片机核心技术进行交换,从而取得80c31核的使用权。atmel公司把自身的先进flash存储器技术和8oc31核相结合,从而生产出了flash单片机at89系列。这是一种内部含flash存储器的特殊单片机系列。由于它内部含有大容量的flash存储器,所以在产品开发及生产便携式商品、手提式仪器等方面有着十分广泛的应用,也是目前取代传统的mcs-51系列单片机的主流单片机之一。at89c51是一种功能强、灵活性高,且价格合理的单片机,可方便地应用在各种控制领域。3.2.1 主要特性: 与mcs-51 兼容 4k字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0hz-24hz 三级程序存储器锁定 128*8位内部ram 32可编程i/o线 两个16位定时器/计数器 5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 3.2.2 管脚说明: vcc:供电电压。 gnd:接地。 p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。 p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为at89c51的一些特殊功能口,如下所示:管脚 (备选功能) p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 /int0(外部中断0)p3.3 /int1(外部中断1)p3.4 t0(记时器0外部输入)p3.5 t1(记时器1外部输入)p3.6 /wr(外部数据存储器写选通)p3.7 /rd(外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。/psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。/ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的输出。3.2.3 振荡器特性: xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.2.4 at89c51方框图(见下页)3.2.5 芯片擦除:整个perom阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ale管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,at89c51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,cpu停止工作。但ram,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存ram的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.2.6 编程方法at89c51单片机内部有4k字节的flash perom,这个flash存储陈列出厂时已处于擦除状态(即所有存储单元的内容均为ffh),用户随时可以对其进行编程。编程接口可接收高电压(12v)或低电压(vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用eprom编程器兼容。at89c51单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用户可从芯片上的型号和读取芯片内的签名字节获得信息,见下表2:vpp=12vvpp=5v芯片顶面标识at89c51xxxxyywwat89c51xxxx-5yyww签名字节(030h)=1eh(031)=51h(032)=ffh(030h)=1eh(031)=51h(032)=05h表2at89c51的程序存储器陈列是采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的perom程序存储器写入一个非空字节,必须使用片擦除的方式将整个存储器的内容清除。编程前,须按表3和图3所示设置好地址、数据及控制信号,编程单元的地址加在p1口和p2口的p2.0 p2.3(11位地址范围为0000h0ffffh),数据从p0口输入,引脚p2.6、p2.7和p3.6、p3.7的电平设置见表6,(/psen)为低电平,rst保持高电平,(/ea)/vpp引脚是编程电源的输入端,按要求加上编程电压,ale/(prog)引脚输入编程脉冲(负脉冲)。编程时,可采用420mhz的时钟振荡器,at89c51编程方法如下:3.2.6.1在地址线上加上要编程单元的地址信号。3.2.6.2在数据线上加上要写入的数据字节。3.2.6.3激活相应的控制信号。3.2.6.4在高电压编程方式时,将(ea)/vpp端加上12v的编程电压。3.2.6.5每对flash存储陈列写入一个字节或每写入一个程序加密位,加上一个ale/(prog)编程脉冲。改变编程单元的地址和写入的数据,重复15步骤,直到全部文件编程结束。每个字节写入周期是自身定时的,通常约为1.5ms。表3flash存储器编程真值表图33.2.7 at89c51的极限参数及电气特性3.2.7.1 at89c51的极限参数参 数额定值单位操作温度0+70 或-40 +85贮存温度范围-65150ea/vpp脚相对于vss的电压0+13.0v其它任何脚相对于vss的电压-0.5+6.5v每个i/o脚的最大iol15ma功率损耗(指器件表面的发热,而非器件的功耗)1.5w3.2.7.2 at89c51的电气特性ac特性:在以下条件下,p0口,ale/prog,psen的负载电容为100pf,其它输出口的负载电容为80pf。dc特性:注意:1) 不能保证典型值,这些值是在室温5v 下测得2) p0口和p2口上的容性负载会产生噪声叠加到1口、3口和ale 的低电平上。噪声产生的原因是在总线操作期间,0口和2口从1到0 的跳变会使外部总线电容对口0和口2 管脚放电,在最恶劣的情况下(容性负载100pf) ,ale 管脚上的噪声脉冲可超过0.8v。 在这种境况下,可以通过施密特触发器或者带有施密特触发strobe 输入的地址锁存器来校正ale 。iol 会超过测试条件下的电流。3) 容性负载加到口0和口2会导致ale 和psen 管脚瞬时低于vcc-0.7v, 当地址位稳定下来。4) 当口1、2、3 被外部电路拉低时,口上从到0的跳变将产生跳变电流,当输入电压大约在2v时,跳变电流达到最大。6) 应用温度t0+70 tamb-40+85 ,itl-750a7) 口0、ale 和 psen 脚的负载电容为100pf ,其他输出口为80 pf8) 在稳定的状态条件下,io 低被外部限制如下i. 每个管脚的最大iol 15ma (注85 规格)ii. 每个8 位口的最大iol 26 maiii. iol 输出最大总和 71maiv. 如果iol 超过测试条件,vol 可能会超过相应规格。不能保证超过测试电流。9) ale 的测试是ale 关断情况下,测出ale 的高电位值。10) 管脚电容特性并不由测试得出,而是由其特性保证。管脚电容小于25 pf。陶瓷电容小于15pf(ea是25pf)3.3 其它芯片内部逻辑结构图图3.3.1 74ls27(三输入或非门)74ls27芯片内部逻辑结构图:3.3.2 74ls32(二输入或门)74ls32芯片内部逻辑结构图:3.3.2 74ls04(反相器)74ls04芯片内部逻辑结构图:第四章 硬件设计3.4 硬件原理图见附录13.5 pcb板图3.5.1 平面效果图见附录24.2.2 3d效果图见附录33.6 protel99封装总结零件封装是指实际零件焊接到电路板时所指示的外观和焊点的位置。是纯粹的空间概念.因此不同的元件可共用同一零件封装,同种元件也可有不同的零件封装。像电阻,有传统的针插式,这种元件体积较大,电路板必须钻孔才能安置元件,完成钻孔后,插入元件,再过锡炉或喷锡(也可手焊),成本较高,较新的设计都是采用体积小的表面贴片式元件(smd)这种元件不必钻孔,用钢膜将半熔状锡膏倒入电路板,再把smd元件放上,即可焊接在电路板上了。 电阻 axial 无极性电容 rad 电解电容 rb- 电位器 vr 二极管 diode 三极管 to 电源稳压块78和79系列 to126h和to-126v 场效应管 和三极管一样 整流桥 d44 d37 d46 单排多针插座 con sip 双列直插元件 dip 晶振 xtal1 电阻:res1,res2,res3,res4;封装属性为axial系列 无极性电容:cap;封装属性为rad-0.1到rad-0.4 电解电容:electroi;封装属性为rb.2/.4到rb.5/1.0 电位器:pot1,pot2;封装属性为vr-1到vr-5 二极管:封装属性为diode-0.4(小功率)diode-0.7(大功率) 三极管:常见的封装属性为to-18(普通三极管)to-22(大功率三极管)to-3(大功率达林 顿管) 电源稳压块有78和79系列;78系列如7805,7812,7820等 79系列有7905,7912,7920等 常见的封装属性有to126h和to126v 整流桥:bridge1,bridge2: 封装属性为d系列(d-44,d-37,d-46) 电阻:axial0.3-axial0.7其中0.4-0.7指电阻的长度,一般用axial0.4 瓷片电容:rad0.1-rad0.3。其中0.1-0.3指电容大小,一般用rad0.1 电解电容:rb.1/.2-rb.4/.8 其中.1/.2-.4/.8指电容大小。一般470uf用rb.3/.6 二极管:diode0.4-diode0.7 其中0.4-0.7指二极管长短,一般用diode0.4 发光二极管:rb.1/.2 集成块:dip8-dip40, 其中指有多少脚,脚的就是dip8 贴片电阻 0603表示的是封装尺寸 与具体阻值没有关系 但封装尺寸与功率有关 通常来说 0201 1/20w 0402 1/16w 0603 1/10w 0805 1/8w 1206 1/4w 电容电阻外形尺寸与封装的对应关系是: 0402=1.0x0.5 0603=1.6x0.8 0805=2.0x1.2 1206=3.2x1.6 1210=3.2x2.5 1812=4.5x3.2 2225=5.6x6.5 固定的元件封装,这是因为这个库中的元件都有多种形式:以晶体管为例说明一下:晶体管是我们常用的的元件之一,在device。lib库中,简简单单的只有npn与pnp之分,但实际上,如果它是npn的2n3055那它有可能是铁壳子的to3,如果它是npn的2n3054,则有可能是铁壳的to-66或to-5,而学用的cs9013,有to-92a,to-92b,还有to-5,to-46,to-5 2等等,千变万化。 还有一个就是电阻,在device库中,它也是简单地把它们称为res1和res2,不管它是100还是470k都一样,对电路板而言,它与欧姆数根本不相关,完全是按该电阻的功率数来决定的我们选用的1/4w和甚至1/2w的电阻,都可以用axial0.3元件封装,而功率数大一点的话,可用axial0.4,axial0.5等等。现将常用的元件封装整理如下: 电阻类及无极性双端元件 axial0.3-axial1.0 无极性电容 rad0.1-rad0.4 有极性电容 rb.2/.4-rb.5/1.0 二极管 diode0.4及 diode0.7 石英晶体振荡器 xtal1 晶体管、fet、ujt to-xxx(to-3,to-5) 可变电阻(pot1、pot2) vr1-vr5 刷电路板上的焊盘间的距离就是300mil(因为在电机领域里,是以英制单位为主的。同样的,对于无极性的电容,rad0.1-rad0.4也是一样;对有极性的电容如电解电容,其封装为r b.2/.4,rb.3/.6等,其中“.2”为焊盘间距,“.4”为电容圆筒的外径。 对于晶体管,那就直接看它的外形及功率,大功率的晶体管,就用to3,中功率的晶体管 ,如果是扁平的,就用to-220,如果是金属壳的,就用to-66,小功率的晶体管,就用to-5 ,to-46,to-92a等都可以,反正它的管脚也长,弯一下也可以。 对于常用的集成ic电路,有dipxx,就是双列直插的元件封装,dip8就是双排,每排有4个引 脚,两排间距离是300mil,焊盘间的距离是100mil。sipxx就是单排的封装。等等。同样的包装,其管脚可不一定一样。例如,对于to-92b之类的包装,通常是1脚为e(发射极),而2脚有可能是b极(基极),也可能是c(集电极);同样的,3脚有可能是c,也有可能是b,具体是哪个,只有拿到了元件才能确定。因此,电路软件不敢硬性定义焊盘名称(管脚名称),同样的 ,场效应管,mos管也可以用跟晶体管一样的封装,它可以通用于三个引脚的元件。 在可变电阻上也同样会出现类似的问题;在原理图中,可变电阻的管脚分别为1、w、及2, 所产生的网络表,就是1、2和w,在pcb电路板中,焊盘就是1,2,3。当电路中有这两种元 件时,就要修改pcb与sch之间的差异最快的方法是在产生网络表后,直接在网络表中,将晶 体管管脚改为1,2,3;将可变电阻的改成与电路板元件外形一样的1,2,3即可 第四章 软件设计5.1 程序流程图5.1.1 主程序开 始设置定时器初值设置定时器0为模式1设置软件计数器初值允许定时器0中断总允许中断启动定时器0等待第六章 调试与存在的不足5.1.2 中断程序对th0重置保护现场故障监控程序故障告警处理形成占空比为62.5%的30hz信号1秒到否?有故障吗?计算并输出给各相应的灯恢复现场返 回对软件计数器20h重置244到否无有中断开始5.2 设计程序org 0000hljmpstartorg000bhmovth0,#111110000b;定时器/计数器0重装载pushpsw;保存现场ajmpintsuborg0030hstart:movtl0,#0;定时器/计数器0预置数movth0,#0f0h;同上movtmod,#01000001b;设定定时器/计数器0工作于方式1,定时器/计数器1未用mov20h,#244;片内ram20h单元用作计数器,初值设定为244setbet0;定时器/计数器0开setbea;总开中setbtr0;起动定时器/计数器0sjmp$;等待intsub:djnz20h,lamp;片内ram20h单元未减到0,转信号灯指示程序段mov20h,#244;片内ram20h单元已减到0,则该单元重装载movp1,#3fh;使p1.0 1.5输出高电平,此起为故障监控程序段clrp1.0;轮流断开一个信号灯jbp1.7,fault;检测是否为高电平,如果是,则跳转到故障灯指示段setbp1.0;检测为低电平,则正常,将这个信号灯复位,接着检测clrp1.2jbp1.7,faultsetbp1.2clrp1.4jbp1.7,faultsetbp1.4clrp1.1jbp1.7,faultsetbp1.1clrp1.3jbp1.7,faultsetbp1.3clrp1.5jbp1.7,faultsetbp1.5jb p1.7,lamp;接通所有信号灯,检测是否为高电平,;如果是,则转信号批示灯程序fault:setbp1.6;点亮故障信号灯lamp:movc,01h;此起为信号灯指示程序段anlc,00horlc,02h;以上3条凑30hz闪烁信号的占空比为62.5%anlc,p3.2;与停靠开关进行与操作,停靠开关没有合上时,只输出1hz信号,合上时,输出30hz信号movpsw.1,c;30hz闪烁信号暂存于psw.1(psw这一位原未定义)movc,p3.3;将左转开关信号送到corlc,p3.1;c与紧急开关进行或操作anlc,07h;与20h单元位寻址区的07位进行与操作,只输出1hz信号movp1.2,c;仪表板左转弯灯闪烁movf0,c;将左转或紧急信号暂存于f0orlc,psw.1;或操作30hz信号movp1.0,c;左头灯闪烁movc,p3.0;将刹车开关信号送到canlc,p3.3;左转和刹车可同时进行orlc,f0;或操作左转或紧急信号orlc,psw.1;或操作30hz信号movp1.4,c;左尾灯亮或闪烁movc,p3.4orlc,p3.1anlc,07hmovp1.3,c;仪表板右转弯灯闪烁movf0,corlc,psw.1movp.1,c;右头灯闪烁movc,p3.0anlc,p3.4orlc,f0orlc,psw.1movp1.5,c;右尾灯亮或闪烁poppsw;恢复现场retiend5.3 总体说明主程序部分只是自0030h地址起的8条指令。7条用于初始化:对定时器/计数器官0预置数、设定定时器/计数器0的工作方式、设定片内ram20h单元的初值、为定时器/计数器0中断开和起动定时器/计数器0。最后1条是等定数器/计数器0溢出中断。响应定时器/计数器0溢出中断后,相应的中断服务子程序将以000bh为入口地址,在为这时器/计数器0重装载(实际只需为th0重装载,因tl0原本已减为0)和保存现场后又转去intsub。自intsub起含本例2个主要程序段:信号灯指示程序段和故障监控程序段。如1s时间未到,将只执行信号灯批示程序段,根据驾驶操作动作,如遇转弯、停靠等情形,将有信号灯闪烁或点亮(表1)。每逢1s时间到,则先执行故障监控程序段,对信号灯批示电路(如图2右部)检查一遍,然后再执行信号灯指示程序段。信号灯指示程序段和故障监控程序段都很简明,故说明从略。5.4 1hz闪烁信号的产生与占空比本课题令定时器/计数器0工作于方式1的定时器方式,且预置以f000h,在12mhz晶振的情形下,每隔4096us将溢出一次。另以片内ram20h单元为计数器,初值置为244,每逢定时器/计数器0溢出一次便减1;当减到0时,经历的时间便=244*4096us=1s在上述1s时间内,片内ram20h单元最高位不为1的时间为(127/244)s,为1的时间为(244-127)/144=(117/244)s,故自该位可得占空比接近50%(实际117/244=48%)的1hz闪烁信号。5.5 30hz闪烁信号的产生与占空比闪述片内ram20h单元的初值置为244,也即11110100b;如将前5位与后3位分开看,则前5位为30,后3位可有8种变化。该20h在自244减到0的过程中,前5位每1/30s变化一次(减1)。在这1/30s中,如根据后3位的变化情形使输出电平在0,1间恰好反复一次,这输出电平便呈30hz闪烁信号。闪烁信号的占空比则视每1/30s中1电平所占的比例而定,详见表3。占空比大,信号灯通电的时间长,灯丝发光的亮度相应提高。片内ram20h单元各位的电平输 出 电 平765432101111111111100111111101001111110000011110110000111010000001100100000010000000000占空比(%)12.52537.55062.57587.5表4本课题选定占空比为62.5%。查表4知,后3位自111减至011的过程内输出电平均应为1。满足这一条件的逻辑式应为:02h+01h+00h=1(见信号灯指示程序段前3条指令),式中00h、01h、02h都是直接寻址位的位地址。占空比取(20h)7来控制,(20h)7=1时控制发光,时间为: (1-127/244)s;当(20h)7=0时控制熄灭,时间为:127/244s 。5.6 存单元分配表20h软计数器00h20h单元位寻址区的第00位01h20h单元位寻址区的第01位02h20h单元位寻址区的第02位07h20h单元位寻址区的第07位c进位位psw.1程序状态字寄存器的第1位f0标志位p1.0左头灯的输出位p1.1右头灯的输出位p1.2仪表板左转弯灯输出位p1.3仪表板右转弯灯输出位p1.4左尾灯的输出位输出位p1.5右尾灯的输出位输出位p1.6故障灯输出位p1.7对各灯信号的检测位p3.0刹车开关输入位p3.1紧急开关输入位p3.2停靠开关输入位p3.3左转开关输入位p3.4右转开关输入位第五章 调试与存在的不足5.1 调试方法完成了硬件的设计、制作和软件编程之后,要使系统能够按设计意图正常运行,必须进行系统调试。系统调试包括硬件调试和软件调试两部分。不过,作为一个计算机系统,其运行是软硬件相结合的,因此,软硬件的调试也是不可能绝对分开的,硬件的调试常常需要得用调试软件,软件的调试也可能需要通过对硬件的测试和控制来进行。5.1.1硬件调试。硬件调试的主要任务是排除硬件故障,其中包括设计错误和工艺性故障。5.1.1.1脱机检查。用万用表逐步按照电路原理图检查印制电路板中所有器件的各引脚,尤其是电源的连接是否正确;检查数据总线、地址总线和控制总线是否有短路等故障,顺序是否正确;检查各开关按键是否能正常开关,是否连接正确;各限流电阻是否短路等内容。为了保护芯片,应先对各ic座(尤其是电源端)电位进行检查,确定其无误后再插入芯片检查。5.1.1.2联机调试。暂时拔掉89c51芯片,将仿真器的40芯仿真插头插入89c51的芯片插座进行调试,检验键盘/显示接口电路是否满足设计要求。可以通过一些简单的测试软件来查看接口工作是否正常。例如,我们可以设计一个软件,使89c51的p1、p2口输出55h或aah,同时读p3口,运行后用万用表检查相应端口电平是否一高

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论