基于单片机的出租车计价器设计报告(编辑修改稿)内容摘要:

图 LED 指示灯接线图 择双程时亮。 数据存储单元 本设计使用了 24C02 作为外部存储芯片。 24C02 是串行 2K 的EEPROM,是基于 I2CBUS 的存储器件,遵循二线制协议,具有接口方便,体积小,数据掉电不丢失等特点。 计价器能将里程和总价格实时的存储到 24C02 中,当计价器因掉电停止工作, 24C02 会存储掉电前一刻的数据,使系统从新上电时能够恢复里程和总价格。 当计价器是被手动正 常停止时,将会对 24C02 相应的地址写 0,以使下次启动时,计价器从初始化数据开始计价。 24C02 的接线图,如图 所示。 图 24C02 的接线图 3 软件设计 软件设计流程图 软件系统可以大致分为几个大的模块为:初始化模块,按键扫描模块,中断与定时模块,数据计算模块,数码管显示模块, IIC 总线通信模块等。 其中,键盘扫描和数码管显示采用查询方式,转速信号接收采用中断方式。 软件设计流程图,如图 所示。 图 软件设计流程图 计算模块 计算程序根据里程数分别进入不同的计算公式。 如果里程大于 3公里,则执行公式:总金额 起步价 +(里程 3) *单价 +等待时间 *等待单价;否则,执行公式:总金额 起步价 +等待时间 *等待单价。 对于速度的判断及等待时间的记录采用定时器零中断,设定 10ms一个中断,然后判断车速,小于 5 公里 /小时时,则开始记录等待时间。 键盘扫描 键盘扫描才用查询方式,当有按键按下时就对相应的标志进行取反,或调用其他子函数,在消抖过程中,这里将数码管显示程序潜入以保证显示的稳定。 显示程序 显示程序利用主函数内的循环,实现动态扫描显示,同时根据数码管余辉和人眼暂 留现象,即可实现显示 PWM 波的生成 在 AT89 系列单片机中 ,由于没有 PWM 控制器 ,要输出 PWM 信号就需通过软件的方式在 I/O 口上模拟 PWM 的输出。 PWM 软件设计一般可以利用软件延时的方式或利用单片机内部的定时器 /计数器作为时钟信号。 本设计是利用软件延时获得 PWM 信号的 ,在软件中设计一个基准的软件延时程序 ,通过反复调用这个延时程序 ,从而获得不同的时间长度 ,为了电机速度稳定 ,我们选择使用同周期 ,不同占空比的 PWM 进行调速。 若频率为 1kHZ,则每个方波的周期为 1ms,占空比从 0变化到 100%,最小的变化量为 10%,即高电平维持时间的最小值是 100us,所以只要设计出 100us 的延时程序作为基准即可。 具体程序如下 : define uchar unsigned char sbit PWM P3^4。 //定义 PWM 输出口为 void PWMout uchar q //生成同周期的 PWM 波 PWM 1。 delay q。 PWM 0。 delay 10q。 void delay uchar a //100us 延时函数 uchar b。 for。 a 0。 a for b 29。 b 0。 b _nop_。 _nop_。 速度检测 经检测模块得到的信号输入到单片机内 ,因为输入的是低电平信号 ,所以我把信号输入到了中断 0 端口 ,每接收一个低电平信号程序就会进入中断函数里面 ,中断 0 函数如下 : void int0 interrupt 0 sudu++。 这样就完成了速度测量。 程序源代码 程序源代码见附录 2。 4 Proteus 软件仿真 将整个系统原理图在 Proteus 连接好后,下载如编写好的程序仿真如下:如图 显示的状态设置为 :单程 ,车速大于 5km/h,当路程等于 时的显示情况。 图 Proteus 软件仿真图 5 课程设计体会 本次单片机课程设计,我们选的题目是出租车计价器的设计。 通过仿真、焊接、调试等不断的努力,我们的出租车计价器实现了基本要求的全部功能和发挥部分的部分功能。 比如能显示里程、金额数、总等待时间,可设定单程价格和双程价格,按暂停键,计价器可暂停计价,按查询键,可显示总等待时间,空 车指示、信息存储等。 经过这些天有关于出租车计价器的课程设计,使我们对 MCS51系列单片机的应用有了更深的了解。 从前的学习过程过于浮浅,只是流于表面的理解,而现在要做课程设计,就不得不要求我们对所用到的知识有更深层次的理解。 因为课程设计的内容比及书本中的理论知识而言,更接近于现实生活,而理论到实践的转化往往是一个艰难的过程,它犹如一只拦路虎,横更在我们的面前。 但是我们毫不畏惧,因为我们相信我们能行。 事情并不总是 a name=baidusnap0/a一 帆 /B风顺的,我们总会遇到困难和险阻。 在此次课程设计的过程中,我们碰到了许多的问题。 比如,对于数码管动态扫描显示和键盘的延时防抖的综合编程不能较好地解决;对于代码的前后顺序及调用掌握得还不够好;对于一些相关的应用软件 KEIL、 PROTEUS、 Altium esigner 没能熟练掌握。 当然,问题并不可怕,只要我们怀着一颗不服输的心,勇往直前,那么胜利将不会离我们太远。 通过上网查找资料、与同学老师交流、小组成员间的讨论、不断实践与探索,我们总能找到解决问题的方法,最后得到良好的效果。 通过这次课程设 计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 总之,本次课程设计让我们更加深刻的掌握了 MCS51 系列单片机的工作原理和编程语言,更加熟练的掌握了 KEIL、 PROTEUS、 Altium designer 等专业软件的使用,熟悉了产品开发的大致流程,深刻的体会到了团队协作精神的重要性 ,培养了我们发现问题、独立思考问题、多种途径解决问题的能力,锻炼并提高了了我们的动手实践能力和理论与实践相结合的能力。 我以后做一个动手能力强的大学生。 致谢 在课程设计即将完成之际,我想向给予我帮助和支持的人表示衷心的感谢。 感谢高老师和王老师给我们提供这次难得的课程设计机会,让我们有机会把理论 得以应用到实践上。 感谢我们的指导老师王莉,课程设计是在老师的亲切关怀和悉心指导下完成的。 严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。 老师不仅 在学业上给我以精心指导,同时还在思想、上给我以无微不至的关怀,在此谨向老师致以诚挚的谢意和崇高的敬意。 我还要感谢在一起愉快的度过的同学们,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。 最后,再次对关心、帮助我的老师和同学表示衷心地感谢。 include //头文件 include include //IIC 总线通信 include //数码管显示 define uint unsigned int define uchar unsigned char sbit key0 P1^0。 //启动 sbit key1 P1^1。 //停止 sbit key2 P1^2。 //单返程 sbit key3 P1^3。 //暂停 sbit key4 P1^4。 //显示等待时间 sbit key5 P1^5。 //调速 sbit led0 P2^2。 //暂停指示灯 sbit led1 P2^3。 //空车指示灯 sbit led2 P2^4。 //启 动指示灯 sbit led3 P2^5。 //双程指示灯 sbit led4 P2^1。 //等待指示灯 sbit PWM。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。