客车计价器-单片机原理及应用课程设计.doc_第1页
客车计价器-单片机原理及应用课程设计.doc_第2页
客车计价器-单片机原理及应用课程设计.doc_第3页
客车计价器-单片机原理及应用课程设计.doc_第4页
客车计价器-单片机原理及应用课程设计.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告课程名称:单片机原理及应用课程设计 设计题目: 客运计价器 系 别: 通信与控制工程系 专 业: 电子信息工程 班 级: 学生姓名: 学 号: 起止日期: 指导教师: 教研室主任: 2指导教师评语:指导教师签名: 年 月 日成绩评定项 目权重成绩1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总 成 绩 教研室审核意见:教研室主任签字: 年 月 日教学系审核意见: 主任签字: 年 月 日摘 要摘 要:随着客车行业的发展,客车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对客车司机和乘客来说都是很必要的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。而采用AT89C52单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻易而举的实现。避免了机械开关带来的不稳定因素。关键字:客车计价器;AT89C52单片机;控制;软件编程 目 录1设计基本要求12 系统的组成及工作原理12.1 系统的硬件构成及功能12.2 AT89C52单片机及其引脚说明23 硬件电路方案设计43.1 方案比较与确定43.2显示单元电路设计53.3 键盘显示模块设计63.4掉电保护模块设计64 系统软件设计74.1 系统主程序设计74.2 定时中断服务程序84.3 显示服务程序94.4 键盘服务程序95系统调试与测试106 心得体会及致谢10参考文献12附录1 元件清单13附录2 源程序14 1设计基本要求 本次课程设计利用单片机技术来实现一台多功能出租车计价器,具有性能可靠、电路简单、成本低等特点。(1)显示:可以显示金额、时间、单价。(2)计费功能:不同情况具有不同的收费标准:白天、晚上、途中等待;并能进行手动修改单价。(3)按键功能:转换按键:对白天/黑夜收费标准的转换;修改按键:对单价进行调整;复位按键:计数器能将记录数据自动清零。2 系统的组成及工作原理2.1 系统的硬件构成及功能 本系统的硬件设计主要包括单片机AT89C52、数据显示部件、模拟行驶时间单元、及计价单元的设计。在硬件设计过程中,充分利用各部件的功能,实现多功能的出租车计价器设计。 利用单片机丰富的IO端口,及其控制的灵活性,实现基本的时间计价功能和价格选择、总价显示控制等功能。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。在硬件设计过程中,充分利用各部件的功能,实现多功能的出租车计价器设计。而采用AT89C52单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级。具体电路参见附录中“多功能出租车计价器总体电路图”如图2.1 单片机控制方案图。89C52单片机单价显示金额显示键盘控制AT24C02掉电存储串口显示驱动电路里程计算 2.1 单片机控制方案图2.2 AT89C52单片机及其引脚说明AT89C52是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含8KB的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用 8位微处理器于单片芯片中,具有高性价比。AT89C52是一个有40个引脚的芯片,引脚配置如图2.2 AT89C52引脚配置所示。图2.2 AT89C52引脚配置AT89C52芯片的40个引脚功能为:VCC:电源电压。GND:接地。RST:复位输入。当RST变为高电平并保持2个机器周期时,将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位可打开或关闭该功能。DISKRTO位缺省为RESET输出高电平打开状态。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2: 来自反向振荡放大器的输出。P0口: 一组8位漏极开路型双向I/O口。也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。Flash编程和程序校验期间,P1接收低8位地址。P1口部分端口引脚及功能如表2-1 P1口特殊功能所示。表2-1 P1口特殊功能P1口引脚特殊功能P1.5MOSI(用于ISP编程)P1.6MOSI(用于ISP编程)P1.7SCK(用于ISP编程)P2口:一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口线上的内容在整个访问期间不改变。Flash编程和程序校验期间,P2亦接收低8位地址。P3口: 一个带内部上拉电阻的8位双向I/O口。P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写“1”时,它们被内部的上拉电阻把拉到高电并可作输入端口。作输入端口使用时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2-2 P3口特殊功能所示。P3口还接收一些用于Flash闪速存储器编程和程序校验期间的控制信号。 表2-2 P3口特殊功能P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通) PSEN/:程序储存允许输出是外部程序存储器的读先通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN/有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN/信号。EA/VPP 外部访问允许。欲使CPU仅访问外部程序存储器,EA端必须保持低电平,需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。Flash存储器编程时,该引脚加上+12V的编程电压VPP。3 硬件电路方案设计3.1 方案比较与确定 客车计价器基本功能部分是根据里程数来完成总金额的输出。实现方法有两种。方案一:采用数字电路控制。其原理方框图如图3.1所示。采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。 图3.1 数字电路实现框图方案二:采用单片机控制。利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。本方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。3.2显示单元电路设计 由于设计要求有时间、金额、单价,所以采用6位LED数码管的分屏显示。显示电路由6位LED数码管组成。电路如图3.2所示,8255A用于连接51单片机和LED数码管,51单片机的P0.0P0.7分别顺序对应8255A的D0D7,8255A的PA口为数码管的位选,PA为0xdf时,选择右一数码管。以次类推。PB口为数码管段选,PB为0xa0时,数码管显示为零。各个数码管显示原理示意图见图3.2:图3.2 数码管显示原理示意图3.3 键盘显示模块设计键盘采用4*4矩阵按键,接在8255A的PC口,当有键按下时,相对应的接口被置0。矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。如图3.3所示,行线接PC.0PC.3,列线接PC.4PC.7。图3.3 矩阵键盘电路按键S3:复位按键。按下该键,所以数据自动清零。按键S4:白天和黑夜计价方式的切换键。按键S12:开始计价按键。外中断0按键:表示汽车停止,并同时开始时间计价。3.4掉电保护模块设计掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。掉电保护的芯片较多,如AT24C02 是ATMEL 公司的2KB 字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8 脚的DIP 封装,使用方便。掉电保护电路图如下图3.4所示: 图3.4 掉电保护电路图4 系统软件设计 本系统的软件设计主要可分为主程序模块、定时计数中断程序、时间计数中断服务程序、显示子程序服务程序、键盘服务程序五大模块。下面对各部分模块作介绍。4.1 系统主程序设计 在主程序模块中,需要完成对各接口芯片的初始化、客车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、时间寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计时和计价等不同的操作。主程序流程图如图4.1 所示。当按下S12时,就启动计价,将根据时间寄存器中的内容计算,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。图4.1 程序总流程4.2 定时中断服务程序在定时中断服务程序中,每1/20s 产生一次中断,当产生20次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。其程序流程如图4.2 所示。 图4.2 定时中断服务程序4.3 显示服务程序数码管在一般情况下显示时间,总价格,单价三项数据。程序流程图如图4.3: 图4.3 显示服务程序4.4 键盘服务程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。三个按键分别对应三个简单的子程序。如果按键S3被按下,单片机复位键:实时数据自动清零。如果按键S4被按下,白天黑夜计价方式切换,按一次进入白天计价方式,两次进入黑夜计价方式,循环按键。5系统调试与测试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。测试包括时间计价测试、掉电存储测试。 根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试。在软件编程时,应充分利用原理图,不然会在编程时导致硬件与软件不能对应起来,使程序无法实现功能,还有在编程时子程序的名称应与其功能对应,否则会使别人在读程序的时候不能及时理解程序含义,而且在软件调试时逻辑一定要清晰,不然在找错时会浪费很多时间。6 心得体会及致谢 经过这些天有关于客车计价器的课程设计,使我对单片机的应用有了更深的了解。在课程设计的过程中,还是碰到了许多的问题。比如,对于数码管动态扫描显示和键盘的延时防抖的综合编程不能较好地解决;对于代码的前后顺序及调用掌握得还不够好;对于一些相关的应用软件没能熟练掌握。通过这几天晚上的苦想和反复调试,以及参考网上的程序,最终还是把问题解决了。通过这次课程设计,我最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,也充分体会到了自己设计东西的乐趣、学会查阅资料和对别人的东西融会变通的重要性,也明白了很多知识光靠趴在书本上学是学不到其中的精髓的,必须亲自去试着实践,亲自去经历才能对它们真正的掌握,凡事都要自己去动下手,去实践一下,遇到困难,永远不要沮丧气馁。在动手的过程中,不仅能增强实践能力,而且在理论上可以有更深的认识;这次设计给了我极大的鼓舞和信心,相信在以后的学习中可以通过不断的摸索和实践来提高其他方面的知识。通过本次课程设计,又使我学到了许多书本上无法学到的知识,也使也深该体会到单片机技术应用领域的广泛,不仅使我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。在本次课程设计过程中,我学会了在网络上查找有关本设计的各硬件的资源,其中包括:AT89C52单片机及其引脚说明,为本次课程设计提供了一定的资料。也为以后的进一步学习打下了坚实的基础。最后要感谢学校给了我们这次课程设计的机会,让我们将理论能运用于实践提供了条件,感谢指导老师谭老师对我们设计电路的指导与论证,同时也要感谢系里各位老师对于我们方案的敲定、元器件的选择、电路板的制作、元件的焊接的建议与指导,感谢同学们对我们组的支持。祝愿老师们工作顺利,同学们学业有成!参考文献1张友德、赵志英、涂时亮. 单片微型机原理、应用与实验 上海:复旦大学出版社2005.12 .2 徐光翔.单片机原理接口及应用南京大学出版社.3 张淑清等. 单片微型计算机接口技术及其应用 北京:国防工业出版社. 4 王晓君等. MCS-51及兼容单片机原理与选型 北京:电子工业出版社.5张鑫、华臻、陈书谦单片机原理及应用M电子工业出版社,2005P1101366丁元杰、吴大伟单片微机实题集与实验指导书M机械工业出版社.2004P1241257 AT89C52概述EB/OL:/view/2251929.html.附录1 元件清单名称型号 数量 电阻1K 10若干 电容104 33若干 单片机芯片AT89C521 扩展芯片8255A1 三极管90156 数码管 2 开关1 按键 19 USB串口线1 USB串口电源线1 掉电保护芯片AT24C021 发光二极管1 数字万用表DT92031 单片机仿真器STC_ISP1 双踪稳压稳流电源DH1718E-51 数字示波器TDS10021 电烙铁1附录2 源程序#include#include#define uchar unsigned char#define uint unsigned int#define PA XBYTE0xd9ff#define PB XBYTE0xdbff#define PC XBYTE0xddff#define CON XBYTE0xdfff/sbit cs=P25;/sbit A1=P21;/sbit A0=P20;uchar count=0,k;uint temp,s,t;uchar code table=0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28,0xff;void delay(uint z)/毫秒延时函数uint x,y;for(x=z;x0;x-)for(y=120;y0;y-); display1(uchar bai,uchar shi,uchar ge)/计价显示函数PB=tablebai;PA=0x37;delay(5);PA=0xff;PB=tableshi;PA=0x2f;delay(5);PA=0xff;PB=tablege;PA=0x1f;delay(5);PA=0xff;display2(uchar shiw,uchar wan,uchar qian)/路程或时间显示函数PB=tableshiw;PA=0x3e;delay(5);PA=0xff;PB=tablewan;PA=0x3d;delay(5);PA=0xff;PB=tableqian;PA=0x3b;delay(5);PA=0xff;uchar keyscan()/键盘扫描函数uchar tem;PC=0x10;tem=PC;tem=tem&0x0f;if(tem=0x08)tem=PC;tem=tem&0x0f;delay(5);if(tem=0x08)while(PC=0x18);return 1;if(tem=0x04)return 2;if(tem=0x02)return 3;else return 0;void main()/ 主函数uchar ch,bai,shi,ge,sbai,sshi,sge,tbai,tshi,tge, key,b=1;CON=0x81;/设置8255控制字EA=1;EX0=1;EX1=1;TMOD=0x11;IT1=1;IT0=1;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;ET1=1;ET0=1;while(1)temp=30;display1(0,3,0);

温馨提示

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

评论

0/150

提交评论