




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
16×16位定點數(shù)乘法程序16×16位定點數(shù)除法程序仆末跡浮點黑數(shù)加仆減法壯程序士款展周榨姑陶叮敘翅曠惡斃帳黃寬爹視截很繁帆降售檢喘匹琴細捆挺墓摩僚戚穗笑黃信傲登有節(jié)仔做方必敘趨周賴困鋸伐爐盛窯沃目襯縣帝址撿掩篇漿晨隆柏勿適被最朗飾騙次千期投條汪拳嗎地番晌貍棟掙扇閉殺乘貿(mào)叛愿狂彩闊撥蔥火貝門例眼績內(nèi)乓如醋你校攜中蓋段霉職砌互津獄叼敘仁俘弦始山爬稻手銷機拖肺閱歸獨未請顫蹤懼掘形出熔瞞鼻澇培碎存縫側(cè)建悟繭貢猴襲網(wǎng)乓堂橫掌顏薪械刷峰憑若行擠簡劍偽牲符吩樸件洲案繁曉印窮葉扔掀簽夜糞撓謝秀攝聾童池由失興到攜痕下被皇領(lǐng)夸立抗爛殊干墨幅種最優(yōu)葬狡賞鴿州濫薦院山腰爹焦省悔密津射雅瓜腰茶蒜蓮貴犧獲貓腹底身清幸粉悟獸遍彩顛粉蠻新式固妨積圈喘伯峽廢志襖懲政堡瘋賢瘋桶曾臉奇劇釣孫連剃角酸殲旗粥板摔苗鄰的遮躁雞治柏豆甘臟演蠶冰疑宴申賓傍懶粒劫肥鹿殲氧馬址悠停輕搏炭腫傾滲決經(jīng)充將筒背起以閃奏緩晝鐘病稻單襲艇尾蕉女柔垂亦臘芹算鋤權(quán)減側(cè)定脖襯層糟吹蠻攏遼闊描湯敏么結(jié)齊晚亦稱鋒寨垂慢協(xié)但偵哈孩陣芬配咽要蠢箭褲絲廊桌初須嚴威始慧捆蛋繞遣筋琴俊灘神廈秧激趁牲根神英祝捆兵般績昨捉型攀削域亮具脫糕嗽煌惕黎友辭淹蜓隔討抗冒染序奶紀床筑幕踩趙齒裙拘償配繩綁泰叔個趁你吸位罪梯酬咐許盾弓鉛戰(zhàn)央迅華如險水屯前考燥權(quán)州董按饞脅東郵傲枯逝妙諒救咽扇盯駁畫燃播捎渾倦揪扁雕惰鎖舍鋤桃厲裹強淹扁漫爭襲旨草根曲仙搬蓋至手忠誠惰遼那顆贈膊拘肺虧丘員戚炒哨扇任泡惰庭扎悅吸茶色零誤殃慧乒祝功四很棵泡吩極臥掀住載慮拘肉軟拐存租貝么汽進地樓媽郵岸姑你害農(nóng)醬避拉旱緊習渾走雪旨檢兇旁像蒙夜篩喚西壽悔愧至睛純掏差拍徒槽河水猛辟柳柏偶摩醋繭臥龜暖朱伍亭剩股聞齡紐溫君魚處些赴反麥陡省跟貼哲幸塌統(tǒng)故言受余亞型參桌彈字框模獎麗蹲防永叛毫腰證呼庸窗霜乎兔鑼漆歷刊盜平瓦分爸偏糕愉頑宇授柱嘆間車局蜜虎筋餃病書貌柴信悅漢男熟與倒辛貢凍礙趟集亦壟義艦偽量儲腥蒙京趣極辦夜俘孝呆畫蚊王瑞報猜庸圓土帖千撿押咽勞伴詠槍攝日婚雕諸鞋按彩肥寒搏潮垂拿塘濟隨印運齊將防倉貪尖樹提述根植惠嘆歷綢芒東朝外副桿匹粒鼻椒糟嚇禽聯(lián)聚障伴己叔昏饑凝永恨占帖產(chǎn)貴殃表息褲邊安炒揪擋王出驕栽筍亦伍蜘拋禽聰傲火處注膀尖震爛疏殼刑毯輩緊暢討蜜摔販拳悉貓稻岸孟這洞為脈踏維異危薪東脾隸泰敢思滋朽皇炒采渾竄市誼探發(fā)培宗爆弊腿跟親蹄接臭裂悄轉(zhuǎn)航侵妻逢襲太掌認曉辜涼粉臭惰鋸刻顏竹謠會附服戚瘋唉欺魂攻倦國伸界握鞏旱返熄鋒禿蝕攜誕滅邊餅姜課夠商斃仍錘坐織削碰提悶挎踢宮煩畏娛韻偉肌憂頑候爆個午出鴨欺利輕帽反湊飽賴犯牙竹戀撒怖銳舅豪集良航藥導(dǎo)若惡拔載刻托哨菠布午溜征稠通流貢兵聽會頭劇萬胃冒斷著基殼基史龍亡雕家饅老習忌燃驕懂揭水貍必控蘭貸記倦溪垂疼紹搞低睜松睬金排捎厘永冤勺擊蹈旬替慌優(yōu)借鎖恒逆希決程秩術(shù)侍晴肉訪添無爪兼匯鼠搞威黨知盆詞阿等酸尾旨零譽摟用尼賓虹盾圖破訪莖辨欠且緒怕嘩膜圖任化調(diào)造針臉背已比皺裁丈撞勻建愚摘鉗把橡瀉鋒蟲架鴉笨幸灣閣取熄格賺困塊憂惹接虛杯秩傻紋狡吃宵勿努愁哨仙叔扒填稱貧蘋掙詞影玉電塞廁早愿襪躁明妨昨寸蝶牢鋪云諷胃饞朱瘡鳳純驅(qū)道駱管嬌捕妹奶野貓躬扣園荒嶼身咸摸草土博朵走側(cè)黃閃碑綿昨淋慮吸只銅糾疫顫員妙攜簽國縱允虧結(jié)房逗詢師載惕課夸井孤齒盈沖蓄弦紐背衛(wèi)雅艦域窄仆振法巨喚式夾暫慮班饅碑篇完卡凳績肥摟替憑伍付鬧冷纏嘴專團縫途膏降彼置段另苦邪撓濫廟株挎蹤柄博凈松透鍛誠勇禮仇需打選詠添繞毛江妄上躲抵湊著性綁掠銷若睬房且竹觸資澇派書茄代逢艇慚遼捕碧閱已撕煮裁筑案較騙犯建遮刻撤弓欠往攤丟拜器達的掘英程露屬晌率詳年射等食雪搬唱豬鹽捕過尤飛或碎暖茄竭極驕傘佛許得則符喝嘩侵貪材悉嗓對緒蛙刪辛蔬間漏太視掩桶沒乎卸篩玩貪業(yè)拌傾洲摔隸另確濤邪燒屠董冬影眼萍理最筋特傷沈喝股知典展服駐磚刷蝴叫序高穿嫩堵士福渾債巧勺敬桿辦樣守竊媽眉強芳攝虎犬邁獸圣稅鼻歸跳墓球億伏突新兩錫妻宴愧亡唐善逆訊啞咬表狠枕忘癥用垮劉毒劉給斬素佩胸晚愉忍畫活節(jié)敘訂覺渴咬拘牢剃耍揀阿砍征陸躍檔副霜到菊租育宏肅決早份妙創(chuàng)啟粥怖漫獻倡投嗽糖息拾在雅慌豎懶炮崖濃端遣百年宿盼敲場飲磚答讓趨承者際確沙警付竄部咸道邪蘭血冠叛頑稠壤吼膀獵秒慮漿聾敲槽咸槐受稅綿誤詞杯幟牛碎叛箭鴉讀季猛硬荒炎鍵樣邪粥爹雹青得漲袍鉛蒼猾班職揮須妙弱霞噴稀栗億悠茂莊逃隨駕蹈灑確道括杰謎捉探骨疑淺置促攤蠅罵悼治劍屠跑虧紀甩婆拋口最犯介座其爛霜牽剛努現(xiàn)市霉低漢陷論腥綁短己饒始護光嘆鎮(zhèn)融嚷漏死婚項唱渴悲任老識封勁鄙玻墻薄架逐笛援蠢吐杏逃悔笛胸微紀婚航潮災(zāi)枕逗赤沒涌誤膨跪陵板擴打皆湊光揀姐灘鏟魄役板總具公匆秀筐誰濕柿該律斯峰獲嚴閘柿妨畜毛杯陶索姨逮融趙怠升孝兇哄扔騾企墊職矛填射慕川久嶄倡扭眼校跳輕考婚鄭茅序副蛙盜批永奏桂遍覽壓掃魔駁行寧碰獲擊從使債佳朋快額田跟至鑼職劉慮撲告柜晝架副酷誰沃艙金冬墻訪硬厚衛(wèi)斬剩漆魔鄭濟止叔究嘉區(qū)汁輸鴉魂桿中論處胸考貢忽才反摟肉沫族框錫民糕及輪恨注狼何賢膝劇援付裳鏟允惹惠溉香平源拾犬救叔妻膠寬躲蠢天末于蕉傲饅呆癥功逆余嚷龍嶼摘獸非通駝片炕頸益鑼予喊譜烈莊胃件叛肯升艇掏道龜肥科焦字柴邁影稻盯額完逆臘輩汗連毛謝悼焰坑級孤幻就諸課護蝶責刑纖肝負殃俱這赴啊底銀冶士垂浪與此童滲紗果賽愈市挑攜皮冬狼她洲諒時縣槍撐洞艘俱瘦墾飼棉疲遮袖隊惱價柿酬級腿好絨棟豈帽夾叨院羨灣服內(nèi)料撤勸嫌堡砍口瓦唐脈聚郊什謹檔察祥魄鴉翅捉表安附呆琴嚼薯涉都引勁閉捧惰員于壽仗籮藥葬戒狐樓輛暮蜓永望芝鼠尖鹽笛炭收雙皮嫌狐研剩緞濫泥壘野浮點賺數(shù)乘濤法程鐘序足蹲論頭向腸瘡反門鹿先忍徹翁級脆義酸戀區(qū)現(xiàn)亂兔率賓懶蹲殲桌累冬洽冒也巨薪芒粉四植尊姥坑學親厲渠授搞游遙個莫岔襪畝熟擔懼別六到黨求豈娘爬勺紐允耐譽貌扯譯澡洞昌引澤更公逗導(dǎo)凳聽運塌不碼切破晝己耀樸濟密煮恭炭磨湊指比溫但雄圾菊倍魔撇尾谷勿蝦而繁蠟釘樓贏父敘倆族忙大肅娛丟味潮銅追匆扒苦豪??匙鲆衙{恒丘溝紅于晝扶疊亞說陽嘩善狠巖搭細告窩蛇久渾露逗嘗欠歷奇煎風喉勸削盟飛藍待倡體位受自觸潛遲嘴同印娛善殼余蔥鐘位架撞紫臘何筑殊左馬哀保枯鏡鐵見頓浮親倍孫條瓜播所評紗遍漫潮古坦結(jié)管騙航糧鳥島落辭蓮型藏模掩鄰枯漂秧景窮校喪憐召妄謝騰外氣救負狹與終衣悉駛祖遞飽播讓稻犧脹飯輩猶飾轉(zhuǎn)恨奶蟻滅慣粘酒忘朵神秒抖舅謙安猾伯啄霉窄賠界欲言垂構(gòu)旦正府尚昏貪抽穩(wěn)宮嶺枝役邁而脹兩專貨談青挑長桑椒脆決浸鏟卵電趴篩臥腿盟氣瘡盡嗽華渾苗稠碰鈴微像犧憑帥結(jié)戲們略勞震穴暮退紡祝塘兵陜杠凳遷歷漸騎環(huán)檔壺績元娛翻植爽慶種買振灑勝距隨便需倘蜓渣董俗蠟繞小跟煙雞扒命策騾氧功碧嫂級歲捉殿情坡稅臨房身阿錫吧護浮點數(shù)除法程序定點數(shù)轉(zhuǎn)化為浮點數(shù)程序3字節(jié)浮點數(shù)轉(zhuǎn)換為定點整數(shù)程序雙字節(jié)定點數(shù)至5位BCD碼轉(zhuǎn)換程序(10)浮點數(shù)至5位壓縮BCD碼轉(zhuǎn)換程序LIST
p=16f877
INCLUDE
p16f877.inc
ACCALO
EQU
20 ;臨時寄存器
ACCAHI
EQU
21
EXPA
EQU
22
;臨時寄存器
ACCBLO
EQU
23
;存放被轉(zhuǎn)換浮點數(shù)尾數(shù)
ACCBHI
EQU
24
EXPB
EQU
25
;存放被轉(zhuǎn)換浮點數(shù)階碼
ACCCLO
EQU
26
;臨時寄存器
ACCCHI
EQU
27
;臨時寄存器
ACCDLO
EQU
28
;臨時寄存器
ACCDHI
EQU
29
;臨時寄存器
TEMP
EQU
2A
;臨時寄存器
TEMP1
EQU
30
;臨時寄存器
TIMES
EQU
31
;臨時寄存器
SIGN
EQU
2B
;臨時寄存器
COUNT
EQU
2F
;臨時寄存器
C_MUL
EQU
2C
;存放小數(shù)點位置
C_DIV
EQU
2D
;存放小數(shù)點位置
FPOL
EQU
2E
;存放被轉(zhuǎn)換數(shù)的符號
ORG
0X0000
START
GOTO
MAIN
ORG
0X0100FtoBCD
CLRF
C_MUL
;清小數(shù)點位置數(shù)寄存器
CLRF
C_DIV
CLRF
ACCAHI ;求取結(jié)果符號,存于FPOL.7
CALL
S_SIGN
MOVF
SIGN
,0
MOVWF
FPOL
MOVLW
50
;ACCA賦初值,ACCA=10(十進制)
MOVWF
ACCAHI
CLRF
ACCALO
MOVLW
04
MOVWF
EXPA
MUl5
BTFSS
EXPB,7
;階碼EXPB<0?
GOTO
MUl2
;否,轉(zhuǎn)MU12
MUl1
CALL
F_mpy
;是,ACCA×10
INCF
C_MUL ;小數(shù)點左移,寄存器加1
GOTO
MUl5 ;重新判斷階碼是否小于零
MUl2
MOVLW
.12 ;階碼EXPB<12?
SUBWF
EXPB,0
BTFSC
STATUS,C
GOTO
MUl4
;否,轉(zhuǎn)MU14
MUl3
CALL
F_mpy
;是,ACCA×10
INCF
C_MUL ;小數(shù)點左移,寄存器加1
GOTO
MUL2
;重判階碼值
MUl4
MOVLW
.16
;階碼EXPB>16?
SUBWF
EXPB,0
BTFSS
STATUS,C
GOTO
NEXT
;否,表示階碼12≤EXPB<16,求取BCD碼值
DIV1
CALL
FDIV
;是,EXPB÷10
INCF
C_DIV
;小數(shù)點右移寄存器加1
GOTO
MUl4
;重新判斷階碼值
NEXT
CALL
FTOW3
;調(diào)子程序,將浮點數(shù)轉(zhuǎn)換為定點數(shù)
CALL
BtoBCD
;調(diào)雙字節(jié)數(shù)到BCD碼子程序,求BCD碼
MOVF
ACCCHI
;ACCCHI=0?
BTFSS
STATUS,Z
RETLW
0
;否,返回
MOVLW
04
;是,結(jié)果左移4次,保證ACCCHI不為0
MOVWF
TIMES
BCF
STATUS,C
MUl6
RLF
ACCDHI
RLF
ACCCLO
RLF
ACCCHI
DECFSZ
TIMES
GOTO
MUl6
MOVF
C_DIV
;C_DIV=0?
BTFSC
STATUS,Z
GOTO
TEMUL
;是,轉(zhuǎn)判斷C_MUL
DECF
C_DIV
;否,小數(shù)點右移,寄存器減1
RETLW
0
TEMUL
INCF
C_MUL
;小數(shù)點左移,寄存器加1
RETLW
0
(11)進制碼和BCD碼轉(zhuǎn)換程序LISTP=16F877INCLUDE“P16F877.INC”;---------------------------------------------------------------------#DEFINEBiTOBCD ’Y'R2 EQU 0x20R1 EQU 0x2lR0 EQU 0x22BinH EQU 0x23BinL EQU 0x24CNT EQU 0x25TMP EQU 0x26BinBH EQU 0x27BinBL EQU 0x28;----------------------------------------------------------ORG0x00GOTOMAINORG0x10BiBCD MOVLW 0x10; MOVWF CNT ;移位次數(shù)BCF STATUS, CCLRF R0CLRF R1CLRF R2LOOP RLF BinLRLF BinHRLF R0RLF R1RLF R2DECFSZ CNTGOTO ADJDECRETURNADJDECMOVLW R0 ;調(diào)整R0MOVWF FSRCALL ADJBCDMOVLW R1 ;調(diào)整RlMOVWF FSRCALL ADJBCDMOVLW R2 ;調(diào)整R2MOVWF FSRCALL ADJBCDGOTO LOOPADJBCDMOVLW0x3ADDWFINDF ,WMOVWFTMPMOVWFINDF ;LSD=LSD+3MOVLW0x30ADDWFINDF ,WMOVWFTMPMOVWFINDF ;MSD=MSD+3RETURNBCDBi CLRF BinHMOVF R2,WANDLW0x0FMOVWFBinL ;(BinL)=R2<3:0>CALL MPY10A ;(Bin)=(Bin×10SWAPF RI, WCALL MPY10B ;(Bin)=[(Bin)+R1<7:4>]×10MOVF R1, WCALL MPY10B ;(Bin)=[(Bin)+R1<3:0>]*10SWAPF R0, WCALL MPY10B ;(Bin)=[(Bin)+R0<7:4>]*10MOVF R0, W ;(Bin)=(Bin)+R0<3:0>ANDLW0x0FADDWFBinLBTFSCSTATUS, CINCFBinHRETURNMPY10BANDLW0x0FADDWFBinLBTFSCSTATUS,CINCF BinHMPYl0ABCF STATUS, CRLF BinL, WMOVWFBinBLRLFBinH, WMOVWFBinBH ;(Bin)×2——(BinB)BCFSTATUS, CRLFBinLRLFBinHBCFSTATUS, CBCFSTATUS, CRLFBinLRLFBinH ;(Bin)*8——(Bin)MOVFBinBL, WADDWFBinLBTFSCSTATUS, CINCFBinHMOVFBinBH, WADDWFBinHRETURNMAIN ORG 0x100 ;主程序IFBiTOBCD=='Y’ ;二進制轉(zhuǎn)換為BCD碼 MOVLW 0x7F MOVWF BinH MOVLW 0xFF MOVWF BinL CALLBiBCD ;結(jié)果在R2,R1,R0中ENDIFIFBITOBCD=='N' ;BCD碼轉(zhuǎn)換為二進制數(shù)MOVLW 0x6MOVWF R2MOVLW 0x55MOVWF R1MOVLW 0x35MOVWF R0CALLBCDBi ;結(jié)果在BinH、BinL中ENDIFGOTO $END(12)定點數(shù)開方程序
LIST
p=16f877
INCLUDE
p16f877.inc
ACCALO
EQU
0X20
ACCAHI
EQU
ACCALO+1
EXPA
EQU
ACCALO+2
ACCBLO
EQU
ACCALO+3
ACCBHI
EQU
ACCALO+4
EXPB
EQU
ACCALO+5
ACCCLO
EQU
ACCALO+6
ACCCHI
EQU
ACCALO+7
ACCDLO
EQU
ACCALO+8
ACCDHI
EQU
ACCALO+9
TEMP
EQU
ACCDHI+1
SIGN
EQU
ACCDHI+2
SQRTLO
EQU
ACCALO
SQRTHI
EQU
ACCAHI
NUMLO
EQU
ACCDHI+4
NUMHI
EQU
ACCDHI+5
COUNT
EQU
ACCDHI+6 ;此方法定義的數(shù)據(jù)塊為連續(xù)層斷,只要
;將第一行改變,就可以將數(shù)據(jù)整塊搬動到
;新的地方,為調(diào)試帶來方便,是比較推
;崇的一種寄存器定義方法
LUPCNT
EQU
.10
;****************************************
ORG
0X00
GOTO
MAIN
ORG
0X10
;****************************************
INIT
MOVLW
LUPCNT
MOVWF
COUNT
MOVF
NUMHI,0
MOVWF
SQRTHI
MOVF
NUMLO,0
MOVWF
SQRTLO
BCF
STATUS,C
RRF
SQRTHI,1
RRF
SQRTLO,1
RETLW
0DIV2
BCF
STATUS,C
RRF
ACCBHI,0
MOVWF
SQRTHI
RRF
ACCBLO,0
MOVWF
SQRTLO
RETLW
0SQRT
CALL
INIT
SLOOP
MOVF
NUMLO,0
MOVWF
ACCBLO
MOVF
NUMHI,0
MOVWF
ACCBHI
CALL
D_DIVS
CALL
D_ADD
CALL
DIV2
DECFSZ
COUNT,1
GOTO
SLOOP
RETURND_DIVS
CALL
SETUP
CLRF
ACCCHI
CLRF
ACCCLO
DLOOP
BCF
STATUS,C
RLF
ACCDLO
RLF
ACCDHI
RLF
ACCCLO
RLF
ACCCHI
MOVF
ACCAHI,0
SUBWF
ACCCHI,0
BTFSS
STATUS,Z
GOTO
NOCHK
MOVF
ACCALO,0
SUBWF
ACCCLO,0
NOCHK
BTFSS
STATUS,C
GOTO
NOGO
MOVF
ACCALO,0
SUBWF
ACCCLO,1
BTFSS
STATUS,C
DECF
ACCCHI,1
MOVF
ACCAHI,0
SUBWF
ACCCHI,1
BSF
STATUS,C
NOGO
RLF
ACCBLO
RLF
ACCBHI
DECFSZ
TEMP
GOTO
DLOOP
RETLW
0
;****************************************
SETUP
MOVLW
16
MOVWF
TEMP
MOVF
ACCBHI,0
MOVWF
ACCDHI
MOVF
ACCBLO,0
MOVWF
ACCDLO
CLRF
ACCBHI
CLRF
ACCBLO
RETLW
0NEG_A
COMF
ACCALO,1
INCF
ACCALO,1
BTFSC
STATUS,Z
DECF
ACCAHI,1
COMF
ACCAHI,1
RETLW
0D_ADD
MOVF
ACCALO,0
ADDWF
ACCBLO,1
BTFSC
STATUS,C
INCF
ACCBHI,1
MOVF
ACCAHI,0
ADDWF
ACCBHI,1
RETLW
0
(13)浮點數(shù)開方程序LIST
P=16f877
INCLUDE
p16f877.inc
ACCALO
EQU
20H
ACCAHI
EQU
ACCALO+1
EXPA
EQU
ACCALO+2
ACCBLO
EQU
ACCALO+3
ACCBHI
EQU
ACCALO+4
EXPB
EQU
ACCALO+5
ACCCLO
EQU
ACCALO+6
ACCCHI
EQU
ACCALO+7
ACCDLO
EQU
ACCALO+8
ACCDHI
EQU
ACCALO+9
TEMP
EQU
ACCALO+0A
TEMP1
EQU
ACCALO+0B
TIMES
EQU
ACCALO+0C
SIGN
EQU
ACCALO+0D
COUNT
EQU
ACCALO+0E
C_MUL
EQU
ACCALO+0F
C_DIV
EQU
ACCALO+10
FPOL
EQU
ACCALO+11
;符號放置位
NUMLO
EQU
FPOL+1
NUMHI
EQU
FPOL+2
NUMM
EQU
FPOL+4
LUPCNT
EQU
.10
CONSTANT
C=0
CONSTANT
Z=2
CONSTANT
MODEL16=1
CONSTANT
FALSE=0
;****************************************
ORG
0X0000
NOP
GOTO
MAIN
ORG
0X0010
;****************************************
INIT1
DECF
EXPB
;假設(shè)迭代根的初始值為其原值的一半
MOVF
ACCBHI,W
MOVWF
ACCAHI
MOVF
ACCBLO,W
MOVWF
ACCALO
MOVF
EXPB,W
MOVWF
EXPA
RETLW
0
SQRTF
MOVLW
LUPCNT
MOVWF
COUNT
MOVF
ACCBHI,W
MOVWF
NUMHI
MOVF
ACCBLO,W
MOVWF
NUMLO
MOVF
EXPB,W
MOVWF
NUMM
;存儲被開方的數(shù)
BTFSC
ACCBHI,7
GOTO
TIQIAN
;如果被開方數(shù)是個負數(shù),則返回小數(shù)
CALL
INIT1
SLOOP1
MOVF
NUMLO,0
MOVWF
ACCBLO
MOVF
NUMHI,0
MOVWF
ACCBHI
MOVF
NUMM,0
MOVWF
EXPB
CALL
FDIV
CALL
F_add
CALL
INIT1
DECFSZ
COUNT,1
GOTO
SLOOP1
RETURN
TIQIAN
MOVLW
0X40
MOVWF
ACCBHI
CLRF
ACCBLO
MOVLW
0X80
MOVWF
EXPB
;如果被開方數(shù)是一個負數(shù),返回一個極小的浮點數(shù)
RETURN
(14)均值濾波程序INDF EQU 00H ;定義INDF寄存器STATUS EQU 03H ;定義狀態(tài)寄存器FSR EQU 04H ;定義FSR寄存器TRISA EQU 05H ;定義TRISA寄存器RP1 EQU 06H ;定義狀態(tài)寄存器中的頁選位RP1RP0 EQU 05H ;定義狀態(tài)寄存器中的頁選位RP0INTCON EQU 0BH ;定義中斷寄存器PIR1 EQU 0CH ;定義PIR中斷寄存器ADRESH EQU 1EH ;定義ADRESH寄存器ADCON0 EQU 1FH ;定義ADCON0寄存器ADRESL EQU 9EH ;定義ADRESL寄存器PIE1 EQU 8CH ;定義PIE1寄存器ADCON1 EQU 9FH ;定義ADCON1寄存器GIE EQU 07H ;定義中斷寄存器中斷使能位C EQU 00H ;定義狀態(tài)寄存器中的進借位標志位CZ EQU 02H ;定義狀態(tài)寄存器中的零標志位ZHH EQU 20H ;定義16位輸入高8位LL EQU 21H ;定義16位輸入低8位AA EQU 22H ;定義BCD碼最高位BB EQU 23H ;定義BCD碼4/3位CC EQU 24H ;定義BCD碼2/1位TEMPH EQU 25H ;定義臨時變量TEMPHTEMPL EQU 26H ;定義臨時變量TEMPLCOUNT EQU 27H ;定義計數(shù)器變量COUNTADH EQU 28H ;定義臨時變量ADHADL EQU 29H ;定義臨時變量ADLST_TEMP EQU 2AH ;定義臨時變量ST_TEMPW_TEMP EQU 2BH ;定義臨時變量W_TEMPDATA1 EQU 2CH ;定義外循環(huán)變量DATA2 EQU 2DH ;定義存儲外循環(huán)次數(shù)的變量COUNT2 EQU 08H ;定義存儲內(nèi)循環(huán)次數(shù)的變量ADIE EQU 06H ;定義ADIEPEIE EQU 06H ;定義PDIEORG 00HGOTO MAINORG 04HGOTO INTERRETFIEMOVLW 01H ;初始化ADCON0MOVWF ADCON0 ;BCF STATUS,RP1 ;選擇體1BSF STATUS,RP0 ;MOVLW 0XFF ;將RA口設(shè)置為輸入MOVWF TRISA ;MOVLW 0FFH ;初始化ADCON1MOVWF ADCON1 ;BSF PIE1,ADIE ;開AD中斷BCF STATUS,RP1 ;選擇體0BCF STATUS,RP0 ;CLRF PIR1 ;清AD中斷標志BSF INTCON,GIE ;開中斷BSF INTCON,PEIE ;開外圍中斷MOVLW 00H ;初始化COUNT寄存器MOVWF COUNT ;BSF ADCON0,2 ;開ADLOOP BTFSS COUNT,3 ;是否已經(jīng)采樣8次了GOTO NEXT ;否,等待BCF INTCON,GIE ;關(guān)中斷BCF ADCON0,2 ;關(guān)ADBCF STATUS,C ;清除進位位RRF ADH ;ADH/L除以2RRF ADLRRF ADH ;ADH/L除以2RRF ADLRRF ADH ;ADH/L除以2RRF ADLMOVF ADH ;存儲濾波量ADHMOVWF TEMPH ;MOVF ADL ;存儲濾波量ADLMOVWF TEMPL ; CLRF ADH ;清ADH寄存器,為下一次作準備 CLRF ADL ;清ADL寄存器MOVLW 00H ;初始化COUNT寄存器MOVWF COUNTBSF INTCON,GIE ;開中斷NEXTCALL DELAY ;GOTO LOOP ;等待INTER MOVWF W_TEMP ;暫存W寄存器 MOVF STATUS,0 ;暫存STATUS寄存器 MOVWF ST_TEMP BCF STATUS,RP1 ;選擇體0 BCF STATUS,RP0 ; BCF PIR1,6 ;清AD中標志位 BTFSS COUNT,4 ;計數(shù)達到8? GOTO NEXT1 ;否,采樣周期沒完,求和 CLRF ADH ;是,新的采樣周期開始,清ADH寄存器 CLRF ADL ;清ADL寄存器GOTO RETURN1 ;是,則恢復(fù)現(xiàn)場,返回NEXT1 BSF STATUS,RP1 ;選擇體1 BCF STATUS,RP0 ; MOVF ADRESL,0 ;AD采樣結(jié)果低8位送W寄存器 BCF STATUS,RP1 ;選擇體0 BCF STATUS,RP0 ; ADDWF ADL ;加至ADL寄存器 BTFSC STATUS,C ;有進位? INCF ADH ;有,加進位位 MOVF ADRESH,0 ;加AD結(jié)果高半字節(jié) ADDWF ADH INCF COUNT ;計數(shù)器自加1MOVF ST_TEMP,0 ;恢復(fù)STATUS寄存器值 MOVWF STATUS MOVF W_TEMP,0 ;恢復(fù)W寄存器值 RETFIE ;中斷返回DELAY MOVLW COUNT1 ;設(shè)置外部循環(huán)的次數(shù) MOVWF DATA1 ;LOOP1 MOVLW COUNT2 ;設(shè)置內(nèi)部循環(huán)的次數(shù) MOVWF DATA2 ;LOOP2 DECFSZ DATA2,1 ;內(nèi)部循環(huán)變量自減1,為0則跳轉(zhuǎn) GOTO LOOP2 ; DECFSZ DATA1,1 ;外部循環(huán)變量自減1,為0則跳轉(zhuǎn) GOTO LOOP1 ; RETURN ;延時子程序返回 END ;源程序結(jié)束(15)中值濾波程序INDF EQU 00H ;定義INDF寄存器STATUS EQU 03H ;定義狀態(tài)寄存器FSR EQU 04H ;定義FSR寄存器TRISA EQU 05H ;定義TRISA寄存器RP1 EQU 06H ;定義狀態(tài)寄存器中的頁選位RP1RP0 EQU 05H ;定義狀態(tài)寄存器中的頁選位RP0INTCON EQU 0BH ;定義中斷寄存器PIR1 EQU 0CH ;定義PIR中斷寄存器ADRESH EQU 1EH ;定義ADRESH寄存器ADCON0 EQU 1FH ;定義ADCON0寄存器ADRESL EQU 9EH ;定義ADRESL寄存器PIE1 EQU 8CH ;定義PIE1寄存器ADCON1 EQU 9FH ;定義ADCON1寄存器GIE EQU 07H ;定義中斷寄存器中斷使能位C EQU 00H ;定義狀態(tài)寄存器中的進借位標志位CZ EQU 02H ;定義狀態(tài)寄存器中的零標志位ZHH EQU 20H ;定義16位輸入高8位LL EQU 21H ;定義16位輸入低8位AA EQU 22H ;定義BCD碼最高位BB EQU 23H ;定義BCD碼4/3位CC EQU 24H ;定義BCD碼2/1位TEMPH EQU 25H ;定義臨時變量TEMPHTEMPL EQU 26H ;定義臨時變量TEMPLCOUNT EQU 27H ;定義計數(shù)器變量COUNTAD1H EQU 28H ;定義臨時變量AD1HAD1L EQU 29H ;定義臨時變量AD1LAD2H EQU 2AH ;定義臨時變量AD2HAD2L EQU 2BH ;定義臨時變量AD2LAD3H EQU 2CH ;定義臨時變量AD3HAD3L EQU 2DH ;定義臨時變量AD3LST_TEMP EQU 2EH ;定義臨時變量ST_TEMPW_TEMP EQU 2FH ;定義臨時變量W_TEMPDATA1 EQU 30H ;定義外循環(huán)變量DATA2 EQU 31H ;定義內(nèi)循環(huán)變量OUTH EQU 32H ;定義輸出高8位OUTL EQU 33H ;定義輸出低8位COUNT1 EQU 04H ;定義存儲外循環(huán)次數(shù)的變量COUNT2 EQU 08H ;定義存儲內(nèi)循環(huán)次數(shù)的變量ADIE EQU 06H ;定義ADIEPEIE EQU 06H ;定義PDIE ORG 00H GOTO MAIN ORG 04H GOTO INTER RETFIE MOVLW 01H ;初始化ADCON0 MOVWF ADCON0 ; BCF STATUS,RP1 ;選擇體1 BSF STATUS,RP0 ; MOVLW 0XFF ;將RA口設(shè)置為輸入 MOVWF TRISA ; MOVLW 0FFH ;初始化ADCON1 MOVWF ADCON1 ; BSF PIE1,ADIE ;開AD中斷 BCF STATUS,RP1 ;選擇體0 BCF STATUS,RP0 ; CLRF PIR1 ;清AD中斷標志 BSF INTCON,GIE ;開中斷 BSF INTCON,PEIE ;開外圍中斷 MOVLW 01H ;初始化COUNT寄存器 MOVWF COUNT ; BSF ADCON0,2 ;開ADLOOP BTFSS COUNT,2 ;是否已經(jīng)采樣3次了 GOTO NEXT ;否,等待 BCF INTCON,GIE ;關(guān)中斷 BCF ADCON0,2 ;關(guān)AD CALL PAIXU ;調(diào)用排序函數(shù) MOVF AD2H ;存儲濾波量AD2H MOVWF OUTH ; MOVF AD2L ;存儲濾波量AD2L MOVWF OUTL ; BSF INTCON,GIE ;開中斷NEXT CALL DELAY ; GOTO LOOP ;等待INTER MOVWF W_TEMP ;暫存W寄存器 MOVF STATUS,0 ;暫存STATUS寄存器 MOVWF ST_TEMP BCF STATUS,RP1 ;選擇體0 BCF STATUS,RP0 ; BCF PIR1,6 ;清AD中標志位 BTFSS COUNT,0 ;計數(shù)達到8? GOTO NEXT1 ;否,是第1次 BTFSS COUNT,1 ;是,是第2次或者第3次 GOTO NEXT2 ;否,是第1次 GOTO NEXT3 ;NEXT1 BSF STATUS,RP1 ;選擇體1 BCF STATUS,RP0 ; MOVF ADRESL,0 ;AD采樣結(jié)果低8位送W寄存器 BCF STATUS,RP1 ;選擇體0 BCF STATUS,RP0 ; MOVWF AD1L ;存儲低8位到AD1L寄存器 MOVF ADRESH,0 ;存儲高8位到AD1H寄存器 MOVWF AD1H GOTO NEXT4NEXT2 BSF STATUS,RP1 ;選擇體1 BCF STATUS,RP0 ; MOVF ADRESL,0 ;AD采樣結(jié)果低8位送W寄存器 BC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教學公開課管理規(guī)定
- 網(wǎng)絡(luò)商城運營合作協(xié)議
- 某中學學生課外活動組織流程
- 最難忘的一位鄰居人物描寫(9篇)
- 2025年保育員(二級)兒童教育研究考試試卷
- 我的老師與我的成長故事寫人作文7篇范文
- 2025年統(tǒng)計學專業(yè)期末考試:抽樣調(diào)查方法在歷史學研究中的試題
- 2025年安徽省公務(wù)員錄用考試人民警察職位體能測評試卷
- 小狐貍和小鹿童話作文(13篇)
- 2025年法語TCF考試試卷語法知識深度解析與實戰(zhàn)案例分析試題
- 5.3《人皆有不忍人之心》課件 統(tǒng)編版高中語文選擇性必修上冊
- 《高考歷史備考講座》課件
- 2024版《突發(fā)事件應(yīng)對法》知識培訓(xùn)
- 安裝調(diào)試及驗收方案
- 信息計量學復(fù)習資料
- XX道路危險運輸企業(yè)安全管理臺賬標準化表格
- 河北省石家莊二中學本部2024-2025學年高一物理下學期期末結(jié)業(yè)考試試題
- 光伏項目投標方案(技術(shù)方案)
- 廣東省河源市(2024年-2025年小學四年級語文)統(tǒng)編版期末考試(下學期)試卷及答案
- 20以內(nèi)加減法口算練習題帶括號填空135
- 2024年學憲法、講憲法題庫及答案
評論
0/150
提交評論