历史上的今天
返回首页

历史上的今天

今天是: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                              ; 程序结束


推荐阅读

史海拾趣

Hitachi Metals公司的发展小趣事

面对数字化浪潮的冲击,Hitachi Metals积极拥抱变革,致力于数字化转型。公司推出了全球级别的物联网平台Lumada,该平台能够为客户提供从企业扩建、价值核查到设备和系统管理的全方位解决方案。Lumada平台的成功应用不仅提升了日立金属自身的运营效率和管理水平,还为客户带来了显著的价值增长。通过Lumada平台,日立金属与全球范围内的合作伙伴建立了更加紧密的联系,共同推动电子行业的数字化转型进程。

Hisetec Electronic Co Ltd公司的发展小趣事

背景:在21世纪初,电子产品市场迅速增长,智能手机和平板电脑等移动设备成为新宠。Hisetec Electronic Co Ltd公司凭借其在微电子封装技术的深厚积累,成功研发出一种高密度、低功耗的封装解决方案,大幅提升了手机芯片的能效比。

发展:该技术迅速被市场认可,多家知名手机制造商如三星、苹果等纷纷采用,Hisetec公司因此订单激增,市场份额大幅提升。公司不仅扩大了生产规模,还进一步加大了研发投入,不断推出新的封装技术,巩固了其在电子封装领域的领先地位。

Hoffman_Enclosures__Inc.公司的发展小趣事

面对客户日益多样化的需求,Hoffman提供了超过12,000种标准产品以及量身定制的解决方案。公司拥有一支专业的研发团队和完善的生产体系,能够根据客户的具体需求,快速设计出符合要求的电气机柜和温控产品。这种灵活的定制化服务不仅满足了客户的个性化需求,也进一步增强了客户对公司的信任和忠诚度。

科山芯创(COSINE)公司的发展小趣事

随着产品的不断推出和市场的认可,科山芯创开始积极拓展市场。他们与国内外多家知名企业建立了合作关系,产品广泛应用于通讯网络、物联网、工业自动控制等多个领域。同时,科山芯创还积极参加各种行业展会和交流活动,与业界同行进行深入交流,共同推动电子行业的发展。

Bals Elektrotechnik GmbH & Co KG公司的发展小趣事

进入21世纪,Bals Elektrotechnik继续致力于技术创新和产品升级。1998年,公司推出了具有革命性的CEE插头和插座无螺纹连接技术。这一技术不仅提高了连接的安全性和效率,还为用户节省了大量时间。Bals因此成为第一家提供这种创新技术的公司,进一步巩固了其在电气行业的领先地位。

这些故事虽然基于假设和现有信息,但尽量保持了客观性和事实性。它们展示了Bals Elektrotechnik GmbH & Co. KG公司在电子行业发展的不同阶段和关键事件,从一个运输公司成功转型为电气行业的领军企业。这些故事不仅反映了公司的成长历程,也体现了其不断创新、追求卓越的精神。

EAO公司的发展小趣事

在电子制造行业日益重视环保和可持续发展的背景下,EAO公司积极响应号召,致力于研发和生产环保型电子产品。公司投入大量资源研发新型环保材料,优化生产工艺,减少生产过程中的废弃物排放。同时,EAO公司还建立了完善的电子垃圾回收体系,对废弃电子产品进行专业处理,确保资源得到合理利用,减少对环境的负面影响。

问答坊 | AI 解惑

伟大的,图像比对技术在视频监测领域中的应用

在视频监控领域,常常会涉及到视频的检索问题。常用的方法是采用文本注释图像和视频信息,以基于文本的数据库管理系统进行图像和视频检索。把图像比对技术引入到视频监控领域,可以有效的提高视频的检索的效率,为视频监控提供更有力的支持。 &nb ...…

查看全部问答>

VS2008如何使用wince 5.0模拟器,要详细。

我初学wince开发,现在环境还没配置好。查了下资料,按别人资料上的做。 然后在模拟器上新建网络连接时发现不能新建,选择连接类型的选项都是灰色的,不知道为什么。 有知道原因的,或者有更详细的步骤发我,感谢。 …

查看全部问答>

EVC4的安装问题

大家好,我是Vista32位的系统,一开始装好EVC第一次运行时提示没有platform,关了程序第二次就打不开EVC4了,卸了在装一次。还是装好后可以运行一次,关了EVC4,在第二次就打不开了;   简单就是:装好的EVC4只能运行一次 ,且提示没装p ...…

查看全部问答>

硬件驱动开发有前途吗

本人目前在一家SP企业工作2年多了,虽然工作上技术含量不高,但工资待遇还可以,也不用加班什么的,公司正在准备上市,如果上市成功还可以分到一定股份!但最大的一个缺点是公司管理很混乱,升职加薪的空间也不大,公司整体不太重视搞技术的,如果 ...…

查看全部问答>

寻熟悉开发研华pcm-4862工控板的人(急)

寻有熟悉开发研华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的区别吧?

高手都来说说430与C51的区别吧? 相信很多人是从C51过来的,以前只知道430的超低功耗,是无可替代的。那具体有哪些区别?了解这些,相信更有助于掌握430,先说几条,抛砖引玉。 1、RISC与CISC。 2、16位与8位。 3 ...…

查看全部问答>

求助用stm32控制ads8332采集模拟信号

导师给的任务是用stm32控制两片ads8332采集模拟信号,应该如何做呢,现在还没有头绪,求助各位大虾…

查看全部问答>

请问,普通稳压二极管能给运放供电么?

本帖最后由 paulhyde 于 2014-9-15 03:47 编辑 运放LM358,OP07。想尝试一下不用78系列来供电  …

查看全部问答>