河北工程大学科学学院毕业设计说明书
化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设
置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,
主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。
当按下S1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已
超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前
的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显
示出来。当到达目的地的时候,由于传感器没有送来脉冲信号,就停止计价,显示当
前所应该付的金额和对应的单价。
4.2 定时中断服务程序
开始保护现场重置计数初值否中断10次是数据送显示缓冲单元调用显示子程序恢复现场并中断返回
图4-2 定时中断程序框图
25
河北工程大学科学学院毕业设计说明书
在定时中断服务程序中,每100ms产生一次中断,当产生10次中断的时候,也就到
了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。
4.3
里程计数中断服务程序
开始保护现场重置计数初值中断1000次否是数据送显示缓冲单元调用显示子程序恢复现场并中断返回
图4-3 里程计数中断程序框图
每当光电传感器输出一个低电平信号就使单片机中断一次,
26
里程计数器对里
当河北工程大学科学学院毕业设计说明书
程脉冲计满1000次时,使微机进入里程计数中断服务程序中。在该程序中,需要完成
当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。
4.4 中途等待中断服务程序
开始是否白天读取白天计价读取晚上计价是等待时间内否是等待时间内否计价1计价2计价3计价4显示
图4-4 中途等待中断程序框图
当在计数状态下按下S2按键,T1定时器便被启动,每当计时到达5分钟,就对当
前金额加上中途等待的单价,以后每十分钟都自动加上中途等待的单价。当中途等待
结束的时候,也就自动切换到正常的计价。
4.5 显示子程序服务程序
LCD1602液晶显示器由于有自带的字符库所以显示控制就容易得多,方便得多,
简化了所编写程序的显示内容的写数据那部分程序。程序编写时要注意先写指令,后
27
河北工程大学科学学院毕业设计说明书
写数据以及分行显示数据时注意地址的编写。
开始LCD初始化写数据LCD判忙P0.7=0是否写完是否设置字符位置写数据LCD判忙P0.7=0是否写完是显示否
图4-5 显示子程序框图
28

