2.1 主程序模块
主程序流程图如图4所示,在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开功率电感中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。

当按下S1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。
当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价。到下次启动计价器时,系统自动对显示清零,并重新进行初始化过程。
2.2 定时中断服务程序
在定时中断服务程序中,每100 ms产生一次中断,当产生10次中断的时候,也就到了1 s,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。
2.3 里程计数中断服务程序
每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1 000次时,就有程序将当前总额累加,使微机进入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。
2.4 中途等待中断服务程序
当在计数状态下霍尔开关没有输出信号,片内的T1定时器便被启动,每当计时到达10 min,就对大功率电感贴片电感器当前金额加上中途等待的单价,以后每10 min都自动加上中途等待的单价。当中途等待结束时,就自动切换到正常的计价。 差模电感器
2.5 启动/清除计程中断服务程序
当系统有启动/清除中断请求产生时,可以设定第一次中断为启动中断,第二次中断为清除中断,并在中断服务程序中将标志寄存器的内容相应置“1”或清“0”。其中,标志为“1”时表示本次中断是启动中断;为“0”时表示是清除中断。
差模电感器2.6 显示子程序服务程序
由于是分屏显示数据,所以就要用到4个显示子程序,分别是:时分秒显示子程序(HMS_DIS),金额单价显示子程序(CP_DIS),路程单价显示子程序(DP_DIS)和单价调节子程序(PA_DIS)。
2差模电感.7 键盘服务程序
键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右键按下,便转向相应的子程序处理,处理结束再返回。
3 结语
由于本出租车计价器采用单片机作为核心控制元件,采用灵敏的霍尔传感器器件作为检测,因此使其具有节能灯电感器功能强,性能可靠,电路简单,成本低的特点,加上经过优化的程序,使其有很高的智能化水平,解决了以往出租车计价器计价不准确,使用寿命短等缺点。
单片机设计经验技巧精华集锦 4月08日 第三届·无线通信技术研讨会 立即报名 12月04日 2015•第二届中国IoT大会 精彩回顾 10月30日ETF•智能硬件开发技术培训会 精彩回顾 10月23日ETF•第三届 消费 BUCK空载运行朋友们好,请教个问题,目前做了一个BUCK 数字电源,其他都调试好了,就是空载不能正常运行,老报过压,也就是空载不能稳压,请教下空载是软件里怎么处理?思路是什么?谢谢!
关注中。轻载传递 基于ARM7的RTU微控制器的设计引言随着我国在水情数据采集系统的信息化和现代化步伐的加快,需要采集的数据种类增多,采集的站点数增加,对数据采集的速度和质量都提出了新的要求,传统的水情数据测报系统的RTU(远端数据采集器)已不能适应新
2/2 首页 上一页 1 2 |