PIC微控制器實現雙位元組無符號數的除法

2021-07-27 20:12:42 字數 3061 閱讀 5483

編寫子程式div_16,實現雙位元組無符號數除法。自行定義變數,其中:

採用移位法,設被除數為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

nopgoto $ ; 停機

;*****

*****

*****

*****

*****

*壓縮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微控制器引腳

微控制器的訊號引腳是微控制器外特性的體現,在硬體上使用者只能使用引腳,通過引腳的連線組建微控制器系統。pic 8位微控制器系列和mcs 51系列微控制器一樣,其引腳除電源 vdd vss為單一功能外,其餘的訊號引腳常是多個功能,即引腳的復用功能。常見的引腳符號和主要功能如下 1 clr vpp 清除...

PIC系列微控制器

pic系列微控制器 由美國microchip公司推出的pic微控制器系列產品,首先採用了risc結構的嵌入式微控制器,其高速度 低電壓 低功耗 大電流lcd驅動能力和低價位otp技術等都體現出微控制器產業的新趨勢。現在pic系列微控制器在世界微控制器市場的份額排名中已逐年公升位,尤其在8位微控制器市...

PIC微控制器之中斷

1 微控制器在任何情況下的復位,均會導致總遮蔽位和其他的中斷遮蔽位清0,即在預設狀態下,禁止cpu響應所有的中斷。2.中斷標誌位的狀態與該所有的終端遮蔽位無關,即不管是否允許cpu響應中斷源的中斷請求,只要滿足了中斷條件,中斷標誌位就會被置1 3.當系統開放某一中斷源時候,中斷源就通過過中斷標誌位向...