全球旧事资料 分类
带小数点的7段LED数码管码制
DATAENDS
CODESEGMENT
ASSUMECSCODEDSDATA
IOAEQU8000H各个端口的端口地址IOBEQU8002H
IOCEQU8004H
IOCONEQU8006H
IOA1EQU9000H
IOB1EQU9008H
IOC1EQU9010H
IOCON1EQU9018H
IOA2EQU0A000H
IOB2EQU0A020H
IOC2EQU0A040H
IOCON2EQU0A060H
JSQ0EQU0C000H
JSQ1EQU0C002H
JSQ2EQU0C004H
CON1EQU0C006H
START
MOVAXDATA
MOVDSAX
MOVAL90H设置8255控制字
MOVDXIOCON
OUTDXAL输出到三个控制端口
MOVDXIOCON1
OUTDXAL
MOVDXIOCON2
OUTDXAL
MOVAL16H设置8253控制字
MOVDXCON1
OUTDXAL
MOVAL60
MOVDXJSQ0
OUTDXAL
START1
MOVDXIOA
INALDX接收来自PA口的脉冲信号
NOTAL接收为低电平变为高电平
ANDAL01H屏蔽其它位只接收PA0口
CMPALTEMP
JZSTART2
MOVTEMPAL
与判断值相比若不同则不跳转若相同
则说明长按或者没按直接跳转到START2ADDALCOUNT
MOVCOUNTAL对单价计数器加1START2
MOVDXIOA2
INALDX
NOTAL
ANDAL01H
CMPALTEMP2
JZSTART3
MOVTEMP2AL
CMPCOUNT0若单价为0则不再减1
JZSTART3
SUBALCOUNT
MOVCOUNTAL对单价计数器减1START3
MOVDXIOA1
INALDX
NOTAL
fANDAL01H
CMPALTEMP1
JZFENJIE
MOVTEMP1AL
ADDALCOUNT1
MOVCOUNT1AL对公里计数器加1FENJIE对单价计数器的值进行分解MOVALCOUNT
MOVAH0
MOVCL10
DIVCL
MOVSHIWEIAL分成十位和个位
MOVGEWEIAH
FENJIE1对公里计数器进行分解
MOVALCOUNT1
MOVAH0
MOVCL10
DIVCL
MOVGEWEI1AH
MOVAH0
DIVCL
MOVSHIWEI1AH
MOVBAIWEI1AL分百位十位和个位FENJIE2对总价进行分解
MOVALCOUNT
MOVAH0
MOVCLCOUNT1
MOVCH0
MULCX单价和公里数相乘得总价
MOVCL10
DIVCL
MOVGEWEI2AH
MOVAH0
DIVCL
MOVSHIWEI2AH
MOVBAIWEI2AL分百位十位和个位DISP三个值的显示程序
MOVAL00000110B
单价显示器是二位7段LED数码管所以只屏蔽两位位选信号1是未选中
MOVDXIOC
OUTDXAL
MOVAL00011110B
总价和总公里用四位7段LED数码管MOVDXIOC1
OUTDXAL
MOVDXIOC2
OUTDXAL
显示公里百位
XORAXAX
MOVALBAIWEI1
MOVSIAX
MOVALSEGTABSI数码管码制转换MOVDXIOB1
OUTDXAL输出百位
MOVAL00011010B开百位位选信号MOVDXIOC1
OUTDXAL
CALLYS
输出后执行延时让该位短暂显示
总价百位
XORAXAX
MOVALBAIWEI2
MOVSIAX
MOVALSEGTABSI
MOVDXIOB2
OUTDXAL
MOVAL00011010B
MOVDXIOC2
OUTDXAL
CALLYS
显示后继续全部关闭
MOVAL00000110B
MOVDXIOC
OUTDXAL
MOVAL00011110B
MOVDXIOC1
OUTDXAL
MOVDXIOC2
OUTDXAL
单价十位
XORAXAX
MOVALSHIWEI
MOVSIAX
MOVALSEGTABSI
fMOVDXIOB
OUTDXAL
MOVAL00000100BMOVDXIOC
OUTDXAL
CALLYS
公里十位
XORAXAX
MOVALSHIWEI1MOVSIAX
MOVALSEGTAB1SI用带小数点显示十位MOVDXIOB1
OUTDXAL
MOVAL00010110BMOVDXIOC1
OUTDXAL
CALLYS
总价十位
XORAXAX
MOVALSHIWEI2MOVSIAX
MOVALSEGTAB1SI用带小数点显示十位MOVDXIOB2
OUTDXAL
MOVAL00010110BMOr
好听全球资料 返回顶部