用显示子程序
TF11
说明:1里程数存放于24H25H中,其中24H存放脉冲的个位和十位数值,25H存放脉冲的百位和千位数值。2计算里程数的个位和十位数值:24H10的商即十位数值存放于26H余数即个位数值存放于27H。3计算里程数的百位数值:21H10的商即千位数值存放于33H余数即百位数值存放于32H。
例如:里程数6798(十进制),24H9825H1。里程的个位数
里程数加1即24H加1
值30H8里程的十位数值31H9里程的百位数值32H7里程的千位数值33H6
24H50022H200
25H加124清零
22H205商24H余数23H
价格显示为50
计算里程数的个十百千位数值
分别存放于24H25H26H,27H
23H0
计算价格
20H0
价格25H商24H950
24H9925H99
价格25H商24H1950
里程数计到500后重新计数即24H,25H清零
8
价格的各位数值分别存放于20H21H22H23H中
f单片机原理及其应用课程设计(报告)
三.设计程序
1、255计数器程序编辑:ORG0000HSJMPMAINORG0030HMAINMOVTMOD50HMOV70H00HMOV71H00HMOV72H00HSETBTR1LOOPMOVATL1ACALLBCDACALLOUTSJMPLOOPRETLACLLBCDMOVB64HDIVABMOV72HAMOVABMOVB0AHDIVABMOV71HAMOV70HBRETLACLLOUTMOVR170HMOVR500HMOVDPTRTABLOOP1MOVAR5MOVP2AMOVAR1显示子程序保存十位保存个位保存百位BCD码调整子程序调用BCD码调整子程序调用显示子程序定时器T1初始化T1计数模式)保存个位保存十位保存百位启动T1
9
f单片机原理及其应用课程设计(报告)
MOVCAADPTRMOVP0AACALLDELAYINCR1INCR5CJNER503HLOOP1RETMOVDELAY15MOVR731L1MOVR6240W1DJNZR6W1DJNZR7L1MOVR411J1DJNZR4J1NOPRET延时15ms子程序
2、出租车计费系统程序:
ORGJMPORGMAIN:MOVMOVMOVMOVMOVMOVMOVMOVMOVLCALL0000HMAIN0030H20H0H21H0H22H023H024H025H026H027H028H0INIT8279;汇编起始地址;无条件转移到主程序;主程序的存放地址20H存放价格的角位21H存放价格的元位22H存放价格的十元位23H存放价格的百元位24H存放里程的个位25H存放里程的十位26H存放里程的百位27H存放里程的千位;20个脉冲的存储单元调用初始化程序8279;设置T0计数模式1
MOVTMOD05HMOVTH00FFH;
10
f单片机原理及其应用课程设计(报告)
MOVTL00FFHSETBTR0M1LCALLDISPLAYJBCTF0M2SJMPM1M2LCALLTTTLCALLJIFEI;LCALLDISPLAYLCALLDELAYRENEWMOVTMOD05HMOVTH00FFHMOVTL00FFHSETBTR0SJMPM1TTTINC28HINC24HMOVA24H;CJNEA10RETUMOV24H00HINC25HMOVA25HCJNEA10RETUMOV25H00HINC26HMOVA26HCJNEA10RETUMOV26H00HINC27HMr