汽车灯光控制电路设计

上传人:do****y1 文档编号:166981518 上传时间:2022-11-02 格式:DOCX 页数:18 大小:161.17KB
返回 下载 相关 举报
汽车灯光控制电路设计_第1页
第1页 / 共18页
汽车灯光控制电路设计_第2页
第2页 / 共18页
汽车灯光控制电路设计_第3页
第3页 / 共18页
点击查看更多>>
资源描述
汽车灯光控制电路设计X 宝强(XX 理工学院物理系电信062, XX XX 723001)指导老师:宋卫星摘要采用AT89C51单片机设计的汽车灯光控制电路,利用其4个I/O 口分别实现对汽车灯光的控制、 显示功能,其中还添加了转弯灯、紧急灯的警示声音功能。运用较少的硬件与适当的软件结合就可以很容 易的实现设计的要求,而且灵活性强,也可以通过软件编程实现更多的附加功能。关键字AT89C51单片机;灯光;控制Auto Light Control CircuitZhang Baoqiang(Grade 06, Class 2, Major Electronic Information Science and Technology, Physics Dept.,Shaanxi University of Technology,Hanzhong 723000, Shaanxi)Tutor: Song WeixingAbstract:With the gradual improvement of living standards, more and more people have to buy the car. This traffic safety problem and more and more prominent, while a car, its lights, signal is good or bad is largely affected the lives of drivers and pedestrians. Therefore, the vehicle lighting control circuit research and design has great value. MCU design with the car light control circuit, and powerful, with less hardware and appropriate software can be easily bined to achieve the design requirements, and flexibility can also be achieved through software programming more additional features.Key words:AT89C51 MCU;light; control目录1 引言 12 设计方案 12.1功能要求12.2设计方案13 硬件设计 23.1 AT89C51单片机的结构及功能23.1.1 AT89C51的结构及引脚23.1.2 AT89C51的主要性能33.1.3 AT89C51的管脚功能33.2 AT89C51的时序电路43.3 AT89C51的复位电路53.4 AT89C51的电源电路53. 5汽车灯光控制电路64软件设计 75 仿真与调试 75.1 Keil C51 Vision2 介绍 75. 2 PROTEUS PROFESSIONAL 7. 5介绍85.3调试96 结论 96.1 设计结果 96.2 系统缺陷及建议96.3 致谢9参考文献 10附录 程序清单 111 引言随着汽车数量的大量增加,交通安全问题也越来越严峻。而汽车车灯光控制系统的可靠、稳 定对于安全行驶起着非常重要的作用,因此汽车灯光控制电路的研究和设计成为解决交通安全问 题的一种好的途径。汽车工业的发展也促使汽车车灯控制电路的设计和研究不断的提高,汽车的 功能要求也越来越庞大,因此各单元电路也需要向小型化的方向发展,以使汽车能够能装入更多 的功能模块。传统的使用纯硬件设计的电路,不仅电路庞大复杂,而且一旦出了问题维修检测起 来也耗时费力。因此智能化、小型化的电路设计走上了时代的潮流,也必将影响以后的汽车控制 系统的设计,不仅如此还要综合考虑加工工艺、寿命、成本等问题,以使设计的电路能够大量普 及。伴随着汽车工业的发展,汽车灯光控制电路的发展已经非常的成熟,目前,汽车灯光控制系 统发展充分利用了现代科技的发展成果。采用纯硬件、PLC电气控制技术设计的汽车灯光控制电 路已经得到大量应用。传统的采用纯硬件设计的电路正逐渐向着软硬结合的方向发展,也将随时 应用最新的科学技术。单片机的发展正朝着低功耗、高性能、低价格和外围电路内装化的方向发展。因此,采用单 片机设计的汽车灯光控制电路,应用软件来实现庞大的控制功能,而且通过外围电路的扩展还能 实现更多的附加功能。这种控制电路不仅体积小、成本低,而且也更加智能,可以随时修改整个 控制功能,非常适合现代汽车工业的发展潮流。总之,使着汽车灯光控制电路向着更加可靠,功 能更加庞大、智能的方向发展1 。2 设计方案2.1 功能要求汽车车灯采用发光二极管来设计,汽车前部两侧各有远光灯一部(夜间正常行车时使用,大 功率白色发光二极管),近光灯一部(夜间行驶汇车时使用,小功率白色发光二极管),远光灯与 近光灯不能同时使用;汽车左右各有2 个指示灯:方向灯(小功率黄色发光二极管),雾灯(大 功率黄色发光二极管)。汽车后部两侧各有刹车灯一部(小功率红色发光二极管),尾灯一部(大 功率红色发光二极管)。刹车时,刹车灯亮(不闪)。转弯时,汽车方向灯应该一闪一闪。紧急情 况时,汽车的刹车灯与尾灯应同时闪烁。2.2设计方案采用AT89C51单片机来完成汽车灯光控制电路的设计。利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的功能要求。汽车车灯控制电路的方框图如2.1 所示。图 2.1 汽车车灯控制电路的方框图电源电路即为驱动单片机工作的电源所设计的电路,它的输出端与单片机的 Vcc 相连,本设 计电路采用USB 口转换5V直流作为单片机电源。时序及复位电路是作为单片机能正常工作所必 须的最小系统,前者提供单片机工作所需的时拍,后者初始化单片机。灯光控制模块是汽车灯光 的控制按钮,共有7个,直接连接到P1 口的各口线上,按下则相关的灯亮,再按则灭。灯光显 示模块即为汽车灯光显示电路,通过开关控制其显示情况。报警模块是在汽车转弯或发生紧急情 况时,随着相关车灯闪烁的同时,驱动蜂鸣器响以发出警报,以提醒行人或求救。3硬件设计31 AT89C51单片机的结构及功能 311 AT89C51的结构及引脚AT89C51就是一个微型计算机,AT89C51单片机主要由运算器、控制器、存储器(ROM及 RAM)和I/O接口组成。它的内部结构图如3.1.1所示。- - - 号 q 一 - - B ,- IP1F1RP1F1F1FIP1RHDXR图3.1.1AT89C51单片机芯片内部结构运算器包括一个可进行8位算术运算和逻辑运算的单元ALU,8位的暂存器1 (TMP1)、暂 存器2 (TMP2), 8位累加器ACC,寄存器B和程序状态寄存器PSW等。控制器包括程序计数器PC、指令寄存器IR、指令译码器ID、振荡器及定时电路等。AT89C51片内有Flash ROM (程序存储器,只能读)和RAM (数据存储器,可读可写)两 类,他们各自有独立的存储地址空间,与一般的存储器配置方式很不同。AT89C51单片机有4个与外部交换信息的8位并行接口,即PO-P3。他们都是准双向口,每 个端口各有8条I/O线,均可作输入/输出。P0-P3 口 4个锁存器同RAM统一编址,可以把I/O 口当做一般特殊功能寄存器(SFR)来寻址。L-d.Vip UE-fFOi2_Pl 77A1H,LLrjflrAid22_P?.5iA13 LPZjrAIOiLF2.ft/7图3.1.2AT89C51的引脚如图3.1.2所示是一个双列直插封装(DIP)方式的AT89C51单片机,它共有40个引脚。其 中很多引脚具有第二功能,使用时要加以注意。312 AT89C51的主要性能AT89C51是一种4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。该器件采用 ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。 由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控 制器。它为很多嵌入式控制系统提供了一种灵活性高且价廉的解决方案。 AT89C51 主要特性如下 所述。与MCS-51兼容,一个8位的80C51微处理器(CPU);片内256字节数据存储器RAM/SFR,用于存放可以读/写的数据;片内4K字节可编程闪烁存储器,用于存放程序、一些原始数据和表格;寿命:1000 写/擦循环; 数据保留时间:10年; 全静态工作:0-24MHZ;三级程序存储器锁定;4个8位并行可编程I/O 口 P0-P3,每个口既可作输入又可作输出;两个 16 位定时器/计数器,每个定时器/计数器可设置成计数方式,用以对外部事件计数, 也可设置成定时方式,根据定时结果实现单片机控制; 5 个中断源 、两个中断优先级;一个全双工UART(通用异步发送接收器)的串行I/O 口,用于实现单片机之间或单片机与 计算机之间串行通信;具有低功耗的闲置模式和掉电模式;片内振荡器和时钟电路,但石英晶体和微调电容需要外接,最高允许振荡频率为24MHz。313 AT89C51的管脚功能VCC (40脚):电源端,为+5V。GND(20 脚):接地端。P0 口(P0.0-P0.7,39-32脚):P0 口为一个8位漏级开路准双向I/O 口,每脚可吸收8个TTL 门电流。当P0 口作为输入口使用时,应先向口锁存器(地址80H)写入全1,此时P0 口的全部 引脚浮空,可作为高阻抗输入。做输入口使用时先写1,这就是准双向的含义。在CPU访问片外 存储器(AT89C51片外EPROM或RAM)时,P0 口分时提供8位地址和8位数据的复用总线。 在此期间,P0 口内部上拉电阻有效。在Flash ROM编程时,P0端口接受指令字节;而在校验程 序时,则输出指令字节、验证时,要求外接上拉电阻。P1 口(P1.0-P1.7,1-8脚):P1 口是一个内部提供上拉电阻的8位双向I/O 口,P1 口缓冲器 能接收输出4个TTL门电流。P1 口管脚写入1后,被内部上拉为高电位,可用作输入,P1 口被 外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH ROM编程和校验时, P1 口接收低 8 位地址。P2 口(P2.0-P2.7,21-28脚):P2 口为一个内部上拉电阻的8位双向I/O 口,P2 口缓冲器可接 收,输出4个TTL门电流,当P2 口被写T”时,其管脚被内部上拉电阻拉高,可作为输入。作为 输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程 序存储器或16位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址T”时, 它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的 内容。P2 口在FLASH编程和校验时接收高8位地址信号和控制信号。P3 口(P3.0-P3.7,10-17脚):P3 口管脚是8个带内部上拉电阻的双向I/O 口,可接收输出4 个TTL门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于 外部下拉为低电平,P3 口将输出电流,这是由于上拉的缘故。在对Flash ROM编程或程序校验 时,P3 口还接受一些控制信号。P3 口也可作为AT89C51的一些特殊功能口,如表1所示。表1P3 口的第二功能I/O 口线专用功能P3.0RXD(串行数据接收)P3.1TXD (串行数据发送)P3.2INT0 (外部中断0请求输入)P3.3INT1 (外部中断1请求输入)P3.4T0(定时器0外部计数脉冲输入)P3.5T1(定时器1外部计数脉冲输入)P3.6WR (外部数据存储器写信号)P3.7RD (外部数据存储器读信号)RST(9脚):复位信号输入端。当振荡器复位器件时,要保持RST脚两个机器周期(24个时钟 振荡周期)的咼电平时间。ALE/ PROG (30脚):当访问外部存储器时,地址锁存ALE的输出信号用于锁存低8位地 址。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正 脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而 要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH地址上置0。此时,ALE只有在执行MOVX, MOVC指令是ALE才起作用。如果微处 理器在外部执行状态,ALE禁止,置位无效。ALE端得负载驱动能力为8个LS型TTL (低功耗 甚至高速TTL)负载。此引脚的第2功能PROG在对片内带有4KB FLASH ROM的AT89C51编 程写入(固化程序)时,作为编程脉冲输入端。PSEN (29脚):外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周 期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。PSEN端同 样可驱动8个LS型TTL负载。要检查一个AT89C51小系统上电后CPU能否正常工作,也可用 示波器检查PSEN端有无脉冲输出。如有,则说明基本上工作正常。EA/Vpp (31脚):外部程序存储器地址允许输入端固化编程电压输入端。当1A引脚接高电 平时,CPU只访问片内Flash ROM并执行内部程序存储器中的指令但当PC (程序计数器)的 值超过0FFFH时,并自动转去执行片外程序存储器内的程序。当EA引脚接低电平(接地)时, CPU只访问片外ROM并执行片外程序存储器中的指令,而不管是否有片内程序存储器。在Flash ROM编程期间,该引脚也用于施加12V的编程允许电源Vpp(如果选用12V编程)。XTAL1 (19脚):接外部晶体和微调电容的一端。反向振荡放大器的输入及内部时钟工作电 路的输入。XTAL2C18脚):接外部晶体和微调电容的另一端。在AT89C51片内它是振荡电路反响放大 器的输出端,振荡电路的频率就是晶体的固有频率。若采用外部时钟电路,该引脚悬空。另外AT89C51使用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可用软件来选 择的省电方式:空闲方式和掉电方式。在空闲方式中,CPU停止工作,而RAM、定时器/计数器、 串行口和中断系统都继续工作。此时的电流可降到大约为正常值的15%。在掉电方式中,片内振 荡器停止工作,由于时钟电路被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直 到下一次硬件复位为止。这种方式下的电流可降到15uA,最小可降到0.6uA。3.2 AT89C51的时序电路AT89C51单片机与其他单片机或微机一样是一种时序电路,从Flash ROM中取指令和执行指图3.2 AT89C51的时序令过程中的各种微操作,都是按着节拍有序的工作的。AT89C51的 时序电路如图3.2所示。AT89C51单片机芯片内部有一个高增益反向放大器,用于构成 振荡器。反向放大器的输入端为XTAL1,输出端为XTAL2,两端 跨接石英晶体和两个电容就可以构成稳定的自激振荡器,电容C和 C通常取30pF左右,可稳定频率并对振荡频率有微调作用。振荡 频率X围为f =0-24Mhz。晶体振荡器的频率为f ,振荡信号从XTAL2端输入片内的时 钟信号发生器上,时钟发生器是一个2分频的触发器电路,他将振荡器的信号频率f 除以2,向CPU提供两相时钟信号P1和P2。时钟信号周期称为状态周期S, 是振荡周期的2倍,每个状态周期S的前半周期,相位1(P1)信号有效,在每个状态周期S的后 半周期,相位2(P2)信号有效。CPU就以两相时钟P1和P2为基本拍指挥单片机各个部件协调 地工作。单片机工作需要若干指令,而执行一条指令需要多少时间以机器周期为单位,一个机器 周期是指CPU访问存储器一次所需要的时间,它包括12个振荡周期,分为6个S状态周期:S1-S6, 每个状态周期又分为两拍,称为P1和P2。因此一个机器周期中的12个振荡周期表示为S1P1,S1P2,S2P1,S6P2。33 AT89C51的复位电路5VrG生R13ER21kT89C51单片机与其他微处理器一样,在启动时需要复位,使CPU 及系统各部件处于确定的初始状态,并从初始状态开始。当系统处 于正常工作状态时,且振荡器稳定后,RST引脚上有一个高电平并 维持2个机器周期(24个振荡周期),则CPU就可以相应并将系统 复位。除了系统的正常初始化之外,当由于程序运行出错或操作错 误使系统处于死锁状态时,为摆脱困境,也必须按复位键重新启动。 AT89C51单片机的复位电路如图3.3所示。在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复2位。只要电源V的上升时间不超过1ms,就可以实现上电自动复位。图3.3 AT89C51的复位电路cc 在振荡稳定后为保证复位高电平持续时间(即正脉冲宽度)大于两 个机器周期,当采用的晶体为12Mhz时,可取C =10uF,R =8.2kQ ; 当采用的晶体频率为6Mhz时,可取C =22uF,R =1kQ。当系统出现死机或需要重新复位时,可 直接按RESET键,这时V通过电阻R直接把RST端拉高,实现手动复位。CC13.4 AT89C51的电源电路本设计的单片机电源采用USB接口转换交流220V为5V直流供单片机使用,如图3.4所示。 由于标准USB 口的输出电压为5V,这样正好可供单片机使用,这种设计非常的方便,即插即用, 具有很大的灵活性。我们可以通过一条数据线将其连接到计算机上,或者通过MP3的充电器将 其连接到交流电上,以给单片机供电。这些东西在我们的生活中都非常常见,因此非常方便。220V的交流信号经过USB 口整流后变为5V的脉动直流,电路中电容C =470uF,利用其充 放电特性,使整流后的脉动直流变为比较稳定的直流。由于整流后的信号带有高频及脉冲干扰信 号,而电解电容具有一定的电感,对其不能有效的滤除,因此利用电容C =0.1pF的小电容,以 滤去高频及脉冲干扰。电容C、C共同构成滤波电路。稳压二极管D和限流电阻R共同构成直 流稳压电路。电阻R和发光二极管串联作为供电指示灯。112 稳压管的一般选择原则为U = UZOI I I -1其中U为稳压管的稳定电压,U为直流稳压电路的输1出电压或单片机的输入电压,I为 稳压管稳压时流过的电流。I 、I 分别为稳压管能够稳压的最大、最小电流,I 、I分别ZMZL maxL min为负载电流的最大、最小值。图3.4 AT89C51的电源电路3.5汽车灯光控制电路经过组合以上的各单元电路后形成整体电路,如图3.5所示。(1)开关控制部分开关控制部分采用P1个线口输入,其中远、近光灯分别用开关K、K控制,按下时相关灯 亮,再按则灭,K和K不能同时使用。左、右方向灯用开关K、K控制按下时相关灯亮,再按 则灭,K、K互锁。雾灯、刹车灯、尾灯、紧急灯分别用开关K、K、K、K控制,按下相 、2、3.4567关灯亮,再按则灭。(2)信号灯部分发光二极管和普通二极管一样都具有单向导电性,只有外加正向电压使得正向电流足够大时 才能发光。发光二极管的开启电压比普通二极管的大,一般红色的在1.6V-2.5V之间,黄色的在 1.9V-2.4V之间,绿色的在2.0V-2.4V之间,蓝色/白色的在3.0V-3.8V之间。一般发光二极管的正 向导通电流为5mA-20mA。正向电流愈大,则发光愈强。则限流电阻R的计算公式为 V UR =_DI其中U为发光二极管的开启电压,I为导通电流。本电路中红色发光二极管的开启电压U =2V,导通电流I =10mA,贝y限流电阻为DD5 2R =Q = 30000.01依据上述公式可以计算出其它发光二极管的限流电阻。(3)声音信号部分本次设计的电路在汽车拐弯,汽车方向灯闪烁的同时通过P3.0脚驱动蜂鸣器发出嘀嘀间歇作 响的声音。当发生紧急情况,紧急灯控制开关按下时,除过相关的灯闪烁的同时,蜂鸣器也发出 嘀嘀间歇作响的声音,此时如果正在拐弯时,则汽车方向灯闪烁的同时不发声。程序中改变单片机P3.0引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音 色、音调的声音。另外,改变P3.0输出电平的高低电平占空比,贝9可以控制蜂鸣器的声音大小。(4)汽车灯光控制电路汽车灯光控制电路如图3.5所示,由于P0 口内部为一漏极开路电路,没有内部上拉电阻,作 为输入口使用时应先写1,因此给P0 口串一个8X10KQ的排阻,以作为其内部上拉电阻。这样 P0 口就可以成功的作为输入口使用。夜晚汽车正常行驶时,开关K按下(接P1.0 口),远光灯D,D亮;当要汇车时应按下开 关K (接P1.1 口),远光灯D,D灭,近光灯D,D亮。汇车完毕,再次按下K,则远光灯D、 D亮。汽车左转弯时,按下开关K (接P1.2 口这时前左方向灯D与后左方向灯D亮,并且 灯光一闪一闪,同时驱动蜂鸣器lS1作间歇性嘀嘀作响,汽车转正后再按下开关则灯灭;当要右 转弯时,(接P1.3 口),按下开关K,这时前右方向灯D与后右方向灯D亮,灯光一闪一闪, 同时驱动蜂鸣器LS1作间歇性嘀嘀作响。汽车转正直行后再按下开关则灯 1灭。左、右方向灯同时 只能有一个能工作。当遇到大雾天气时,应按下开关K (接P1.4 口),贝雾灯D、D、D和D4341112亮;当踩下刹车时(接P1.5 口),即相当按下开关K,刹车灯D与D亮;刹车松开时,即相当 于再按下开关K,则刹车灯灭。晚上行车或靠边停车时,为使后面的车辆或行人能清楚的看到前 面的车辆,应当按下开关K (接P1.6 口),使汽车尾部的照明灯与亮。当遇到紧急情况是, 应当按下开关K,这时汽车灯D、D、D、D、D,D,D /D不停闪烁,同时驱动蜂鸣器41921013141516急促的嘀嘀作响,以发出警报。I. J a itt-EpXI .CRVCTALC2-IfiCTRJDftDDR1.IADIHOME冈曲旳AQ冲4 poj&m pQEmPZOM?PZI0000甸曲4 po-aAeo-0匚3 FODJXDP11P3.|iTD2阳MOP13FOMnITPUP1SFMlTIP1&raijfnrPSH flieP2ZAID P2JAIIP2tAI2P25MI3P2CMILP2TJ4I5r.gAR1 3旳EDR3HfTEDIGRS兀L4LSFrELLjanLEj-LUMU D5ftiDILB*L3R19LR12hi_hRUR1OLSEKiTLUJ*图3.5汽车灯光控制电路4软件设计本设计采用的是C程序设计语言设计单片机程序的。C语言是一种结构化计算机程序设计 语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它 还可以直接访问内存的物理地址,进行位(bit) 一级的操作。它既有高级语言的特点,又具 有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用 程序设计语言,编写不依赖计算机硬件的应用程序。C程序设计语言设计程序可读性强,可移植性好,适合于编写对硬件依赖性不强的程序。根据软件的设计思想,可画出本系统程 序流程图如图4.1所示。程序运行后,通过while语句循环扫描,不断读入7个开关的状态,通过if-else语句判断各 个开关状态,为0时则转到相应的程序通过软件点亮汽车车灯,否则不操作或关断相应的车灯。5仿真与调试本设计采用的仿真软件Keil C51卩Vision2和Proteus professional 7.5进行仿真的。Keil C51 pVision2主要用于单片机程序的编写调试与仿真Proteus professional 7.5主要用于单片机及硬件电 路的仿真。5.1 Keil C51 pVision2 介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编 相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发 调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大 型软件时更能体现高级语言的优势。C51工具包中的uVision与Ishell分别是C51 for Windows和 for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发 人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成 目标文件( OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生 成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或 tScope51 使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程 序存贮器如EPROM中。Keil C51 pVision2 集成开发环境是 Keil Software, Inc/Keil Elektronik GmbH 开发的基于 80C51 内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立到 管理、编译、目标代码的生成、软件仿真、硬件仿真等完整的开发流程尤其是C编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目 时非常理想。程序入口读入开关K0 (P1.0)、K1 (Pl.l)、K2 (Pl.2)、K3 (P1.3)K4 (P1.4)、K5 (P1.5)、K6 (P1.6)、K7 (P1.7)状态判断开关状态开关开关开关开关开关开关开关开关K0-P1.K1-P1.K2-P1.K3-P1.K4-P1.K5-P1.K6-P1.K7-P1.0为0,1为0,2为0,3为0,4为0,5为0,6为0,7为0,远光灯近光灯左方向右方向雾灯刹车灯尾灯灯 D13、D5、D6D7,D8灯D1、灯D2、D3、 D4、D13 、D15 、D14、亮亮D9亮闪D10亮 闪D11 、D12亮D14亮D16亮D15 、D16亮 闪图 4.1 系统程序流程图5.2 Proteus Professional 7.5 介绍Proteus是由英国Labcenter electronics公司开发的EDA工具软件。他从1989年出现一直到现在 已经有20多年的历史,在全球广泛使用。Proteus安装以后,主要由两个程序组成:Ares和Isis。前 者主要用于PCB自动或人工布线及其电路仿真,后者主要采用原理布图的方法绘制电路并进行相 应的仿真。除了上述基本应用之外,Proteus革命性的功能在于它的电路仿真是互动的,针对微处 理器的应用,可以直接在基于原理图的虚拟原型上编程,并实现软键代码级的调试,还可以直接 实时动态地模拟按钮、键盘的输入,LED、液晶现实的输出,同时配合虚拟工具如示波器、逻辑 分析仪等等进行相应的测量与观测。Proteus软件的应用X围十分广泛,涉及PCB制板、SPICE的电 路仿真、单片机仿真,在6.9版本中还加入了对ARM7/LPC2000的仿真。与多数仿真软件相似, Proteus 有着数量庞大的元器件库。与多数仿真软件相似, Proteus 有 着数量庞大的元件库。Labcenter公司与相关的第三方软件阵容共同开发了 6000多个模拟和数字 电路中常用的spice模型以及各种动态元件,基本元件如电阻、电容、各种二极管、三极管、MOS 管、555定时器等;74系列TTL元件和4000系列CMOS元件;存储芯片包括各种常用的ROM, RAM,EEPROM,还有常见I2C器件等。在丰富的库元件的支持下,原理布图时只要进行相应的 调用和连线,通过对每个元件的属性设置完成绘图,然后即可进行仿真和虚拟测量9。5.3 调试对本系统来说,调试工作分以下三步进行。1)在系统的硬件部分制作出来后,对其进行详细地检测调试,查看制作过程中是否存在错 焊、虚焊等情况,查看单片机是否能够正常工作,测试硬件部分是否能够完成其相应的功能。出 现问题要予以排除,如果是硬件部分电路图的错误,则要对其修改,反复测试,直到硬件的连接 完全无错,并且设计合理。本系统经过前后三次的电路设计和修改,最终硬件设计合理。在此 , 首先,需检验输出电压是否正常,应将变压器接入电源电路,观察发光二极管是否亮,以确定是否 有电压输出,再用数字万用表测试输出电压是否是5V,如果是5V表明电源电压正常工作,如果 不是上述结果应该检查电路。2)在设计系统的软件部分时,在Keil软件中编写程序,对程序进行不断调试编译,直到程 序能够正常运行。然后在Proteus软件中进行仿真测试,看功能是否能够实现。3)系统联调。在上面两步完成后,我们就必须将汽车灯光控制电路的硬件和软件部分结合 起来,进行系统联调,检验系统能否正常运行,测试系统各项性能指标,看是否能够达到预期的 要求,必要时,还要不断地修改和完善程序,直到系统能够实现预期的功能。6 结论6.1设计结果通过这次汽车灯光控制电路的设计,我收获甚多,前期经过大量资料的查阅,并设计好原理 图、编写好程序以及编译修改,然后进行实物制作,为确保成功,对布线、装配、焊接每个过程 都做了大量细致的工作,最终成功实现设计的要求。6.2系统缺陷及建议本次设计的电路虽然最终实现设计的要求,但还有以下缺陷。1)灯光采用发光二极管,效果不是很理想。建议采用功率更大的灯泡代替。2)由于采用单片机作为控制器,输出的直流电压只有5v,电流也只有20毫安左右,因此, 想驱动更大的灯需要添加放大电路或者要采用继电器实现对交流电路的控制。3)由于没有采用PCB板,电路不稳定易受外部干扰,最好能制作成PCB板电路。6.3致谢本次设计得到宋老师的大量设计指导,特此感谢。也感谢罗东同学在电路焊接过程中给予的 很多建设性的意见。参考文献1 曹汇坚,池品优基于MS-51系列单片机的控制汽车转弯信号灯J.现代计算机(专业版),2009 (6):45-48.2 李朝青.单片机原理及接口技术M.航空航天大学,2005.17-47.3 何立民.MCS-51单片机应用系统设计M.航空航天大学,1995.30-45.4 潘新民.单片机实用系统.:人民邮政,2001.21-35.5 童诗白,华成英.模拟电子技术基础M.:高等教育,2007.387-406.6 毋茂盛,王静,X晖.单片机串行接口技术研究J.XX师X大学学报,2000,28(3):96-98.7 李毅.串行接口 8位LED显示驱动器j.XX职业技术学院学报,2003,12(3):110-113.8 陈洪财.单片机C语言和汇编语言实用开发技术M.XX工程大学,2008.19-65.9 周润景,X丽娜.基于PR0TUES的电路及单片机系统设计与仿真M.航空航天大学,2006.8-112.10 Detlef Decker.Performance and Perspectives of Light Sources for Signal Lamps,HELLA KG Hueck & Co.,Gemany,1990,1(0703).11 Christophe DUBOSC.Styling Trends for Car Rearlamps.Valeo Lighting systems,SEA 980321.附录 程序清单/头文件、键位声明= #include sbit keyO=PMO;远光灯控制键sbit keyl=PMl;近光灯控制键sbit key2=P1A2;/左方向灯控制键sbit key3=P1A3;右方向灯控制键sbit key4=P1A4;雾灯控制键sbit key5=P1A5;刹车灯控制键sbit key6=P1A6;后照明灯控制键sbit key7=P1A7;紧急情况控制键sbit led0=P0A0;/后 左方向灯sbit led1=P0A1;/后 左雾灯sbit led2=P0A2;左刹车灯sbit led3=P0A3;/左 尾灯sbit led4=P0A4;/前 左方向灯sbit led5=P0A5;/前 左雾灯sbit led6=P0A6;/左 近光灯sbit led7=P0A7;/左 远光灯sbit led8=P2A0;/右 远光灯sbit led9=P2A1; 前右雾灯sbit led10=P2A2;前右方向灯sbit led11=P2A3;/前右方向灯sbit led12=P2A4;右尾灯sbit led13=P2A5;右刹车灯sbit led14=P2A6;后右雾灯sbit led15=P2A7;后右方向灯sbit buzzer=P3A0;/蜂 鸣器/去抖动延时子程序= void delay10ms(int x)unsigned int m,n; for(m=0;mx;m+) for(n=0;n1200;n+);/声音延时子程序= void delay()延时子程序unsigned int i,j; for(i=0;i500;i+) for(j=0;j800;j+);/蜂鸣器发声子程序=void sound()发声子程序unsigned int a,b;for(a=0;a100;a+) buzzer=buzzer;for(b=0;b850;b+);/850 为蜂鸣器发声频率,可调 /主程序=void main()P0=0XFF;P1=0XFF;P2=0XFF;P3=0XFF;while(1)if(key0=0)远光灯开关打开delayl0ms(2);延时去抖动 while(keyO=O);等待键释放 delayl0ms(2);led6=l;led9=l;led5=!led5;ledl0=!ledl0;if(key1=0)近光灯打开delay10ms(2); while(key1=0);delay10ms(2); led5=1;led10=1;led6=!led6;led9=!led9;if(key2=0)左方向灯打开 if(key7!=0)紧急灯未打开时,方向灯闪烁的同时蜂鸣器鸣叫 led0=0;led4=0; sound();led0=1;led4=1; delay();else/紧急灯打开时,方向灯闪烁的同时蜂鸣器不鸣叫 led0=led0;led4=led4; delay();elsebuzzer=1; led0=1;led4=1;if(key3=0)右方向灯打开 if(key7!=0)紧急灯未打开时,方向灯闪烁的同时蜂鸣器鸣叫 led11=0;led15=0; sound(); led11=1;led15=1;delay();else/紧急灯打开时,方向灯闪烁的同时蜂鸣器不鸣叫 led11=led11;led15=led15;delay();elsebuzzer=1; led11=1;led15=1;if(key4=0)雾灯打开 led3=0;led7=0;led8=0;led12=0;else/雾灯未打开或关掉led3=1;led7=1;led8=1;led12=1;if(key7=0)紧急开关打开 led1=0;led14=0;led2=0;led13=0;led0=0;led4=0;led11=0;led15=0;sound(); led1=1;led14=1;led2=1;led13=1;led0=1;led4=1;led11=1;led15=1;delay();else/紧急开关未打开或关掉if(key5!=0&key6!=0)刹车灯与尾灯没有按下led1=1;led14=1;led2=1;led13=1;buzzer=0;elseif(key5=0)刹车灯打开led1=0;led14=0;else/刹车灯未打开或关掉led1=1;led14=1;if(key6=0)尾灯打开led2=0;led13=0; else/尾灯未打开或关掉 led2=1;led13=1;
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!