当前位置:首页 > 单片机课程设计出租车计价器
单片机最小系统所用的数码显示管是共阴极的数码显示管,送高电平亮。由于四个数码管共用一个八位端口所以要用到动态显示。
数码管的动态显示的扫描时间比较难调节,需要多次的调节。比较繁琐不过只要坚持多次调节就能够成功。
3 软件设计
本设计的电路部分比较简单主要是软件部分,所以软件是核心部分。主要包括外部中断0,定时器中断1,键盘扫描,数码管显示等模块。 3.1主程序模块
主程序主要是完成初始化,包括推挽试输出、设置定时器工作方式、中断控制寄存器设置。当然还包括一个死循环,循环中包括键盘扫描和数码管显示。
开 始 初始化、赋初值 键盘扫描 判定是那个键被按下 执行相关操作 数码管显示
3.2外部中断
车轮每转一周执行一次中断程序执行一次中断程序,如果是处在根据里程计费的模式则记录圈数的变量q和n都增加1,然后判定q是否达到一千,如果达到一千则路程增加二百米。同时判定是单程还是双程,如果单程则费用增加0.4元,如果是双程则费用增加0.3元。如果是处在计时收费模式则仅n增加1。流程图如
下
开始
K是否为 否 0
是
q++ n++ n++
q是否为 否 1000
是 j+0,2
是
d 是否为 0 否
是 结束 f=2* ( j-3 )
f=1.5*(j-3) j是否大于 3 否 f==5
变量k是否为零是为了判定是否为计程收费,如果k为零则说明是计程收费、如果k不为零则表示是计时收费。变量j表示里程,里程小于3公里时费用为5元,当里程大于三公里时按单程价格为2元/公里,往返价格为1.5元/公里收费。 3.3计时测速单元
定时测速主要是为了满足“车速<5公里/小时的时间累积为总等待时间,每5
分钟等待时间相当于里程数增加1公里”这项要求的。测速的原理是:通过定时器可以实现每一分钟都执行一次定时器中断程序,在定时器中断程序中判定车轮在这一分钟转的圈数,然后利用圈数及车轮的周长计算车速。当车速小于5公里/小时时就会进入计时收费模式,此时变量k置1,中断程序中记录车运行圈数的不会增加,同时记录圈数的变量q要减去这一分钟内的圈数n。当速度再次大于5公里/小时时k又被置0,进入计程收费模式,同时记录q加上这一分钟之内的汽车转过的圈数n。
开始 初始化 赋初值
是否到一分钟
n是否大于 是 k是否为1 100 是 否 否 r=n k=0 q=q-n j=j+0.2 k=1
f==5 j是否大于3 否
是 否 d是否为0
是 f=2*(j-3)
f=1.5*(j-3) n=0 结束
共分享92篇相关文档