出租车计价系统设计出租车计费系统设计(编辑修改稿)内容摘要:

AJMP DISP MAIN: ACALL INIT AJMP $。 **************************************************************************。 子程 序。 ******************************。 初始化程序。 设置初值,开中断。 ****************************** INIT: MOV SP,30H。 设置堆栈到用户 RAM 区 MOV DPTR,TAB MOV PRICE,07H MOV SPRICE,05H CLR LEDNT CLR LEDSET MOV SETTM,4 MOV TURN,12 MOV SUMYUAN,0ABH。 金额为 0 MOV SUMJF,0AAH MOV DISM,0ABH。 路程为 0 MOV DISF,0AAH MOV PULSE,22 ACALL RDTIME。 读取时间 MOV RDTM,250。 读取时间计数器初值 MOV TMOD,00011101B。 T1 以方式 1 计时,非门控方式。 T0 以方式 1 计数,门控方式 SETB TR0。 T0 采用门控方式 SETB IT0。 外部中断 0为边沿触发方式 SETB IT1。 外部中断 1为边沿触发方式 CLR MOV TH1,0F0H。 4ms 产生一次中断 MOV TL1,060H MOV TH0,0FFH。 第一个脉冲发生中断赋初值 MOV TL0,0FFH SETB EA。 开 CPU 中断 SETB EX0。 开外部中断 0 SETB EX1。 开外部中断 1 SETB ET0。 开 T0 中断 SETB ET1。 开 T1 中断 SETB TR1。 T1 计时开始 RET。 ******************************。 RDTIME 读取时间程序。 从 DS1302 读取时间。 ****************************** RDTIME: MOV CMD,85H。 接收小时控制字 85H ACALL RECEIVE MOV TIMEH,RCV MOV CMD,83H。 接收分钟控制字 83H ACALL RECEIVE MOV TIMEM,RCV MOV CMD,81H。 接收秒钟控制字 81H ACALL RECEIVE MOV TIMES,RCV MOV A,TIMEH。 判断时间,。 若在 6点之前或 22 点之后,价格 改变 CJNE A,06H,$+3 JNC SKIP6 MOV PRICE,09H。 6 点之前 MOV SPRICE,06H SETB LEDNT AJMP NIGHT SKIP6: CJNE A,22H,$+3 JC DAY MOV PRICE,09H。 22 点之后 MOV SPRICE,06H SETB LEDNT AJMP NIGHT DAY: MOV PRICE,07H。 白天 MOV SPRICE,05H CLR LEDNT NIGHT: RET。 ********************************。 WTTIME 写入时间程序。 将调整的时间输入 DS1302。 ******************************* WTTIME: MOV CMD,84H。 发送小时控制字 84H MOV SND,TIMEH ACALL SEND MOV CMD,82H。 发送分钟控制字 82H MOV SND,TIMEM ACALL SEND MOV CMD,80H。 发送秒钟控制字 80H MOV SND,TIMES ACALL SEND RET。 ********************************。 从 DS1302 读出数据的程序。 ******************************* RECEIVE: CLR DSRST。 复位引脚为低电平 ,所有数据传送终止 NOP CLR DSCLK。 清时钟总线 NOP SETB DSRST。 复位引脚为高电平,逻辑控制有效 NOP MOV A,CMD。 准备发送命令字节 MOV BITCNT,8。 命令字节为 8位 RB0: RRC A。 将最低位传送给进位位 C MOV DSIO,C。 位传送至数据总线 NOP SETB DSCLK。 时钟上升沿,发送数据有效 NOP CLR DSCLK。 清时钟总线 DJNZ BITCNT,RB0。 位传送未完毕则继续 NOP。 准备接收数据 CLR A。 清累加器 CLR C。 清进位位 C MOV BITCNT,8。 接收 位数为 8位 RB1: NOP MOV C,DSIO。 数据总线上的数据传送给 C RRC A。 从最低位接收数据 SETB DSCLK。 时钟总线置高 NOP CLR DSCLK。 时钟下降沿接收数据有效 DJNZ BITCNT,RB1。 接收未完成则继续 NOP CLR DSRST。 逻辑操作完毕,清 RST MOV RCV,A。 接收到的完整数据字节。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。