历史上的今天
今天是:2025年07月30日(星期三)
2018年07月30日 | PIC单片机实现双字节无符号数的除法
2018-07-30 来源:eefocus
编写子程序Div_16,实现双字节无符号数除法。自行定义变量,其中:
ACCALO ;存放被除数低 8 位
ACCAHI ;存放被除数高 8 位
ACCBLO ;存放除数 8 位
ACCCLO ;存放余数 8 位
ACCCHI ;存放商 8 位
采用移位法,设被除数为ACCA、除数为ACCBLO、商为ACCCHI(初值为0)、余数为ACCCLO(初值为0)。ACCA由高位至低位依次左移进入ACCCLO单元,每次移位进入后比较ACCCLO单元和ACCBLO的值,如果ACCCLO≥ACCBLO,则将这一位的商单元的值置1,然后从ACCCLO中减去ACCBLO,否则不做操作。直到ACCA全部进入ACCCLO单元为止。此时ACCCHI中存放商、ACCCLO中存放余数。
程序框图:
list p=16f877A ;标明所用的处理器类型
#include
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
;*****************变量定义*******************************************************
ACCALO EQU 0x20 ; 存放被除数低 8 位
ACCAHI EQU 0x21 ; 存放被除数高 8 位
ACCBLO EQU 0x22 ; 存放除数 8 位
ACCCLO EQU 0x23 ; 存放余数 8 位
ACCCHI EQU 0x24 ; 存放商 8 位
COUNT EQU 0x25 ; 存放循环变量
;*******************************************************************************
ORG 0x0000 ; 复位入口地址
nop ; 兼容ICD调试工具,必须加nop
goto Main ; 跳转至Main函数
;*************************Main 函数的代码******************************
Main
MOVLW 0x2A ; 送被除数高8位
MOVWF ACCAHI
MOVLW 0x3B ; 送被除数低8位
MOVWF ACCALO
MOVLW 0x4C ; 送除数
MOVWF ACCBLO
MOVLW .16 ; 初始化循环变量
MOVWF COUNT
CLRF ACCCLO ; 清零结果单元
CLRF ACCCHI
CALL Div_16 ; 调用子程序求解,结果应为商0x8E,余0x13
nop
goto $ ; 停机
;**************************压缩BCD码转二进制子程序 ********************
ORG 0X0100
Div_16
RLF ACCALO
RLF ACCAHI
RLF ACCCLO ; 被除数由高位至低位依次左移进入余数单元
MOVF ACCBLO,W
BSF STATUS,C ; C位置1
SUBWF ACCCLO,W ; 比较余数单元与除数单元
BTFSC STATUS,C ; 若ACCCLO>=ACCBLO
CALL SUB_C_B ; 则该位商单元置1,余数单元减去除数,否则该位商单元置0
RLF ACCCHI
DECFSZ COUNT,F
GOTO Div_16
RETURN
SUB_C_B
MOVF ACCBLO,W ; 余数单元减去除数
SUBWF ACCCLO,F
RETURN
;*****************************************************************************
END ; 程序结束
上一篇:PIC单片机入门_指令系统
史海拾趣
|
在视频监控领域,常常会涉及到视频的检索问题。常用的方法是采用文本注释图像和视频信息,以基于文本的数据库管理系统进行图像和视频检索。把图像比对技术引入到视频监控领域,可以有效的提高视频的检索的效率,为视频监控提供更有力的支持。 &nb ...… 查看全部问答> |
|
我初学wince开发,现在环境还没配置好。查了下资料,按别人资料上的做。 然后在模拟器上新建网络连接时发现不能新建,选择连接类型的选项都是灰色的,不知道为什么。 有知道原因的,或者有更详细的步骤发我,感谢。 … 查看全部问答> |
|
本人目前在一家SP企业工作2年多了,虽然工作上技术含量不高,但工资待遇还可以,也不用加班什么的,公司正在准备上市,如果上市成功还可以分到一定股份!但最大的一个缺点是公司管理很混乱,升职加薪的空间也不大,公司整体不太重视搞技术的,如果 ...… 查看全部问答> |
|
寻有熟悉开发研华pcm-4862工控板的人, 能够将板子的DOS软件修复即可,要求在深圳,价格面议。 msn: mikehorse@hotmail.com… 查看全部问答> |
|
请问下大使用集成PT2262无线发射模块发射距离不远的问题? 我的发射模块为集成PT2262无线发射模块,配套使用超外差接收头,PT2272解码,振荡电阻配套,现在能发射接收信号,但距离不远,我使用1000M的发射头接收距离只有30M左右,这是什么原因? 使用3000M的发射头远距离发射就不能用了。请问影响发射距离有 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:03 编辑 n GB/T2820.1-1997《往复式内燃机驱动的交流发电机组第1部分:用途、定额和性能》 n GB/2820.2-1997《往复式内燃机驱动的交流发电机组第2部分:发动机》 n GB/T2820.3-1 ...… 查看全部问答> |
|
高手都来说说430与C51的区别吧? 相信很多人是从C51过来的,以前只知道430的超低功耗,是无可替代的。那具体有哪些区别?了解这些,相信更有助于掌握430,先说几条,抛砖引玉。 1、RISC与CISC。 2、16位与8位。 3 ...… 查看全部问答> |




