




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