单片机课程设计-对外部脉冲计数及出租车计费系统的设计(编辑修改稿)内容摘要:

0m,刷新计费一次。 3. 255 计数程序流程图 图 2 255 计数程序流程图 图 3 50000 计数程序流程图 开始 调用显示子程序 初始化堆栈,定时器初始化 脉冲数计数到 255后重新计数,硬件自动清零 计算脉冲数的个、十、百 位 脉冲数加 1,即 T0 加 1 说明: 1. 采用 T0 工作在工作方式2 计数,在 T0 计数的同时,在数码管上显示相应的 T0 数值 TL0 内的数据进行十 二进制转换 P0 口输出, P2口为位选 4. 出租车计费程序流程图 开始 初始化, T0 初始化,设置延时 TF1=1? 调用显示子程序 脉冲数加 1 计数是否大于50000 计数清 0 计算出脉冲数的个 ,十 ,百位,千位 万位 (20H=54)amp。 (21H=2?) 脉冲数计到 50000 后从新计数 开始 初始化堆栈, 8279,定时器 清零相关 RAM 地址单元 TF1=1? 调用显示子程序 里程数加 1 即 24H 加 1 24H=500? 25H 加 1 24 清零 计算里程数的个 ,十 ,百 ,千位数值 分别存放于 24H,25H,26H, 27H (24H=99?)amp。 (25H=99?) 里程数计到 500 后重新计数 即 24H, 25H 清零 说明: 24H,25H中,其中 24H存放脉冲的个位和十位数值, 25H 存放脉冲的百位和千位数值。 十位数值: (24H)/10 的商即十位数值存放于 26H,余数即个位数值存放于 27H。 3. 计算里程数的百位数值: (21H)/10 的商即千位数值存放于 33H,余数即百位数值存放于 32H。 例如:里 程数 6798(十进制),(24H)=98,(25H)=1。 里程的个位数值 (30H)=8, 里程的十位数值(31H)=9,. 里程的百位数值(32H)=7,里程的千位数值 (33H)=6 计算价格 [(22H)20]/5 商 24H,余数 23H (20H)=0? 价格 (25H)=商 (24H)╳ 9+50 价格 (25H)= [商 (24H)+1]╳ 9+50 (23H)=0? 价格的各位数值分别存放于 20H,21H,22H,23H 中 (22H)200? 价格显示为 三.设计程序 255 计数器程序编辑: ORG 0000H SJMP START ORG 000BH AJMP INTR0 ORG 0030H START: MOV SP,60H MOV TMOD,06H MOV TH0,00H MOV TL0,00H SETB TR0 SETB ET0 SETB EA MAIN: LCALL DISPLAY AJMP MAIN INTR0: RETI DISPLAY: MOV A,TL0 MOV B,64H DIV AB MOV DPTR,SEGTAB MOVC A,@A+DPTR MOV P2,00H MOV P0,A LCALL ZD1 XCH A,B MOV B,0AH DIV AB MOVC A,@A+DPTR MOV P2,01H MOV P0,A LCALL ZD1 XCH A,B MOV DPTR,SEGTAB MOVC A,@A+DPTR MOV P2,02H MOV P0,A LCALL ZD1 RET ZD1: MOV R5,01H LOOP: MOV R6,248 DJ。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。