




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科毕业设计论文 题 目 基于单片机的汽车灯控系统模拟设计 专业名称 自动化 学生姓名 张文航 指导教师 李雪霞 毕业时间 2014.6 设计论文毕业 任务书一、题目:基于单片机的汽车灯控系统模拟设计二、指导思想和目的要求:通过毕业设计,使学生对所学电子工艺、电路基础知识、模电、数电、等电子基础课程的基本知识加深理解,掌握单片机的基本指令及基本结构,并将其与实际工程应用紧密结合起来,培养创新意识,增强分析问题解决问题能力,为尽快进入社会角色,熟悉相关开发工作流程、项目小组组成、分工、合作方式方法等。增强团队合作意识,提高基本工作技能,为即将踏入社会奠定理论和实践基础。内容:汽车在行驶时,有左转
2、弯、右转弯、刹车、警示等操作。左转弯时,应使左头灯、左尾灯、仪表板左转指示灯闪烁。右转弯时,应使右头灯、右尾灯、仪表板右转指示灯闪烁。刹车时,左右两个尾灯亮。警示时,头灯、尾灯、仪表板指示灯等6个灯全闪烁。(1)设计思路:运用所学单片机知识,运用其I/O口设计基本控制电路,并以发光管、蜂鸣器、按键等外部设备做为相应的模拟部件。(2)步骤:l、了解汽车灯控系统的工作原理及要求。2、设计单片机工作的基本电路,如:晶振电路、复位电路。3、根据系统设计要求选择发光二极管、蜂鸣器、按键等模拟部件。 4、设计系统基本电路。5、绘制PRTUSE电原理图并编写系统控制程序。6、联机进行系统仿真调试。三、进度与
3、要求:1第一周第一周 收集汽车电子相关资料。2第二周第三周 用PROTUSE设计硬件原理图并进行器件选型。3第四周第六周 编写系统各功能模块控制程序。4第七周第十周 联机进行系统调试。5. 第十一周第十二周 整理并组织论文。6第十三周第十四周 完成修改稿,定稿,打印,交评阅。7第十五周第十六周 评阅与答辩 学生 张文航 指导教师 李雪霞 系主任 史仪凯摘 要随着单片机的日益发展,其应用也越来越广泛,通过对“汽车灯控制系统”设计,可以对单片机的知识得到巩固和扩展。在生活的环境中,自动控制要求中都会有单片机的控制的一部分;从简单到复杂,凡是能想象到的地方几乎都有使用单片机的需求。单片机的应用有利于
4、产品的小型化、多功能化和智能化,能够提高劳动效率、减轻劳动强度,提升产品质量,改善劳动环境。单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器、GPS导航系统、abs防抱死系统、制动系统、胎压检测等。单片机在工商、金融、科研、教育、电力、通信、物流和国防航空航天等领域都有着十分广泛的用途。近年来开始在汽车前照灯上逐步广泛应用的一种新型光源,同传统卤素灯相比,具有环保节能、使用寿命长、反应速度快等特点。汽车前照灯使用的LED 已成为各个汽车灯具研发机构努力开发的目标,是未来汽车照明领域的重大发展方向之一。本课程内容是设计一个单片机控制系统,在汽车
5、进行左转弯、右转弯、近光灯、远光灯、刹车、合紧急(报警)开关等操作时,实现对各种信号指示灯的控制。本设计主要是对单片机的并行输入/输出口电路的应用,通过I/O口控制发光二极管的亮灭闪烁,加上一些复位电路按键电路晶振模块、灯光模块来模拟汽车尾灯的功能。 关键字:单片机,LED灯,汽车灯控系统ABSTRACT With the increasing development of the microcontroller, its applications are increasingly being used by auto light control system design, the micr
6、ocontroller can be consolidated and expanded knowledge. In the living environment, automatic control requirements will have a part of the control of the microcontroller; from simple to complex, who can imagine the place is almost always use the microcontroller needs. SCM applications conducive to mi
7、niaturization, versatile and intelligent, able to improve labor efficiency, reduce labor intensity, improve product quality, improve the working environment. SCM applications in automotive electronics is very wide, such as automobile engine controllers, automobile engine based on CAN bus intelligent
8、 electronic controller, GPS navigation system, abs anti-lock system, brake system, tire pressure detection. SCM in industrial, commercial, financial, scientific research, education, electricity, LED headlamp used in various automotive lighting has become a research and development institutions worki
9、ng to develop goals, is one of the major developments in the future direction of the automotive lighting sector. This course is to design a microcomputer control system, the car carried a left turn, right turn, beam lights, high beam, brake, when combined emergency (alarm) switching and other operat
10、ions, to achieve control of the various signal lights. This design is a single-chip parallel input / output port circuit applications, the I / O port control of light-emitting diode off, flicker, plus some key circuit reset circuit crystal module, light module to simulate automobile taillights funct
11、ion.KEY WORDS: microcontroller,LED lights,Car light control system目 录摘 要IIIABSTRACTIV第一章 绪 论7778第二章 系统硬件设计92.1 总体硬件方案9系统结构图9元器件9设计原理10系统总体模块图112.2 各功能模块原理11单片机模块11按键模块15指示灯模块16复位电路模块17晶振电路模块18第三章 系统软件设计20203近光灯流程图21远光灯流程图22左转向流程图23右转向流程图24刹车流程图25紧急(报警)流程图263.2 编程软件263.3 程序29第四章 仿真结果323232远光灯仿真图33左转向
12、仿真图33右转向仿真图34刹车仿真图35紧急(报警)仿真图364.2 仿真工具Proteus介绍3739参考文献41致 谢42毕业设计小结43 第一章 绪 论随着单片机的日益发展,其应用也越来越广泛,利用单片机控制汽车信号灯可以对单片机的知识得到巩固和扩展。本课程内容是设计一个单片机控制系统,在汽车进行左转弯、右转弯、刹车、合紧急开关等操作时,实现对各种信号指示灯的控制。通过所学知识进行软硬件设计,提高各方面技能,巩固对理论知识的掌握,把理论知识应用到实际中,使生活更方便、安全。现在虽然单片机的应用很普遍,但仍有许多项目未实现,所以单片机的发展有很大的空间。汽车作为现代最重要的交通工具之一,在
13、当今社会得到了飞速的发展。在我国汽车快速的进入了普通家庭,已成为事实。由于汽车交通所引发的事故呈现出上升的趋势。特别是汽车在夜间行驶,汽车前大灯远近灯光的控制不当也会带来一些不安全的因素。本文介绍了一种由AT89C51型单片机控制,光敏传感器采集信号,继电器执行动作的夜间汽车前大灯远近灯光转换的自动控制系统。该系统安装在汽车上,使汽车在夜间行驶时,根据对头车驶近驶离的情况,能够自动调节前大灯远近灯光转换。该系统稳定可靠,成本低廉。有一定的推广和使用价值。本文中汽车转向灯设计是用单片机来实现的,单片机控制系统可避免传统的缺点,因为单片机功能强、使用灵活、可靠性高、成本低、体积小、面向控制、具有智
14、能化功能等很多优点。转向灯使用要求:转向控制时,拨打相应侧的转向开关,相应侧的转向灯低频闪烁,同时驾驶室里相应侧LED转向指示灯或也以同样低的频率闪烁;左右两侧转向灯有故障时,驾驶室里LED转向指示灯或高频闪烁;汽车紧急报警时四个转向灯同时高频率闪烁,驾驶室里左右LED转向指示灯和同频率闪烁。由此看来,利用单片机控制汽车灯光系统有良好的发展前景。 本系统中要求设计汽车信号灯控制系统,在驾驶汽车时有左转弯、右转弯、近光灯、远光灯、刹车、合紧急开关六个操作;所以可以用6个开关来模拟这几个操作,当单片机检测到相关操作后,然后判断属于那一类操作,再通过软件来驱动控制相应的信号灯闪烁。以此来实现对汽车信
15、号灯的控制。当合上左转弯开关后,左前灯、左尾灯闪烁;当合上右转弯开关后,右前灯、右尾灯闪烁。合上近光灯开关,两近光灯亮。合上远光灯开关,四个远光灯亮。当刹车开关合上时,两侧尾灯闪烁;在紧急开关合上后,所有灯都闪烁。针对上述问题,我们用AT89C51单片机设计了一套汽车信号灯控制系统。 第二章 系统硬件设计2.1 总体硬件方案该课设是基于单片机利用开关控制二极管亮暗来实现。是一个典型的控制系统. 单 片 机 电源电路指示灯模块模块按键模块复位电路晶振电路 图 2.1 结构示意图汽车信号灯控制硬件电路元器件如表2-1。表2-1 汽车信号灯控制硬件电路元器件表名称代号数量单片机U11晶振B1发光二极
16、管RR、RH、LH、LR、DB、HB8按钮SB0SB67电阻R1R8、R9、R1010电阻R11R16 6 电容C31电容C1、C22单片机电源VCC1利用单片机控制汽车信号灯,硬件电路比较简单,并可以通过软件完成所需要的控制功能。以下是利用单片机控制的8个汽车信号灯,它们分别为左尾灯LR、左前灯LH、右前等RH、右尾灯RR、远光灯HB、近光灯DB。6个按键SB1、SB2、SB3、SB4、SB5、SB6,它们分别是左拐弯键、右拐弯键、近光灯键、远光灯键、刹车键、紧急信号键(报警)。汽车信号灯控制功能见表2-2。表2-2 汽车信号灯控制功能表按 键键 名动 作SB1左转向左前灯LH、左后灯LR闪
17、烁SB5刹车左后灯LR、右后灯RR闪烁SB6紧急(报警)信号所有灯闪烁SB2右转向右前灯RH、右后灯RR闪烁SB3近光灯2个DB灯亮SB4远光灯 4个HB灯亮图2.2 系统模块总图2.2 各功能模块原理AT89C51是ATMEL公司生产的低电压,高性能的CMOS 8位单片机,片内含4K bytes的可反复擦写和只读程序存储器(PEROM)和128 bytes的随机存取数据存储器,器件采用ATMEL公司的高密度、非易失性存储技术,兼容标准MCS-51指令系统,片内置通用8位中央处理器和FLASH存储单元。其引脚图如图3-1所示。其主要性能参数为:与MCS-51产品指令系统完全兼容;4k字节可重擦
18、写Flash闪速存储器;1000次擦写周期;全静态操作:0Hz-24MHz;三级加密程序存储器;128 X 8字节内部RAM;32个可编程I/O口线;2个16位定时/计数器;6个中断源;可编程串行UART通道;低功耗空闲和掉电模式。图2.3 AT89C51引脚图AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可隆至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信
19、口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一硬件复位。引脚功能说明:Vcc:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总路线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。中断控制片内Flash存储器片内RAMETC定时器1定时器0 CPU振荡器总线控制I/O接口串行接口P0 P2 P1 P3外部中断TXD RXD计数器输出在访问外部数据存储器或程序存储器时,这组口线从那时起转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电图2.4 AT8
20、9C51内部结构图P1口:P1是一个内部带上拉电阻的8位双向I/O口,P1的输出缓冲级可“1”,通过内部的上拉电阻把端口拉到高电平,些时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。Flash编程和程序校验期间,P1接收低8位地址。“1”,通过内部的上拉电阻把端口拉到高电平,些时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX RI指令)时,P2口线上的
21、内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其它控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写”1”,通过内部的上拉电阻把端口拉到高电平,些时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下所示:表2-3 P3口功能I/O口线专用功能RxD(串行数据接收)TxD(串行数据发送)INT0(外部中断0请求输入)INT1(外部
22、中断1请求输入)T0(定时器0外部计数脉冲输入)T1(定时器1外部计数脉冲输入)WR(外部数据存储器写信号)RD(外部数据存储器读信号)P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存许器)。输出脉冲用于锁存地址的低8位字节.即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引
23、脚还用于输入编程脉冲(PROG)。可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令ALE才会被除数激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注
24、意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vcc,当然这必须是该器件是使用12V编程电压Vcc。根据设计的要求,本设计选用独立式键盘。其工作原理为,单片机引脚作为输入使用,首先置“1”。当键没有被按下时,单片机引脚上为高电平;而当键被按下去后,引脚接地,单片机引脚上为低电平。SB1控制左转、SB2控制右转、SB3控制近光、SB4控制远光、SB5控制刹车、SB6控制报警。 图 2.5 按键模块LED具有二极管的特性,但在导通之后会发光,称之为发光二极管。与
25、普通的灯泡一样,LED导通后,随着其俩端电压的增加,电流急剧增加,所以,必须给LED串联一个限流电阻,否则一旦通电,LED会被烧坏。要用89c51单片机来控制LED,显然这个LED必须要与89c51单片机的某个脚相连。当AT89c51单片机的第1脚是高电平时,LED不亮,当第1脚是低电平时,LED亮。但是在汽车转弯灯里要根据汽车方向来控制信号灯,而实现LED的亮与灭。 图2.6 指示灯模块 下图为单片机的复位电路,输入端出现高电平时实现复位何必和初始化.在振荡器运行的情况下,要实现复位操作,必须使RST引脚至少保持机器周期(24个振荡周期)的高电平.CPU在第二个机器周期内执行内部复位操作,以
26、后每个机器周期重复一次,直至RST端电平降低。电平复位将复位端通过电阻与Vcc相连,按键脉冲复位是利用RC分电路产生正脉冲来达到复位的。在按键电平复位和按键脉冲复位两种简单的复位电路中,干扰易串入复位端,在大多数情况下,不会造成单片机的错误复位,但会引起内部寄存器错误复位,这里可在复位端引脚上接一个去藕电容。 图 2.7 复位电路模块时钟电路可由内部和外部方式产生。接上定时元件,内部震荡电路就产生自激震荡。定时元件通常采用石英晶体和电容组成的并联谐振电路。采用单片机内部晶振。在MCS-51系列单片机内部有一个高增益反向放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。而在芯片外部X
27、TAL1和 XTAL2之间跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。外接晶体(石英或陶瓷,陶瓷的精度不高,但价格便宜)振荡器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中, C1和C2的大小会对振荡器频率的高低、振荡器的稳定性、起振的快速性和温度特性有一定的影响。因此建议在采用石英晶体振荡器时C=10pF,陶瓷振荡器时,C=40pF,典型值为40pF。在设计电路板时,振荡器和电容应尽量安装得与单片机靠近,以减小寄生电容的存在更好的保障振荡器稳定、可靠的工作。 图2.8 晶振电路模块 第三章 系统软件设计 初始化LED指示灯P1端口控制P1口指示灯的亮灭判
28、断P3口开关是否闭合?结束 开始YN 图3.1 程序流程总图Y口指示灯的亮灭判断P3.2口开关SB3是否闭合?结束N 图3.2 近光灯流程图通过开关SB3来控制近光灯2个DB灯亮来实现开启近光灯 控制P1.6、P1.7、P1.4、P1.5 端口指示灯的亮灭判断P3.3口开关SB4是否闭合?结束NY 图3.3 远光灯流程图 通过开关SB4来控制远光灯4个HB灯亮实现开启远光灯口指示灯的亮灭判断P3.0口开关SB1是否闭合?结束NY 图 3.4 左转向流程图 通过开关SB1来控制左前灯LH、左后灯LR闪烁实现左转向口指示灯的亮灭判断P3.1口开关SB2是否闭合?结束NY 图3.5 右转向流程图 通
29、过开关SB2来控制右前灯RH、右后灯RR闪烁来实现右转向口指示灯的亮灭判断P3.4口开关SB5是否闭合?结束NY 图 3.6 刹车流程图通过开关SB5来控制左后灯LR、右后灯RR闪烁实现刹车3.1.6紧急(报警)流程图 初始化LED指示灯P1.6、P1.4、P1.7、P1.5、P1.2、P1.1、P1.3、P1.0 端口口 P1.2、P1.1、P1.3、P1.0 端口 P1.2、P1.1、P1.3、P1.0 端口指示灯的亮灭判断P3.5口开关SB6是否闭合?结束NY图 3.7 紧急(报警)流程图通过开关SB6来控制所有灯闪烁实现紧急(报警)3.2 编程软件C语言是1972年由美国贝尔实验室的D
30、.M.Rotchie所开发,采用结构化编程方法,遵从自顶向下的原则。在操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,但在编写大型程序时,C语言仍面临着挑战。1983年,在C语言基础上贝尔实验室的Bjarne Stroustrup推出了C+。C+进一步扩充和完善了C语言,是一种面向对象的程序设计语言,目前流行的C语言版本。 数据是程序处理的对象,数据可以依其本身的特点进行分类。我们知道在数学中有整数、实数的概念,在日常生活中需要用字符串来表示人的姓名和地址,有些问题的回答只能是“是”或“否”(即逻辑“真”或“假”)。不同类型的数据有不同的处理方法,例如:整数和
31、实数可以参加算术运算,但实数的表示又不同于整数,要保留一定的小数位;字符串可以拼接;逻辑数据可以参加“与”、“或”、“非”等逻辑运算。我们编写计算机程序,目的就是为了解决客观世界中的现实问题。所以,高级语言中也为我们提供了丰富的数据类型和运算。C+中的数据类型分为基本类型和自定义类型。基本类型是C+编译系统内置的。在C语言中,两个函数的名称不能相同,否则会导致编译错误。而在C+中,函数名相同而参数数据类型不同或参数个数不同或二者皆不同的两个函数被解释为重载。使用函数重载可以帮助程序员处理更多的复杂问题,避免了使用诸如intabs()、fabs()、dabs()等繁杂的函数名称;同时在大型程序中
32、,使函数名易于管理和使用,而不必绞尽脑汁地去处理函数名。同时必须注意,参数数据类型相同,但是函数返回类型不同的两个函数不能重载。在C语言中,如果一个函数需要修改用作参数的变量值的时候 ,参数应该声明为指针类型;当参数的大小超过一个机器字长时,通过传值方式来传递参数的效率较低,也需要用指针。C语言是1972年由美国的Dennis Ritchie设计发明的,并首次在UNIX操作系统的DEC PDP-11计算机上使用。它由早期的编程语言BCPL(Basic Combined Programming Language)发展演变而来,在1970年,AT&T贝尔实验室的Ken Thompson根据BCPL
33、语言设计出较先进的并取名为B的语言,最后导致了C语言的问世。 而B语言之前还有A语言,取名自世界上第一位女程序员Ada(艾达)。C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序员中备受青睐。最近25年是使用最为广泛的编程语言。C语言是由丹尼斯里奇于1969年至1973年以B语言为基础,在贝尔实验室开发完成。目前,C语言编译器普遍存在于各种不同的操作系统中,例如UNIX、MS-DOS、Microsoft Windows及Linux等。C语言的设计影响了许多后来的编程语言,例如C+、Objective-C、Jav
34、a、C#等。C是高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。C是结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。C语言功能齐全:具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。C语言适用范围大:适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机
35、型。C语言对编写需要硬件进行操作的场合,优于其它高级语言,有一些大型应用软件也是用C语言编写的。C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C+在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C+的教训,取消了指针操作,也取消了C+改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C+/C。一般而言,C,C+,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。C语言文件由数
36、据序列组成:可以构成二进制文件或文本文件。常用的C语言IDE(集成开发环境)有Microsoft Visual C+、Dev-C+、Code:Blocks、Borland C+ Builder、Watcom C+、GNU DJGPP C+、Lccwin32 C Compiler 3.1、High C,Turbo C、C-Free、Win-TC、Xcode等。C程序是由一组变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。我们可以把函数看成一个“黑盒子”,你只要将数据送进去就能得到结果,而函数内部究竟是如何工作的的,外部程序是不知道的。外部程序所知道的仅限于输入给
37、函数什么以及函数输出什么。函数提供了编制程序的手段,使之容易读、写、理解、排除错误、修改和维护。C程序中函数的数目实际上是不限的,如果说有什么限制的话,那就是,一个C程序中必须至少有一个函数,而且其中必须有一个并且仅有一个以main为名,这个函数称为主函数,整个程序从这个主函数开始执行。C 语言程序鼓励和提倡人们把一个大问题划分成一个个子问题,对应于解决一个子问题编制一个函数,因此,C 语言程序一般是由大量的小函数而不是由少量大函数构成的,即所谓“小函数构成大程序”。这样的好处是让各部分相互充分独立,并且任务单一。因而这些充分独立的小模块也可以作为一种固定规格的小“构件”, 用来构成新的大程序
38、。C语言的一个主要特点是可以建立库函数。Turbo C 2.0 提供的运行程序库有400多个函数, 每个函数都完成一定的功能, 可由用户随意调用。这些函数总的分为输入输出函数、数学函数、字符串和内存函数、与BIOS和DOS有关的函数、 字符屏幕和图形功能函数、过程控制函数、目录函数等。对这些库函数应熟悉其功能, 只有这样才可省去很多不必要的工作。3.3 程序#include#define uint unsigned intsbit SB1=P30; / 控制开关I/O分配sbit SB2=P31;sbit SB3=P32;sbit SB4=P33;sbit SB5=P34;sbit SB6=P
39、35;void delay(uint z) / 延时子程序uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void main() / 主程序 while(1) if(SB1=0) delay(5); if(SB1=0) / 左转开关被按下 P1=0xf3; / 通过开关SB1来控制左前灯LH、左 delay(500); 后灯LR闪烁实现左转向 P1=0xff; delay(500); if(SB2=0) delay(5); if(SB2=0) / 右转开关被按下 P1=0xfc; / 通过开关SB2来控制右前灯 delay(500); RH 、右后灯RR闪烁来实
40、现右转向 P1=0xff; delay(500); if(SB3=0) P1=0x3f; / 近光开关被按下 delay(500); / 通过开关SB3来控制近光灯2个DB灯 P1=0xff; 亮来实现开启近光灯 if(SB4=0) / 远光开关被按下 P1=0x0f; / 通过开关SB4来控制远光灯4个HB delay(500); 灯亮实现开启远光灯 P1=0xff; if(SB5=0) / 刹车开关被按下 delay(5); / 通过开关SB5来控制左后灯LR、右后 if(SB5=0) 灯RR闪烁实现刹车 P1=0xf6; delay(500); P1=0xff; delay(500);
41、if(SB6=0) / 紧急(刹车)开关被按下 / 通过开关SB6来控制所有灯闪烁实现delay(5); 紧急(报警) if(SB6=0) P1=0x00; delay(500); P1=0xff; delay(500); 第四章 仿真结果按下SB3按钮, 2个DB灯亮,来实现开启近光灯。图 4.1 近光灯仿真图按下SB4按钮 ,4个HB灯亮,来实现开启远光灯。图 4.2 远光灯仿真图按下SB1按钮, 左前灯LH、左后灯LR闪烁,来实现左转向。图 4.3 左转向仿真图按下SB2, 右前灯RH、右后灯RR闪烁,来实现右转向。图 4.4 右转向仿真图按下SB5按钮, 左后灯LR、右后灯RR闪烁,来
42、实现刹车。图 4.5 刹车仿真图4.1.6紧急(报警)仿真图按下SB6按钮, 所有灯闪烁,来实现紧急(报警)。图4.6 紧急(报警)仿真图4.2 仿真工具Proteus介绍 Proteus软件不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。 支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CP
43、U类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器;支持通用外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信;实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编
44、译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试;原理图到PCB的快速通道:原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计;先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理;完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D 可视化预览;多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计
45、和加工。Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。Proteus可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。Proteus可提供的调试手段 Proteu
46、s提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。PROTEUS 是单片机课堂教学的先进助手。PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。课程设计、毕
47、业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。 Proteus Design Suite集成了原理图捕获、SPICE电路仿真和PCB设计,形成一个完整的电子设计系统。对于通用微处理器,还可以运行实际固件程序进行仿真。与传统的嵌入式设计过程相比,这个软件包能极大地缩短开发时间。从产品概念到设计完成的完整仿真与开发平台;预研设计与项目评估,减少开发风险;ODM的虚拟样机;强大的分析与调试功能克服新手的经验不足;软硬件的交互仿真与
48、测试大大减少后期测试工作量;便利项目管理与团队开发。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,在此期间我也失落过,也曾一度热情高涨。从开始时满富激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。生活就是这样,汗水预示了结果也见证了收获。同时在设计的过程中发现了自己的不足之处,刚拿到任务书时,思路不是很清晰,导致在构建单片机原理图和选取元器件上花费太多的时间和精力,落下了进度。在编程上花的时间太多,对以前所学过的知识理解得不够深刻,掌握得不够牢固。编写流程图的过程中遇见的问题较多,通过老师的指导,反复修改,实现了说明各个开关控制灯光的效果。在实现仿真时,灯光闪烁不稳定,通过改变图中电阻,电容值来实现灯光的稳定闪烁与常亮。在编写论文时,字体修改花费大量时间,字数开始时太少,论文显得太空旷,后来经过查询相关知识来填补完成了本次论文。后期论文完成进度还可以,预期的完成了老师布置的任务,完成了本次的毕业设计,此论文算是自己大学四年来所学知识的成果吧!通过这次毕业设计使我懂得了理论与实际相结合是很重要的,只
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院护理质量控制与评估制度
- 钻孔灌注桩监理旁站细则专项管理手册
- 放射防护设备日常维护方案
- 工业ESD静电防护标准操作程序
- 小学语文肯定句改双重否定句教学设计
- 无人机飞行控制系统详解
- 跨部门协作优化方案实践手册
- 城乡规划项目环境影响评价报告编制
- 临床路径管理与医疗质量提升方案
- 公共服务窗口工作效率提升策略
- 《秘书实务》课件-16督查工作
- CJ/T 94-2005饮用净水水质标准
- 外事笔试题及答案
- 电休克治疗管理制度
- 中国水墨画课件模板
- 2025-2030全球及中国军事训练飞机行业市场现状供需分析及投资评估规划分析研究报告
- 无创机械通气试题及答案
- 2025年人教版小学五年级下册奥林匹克数学竞赛试卷(附参考答案)
- 游戏公司玩家充值协议
- 2025-2030中国鞋楦市场发展状况与未来竞争力优势分析研究报告
- 反对邪教崇尚科学班会课件
评论
0/150
提交评论