出租车计价器控制系统的电路设计_第1页
出租车计价器控制系统的电路设计_第2页
出租车计价器控制系统的电路设计_第3页
出租车计价器控制系统的电路设计_第4页
出租车计价器控制系统的电路设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、PAGE 广州学院单片机课程设计出租车计价器控制系统的电路设计 院(系) 机械工程学院 专 业 机械电子工程 班 级 学生姓名 指导老师 2013年12月25日 任 务 书兹发给机电1 班学生 课程设计任务书,内容如下:设计题目:出租车计价器控制系统的电路设计 应完成的项目:(1)AT89C51芯片相关资料 (2)出租车计价器控制系统的电路设计 (3)电路PCB板设计、元件封装 (4)设计心得 参考资料以及说明:(1)114IC电子元件交易网 / (2)电子线路CAD与实训 (电子工业出版社) (3)百度文库AT89C51芯片相关资料 (4)AT89C51芯片的数据手册 本设计任务书于2013

2、年 月 日发出,应于2013年 月 日前完成,然后进行答辩。指导教师 签发 年 月 日评语:总评成绩:指导教师签字:年 月 日PAGE PAGE 29目 录 TOC o 1-3 h z HYPERLINK l _Toc42951913 摘 要 PAGEREF _Toc42951913 h 2 HYPERLINK l _Toc42951915 第一章 出租车计价器控制系统电路的设计 PAGEREF _Toc42951915 h 4 HYPERLINK l _Toc42951916 11 AT89C51单片机的介绍 PAGEREF _Toc42951916 h 4 HYPERLINK l _Toc

3、42951917 12 芯片常用电路 PAGEREF _Toc42951917 h 4 1. 3 元件封装. HYPERLINK l _Toc42951920 第二章 应用电路原理图设计 PAGEREF _Toc42951920 h 6 HYPERLINK l _Toc42951921 21芯片原理图元件 PAGEREF _Toc42951921 h 6 HYPERLINK l _Toc42951925 22电路设计 PAGEREF _Toc42951925 h 7 HYPERLINK l _Toc42951926 221功能模块设计 PAGEREF _Toc42951926 h 7 HYPE

4、RLINK l _Toc42951927 222 功能电路设计 PAGEREF _Toc42951927 h 7 HYPERLINK l _Toc42951933 23 本章小结 PAGEREF _Toc42951933 h 9 HYPERLINK l _Toc42951920 第三章 应用电路PCB板设计 PAGEREF _Toc42951920 h 6 HYPERLINK l _Toc42951921 31芯片元件封装 PAGEREF _Toc42951921 h 6 HYPERLINK l _Toc42951925 32整体电路PCB设计 PAGEREF _Toc42951925 h 7

5、 HYPERLINK l _Toc42951925 33本章小结 PAGEREF _Toc42951925 h 7 HYPERLINK l _Toc42951920 第四章 设计总结 PAGEREF _Toc42951920 h 6参考文献附件说明:本目录是自动生成的,并可编辑。摘 要随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。我们知道,只要乘坐的出租车启动,随着行驶里程的增加,就会看到司机旁边的计价器里程数字显示的读数从零逐渐增大,而当行驶到某一值时(如2KM)计费数字显示开始从

6、起步价(如4元)增加。当乘客到站时,按下停止按键,计费数字显示总里程和总金额,它可以很直观的反映用户使用情况。在出租车是城市交通的重要组成部分,行业健康和发展也获得越来越多的关注。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的,因此,汽车计价器的研究也是十分有一个应用价值的。通过本次设计,可以增进对单片机的感性认识,加深对其理论方面的理解,掌握单片机的内部功能模块的应用,了解掌握单片机的软硬件设计过程、方法及实现。 关键词: 出租车、计价器、单片机出租车计

7、价器控制系统电路的设计1.1 AT89C51单片机的介绍AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP的可反复擦写1000次的Flash只读程序内存,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 其工作电压在4.5V,一般我们选用5V电压。外形及引脚排列如图所示:引脚说明HYPERLI

