當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀] 定義用戶寄存器WEI1EQUH’0C’;BIT0=MODS:選擇模式位0:模式11:模式2;BIT1=BREK:斷路判別位0:無斷路1:有斷路;BIT2=;BIT3=;BIT4=;BIT5=慢響;BIT6=快響;BIT7=長響WEI2EQUH’0D’;“百位值運算”的啟始值 W

定義用戶寄存器
WEI1EQUH’0C’;BIT0=MODS:選擇模式位0:模式11:模式2
;BIT1=BREK:斷路判別位0:無斷路1:有斷路
;BIT2=
;BIT3=
;BIT4=
;BIT5=慢響
;BIT6=快響
;BIT7=長響
WEI2EQUH’0D’;“百位值運算”的啟始值

WEI3EQUH’0E’;“十位值運算”的啟始值
WEI4EQUH’0F’;個位值
WEI5EQUH’10’;百位值
WEI6EQUH’11’;十位值
WEI7EQUH’12’;
WEI8EQUH’13’;
WEI9EQUH’14’;
WEIAEQUH’15’;
WEIBEQUH’16’
WEICEQUH’17’
WEIDEQUH’18’
WEIEEQUH’19’
WEIFEQUH’1A’
WEIGEQUH’1B’
WEIHEQUH’1C’
WEIIEQUH’1D’
CHECKEQUH’7’
DPEQUH’1’
ADEQUH’0’
BUZZEREQUH’3’
REQUH’2’
LEQUH’4’
;************************************************************************
;矢量地址
ORGH’00’;復(fù)位矢量
GOTOMAIN
ORGH’04’;中斷矢量
NOP
GOTOINTER
;************************************************************************
;數(shù)碼值
TABLE:
ADDWFPCL,F;
RETLWB’01000000’;“0”值
RETLWB’01111001’;“1”值
RETLWB’00100100’;“2”值
RETLWB’00110000’;“3”值
RETLWB’00011001’;“4”值
RETLWB’00010010’;“5”值
RETLWB’00000010’;“6”值
RETLWB’01011000’;“7”值
RETLWB’00000000’;“8”值
RETLWB’00010000’;“9”值
;------------------------------------------------------------------------
;清除寄存器WEI1-WEIG
MAIN:
CLRFWEI1;
CLRFWEI2;
CLRFWEI3;
CLRFWEI4;
CLRFWEI5;
CLRFWEI6;
CLRFWEI7;
CLRFWEI8;
CLRFWEI9;
CLRFWEIA;
CLRFWEIB;
CLRFWEIC;
CLRFWEID;
CLRFWEIE;
CLRFWEIF;
CLRFWEIG;
CLRFWEIH;
CLRFWEII;
BSFSTATUS,RP0;
BCFOPTION_REG,NOT_RBPU
BCFSTATUS,RP0;
MOV FPORTB,1;
BTFSSPORTB,1;
BSFWEI1,0;
;------------------------------------------------------------------------
;設(shè)置A/D通道及A/D結(jié)構(gòu)
BSFSTATUS,RP0;
MOV LWB’00000010’;設(shè)置一個“A/D口”
MOV WFADCON1;參考電壓:工作電壓5V
MOV LWB’10000000’;
MOV WFTRISB;
MOV LWB’00000001’;
MOV WFTRISA;
MOV LWB’10000111’;
MOV WFOPTION_REG;
MOV LWB’10100000’;
MOV WFINTCON;
;-----------------------------------------------------------------------
;設(shè)置端口“輸入/輸出”并設(shè)置初始狀態(tài)
BCFSTATUS,RP0;
MOV LWB’01000000’;設(shè)置A/D通道:AN0
MOV WFADCON0;選用內(nèi)部1:8時鐘振蕩
MOV LWB’01111111’;
MOV WFPORTB;
MOV LWB’00010110’;
MOV WFPORTA;
MOV LWD’252’;
MOV WFTMR0;設(shè)置TMR0初始值
;------------------------------------------------------------------------
;選擇模式
BTFSCWEI1,0;判斷“模式開關(guān)”是否閉合
GOTOMODLE2;“模式開關(guān)”閉合,則進入“模式2”
GOTOMODLE1;“模式開關(guān)”斷開,則進入“模式1”
;------------------------------------------------------------------------
;“模式1”初始化
MODLE1:
MOV FPORTB,1;
BTFSSPORTB,CHECK;判斷是否有斷路
GOTO$+7;
BSFWEI1,1;
BSFWEI1,6;有斷路:蜂鳴器快響并且“無顯示”延時3秒
BCFWEI1,5;
BCFWEI1,7;
CALLDELAY3S;無斷路:“無顯示”延時3秒
GOTOSTART;
CALLDELAY3S;
GOTOSTART;
;------------------------------------------------------------------------
;“模式2”初始化檢測數(shù)碼管各段,蜂鳴器“長響”
MODLE2:
BSFWEI1,0;設(shè)置“模式選擇位”
BSFWEI1,7;打開蜂鳴器“長響”
BCFWEI1,5;
BCFWEI1,6;
BCFSTATUS,C;設(shè)置“進位標(biāo)志位”
MOV LWB’11111111’;
MOV WFWEI7;
RLFWEI7,F;
MOV FWEI7,W;
MOV WFPORTB;設(shè)置“檢測數(shù)碼管段值”給PORT5
BCFPORTA,R;開通“右數(shù)碼管”
BCFPORTA,L;開通“左數(shù)碼管”
CALLDELAYP5;
BSFPORTA,R;關(guān)閉“右數(shù)碼管”
BSFPORTA,L;關(guān)閉“左數(shù)碼管”
MOV LWB’11111111’;
MOV WFPORTB;清除給PORT5的“檢測數(shù)碼管段值”
BTFSCWEI7,6;檢測是否完畢
GOTO$-D’11’;沒有完畢繼續(xù)檢測
BCFPORTA,DP;已完畢設(shè)置“小數(shù)點”及“1”值
BCFPORTA,R;開通“右數(shù)碼管”
BCFPORTA,L;開通“左數(shù)碼管”
CALLDELAYP5;
BSFPORTA,R;關(guān)閉“右數(shù)碼管”
BSFPORTA,L;關(guān)閉“左數(shù)碼管”
BSFPORTA,DP;清除“小數(shù)點”及“1”值
BCFWEI1,7;關(guān)閉蜂鳴器“長響”
BCFWEI1,6;
BCFWEI1,5;
GOTOSTART;
;------------------------------------------------------------------------
;開始工作
START:
MOV FPORTB,F;
BTFSCPORTB,CHECK;判斷是否有斷路
GOTODUANLU;有斷路
BCFWEI1,1;清0斷路判別位
GOTOPANZHI;無斷路
;------------------------------------------------------------------------
;斷路處理
DUANLU:
BSFWEI1,1;設(shè)置斷路判別位
BSFWEI1,6;
BCFWEI1,5;
BCFWEI1,7;
GOTOPANZHI;
;------------------------------------------------------------------------
;判斷電壓值
PANZHI:
BSFADCON0,ADON;A/D處于工作狀態(tài)
BSFADCON0,GO_DONE;A/D開始運行
BTFSCADCON0,GO_DONE;判A/D是否完成
GOTO$-1;A/D沒完成
BCFADCON0,ADIF;
BCFADCON0,ADON;A/D已完成關(guān)閉A/D
CALLCV;
MOV FADRES,W;
MOV WFWEI8;
MOV WFWEI2;A/D值傳給WEI2
BCFSTATUS,C;清零“進位標(biāo)志位”
SUBLWD’200’;
BTFSSSTATUS,C
GOTOV_20;跳到“20V以上”程序
MOV FADRES,W
BCFSTATUS,C;清零“進位標(biāo)志位”
SUBLWD’160’
BTFSSSTATUS,C
GOTOV16;跳到“16V-19.9V之間”程序
MOV FADRES,W
BCFSTATUS,C;清零“進位標(biāo)志位”
SUBLWD’100’
BTFSSSTATUS,C
GOTOV10;跳到“10V-15.9V之間”程序
MOV FADRES,W
BCFSTATUS,C;清零“進位標(biāo)志位”
SUBLWD’50’
BTFSSSTATUS,C
GOTOV5;跳到“5V-9.9V之間”程序
GOTOV4.9;跳到4.9V以下程序
;-------------------------------------------------------------------------
V4.9:;4.9V以下數(shù)碼管顯示LL
BTFSCWEI1,1;判斷是否有斷路
GOTO$+6;
BSFWEI1,7;無斷路長響
BCFWEI1,6;
BCFWEI1,5;
CALLLL;
GOTOSTART;
BSFWEI1,6;有斷路快響
BCFWEI1,5;
BCFWEI1,7;
CALLLL;
GOTOSTART;
;-------------------------------------------------------------------------
V5:;5V-9.9V之間
BTFSCWEI1,1;判斷是否有斷路
GOTO$+5;
BSFWEI1,5;無斷路慢響
BCFWEI1,6;
BCFWEI1,7;
GOTODISPLAY;
BSFWEI1,6;有斷路快響
BCFWEI1,5;
BCFWEI1,7;
GOTODISPLAY;
;-------------------------------------------------------------------------
V10:;10V-15.9V之間
BTFSCWEI1,1;判斷是否有斷路
GOTO$+5;
BCFWEI1,5;無斷路不響
BCFWEI1,6;
BCFWEI1,7;
GOTODISPLAY;
BSFWEI1,6;有斷路快響
BCFWEI1,5;
BCFWEI1,7;
GOTODISPLAY;
;-------------------------------------------------------------------------
V16:;16V-19.9V
BSFWEI1,6;快響
BCFWEI1,5;
BCFWEI1,7;
GOTODISPLAY;
;-------------------------------------------------------------------------
V_20:
BTFSCWEI1,1;判斷是否有斷路
GOTO$+6;
BSFWEI1,7;無斷路長響
BCFWEI1,6;
BCFWEI1,5;
CALLHH;
GOTOSTART;
BSFWEI1,6;有斷路快響
BCFWEI1,5;
BCFWEI1,7;
CALLHH;
GOTOSTART;
;-------------------------------------------------------------------------
;運算“顯示值”
DISPLAY:
NOP;
HUN:
MOV FWEI2,W;
MOV WFWEI3;WEI2-100D的余值傳給WEI3作為“十位值運算”的啟始值
MOV LWD’100’
BCFSTATUS,C;清零“進位標(biāo)志位”
SUBWFWEI2,F;WEI2-100D余值傳給WEI2
BTFSSSTATUS,C;判WEI2是否大于100D
GOTOTEN;小于100D跳到“十位值運算”處
INCFWEI5,F;大于100DWEI5+1:百位值
GOTOHUN
TEN:
MOV FWEI3,W;
MOV WFWEI4;
MOV LWD’10’;WEI3-10D的余值傳給WEI4作為“個位值運算”的啟始值
BCFSTATUS,C;清零“進位標(biāo)志位”
SUBWFWEI3,F;WEI3-10D余值傳給WEI3
BTFSSSTATUS,C;判WEI2是否大于10D
GOTONUMB;小于10D跳到“個位值運算”處
INCFWEI6,F;大于10DWEI6+1:十位值
GOTOTEN
;------------------------------------------------------------------------
;顯示“十位值”“小數(shù)點”
NUMB:
MOV FWEI6,W
CALLTABLE;
MOV WFPORTB;設(shè)置“十位值”
BCFPORTA,DP;設(shè)置小數(shù)點
BCFPORTA,L;打開顯示“十位值”
CALLDELAY;
MOV LWB’11111111’;
MOV WFPORTB;清除“十位值”
BSFPORTA,DP;清除小數(shù)點
BSFPORTA,L;關(guān)閉顯示“十位值”
;------------------------------------------------------------------------
;顯示“個位值”“百位值”
MOV FWEI4,W
CALLTABLE
MOV WFPORTB;設(shè)置“個位值”
BCFSTATUS,Z;清除“零標(biāo)志位”
CLRW;清除W
IORWFWEI5,W;
BTFSSSTATUS,Z;判有無“百位值”
BCFPORTA,DP;顯示“百位值”
BCFPORTA,R;打開顯示“個位值”
CALLDELAY;
MOV LWB’11111111’;
MOV WFPORTB;清除“個位值”
BSFPORTA,DP;清除“百位值”
BSFPORTA,R;關(guān)閉顯示“個位值”
CLRFWEI6;
CLRFWEI5;
GOTOSTART;
;************************************************************************
;延時20MS秒程序
DELAY:
MOV LWD’10’;
MOV WFWEIE;
DELAY1:
MOV LWD’10’;
MOV WFWEIF;
DELAY2:
MOV LWD’10’;
MOV WFWEIG;
DELAY3:
DECFSZWEIG,F;
GOTODELAY3;
DECFSZWEIF,F;
GOTODELAY2;
DECFSZWEIE,F;
GOTODELAY1;
RETURN;
;------------------------------------------------------------------------
;延時0.5秒程序
DELAYP5:
CLRFWEI9;
CLRFWEIA;
BTFSSWEIA,2;
GOTO$-1;
CLRFWEI9;
CLRFWEIA;
RETURN;
;------------------------------------------------------------------------
;延時3秒程序
DELAY3S:
CLRFWEI9;
CLRFWEIA;
BTFSSWEIA,4;
GOTO$-1;
CLRFWEI9;
CLRFWEIA;
RETURN;
;------------------------------------------------------------------------
CV:
BTFSSWEI1,0;
RETURN;
MOV LWB’11100000’;
ANDWFWEI1,W;
BTFSSSTATUS,Z;
RETURN;
MOV FADRES,W;
XORWFWEI8,W;
BTFSSSTATUS,Z;
GOTOCLEAR;
BTFSSWEIA,4;
RETURN;
BSFINTCON,RBIE;使能PORTB引腳電平變化中斷
BCFINTCON,GIE;禁止全局中斷
BCFINTCON,T0IE;
MOV FPORTB,F;讀狀態(tài)
SLEEP;進入休眠狀態(tài)
NOP;
CLRFINTCON;
BSFINTCON,GIE;
BSFINTCON,T0IE;
CLRFWEI9;
CLRFWEIA;
RETURN;
CLEAR:
CLRFWEI9;
CLRFWEIA;
RETURN;
;------------------------------------------------------------------------
LL:
MOV LWB’11000111’;
MOV WFPORTB;
BCFPORTA,L;
BCFPORTA,R;
CALLDELAY;
MOV LWB’11111111’;
MOV WFPORTB;
BSFPORTA,L;
BSFPORTA,R;
RETURN
;------------------------------------------------------------------------
HH:
MOV LWB’10001001’;
MOV WFPORTB;
BCFPORTA,L;
BCFPORTA,R;
CALLDELAY;
MOV LWB’11111111’;
MOV WFPORTB;
BSFPORTA,L;
BSFPORTA,R;
RETURN
;************************************************************************
;TMR0中斷
INTER:
MOV WFWEIH;W,STATUS壓入堆棧
SWAPFSTATUS,W;
MOV WFWEII;
BCFINTCON,T0IF;
MOV LWD’252’;
MOV WFTMR0;設(shè)置TMR0初始值
INCFSZWEI9,F;
GOTO$+2;
INCFWEIA,F;
MOV LWB’11100000’;
ANDWFWEI1,W;
BTFSCSTATUS,Z;
GOTOOUT2;
MOV LWB’00001000’;
XORWFPORTA,F;
BTFSSWEI1,6;
GOTO$+D’10’;
INCFSZWEIB,F;
GOTOOUT;
BCFPORTA,BUZZER;
BSFSTATUS,RP0;
MOV FTRISA,W;
XORLWB’00001000’;
MOV WFTRISA;
BCFSTATUS,RP0;
GOTOOUT;
;------------------------------------------------------------------------
BTFSSWEI1,5;
GOTOOUT1;
INCFSZWEIC,F;
GOTOOUT;
INCFWEID,F;
BTFSSWEID,2;
GOTOOUT;
CLRFWEIC;
CLRFWEID;
BCFPORTA,BUZZER;
BSFSTATUS,RP0;
MOV FTRISA,W;
XORLWB’00001000’;
MOV WFTRISA;
BCFSTATUS,RP0;
GOTOOUT;
OUT1:
BSFSTATUS,RP0;
MOV FTRISA,W;
ANDLWB’11110111’;
MOV WFTRISA;
BCFSTATUS,RP0;
GOTOOUT;
OUT2:
BCFPORTA,BUZZER;
OUT:
SWAPFWEII,W;W,STATUS彈出堆棧
MOV WFSTATUS;
SWAPFWEIH,F;
SWAPFWEIH,W;
RETFIE;允許中斷并返回
END

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