地铁计价系统说明书.docx
- 文档编号:4504748
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:19
- 大小:67.01KB
地铁计价系统说明书.docx
《地铁计价系统说明书.docx》由会员分享,可在线阅读,更多相关《地铁计价系统说明书.docx(19页珍藏版)》请在冰豆网上搜索。
地铁计价系统说明书
《单片机技术》课程设计说明书
地铁计价系统
学院:
电气与信息工程学院
学生姓名:
指导教师:
贾雅琼职称/学位副教授
专业:
电子信息工程
班级:
学号:
完成时间:
2016年10月
湖南工学院《单片机技术》课程设计课题任务书
学院:
电气与信息工程学院专业:
电子信息工程
指导教师
贾雅琼
学生姓名
课题名称
地铁计价系统
内容及任务
一、设计任务
设计一个单线地铁计价系统。
二、设计内容
1、地铁计价系统硬件部分
(1)、单片机最小系统模块
(2)、供电模块
(3)、显示模块
(4)、键盘模块
2、地铁计价系统软件部分
(1)、系统监控程序模块
(2)、显示程序模块
(3)、键盘程序模块
(4)、票价计算模块
三、设计要求
1、上电或按键复位后显示器件自动显示0,进入准备阶段。
2、共计两条地铁线A与B,每条线上有9个站点,其中5号站点为两条地铁线公共站点,任何跨线乘坐必须经过5号站点换乘。
3、每3站计价2元,不足3站按2元计价。
4、通过键盘选择乘坐起点和终点,确认及取消购买。
5、在显示器件上显示起点及终点线路及编号,以及总价。
主要参考资料
[1]李广弟.单片机基础[M].第3版.北京:
北京航空航天大学出版社,2003.6.
[2]李全利.单片机原理及应用(C51编程)[M].北京:
高等教育出版社,2012.12.
[3]马忠梅.单片机的C语言应用程序设计[M].第4版.北京:
北京航空航天大学出版社,2003.6.
[4]李光飞.单片机C程序设计指导[M].北京:
北京航空航天大学出版社,2003.01.
[5]李光飞.单片机课程设计实例指导[M].北京:
北京航空航天大学出版社,2004.9.
教研室
意见
教研室主任:
(签字)
年月日
摘要
伴随着城市交通道路的发展,城市人流量的不断增加造成的交通拥堵。
地铁为人们出行提供了另一种便捷。
然而时代的变化又给地铁提出了新的要求。
从而产生了地铁计价仪器,地铁计价系统就是用于地铁运营收费的计价仪器,它能准确、公正的计算出乘客的费用。
这次课程设计分模块进行,硬件主要分为六个模块:
主控模块、键盘模块、显示模块、晶振电路、电源电路、复位电路。
主控芯片为AT89S52芯片,采用C语言设计程序,通过4个键盘按键分别达到确定、右移、增加、减少的目的,然后在8位共阳数码管上显示起点及终点线路及编号,以及总价。
复位电路是单片机的初始化操作,除了正常的初始化外,当系统出现问题时,还可以通过复位电路重新开始。
晶振电路采用12MHz的晶振,作为系统的时钟源,具有较高的准确性。
地铁计价系统是以单片机AT89S52为核心设计的一款地铁计价仪器,根据输入的地铁起点站点号码和终点站点号码计算出价格。
使乘客上下班以及出行变得更加方便。
关键词:
计价仪器;地铁计价系统;AT89S52芯片
1地铁计价系统任务、要求说明、总体方案及工作原理
1.1设计任务
设计一个单线地铁计价系统。
1.2设计要求
(1)上电或按键复位后显示器件自动显示0,进入准备阶段。
(2)共计两条地铁线A与B,每条线上有9个站点,其中5号站点为两条地铁线公共站点,任何跨线乘坐必须经过5号站点换乘。
(3)每3站计价2元,不足3站按2元计价。
(4)通过键盘选择乘坐起点和终点,确认及取消购买。
(5)在显示器件上显示起点及终点线路及编号,以及总价。
1.3地铁计价系统总体方案介绍及工作原理说明
1.3.1设计思路
计价器主要由主控电路、复位电路、晶振电路、电源电路、独立键盘电路、数码管显示电路。
地铁计价器的系统框图如图1所示:
图1地铁计价系统的总体方案框图
这次课程设计采用C语言编写程序,用键盘输入线路及编号,从数码管上输出价格,实现地铁计价器的功能。
1.3.2工作原理
地铁计价系统是根据乘客乘坐地铁的站点数的多少进行计价,并按照交叉站原理计算费用,结算一并从起点开始,终点结束显示费用。
从起步价开始,当地铁行驶未满3站点时,均按起步价计算。
共计4个键盘按键接到单片机P1.0-P1.3口线上,分别达到确定、右移、增加、减少的目的。
其中1键是开始输入和确认,2键是输入的数码管右移,3键是当前指向的数码管数增加,4键是当前指向的数码管数减少,通过键盘输入乘坐起点和终点的站点号码后,按照要求计算出总价。
并且在共阳数码管上显示起点及终点线路及编号,以及总价。
2地体计价系统硬件系统的设计
2.1单片机AT89S52
AT89S52单片机是Atmel公司制造的,其片内ROM全部采用Flash存储器,具有8KBROM存储空间,可以工作在3V的超低电压环境中,并且与MCS-51系列单片机完全兼容,它具备ISP在线编程技术,可以实现在设计中对修改后程序擦除与烧入。
设计采用的是双列直插式AT89S52单片机,并运用活扣锁紧座,方便对芯片进行拔插,以防止对芯片的机械损坏,方便设计使用。
AT89S52单片机共40个引脚,4个I/O口线,每个口线都有8位,同时具有3个定时器/计数器,2个数据指针,串行通信线路形式是全双工形式。
除此之外,单片机还有两种节电模式。
在空闲模式情况下,CPU是停止工作的,但是其内部模块仍然可以继续工作,如RAM、定时器/计数器、串口以及中断等都可以工作。
在使用掉电保护情况下,单片机会把RAM的内容保存好,振荡器将会停止工作,这就意味着单片机会停止所有工作,要想重新开始工作就要等到下一个中断或者硬件复位信号到来。
如图2为AT89S52单片机的引脚图。
图2AT89S52单片机的引脚图
2.2硬件系统电路
2.2.1数码管显示电路
数码管显示模块主要由一个四位一体数码管、74HC573驱动芯片和8个470Ω的电阻构成。
本课设采用的数码管使用的是动态显示,所谓动态显示,就是依次向每位位数码管同时送出字形码和相应的位选,位与位之间利用延时程序进行延时,当延时程序非常短时,由于发光管的余辉和人眼视觉暂留作用,此时我们的人眼就分辨不出位与位之间有延时存在,此时就感觉各位数码管同时都在显示。
动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
数码管显示电路如图3所示:
图3数码管显示电路
2.2.2晶振电路
晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
AT89S52单片机芯片内部设有一个由反向放大器构成的振荡器,XT1和XT2分别为振荡电路的的输入端和输出端,时钟可有内部或外部生成,在XT1和XT2引脚上外接定时元件,内部振荡电路就会产生自激振荡。
系统采用的定时元件为石英晶体和电容组成的并联谐振回路。
时钟频率采用12MHZ,C3、C4的电容值取33pF,电容的大小起频率微测的作用。
晶振电路如4图所示:
图4晶振电路图
2.2.3键盘电路
设计中使用一共用到四个按键,四个按键S4、S5、S6、S7分别接到单片机P1.0-P1.3口线上,各个按键之间互不干扰。
第一个按键S4是开始输入和确认,第二个按键S5是输入数码管光标右移,第三个按键S6是数码管显示的数增加,第四个按键S7是数码管显示的数减少。
当没按键盘时,端口输入为高电平,当按下键盘时,端口输入为低电平。
上拉电阻保证按键释放时,输入检测线上有稳定的高电平。
键盘电路如图5所示:
图5独立式键盘原理图
2.2.4电源电路
单片机的输入电压为直流+5V,必须接通+5V的直流电源才能正常工作。
为了获得+5V电源电压,采用12V变压器将220V电压降压成所需要的12V交流电压,通过整流、滤波、稳压、给系统提供稳定的直流电压+5V。
整流桥选择2W10型号,承受电流的能力为2A,最大耐压能力为1000V。
通过计算,滤波电容C3取标称值470μF,C1取标称值2200μF减少纹波系数电容C4取0.1μF,稳压芯片选取LM7805,为了保护发光二极管不被烧坏,加上1K的保护电阻R1,才能输出稳定的+5V电压。
电源电路如图6所示:
图6电源电路图
2.2.5下载电路
这次万年历系统设计了一个下载口用于单片机系统的程序设计导入,也可作为补充电源使用,即与电脑USB接口相接或直接引入供电电源,因此可以实现程序的输入和供电。
设计的下载电路由单片机下载器、下载电缆及接口电路组成。
其中接口模块的1、4、5脚分别连接单片机的P1.5、P1.7、P1.6引脚,2脚悬空,3脚连接单片机的复位引脚,6、7、8、9脚接地,10脚接电源。
下载接口电路如图7所示。
图7下载接口电路
2.2.6复位电路
复位电路采用按键复位方式,当按下复位键时,单片机复位,恢复初始状态,各寄存器清零,各I/O端口为高阻态。
当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。
RST引脚是单片机复位信号的输入端,复位信号是低电平有效,其低电平持续时间大于最小脉冲宽度,使用其内部频率为12MHZ的晶振,则复位信号持续时间应超过2us才能完成复位操作。
复位电路如图8所示。
图8复位电路
2.3电路原理图
电路原理图见附录A。
2.4实物图
实物图见附录B。
2.5元器件清单
元器件清单见附录C。
3地铁计价软件系统的设计
使用C语言编写课题程序,软件系统包括监控模块,键盘模块和显示模块,同时给出各模块程序流程图。
各模块行驶各自的功能,然而又紧密联系,共同组成了地铁计价系统的软件系统。
3.1单片机资源使用
P0处I/O端口:
P0.0-P0.8的8个I/O端口用于连接6个数码管的段控端,起到点亮数码管上的LED灯的作用。
P1处I/O端口:
P1.0-P1.3的4个I/0端口用于连接4个控制按键,起到输入信号的作用。
P2处I/O端口:
P2.0-P2.8的8个I/O端口用于连接6个数码管的位控端,起到单位数码管的作用。
3.2软件系统模块的程序流程框图
监控模块是软件系统的主体,实时监视按键的状态,判断按键是否被按下。
程序的成功与它密切相关。
如果监控模块出现错误的话,整个软件系统都进行不下去,不能实现需要实现的功能。
设计中先初始化地铁计价系统,然后调用键扫描,通过键扫,判断是否有键按下。
监控模块程序流程图如图9所示:
N
Y
图9监控模块程序流程图
3.2.2键盘模块程序流程图
在单片机应用中,人机交互对话最通用的方法就是通过键盘进行的。
操作者通过键盘向系统发送各种指令或置入必要的数据信息。
因此键盘模块设计的好坏,直接关系到系统的可靠性和稳定性。
键盘模块是程序的一个重要部分,判断有无按键按下,有则执行相应的键功能程序,没有的话就顺序执行主程序。
当有键按下时,判断是哪个键被按下,然后再执行按键对应的功能。
在显示过程中一直进行扫描,当有其它键按下,就执行相应按键的功能。
键盘模块程序流程图如图10所示:
图10键盘模块程序流程图
延时模块通过延时程序voiddelay_ms(unsignedcharms)进行延时,当需要延时时,就调用此函数。
3.2.3计算模块流程图
当站点输入完成后,根据程序中通过设计要求编写的公式计算出总价。
计算模块流程图如图11所示:
YN
N
Y
图11计算模块流程图
3.2.4数码管显示流程图
通过数码管显示程序能将程序的运行结果显示在数码管上。
P2口为位控位,控制P2.0-P2.8的8个数码管的工作情况;P0口为段控位,控制被P2口选定的数码管的各段的工作情况。
这次课程设计选用了数码管的动态显示。
动态显示是利用人眼视觉暂留特性来实现显示的。
事实上,数码管上任何时刻只有一个数码管有显示。
由于各数码管轮流显示时间间隔短、节奏快,人的眼睛反应不过来,因此看到的是连续显示的现象。
为防止闪烁,延时的时间在0.5ms左右,不能太长,也不能太短。
最后要进行消影处理,防止数码管显示不清。
显示模块流程图如图12所示:
图12数码管显示流程框图
3.3程序清单
程序清单见附录D。
4地铁计价系统测试
4.1使用说明
电路连接完毕无误后,接通电源。
上电显示000000,按下复位键也显示0,进入准备阶段。
按下第一次键S4,数码管显示模块显示A1A100,并且第一个数码管闪烁,等待输入。
按下键S5,闪烁的数码管右移,但右移至第四个数码管时,再次按下则会回到第一个数码管。
按下键S6,显示站点的数码管的数增加1,或显示线路的数码管改变成显示另一条线路。
按下键S7,显示站点的数码管的数减少1,或显示线路的数码管改变成显示另一条线路。
当根据要求输入完乘坐的起点和终点的线路及编号后,再次按下键S4,数码管显示出总价。
4.2测试结果
假设起点的线路及编号为A2,终点的线路及编号为b7,中间间隔5个站点,实际收费为4元。
根据说明输入完乘坐的起点和终点的线路及编号后,再次按下键S4,数码管显示如图13所示:
图13地铁计价系统测量结果1
假设起点的线路及编号为A3,终点的线路及编号为A8,中间间隔5个站点,实际收费为4元。
根据说明输入完乘坐的起点和终点的线路及编号后,再次按下键S4,数码管显示如图14所示:
图14地铁计价系统测量结果2
假设起点的线路及编号为A3,终点的线路及编号为B8,中间间隔5个站点,实际收费为4元。
根据说明输入完乘坐的起点和终点的线路及编号后,再次按下键S4,数码管显示如图15所示:
图15地铁计价系统测量结果3
假设起点的线路及编号为A9,终点的线路及编号为b8,中间间隔7个站点,实际收费为6元。
根据说明输入完乘坐的起点和终点的线路及编号后,再次按下键S4,数码管显示如图16所示:
图16地铁计价系统测量结果4
观察多次的测量结果,可知显示的实验结果与设计的实际要求一致,可得出结论,地铁计价系统设计成功。
4.3设计体会
通过对设计进行了研究背景及意义的分析,了解了研究的主要工作,论证了系统的基本方案并进行了方案选择,还给出了硬软件各模块的设计方案,得出了总体设计方案。
这次的课程设计对我来说无疑是一次较好的动手锻炼机会,因此从一开始就抱着一种较认真的态度,无论是从了解万年历背景、意义及其实现原理,还是后来的程序设计,对我来说都是一种提高。
在研究的过程中通过对硬件设计仿真,模块调试,最终设计出了系统硬件实物。
对各模块编写了相应的程序软件并对其进行调试,分别得出各模块结果。
把各模块软件组合成了地铁计价系统软件,下载到实物中,得出了最终结果。
在设计过程中遇到了许多问题,比如说判断起点和终点是否在同一条线路上,又比如硬件电路的设计,但经过一次又一次的思考,一遍又一遍的查找资料,不断的向老师、同学学习请教,终于找到了解决的办法,这暴露出了知识的欠缺和经验的不足。
总体来说,设计基本完成了设计任务
结束语
在这次设计中我学到了好多在课本上学习不到的东西,让我认识到理论知识的重要性觉得做课程设计的同时也是对课本知识的巩固和加强,平时看课本时,有些问题长弄不懂,在课程设计中有些问题就迎刃而解了。
而且学到很多东西。
掌握一些在课本上不能掌握的知识。
在电路设计中,我觉得电路检查是非常重要的一步,从中我们可以学到很多东西,可以提高自己发现问题解决问题的能力,使自己的动手能力有一定的提高。
在调试的过程中,产生的故障也很多。
有的是一种原因引起的简单故障,有的是多种原因相互作用引起的复杂故障,很多的问题积累在一起,使得情况变得更为复杂。
因此需要掌握故障的一般诊断方法,循序渐进,依次解开一个一个问题。
故障诊断过程就是以故障现象出发,通过反复测试,做出分析判断,逐步找出故障的过程。
对于一个复杂的系统来说,要在大量的元器件和线路中迅速、准确地找出故障是见很不容易的事。
要通过对原理图的分析,把系统分成不同功能的电路模块,通过逐一测量找出故障模块,然后再对故障模块内部加以测量找出故障,查找故障,分析故障和排除故障,这样可以提高自己的分析问题和解决问题的能力。
参考文献
[1]徐家喜.单片机原理与应用实验指导[M].南京:
南京大学出版社,2013
[2]宋雪松.手把手教你学51单片机[M].北京:
清华大学出版社,2014
[3]李全利.单片机原理及应用(C51编程)[M].北京:
高等教育出版社,2012
[4]马忠梅.单片机的C语言应用程序设计[M].第4版.北京:
北京航空航天大学出版社,2003
[5]李光飞.单片机课程设计实例指导[M].北京:
北京航空航天大学出版社,2004
[6]曹巧媛.单片机原理及应用[M].北京:
电子工业出版社,1997
[7]张洪润,兰清华.单片机应用技术教程[M].北京:
清华大学出版社,1997
致谢
通过这次课程设计,我对单片机技术这门课有了更多的认识,本次课程设计让我有了很多的进步。
对于本次课程设计的成功,首先我要感谢我的祖国,是祖国培养我、教育我,没有强大昌盛的而祖国,我们就没有这么好的学习环境和条件。
希望祖国能够一天天日益强大。
其次,我要感谢我的父母和老师,父母从小教育我,没有他们就没有我。
老师花费很多时间跟我们讲解课程设计的要求和做法,让我们少走了许多歪路,十分感谢贾雅琼老师的帮助。
最后我要感谢我的同学,没有他们在旁边帮助我,鼓励我,我也不可能坚持到最后。
总而言之,感谢每一位关心、帮助我的人,他们今天对我的付出,就是我现在生活,将来工作的动力。
附录
附录A电路原理图
附录B实物图
地铁计价系统
直流稳压电源
附录C元件清单
地铁计价系统元器件清单
元件
型号
数量/个
数码显像管
HS410361K-32
2
单片机
AT89S52
1
电阻
1KΩ
1
电阻
470Ω
8
电阻
200Ω
1
电阻
10KΩ
1
电容
22pf
1
电容
30pf
2
晶振器
HC-49S
1
键盘
6*6*4.3mm
5
锁存器
74HC573
1
三极管
9014
1
直流稳压电源元器件清单
元件
型号
数量/个
12V变压器
1
电源芯片
7805
1
发光二极管
1
散热片
1
6脚开关
1
电容
0.01μF
2
电解电容
4700μF
1
电解电容
220μF
1
桥式整荡器
1KΩ
1
电阻
2KΩ
1
插头
1
排针
4
附录D程序清单
/**************************************************************************
功能:
地铁AB线各有9站,2线在第5站换乘,通过按键选择起点和终点,然后
计算出票价,站点和价格显示在共阳数码管上
日期:
2016-10-23
程序名:
地铁计价系统
姓名:
班级:
电子
指导老师:
贾雅琼
****************************************************************************/
#include
#include
#include
#defineLEDPORTP0//LCD数据口
//共阳数字编码
unsignedcharca_table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
unsignedchardisbuff[6];//显示字符
sbitK_S=P1^0;//设置键
sbitK_M=P1^1;//位选键
sbitK_Z=P1^2;//增加键
sbitK_J=P1^3;//减小键
sbitCC1=P2^7;//数码管位选
sbitCC2=P2^6;
sbitCC3=P2^5;
sbitCC4=P2^4;
sbitCC5=P2^3;
sbitCC6=P2^2;
sbitCC7=P2^1;
sbitCC8=P2^0;
//毫秒延时
voiddelay_ms(unsignedcharms)
{
unsignedcharnumber,value;
for(number=0;number { value=148; while(value--); } } //显示函数 voiddisplay(void) { CC1=1;//显示第一位数码管 LEDPORT=ca_table[disbuff[0]]; delay_ms(5); CC1=0; CC2=1;//第二位 LEDPORT=ca_table[disbuff[1]]; delay_ms(5); CC2=0; CC3=1;//第三位 LEDPORT=ca_table[disbuff[2]]; delay_ms(5); CC3=0; CC4=1;//第四位 LEDPORT=ca_table[disbuff[3]]; delay_ms(5); CC4=0; CC7=1;//第七位 LEDPORT=ca_table[disbuff[4]]; delay_ms(5); CC7=0; CC8=1;//第八位 LEDPORT=ca_table[disbuff[5]]; delay_ms(5); CC8=0; } voidmain(void) { unsignedcharwei=0;//数码管位指针 unsignedcharcnt=0;//计数值 unsignedcharnum=0;//起点和终点之间的站数 unsignedcharflag=0;//运行标志 unsignedchardatbuff[4];//选择结果 P2=0X00; while (1) { display();//显示 if(K_S==0)//设置键动作 { delay_ms(5); if(K_S==0)//延时确认 { flag=1;//设置标志,进入 datbuff[0]=10;//A datbuff[1]=1;//1 datbuff[2]=10;//A datbuff[3]=1;//1 disbuff[0]=datbuff[0];//显示初始状态
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 地铁 计价 系统 说明书