8、NK l VCC:供电电压。GND:接地。P0端口:P0端口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为HYPERLINK /view/1410710.htm高阻输入。P0能够用于外部程序数据HYPERLINK /view/87697.htm存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1端口:P1端口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外

9、部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2端口:P2端口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部HYPERLINK /view/421016.htm程序存储器或16位地址HYPERLINK /view/1273932.htm外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据HY

10、PERLINK /view/87697.htm存储器进行读写时,P2口输出其HYPERLINK /view/714719.htm特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和HYPERLINK /view/8407048.htm控制信号。P3端口:P3端口是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3端口也可作为AT89C51的一些特殊功能端口,如下表所示:备选功能P3.0 RXD(串行输入口)P3.1 TXD(

11、串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(HYPERLINK /view/1273932.htm外部数据HYPERLINK /view/87697.htm存储器写选通)P3.7 /RD(HYPERLINK /view/1273932.htm外部数据HYPERLINK /view/87697.htm存储器读选通)P3口同时为闪烁编程和编程校验接收一些HYPERLINK /view/8407048.htm控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个HYP

12、ERLINK /view/713240.htm机器周期的高电平时间。ALE/PROG:当访问外部HYPERLINK /view/87697.htm存储器时,HYPERLINK /view/2260573.htm地址锁存允许的HYPERLINK /view/355572.htm输出电平用于锁存地址的低位字节。在FLASHHYPERLINK /view/3281.htm编程期间,此HYPERLINK /view/641241.htm引脚用于输入HYPERLINK /view/3281.htm编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出

13、的脉冲或用于定时目的。然而要注意的是:每当用作外部数据HYPERLINK /view/87697.htm存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该HYPERLINK /view/641241.htm引脚被略微拉高。如果HYPERLINK /view/1125.htm微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部HYPERLINK /view/421016.htm程序存储器的选通信号。在由外部程序HYPERLINK /view/87697.htm存储器取指期间,每个HYPE

14、RLINK /view/713240.htm机器周期两次/PSEN有效。但在访问HYPERLINK /view/1273932.htm外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序HYPERLINK /view/87697.htm存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出

15、。1.2 出租车计价器控制系统电路的原理图 输入部分按键控制电路中,单片机的P1.0管脚接启动/停止按键,通过软件编程,当按下按键计数器开始工作,开始计价;当弹起按键时,计数器停止工作,停止计价,启动/停止按键带自锁功能。按下启动按键,开关处于导通状态,这时给P1.0送低电平信号,这时TR0=1,计数器开始工作,调用计价子程序开始计价。清零按键接单片机的P1.3管脚,按下清零按键,P1.3为低电平,调用清零子程序,用于将显示数据清零,在程序中给各位赋0代码(0 x3f),以达到清零的目的,方便下次计价。另外为功能键,控制价格调整,这个按键是在没有按下启动/停止按键时有作用,计价过程中无效。显示

16、电路 多数的应用系统,都要配输入和输出外设,LED显示器和LCD显示器,虽然LCD显示效果比较好,已经成为了一种发展趋势,但为了节约成本,我们选用了LED显示器。在显示方面,我们选用了动态显示。静态显示虽然亮度较高,接口编程容易,但是每位的段码线分别与一个8位的锁存器输出相连。占用的I/O口线比较多,在显示位数较多的情况下,一般都采用动态显示方式。利用动态显示的方法,由于LED显示器的余辉和人眼的视觉暂留现象,只要每位显示的时间间隔足够短,就仍能感觉到所有的数码管都在显示。为了简化硬件,通常将所有位的段码线相应段并联在一起,由一个8位I/O口控制,在同一时刻,只让一位选通,如此循环,就可以使各

17、位显示出将要显示的字符。LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳的,相反的,就叫共阴的,那么应用时这个脚就分别的接VCC和GND。再把多个这样的8字装在一起就成了多位的数码管了。在本设计仿真中使用的是6个一组的共阴8段数码管(图2.7)。 找公共共阴和公共共阳的方法:首先我们找个 HYPERLINK /product/file506.html t _blank 电源|稳压器(3到5伏)和1个1K(几百欧的也行)的 HYPERLINK /product/searchfile/294.html t _blank 电阻

18、,VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的,找到一个就够了,然后用GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了。共阴极数码管,阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮,对应的段就显示。复位电路单片机的复位是由外部的复位电路实现的, 复位电路通常采用上电自动复位和按钮复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。除了上电复位外还需要按键手动复位(图2.8)。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻与电源VCC接通而实现的。单片机的复位速度比外围

19、I/O接口电路快为能够保证系统可靠的复位,在初始化程序中应安排一定的复位延迟时间。 掉电保护电路掉电保护电路中采用了存储芯片AT24C02。AT24C02是一个CMOS标准的EEPROM存储器,是AT24CXX系列(AT24C01/02/04/08/16)成员之一,这些EEPROM存储器的特点是功耗小、成本低、电源范围宽,静态电源电流约30uA110uA,具有标准的I2C总线接口,是应用广泛的小容量存储器之一。 引脚功能介绍如下:A0(引脚1):器件地址的A0位,是器件地址的最低位,器件地址排列是A6 A5 A4 A3A2 A1 A0 R/W。A1(引脚2):器件地址的A1位。A2(引脚3):

20、器件地址的A2位。GND(引脚4):地线。SDA(引脚5):数据总线引脚。SCL(引脚6):时钟总线引脚。TEST(引脚7):测试引脚。Vcc(引脚8):电源线引脚。本设计采用掉电存储电路图如下:时钟电路MCS-51单片机的各功能部件都是以时钟控制信号为基准,内部电路在时钟信号的控制下,严格地按时序执行指令进行工作,单片机本身如同一个复杂的同步时序电路,为了保证其各个部分同步工作,电路要在唯一的时钟信号控制下,严格地按照时序进行工作。其实只需在时钟引脚连接上外围的定时控制元件,就可以构成一个稳定的自激振荡器。为更好地保证振荡器稳定可靠地工作,谐振器和电容应尽可能安装得与单片机芯片靠近。本设计中

21、使用的振荡电路,由12MHZ晶体振荡器和两个约30PF的电容组成,在XTAL1和XTAL2两端跨接晶体,电容的大小不会影响振荡频率的高低。在整个系统中为系统各个部分提供基准频率,以防因其工作频率不稳定而造成相关设备的工作频率不稳定,晶振可以在电路中产生振荡电流,发出时钟信号。如下图所示:1.3 元件封装有2个元件封装是DXP软件封装模板里没有的,必须手动绘制封装并添加到上述的电器元件里,这两个电器元件分别是:AT89C51芯片 和晶体管,采用: 双列直插式封装(DIP-8)AT89C51的封装晶体管的封装排阻的封装74LS245的封装FM24C02的封装第二章 出租车计价器控制系统的整体程序设

22、计2.1系统程序设计本设计中,软件设计采用模块化操作,利用各个模块之间的相互联系,在设计中采用主程序调用各个子程序的方法,使程序通俗易懂,我们设计了整体程序流程图。在main函数编写开始,要进行初始化,包括对系统初始化和对存储器初始化,要对硬件设备进行初始化,并使硬件处于就绪状态。通过判断是否计费,调价,清零等状态,来分别调用不同的子程序,使程序在设计之前,就有了很强的逻辑关系。这些对应于硬件就是通过按下各个控制开关,来分别进行不同的动作,最后数码管根据输入的信息,来显示不同的数据信息,这就达到了软件控制硬件,同时输入信息控制输出信息的目的。整个程序的流程图如下:NNY 结果显示判断是否进入调

23、价模式判断是否开始计费进入调价模式调用计费子程序判断是否停止键按下NY开显示N 初始化 清显示单价复位Y2.2 编程工具C51语言8051单片机的应用程序设计,使用C51语言进行程序设计虽然相对于汇编语言代码效率有所下降,但可以方便地实现程序设计模块化,代码结构清晰、可读性强,易于维护、更新和移植,适合较大规模的单片机程序设计。近年来,随着C51语言的编译器性能的不断提高,在绝大多数应用环境下,C51程序的执行效率已经非常接近汇编语言,因此,使用C51进行单片机程序设计已经成为单片机程序设计的主流选择之一。2.3 系统程序#include /#include #include #define

24、uchar unsigned char#define uint unsigned intint xscode6=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d;/显示存储区int zxscode6=0 x1f,0 x2f,0 x37,0 x3b,0 x3d,0 x3e;/共阴显示片选码int codetab=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/共阴极数码int i,j,flag;uchar sec;int kk=0;/路程标志位int jkk=0;/费用int jflag=0;/费用标

25、志位int kflag=0;/路程标志位int zdflag=0;/中断标志位int kilo=0;/路程int dj=1;/路程单价 int djflag=0;/路程单价biaozhiweisbit key1=P10;sbit key2=P11;sbit key3=P12;sbit key4=P13;sbit key5=P34;sbit SDA=P30; /IIC引脚sbit SCL=P31;void delay() ;void delay1 (xms)/延时程序子程序 uint i,j; for(i=xms;i0;i-) for(j=110;j0;j-); void start() /II

26、C开始位 SDA = 1; SCL = 1; delay(); SDA = 0; delay(); void stop() / IIC停止位 SDA = 0; delay(); SCL = 1; delay(); SDA = 1; void respons() /IIC应答位 uchar i; SCL=1; delay(); while(SDA=1)&(i250) i+; SCL=0; delay();void init() SDA=1; delay(); SCL=1; delay(); uchar read_byte() / 从EEPROM读到MCU uchar i,j; for(i=0;i

27、8;i+) SCL=1; j=1; j|=SDA; SCL=0; return(j); void write_byte(uchar date) / 从MCU写到EEPROM uchar i,temp; temp=date; for(i=0;i8;i+) temp=temp1; SCL=0; delay(); SDA=CY; delay(); SCL=1; delay(); SCL=0; delay(); SDA=1; delay();void write_data(uchar addr, uchar date) / 在指定地址addr处写入数据date start(); write_byte(

28、0 xa0); respons(); write_byte(addr); respons(); write_byte(date); respons(); stop();uchar read_data(uchar addr) / 在指定地址addr读取数据 uchar date; start(); write_byte(0 xa0); respons(); write_byte(addr); respons(); start(); write_byte(0 xa1); respons(); date=read_byte(); stop(); return date; void xianshi()

29、/显示程序子程序 for(flag=0;flag6;flag+) P0= xscodeflag;/送显示码P2= zxscodeflag;/ 送片选码 delay1(2);P0=0; void jijia()/计费子程序 if(kk2&kk35&kk900) jkk=4+2*dj*(kk-2)+1; kflag=kk/100;/路程百位 jflag=jkk/100;/路费百位 xscode2=codetabkflag; xscode5=codetabjflag; kflag=kk/10;/路程十位 jflag=jkk/10;/路费十位 xscode1=codetabkflag; xscode4

30、=codetabjflag; kflag=kk%10;/路程个位 jflag=jkk%10;/路费个位 if(kflag=0)kflag=2;/不足两公里时,显示两公里 xscode0=codetabkflag; xscode3=codetabjflag; void qingling() for(i=0;i100) sec=0; TL0=(65536-2)%256 ;/计数值设置,记满两次产生中断 TH0=(65536-2)/256 ; TMOD=0 x06; EA=1; ET0=1; TR0=0;/关定时器 kilo=0; qingling(); aa: if(key1=0)/当键按下去,开

31、始计费 TR0=1;/开计数器0kk=kilo;jijia(); if(key1=1)/当键松开,停止计费TR0=0;/停计数器1 if(key2=0)/功能调整键 delay1(10);/延时判断键是否松开 if(key2=1) xscode2=codetabdjflag+;/当p1.2口的按键按下时功能标志位加一 if(key3=0&djflag=2)/当功能键标志位等1时,改变每公里的价钱 delay1(10); if(key3=1) dj+; xscode1= codetabdj/10 ;/把价钱十位送显示区,单价不能超100 xscode0=codetabdj%10; if(key4=0)/有键按下,清显示,单价会初始值,单价标志位清零 qingling(); dj

温馨提示

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

评论

0/150

提交评论