历史上的今天
今天是:2025年08月12日(星期二)
2018年08月12日 | PIC单片机实现双字节无符号数加减法
2018-08-12 来源:eefocus
一、编写子程序 Add_16,实现双字节无符号数加法。要求在地址0x70~0x73定义变量ACCALO、ACCAHI、ACCBLO、ACCBHI。
ACCALO ;存放加数或减数低8位
ACCAHI ;存放加数或减数高8位
ACCBLO ;存放被加数或被减数低8位
ACCBHI 存放被加数或被减数高8位
list p=16f877A ; 标明所用的处理器类型
#include
;***** 变量声明**************************************
ACCALO EQU 0x70 ;存放加数低8位
ACCAHI EQU 0x71 ;存放加数高8位
ACCBLO EQU 0x72 ;存放被加数低8位
ACCBHI EQU 0x73 ;存放被加数高8位
;----------------------------------------------------
org 0x0000 ; 复位入口地址
;----------------------------------------------------
Main
MOVLW 0X4B
MOVWF ACCBLO ;(ACCBLO)=0x4B
MOVLW 0X4C
MOVWF ACCBHI ;(ACCBHI)=0x4C
MOVLW 0XD2
MOVWF ACCALO ;(ACCALO)=0xD2
MOVLW 0X40
MOVWF ACCAHI ;(ACCAHI)=0x40
CALL Add_16 ;调用子程序Add_16求和,结果应为0x8D1D
NOP
GOTO $ ;停机
;--------------双字节无符号数加法子程序--------------------------------
Add_16
MOVF ACCALO,W
ADDWF ACCBLO,F ;ACCB和ACCA低8位相加
BTFSC STATUS,C ;有进位否?
INCF ACCBHI ;有进位,ACCB高8位加1
MOVF ACCAHI,W
ADDWF ACCBHI,F ;ACCB和ACCA高8位相加
RETURN
;--------------------------------------------------------------
END ;程序结束
二、编写子程序Sub_16,实现双字节无符号数减法。要求在地址0x20~0x23定义变量ACCALO、ACCAHI、ACCBLO、ACCBHI。
ACCALO ;存放加数或减数低8位
ACCAHI ;存放加数或减数高8位
ACCBLO ;存放被加数或被减数低8位
ACCBHI 存放被加数或被减数高8位
list p=16f877A ; 标明所用的处理器类型
#include
;***** 变量声明***************************************
ACCALO EQU 0x70 ;存放减数低8位
ACCAHI EQU 0x71 ;存放减数高8位
ACCBLO EQU 0x72 ;存放被减数低8位
ACCBHI EQU 0x73 ;存放被减数高8位
;----------------------------------------—-----------
org 0x0000 ; 复位入口地址
;----------------------------------------------------
Main
MOVLW 0X4B ;被减数0x4C4BH送ACCB
MOVWF ACCBLO
MOVLW 0X4C
MOVWF ACCBHI
MOVLW 0XD2 ;减数0x40D2送ACCA
MOVWF ACCALO
MOVLW 0X40
MOVWF ACCAHI
CALL Sub_16 ;调用Sub_16,求差,结果为0x0B79
NOP
GOTO $ ;停机
;--------------双字节无符号数减法子程序-----------------------
Sub_16
MOVF ACCALO,W
SUBWF ACCBLO,F ;ACCB、ACCA低8位相减
BTFSS STATUS,C ;有借位否?
DECF ACCBHI ;有,被减数高8位减1
MOVF ACCAHI,W
SUBWF ACCBHI,F ;ACCB、ACCA高8位相减
RETURN
;-------------------------------------------------------------
END ;程序结束
史海拾趣
|
转自周立功论坛 小弟学ucos有一段时间了,总想找个移植的案例跑起来试试 前不久将网络上的一篇“小siae的uCOS2C51”下载下来,放到我的STC89C52RC中,发现跑不起来,郁闷了.... 后来在网上找了一个很好的关于uCOS2C51的移植总结,比较着调 ...… 查看全部问答> |
|
最近在开发测试TFT LCD屏. 刚开始用3.5寸的320*240编译了CE系统.文字可以显示完整. 之后改用4.3寸的480*272分辨率(16:9)编译CE系统.显示的文字例如回收站这几个字只能显示横的.竖的显示不出来. 直接换成3.5寸的屏又可以显示.用PB截图也是显示完 ...… 查看全部问答> |
|
想做一个带console口的硬件系统,通过PC机对其进行控制。看到交换机一般都是用RJ45做console口。对硬件不太懂,问点外行问题: 可不可以我的console口也是个和PC机一样的串口(RS232)啊?有两边都是RS232的console线吗? 如果不行,做成RJ45口的 ...… 查看全部问答> |
|
直流电机励磁电压,励磁电流的问题,求助 我们现场有一台直流电机,平头机刀盘用。励磁电压180V,励磁电流6.67A。用西门子6RA28带动。装置电流125A,励磁最大电流10A。开始安装的时候励磁没有放变压器,励磁回路直接给220V。现在现场说带电机的时 ...… 查看全部问答> |




