单片机课程设计出租车计费系统.doc_第1页
单片机课程设计出租车计费系统.doc_第2页
单片机课程设计出租车计费系统.doc_第3页
单片机课程设计出租车计费系统.doc_第4页
单片机课程设计出租车计费系统.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

出租车计费系统目录1 设计任务 3 1.1 设计一个255计数器. 31.2 设计一个999999计数器. 31.3 设计一个出租车计费系统. 3 2 设计思路33 软件设计 33.1 255计数器 43.1.1 流程图 4 3.1.2 硬件仿真截图53.1.3 调试程序图 6 3.14 255计数源代码73.2 999999计数器.93.2.1 流程图9 3.2.2硬件仿真截图10 3.2.3 调试程序图 11 3.2.4 999999计数器源代码123.3 出租车计费系统.133.3.1 流程图13 3.3.2 硬件仿真截图14 3.3.3 调试程序图 15 3.3.4 出租车计费源代码164 心得体会18一、设计任务:11 外部脉冲自动计数,自动显示。111设计一个255计数器:0255计数,计满后自动清0,重新计数(在数码管中显示)。112设计一个999999计数器:0999999计数,计满后自动清0,重新计数(在数码管中显示)。12 设计一个出租车计费系统: 起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后3位数码管显示价钱(角,元,十元,百元)二、设计思路:1、255计数:255可用8位二进制数表示,故本设计可直接采用工作方式1计数器T0模式二进行计数。然后对TL0的内容进行相应的二进制-十进制转换:首先TL0的内容除以64H,所的商就是十进制的百位,然后用余数除以0AH,所得的商就是十进制数的十位,余数即相应的十进制的个位。接着将相应的十进制数进行译码,并在LED数码管上显示出来。每来一个脉冲其显示的结果加一,直加至255然后T0重新开始计数。2、999999计数:999999可用8位二进制数表示,故本设计可直接采用工作方式0计数器T0模式二进行计数。然后对TL1的内容进行相应的二进制-十进制转换:首先TL0的内容送0FFH,THO内容送入0FFH,当第一个脉冲过来时,TLO的内容自动加1,把每一个计数的脉冲相应的6个数码管,如此循环。3、出租车计费系统可用8位二进制数表示,故本设计可直接采用工作方式1计数器T0模式二进行计数。车胎的周长大概1.7M所以设计T0的初始值为65236,需要计数300才满足500M才中断,里程数分别放入65H,64H,63H,钱数分别放入62H,61H,60H.里程数每增加500M,钱数增加0.8元别送入数码管显示。255计数器的流程图:开始计数器初始化清零相关RAM地址单元调用显示子程序脉冲数加1即TL0内容加1计算出脉冲数的个,十,百位分别存放于70H,71H,72H(TL0=255?)脉冲数计到255后重新计数说明:1. 脉冲数加1时,TL0的内容加1 2. 计算脉冲数的百位数值:(TL0)/100的商即百位数值存放于72H。余数存放于71H2.TL0的个位和十位数值:(71H)/10的商即十位数值存放于71H,余数即个位数值存放于70H。例如:脉冲数212(十进制),脉冲的个位数值(70H)=2, 脉冲的十位数值(71H)=1, 脉冲的百位数值(72H)=2.255计数器PROTEUS硬件电路图:255计数器调试程序:255源代码org 0000h ljmp start org 100hstart:mov tmod,#05h mov r1,#2 mov r2,#3mov dptr,#tab setb tr0main:mov a,tl0 mov b,#64hdiv abmov 72h,axch a,bmov b,#10div abmov 71h,amov 70h,b mov r0,#72hxsh:mov a,r0 jnb p1.2,pxjnb p1.1,pxcjne r0,#72h,k71 cjne r0,#0,lp2sjmp phk71: cjne r0,#71h,pxcjne r0,#0,lp1sjmp ph ;下一位lp1:clr p1.1sjmp px lp2:clr p1.2 px:movc a,a+dptr mov p0,a mov p2,r1 lcall dly mov p0,#0 ph:dec r0;下一个单元 dec r1 djnz r2,xsh setb p1.2 setb p1.1 mov r0,#72h mov r1,#2 mov r2,#3 ljmp maintab:db 3fh,06h,5bh db 4fh,66h,6dh db 7dh,07h,7fh,6fhdly:mov 30h,#20l1:mov 31h,#20l2:djnz 31h,l2 djnz 30h,l1 ret end999999计数器流程图开始计数器初始值设置清零相关RAM地址单元调用显示子程序脉冲数加1即TL0内容加1放入下一个数码管当前的数值与10比较说明:1. 脉冲数加1时,TL0的内容加1.2. 计算脉冲数的数值: 把当前的数值跟10比较,相等就放入下一个数码管,不相等就放入当前数码管.3.把脉冲数依次放入70H.71H.72H.73H.74H.75H放入当前数码管返回999999计数器PROTEUS硬件电路图:999999计数器调试程序:999999源代码org 0000h ljmp main org 100hmain:mov tmod,#06h mov th0,#0ffh mov tl0,#0ffh mov ie,#82h setb tr0 mov 50h,#05h mov 51h,#06h mov 52h,#06h mov dptr,#tab tf:mov r0,#70h tp:jbc tf0,lp mov a,r0 ;显示movc a,a+dptrmov p1,amov p2,50hlcall dly15msmov p1,#00hjk:inc r0dec 50hdjnz 51h,tpmov r0,#70hmov 50h,#05hmov 51H,#06h sjmptp lp: mov r0,#70h pkl: inc r0cjne r0,#10,ffmov r0,#00hinc r0djnz 52h,pklmov 52h,#06 ff: retitab:db 3fh,06h,5bh,4fh db 66h,6dh,7dhdb 07h,7fh,6fhdly15ms:mov 30h,#20l1:mov 31h,#20l2:djnz 31h,l2 djnz 30h,l1 ret end出租车计费系统流程图:开始设置中断、计数器初值清零相关RAM地址单元TF0=1? 调用显示子程序路程与费用的计算分别送入65H、64H、63H、62H、61H、60H说明:1计数器T0模式二进行计数。车胎的周长大概1.7M所以设计T0的初始值为65236,需要计数300才满足500M才中断。2里程数分别放入65H,64H,63H,钱数分别放入62H,61H,60H.里程数每增加500M,钱数就增加0.8元分别送入数码管显。3中断后处理路费和里程数的计数。显示65H、64H、63H、62H、61H、60H的内容返回出租车计费系统PROTEUS硬件电路图:出租车计费系统程序调试: 出租车计费源代码 org 0000h ljmp main org 000bh ljmp int org 100hmain: mov ie,#82h mov tmod,#05h mov th0,#0feh mov tl0,#0d4h mov 61h,#05h mov r2,#6;六数显示 mov r3,#2;中断三数计算 mov r4,#4;俩公里路 mov dptr,#tab setb tr0xh:mov r0,#65h mov r5,#5 mov r2,#6;显示六位xian: mov a,r0 cjne r0,#65h,lp62ox:cjne r0,#00h,pu ljmp lplp62:cjne r0,#62h,puajmp ox pu:movc a,a+dptr cjne r0,#64h,lp61hk:orl a,#80h sjmp fulp61:cjne r0,#61h,fu sjmp hkfu:mov p1,a mov p2,r5 lcall dly mov p1,#00hlp:dec r0 dec r5 djnz r2,xian sjmp xh tab:db 3fh,06h,5bh db 4fh,66h,6dh db 7dh,07h,7fh,6fhdly:mov 30h,#20l1:mov 31h,#20l2:djnz 31h,l2 djnz 30h,l1 retint: mov th0,#0feh mov tl0,#0d4hwe:mov a,63h;路程计算 mov r1,#63h add a,#5 mov r1,aluc:cjne r1,#10,s mov r1,#00h inc r1 inc r1 djnz r3,luc cjne r1,#10,s mov r1,#0 s:mov r3,#2 se:jb f0,cost djnz r4,zh setb f0 sjmp secost:mov a,60h add a,#08h mov b,#10 div ab mov 60h,b add a,61h mov 61h,a cjne a,#10,zh mov 61h,#0 inc 62h mov a,62h cjne a,#10,zh mov 62h,#0 zh:reti end二、心得体会: 经过将近两个星期的时间,终于完成了本次课程设计,其中包括255计数,999999的计数,以及出租车计费系统。在整个设计当中,老师的帮助及同学的帮忙给了我很大的帮助,同时通过网上查找资料让我更加深刻的了解此次设计真正设计的意义所在,深刻体会到理论应用于实践,感受到单片机在我们生活中实际应用的广泛。在设计中,让我再一次学会了如何使用“伟福”汇编编程软件,就想老师说的汇编语言跟高级语言相比并不是一无是处,通过汇编语言让我们更了解单片机的硬件结构及内部结构,有时用汇编语言的效率比高级语言更高。同时在设计中学会了如何用“proteus”单片机模拟仿真软件,在proteus中,很多软件可以轻而易举的画出来,同时可以模拟程序在硬件中运行的状况,这样可以大大节省成本。在整个设计中,遇到了许多问题,有些问题

温馨提示

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

评论

0/150

提交评论