當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]適合3ePIC試驗(yàn)板,愛晶產(chǎn)品銷售服務(wù)做的不好,好多C程序都是自己寫的,不過匯編程序參考一下不錯(cuò)。;------------------------------------------------------------------------------------------ ;單雙位變換顯示

適合3ePIC試驗(yàn)板,愛晶產(chǎn)品銷售服務(wù)做的不好,好多C程序都是自己寫的,不過匯編程序參考一下不錯(cuò)。

;------------------------------------------------------------------------------------------
;單雙位變換顯示實(shí)驗(yàn)參考程序注意:此程序請(qǐng)用單步執(zhí)行(實(shí)驗(yàn)1-1.asm)
;------------------------------------------------------------------------------------------
STATUS EQU03H;特殊功能寄存器定義
TRISD EQU88H;特殊功能寄存器定義
PORTD EQU08H;特殊功能寄存器定義
TRISE EQU89H;特殊功能寄存器定義
PORTE EQU09H;特殊功能寄存器定義
ORG0000H;復(fù)位地址
NOP;MPLAB專用語句
STBSFSTATUS,5;選擇體1
CLRFTRISD;PORTD設(shè)置為輸出
CLRFTRISE;PORTE設(shè)置為輸出
BCFSTATUS,5;選擇體0
BCF PORTE,0;RE0清零,選通LED
LOOPMOVLWB'10101010'
MOVWFPORTD;設(shè)置PORTD的值
MOVLWB'01010101'
MOVWFPORTD;再次設(shè)置PORTD的值
GOTOLOOP;循環(huán)操作
;------------------------------------------------------------------------------------------
END
;------------------------------------------------------------------------------------------

;------------------------------------------------------------------------------------------
;軟件延時(shí)自動(dòng)計(jì)數(shù)實(shí)驗(yàn)參考程序(實(shí)驗(yàn)1-2.asm)
;------------------------------------------------------------------------------------------
STATUS EQU03H ;特殊功能寄存器定義
TRISD EQU88H;特殊功能寄存器定義
PORTDEQU08H;特殊功能寄存器定義
TRISE EQU89H;特殊功能寄存器定義
PORTEEQU09H;特殊功能寄存器定義
ORG0000H;復(fù)位地址
NOP;MPLAB專用語句
STBSFSTATUS,5;選擇體1
CLRF TRISD;PORTD設(shè)置為輸出
CLRF TRISE;PORTE設(shè)置為輸出
BCFSTATUS,5;選擇體0
CLRF PORTD;PORTD清零
BCF PORTE,0;RE0清零,選通LED
LOOPCALL DELAY1S;調(diào)用1S延遲程序
INCF PORTD;PORTD+1
GOTO LOOP;循環(huán)操作
;------------------------------------------------------------------------------------------
;1秒延時(shí)子程序參考程序
;------------------------------------------------------------------------------------------
DELAY1S MOVLW 06H;外循環(huán)常數(shù)
MOVWF 20H;外循環(huán)寄存器
LOP0MOVLW 0EBH;中循環(huán)常數(shù)
MOVWF 21H;中循環(huán)寄存器
LOP1MOVLW 0ECH;內(nèi)循環(huán)常數(shù)
MOVWF 22H;內(nèi)循環(huán)寄存器
LOP2DECFSZ 22H;內(nèi)循環(huán)寄存器遞減
GOTO LOP2;繼續(xù)內(nèi)循環(huán)
DECFSZ 21H;中循環(huán)寄存器遞減
GOTO LOP1;繼續(xù)中循環(huán)
DECFSZ 20H;外循環(huán)寄存器遞減
GOTO LOP0;繼續(xù)外循環(huán)
RETURN;返回
;------------------------------------------------------------------------------------------
END
;------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
;霓虹燈顯示實(shí)驗(yàn)參考程序(實(shí)驗(yàn)1-3.ASM)
;------------------------------------------------------------------------------------------
STATUS EQU03H;特殊功能寄存器定義
TRISD EQU88H;特殊功能寄存器定義
PORTDEQU08H;特殊功能寄存器定義
TRISE EQU89H;特殊功能寄存器定義
PORTEEQU09H;特殊功能寄存器定義
PCLEQU02H;特殊功能寄存器定義
COUNTEREQU30H;自定義變量
ORG0000H;復(fù)位地址
NOP;MPLAB專用語句
STBSFSTATUS,5;選擇數(shù)據(jù)存儲(chǔ)器體1
CLRF TRISD;定義RD口為輸出
CLRF TRISE;PORTE設(shè)置為輸出
BCFSTATUS,5;選擇數(shù)據(jù)存儲(chǔ)器體0
CLRF PORTD;PORTD清零
BCF PORTE,0;RE0清零,選通LED
POPCLRF COUNTER;自定義變量COUNTER清0
LOOPMOVF COUNTER,0;取出變量COUNTER值
CALL TABLE;查表對(duì)應(yīng)數(shù)據(jù)
MOVWF PORTD;從PORTD輸出
CALL DELAY50MS;調(diào)用50MS延時(shí)
INCF COUNTER,1;循環(huán)變量遞增
MOVF COUNTER,0;取出當(dāng)前COUNTER變量值
SUBLW .20;是否已取出20個(gè)數(shù)據(jù)
BTFSC STATUS,2;查驗(yàn)Z標(biāo)志位
GOTO POP;Z=1,表示一次循環(huán)結(jié)束,COUNTER重新復(fù)位
GOTO LOOP;返回繼續(xù)
;------------------------------------------------------------------------------------------
;數(shù)據(jù)表內(nèi)容
;------------------------------------------------------------------------------------------
TABLE
ADDWFPCL,1;考察偏移量
RETLWB'00011000';第0種顯示狀態(tài)
RETLWB'00111100' ;第1種顯示狀態(tài)
RETLWB'01111110' ;第2種顯示狀態(tài)
RETLWB'11111111' ;第3種顯示狀態(tài)
RETLWB'01111110' ;第4種顯示狀態(tài)
RETLWB'00111100';第5種顯示狀態(tài)
RETLWB'00011000' ;第6種顯示狀態(tài)
RETLWB'00000000';第7種顯示狀態(tài)
RETLWB'10000001' ;第8種顯示狀態(tài)
RETLWB'11000011';第9種顯示狀態(tài)
RETLWB'11100111' ;第10種顯示狀態(tài)
RETLWB'11111111';第11種顯示狀態(tài)
RETLWB'11100111' ;第12種顯示狀態(tài)
RETLWB'11000011';第13種顯示狀態(tài)
RETLWB'10000001' ;第14種顯示狀態(tài)
RETLWB'00000000';第15種顯示狀態(tài)
RETLWB'11111111';第16種顯示狀態(tài)
RETLWB'00000000';第17種顯示狀態(tài)
RETLWB'11111111';第18種顯示狀態(tài)
RETLWB'00000000';第19種顯示狀態(tài)
;------------------------------------------------------------------------------------------
;50MS軟件延時(shí)子程序
;------------------------------------------------------------------------------------------
DELAY50MS
MOVLW 41H;外循環(huán)常數(shù)
MOVWF 20H;外循環(huán)寄存器
LOOP1 MOVLW 0FFH;內(nèi)循環(huán)常數(shù)
MOVWF 21H;內(nèi)循環(huán)寄存器
LOOP2DECFSZ 21H;內(nèi)循環(huán)寄存器遞減
GOTO LOOP2 ;繼續(xù)內(nèi)循環(huán)
DECFSZ 20H;外循環(huán)寄存器遞減
GOTO LOOP1 ;繼續(xù)外循環(huán)
RETURN;返回
;------------------------------------------------------------------------------------------
END
;------------------------------------------------------------------------------------------

;------------------------------------------------------------------------------------------
;動(dòng)態(tài)數(shù)碼自動(dòng)計(jì)數(shù)顯示實(shí)驗(yàn)參考程序(實(shí)驗(yàn)2-1.asm)
;------------------------------------------------------------------------------------------
LISTP=16F877A
INCLUDE"P16F877A.INC";頭文件的設(shè)定
;------------------------------------------------------------------------------------------
;BAW、SHW、 GEW和COUNTER變量的定義
COUNTEREQU71H;可用于循環(huán)的次數(shù)變量
QWEQU7CH;可用于十進(jìn)制千位變量
BAWEQU7DH;可用于十進(jìn)制百位變量
SHWEQU7EH;可用于十進(jìn)制十位變量
GEWEQU7FH;可用于十進(jìn)制個(gè)位變量
;------------------------------------------------------------------------------------------
ORG0000H;復(fù)位地址
NOP;MPLAB專用語句
CLRFQW
CLRFBAW
CLRFSHW
CLRFGEW;個(gè)、十、百寄存器清零
STBSFSTATUS,RP0;選擇體1
CLRFTRISD;PORTD設(shè)置為輸出
MOVLWB'11100001'
MOVWFTRISB;PORTB的B2-5設(shè)置為輸出,其余輸入
BCFSTATUS,RP0;選擇體0
CLRFPORTD;PORTD清零
LGEWMOVFGEW,W;個(gè)位計(jì)數(shù)處理
SUBLW09H
BTFSCSTATUS,Z
GOTOLSHW;個(gè)位有進(jìn)位,轉(zhuǎn)十位計(jì)數(shù)處理
INCFGEW,F;無進(jìn)位,各位加1
MOVFGEW,W
MOVWF60H;存入個(gè)位寄存器
GOTOPINC;數(shù)值動(dòng)態(tài)顯示
LSHWCLRFGEW;十位計(jì)數(shù)處理
CLRF60H;個(gè)位有進(jìn)位,個(gè)位清零
MOVFSHW,W;十位處理
SUBLW09H
BTFSCSTATUS,Z
GOTOLBAW;十位有進(jìn)位,轉(zhuǎn)百位計(jì)數(shù)處理
INCFSHW,F
MOVFSHW,W
MOVWF61H
GOTOPINC;數(shù)值動(dòng)態(tài)顯示
LBAWCLRFSHW;百位計(jì)數(shù)處理
CLRF61H;百位有進(jìn)位,十位清零
MOVFBAW,W
SUBLW09H
BTFSCSTATUS,Z
GOTOLQW;百位有進(jìn)位,轉(zhuǎn)千位計(jì)數(shù)處理
INCFBAW,F
MOVFBAW,W
MOVWF62H
GOTOPINC
LQWCLRFBAW;千位計(jì)數(shù)處理
CLRF62H;千位有進(jìn)位,百位清零
MOVFQW,W
SUBLW09H
BTFSCSTATUS,Z
GOTOQL;千位有進(jìn)位,轉(zhuǎn)清零處理
INCFQW,F
MOVFQW,W
MOVWF63H
GOTOPINC
QLCLRFGEW;個(gè)位計(jì)數(shù)處理
CLRFSHW;十位計(jì)數(shù)處理
CLRFBAW;百位計(jì)數(shù)處理
CLRFQW;千位計(jì)數(shù)處理
PINCNOP;數(shù)值動(dòng)態(tài)顯示處理
DTJPMOVLW19H
MOVWFCOUNTER;遞增計(jì)數(shù)時(shí)間常數(shù)設(shè)置
LJ DECFSZCOUNTER,1
GOTOLS;時(shí)間未到,繼續(xù)動(dòng)態(tài)掃描顯示
GOTOLR;時(shí)間到,遞增計(jì)數(shù)
LSBCFPORTB,1;顯示個(gè)位數(shù)值編碼
BSFPORTB,2
BSFPORTB,3
BSFPORTB,4
MOVFGEW,W
CALLBMA;調(diào)要顯示的數(shù)值的編碼
MOVWFPORTD
CALLDELAY10MS;動(dòng)態(tài)掃描轉(zhuǎn)換時(shí)間控制
BSFPORTB,1;顯示十位數(shù)值編碼
BCFPORTB,2
BSFPORTB,3
BSFPORTB,4
MOVFSHW,W
CALLBMA;調(diào)要顯示的數(shù)值的編碼
MOVWFPORTD
CALLDELAY10MS;調(diào)用延時(shí)10MS程序
BSFPORTB,1;顯示百位數(shù)值的編碼
BSFPORTB,2
BCFPORTB,3
BSFPORTB,4
MOVFBAW,W
CALLBMA;調(diào)要顯示的數(shù)值的編碼
MOVWFPORTD
CALLDELAY10MS;調(diào)用延時(shí)10MS程序
BSFPORTB,1;顯示千位數(shù)值的編碼
BSFPORTB,2
BSFPORTB,3
BCFPORTB,4
MOVFQW,W
CALLBMA;調(diào)要顯示的數(shù)值的編碼
MOVWFPORTD
CALLDELAY10MS;調(diào)用延時(shí)10MS程序
GOTO LJ;返回顯示時(shí)間記時(shí)
LR GOTOLGEW;返回主程序
;-----------------------------------------------------------------------------------------
;10MS延時(shí)
;-----------------------------------------------------------------------------------------
DELAY10MS
MOVLW03H;0fh外循環(huán)常數(shù)
MOVWF20H;外循環(huán)寄存器
LOOP2MOVLW0FFH;中循環(huán)常數(shù)
MOVWF21H;中循環(huán)寄存器
L01DECFSZ21H,1;中循環(huán)寄存器遞減
GOTOL01;繼續(xù)中循環(huán)
DECFSZ20H,1;外循環(huán)寄存器遞減
GOTOLOOP2;繼續(xù)外循環(huán)
RETURN;返回
;------------------------------------------------------------------------------------------
;編碼查詢
;------------------------------------------------------------------------------------------
BMAADDWFPCL,F;考察偏移量
RETLW3FH;"0" 編碼
RETLW06H;"1" 編碼
RETLW5BH;"2" 編碼
RETLW4FH;"3" 編碼
RETLW66H;"4" 編碼
RETLW6DH;"5" 編碼
RETLW7DH;"6" 編碼
RETLW07H;"7" 編碼
RETLW7FH;"8" 編碼
RETLW6FH;"9" 編碼
;------------------------------------------------------------------------------------------
END
;------------------------------------------------------------------------------------------

;------------------------------------------------------------------------------------------
;高4位自動(dòng)計(jì)數(shù)低4位手動(dòng)計(jì)數(shù)顯示實(shí)驗(yàn)參考程序(實(shí)驗(yàn)2-2.asm)
;------------------------------------------------------------------------------------------
LISTP=16F877A
INCLUDE"P16F877A.INC";頭文件的設(shè)定
;------------------------------------------------------------------------------------------
AAAEQU10H;高4位計(jì)數(shù)遞增常數(shù)
GSWEQU30H;高4位值寄存器
DSWEQU31H;低4位值寄存器
ORG0000H ;復(fù)位地址
NOP ;MPLAB專用語句
STBSFSTATUS,RP0;選擇體1
MOVLW00H
MOVWFTRISD;PORTD設(shè)置為輸出
MOVLW0FFH
MOVWFTRISB;PORTB設(shè)置為輸入
MOVLW0FFH
MOVWFTRISC;PORTC設(shè)置為輸入
CLRFTRISE;PORTE設(shè)置為輸出
BCFSTATUS,RP0;選擇體0
CLRFPORTD;PORTD端口清零
BCF PORTE,0;RE0清零,選通LED
CLRFGSW;高4位值寄存器清零
CLRFDSW;低4位值寄存器清零
GOTOMAIN;轉(zhuǎn)至MAIN
MAINNOP;高4位自動(dòng)計(jì)數(shù)程序段
MOVLWAAA;送高4位計(jì)數(shù)遞增常數(shù)
ADDWFPORTD,W
ANDLW0F0H;屏蔽低4位
MOVWFGSW
ADDWFDSW,W;高4位與低4位合成
MOVWFPORTD;送顯
CALLDELAY1S;調(diào)用延時(shí)約1秒的子程序
GOTOMAIN
DELAY1S;含按鍵掃描的1秒延時(shí)子程序
MOVLW6H
MOVWF20H
LP2MOVLW0EAH
MOVWF21H
LP1MOVLW0FFH
MOVWF22H
J0BTFSCPORTC,5;J0按下么?
GOTOJ1;去判斷J1是否按下
CALLDELAY10MS;防抖動(dòng)延遲
BTFSCPORTC,5;J0按下確認(rèn)
GOTOJ1;去判斷J1是否按下
PP0BTFSSPORTC,5;J0按下,判J0是否釋放
GOTOPP0;沒有釋放,再判
CALLDELAY10MS;防抖動(dòng)延遲
BTFSSPORTC,5;J0可靠釋放?
GOTOPP0;不確定,則再判J0是否釋放
INCFPORTD,W;D口加1
ANDLW0FH;屏蔽高四位
MOVWFDSW;送入低4位值存儲(chǔ)器
ADDWFGSW,W;高四位加1
MOVWFPORTD;送D口顯示
J1 BTFSCPORTB,0;J1按下么?
GOTOLP0;J1沒有按下,轉(zhuǎn)到LP0延遲
CALLDELAY10MS;防抖動(dòng)延遲
BTFSCPORTB,0;J1可靠按下?
GOTOLP0;J1沒有按下,轉(zhuǎn)到LP0延遲
PP1BTFSSPORTB,0;J1按下,判J1是否釋放
GOTOPP1;沒有釋放,再判
CALLDELAY10MS;防抖動(dòng)延時(shí)
BTFSSPORTB,0;J1可靠釋放?
GOTOPP1;不確定,則再判J1是否釋放
DECFPORTD,W;D口減1
ANDLW0FH;屏蔽高四位
MOVWFDSW;送入低4位值存儲(chǔ)器
ADDWFGSW,W;高四位加1
MOVWFPORTD;送D口顯示
LP0DECFSZ22H,F;延遲程序
GOTOLP0
DECFSZ21H,F
GOTOLP1
DECFSZ20H,F
GOTOLP2
RETURN
DELAY10MS
MOVLW0FH;外循環(huán)常數(shù)
MOVWF23H;外循環(huán)寄存器
LOOP2MOVLW0FH;中循環(huán)常數(shù)
MOVWF24H;中循環(huán)寄存器
L01DECFSZ24H,F;中循環(huán)寄存器遞減
GOTOL01;繼續(xù)中循環(huán)
DECFSZ23H,F;外循環(huán)寄存器遞減
GOTOLOOP2;繼續(xù)外循環(huán)
RETURN;返回
;------------------------------------------------------------------------------------------
END
;------------------------------------------------------------------------------------------
;------------------------------------------------------------------------------------------
;電平變化基本計(jì)數(shù)實(shí)驗(yàn)參考程序(實(shí)驗(yàn)2-3.ASM)
;------------------------------------------------------------------------------------------
LISTP=16F877A
INCLUDE"P16F877A.INC"
PB_TEMPEQU40H;定義PORTB臨時(shí)備份寄存器
;------------------------------------------------------------------------------------------
ORG0000H;復(fù)位地址
NOP;MPLAB專用語句
GOTOST;進(jìn)入主程序
;------------------------------------------------------------------------------------------
;中斷服務(wù)程序
;------------------------------------------------------------------------------------------
ORG0004H;中斷程序入口地址
MOVFPORTB,W;PORTB 內(nèi)容放到W
MOVWFPB_TEMP;W內(nèi)容放到PB_TEMP
BTFSSPB_TEMP,4;判斷RB4是否為低電平
GOTOPP4;是RB4輸入,轉(zhuǎn)到PP4執(zhí)行PORTD加1
BTFSSPB_TEMP,5;判斷RB5是否為低電平
DECFPORTD;RB5低電平,是RB5輸入,執(zhí)行PORTD減1
PPQBCFINTCON,RBIF;B口電平中斷標(biāo)志位清零
RETFIE;中斷返回
PP4INCFPORTD;PORTD加1
GOTOPPQ;轉(zhuǎn)到PPQ退出中斷
;------------------------------------------------------------------------------------------
;系統(tǒng)主程序
;------------------------------------------------------------------------------------------
STBSFSTATUS,5;選擇數(shù)據(jù)存儲(chǔ)器體1
CLRFTRISD;定義RD口為輸出
BSF TRISB,4;定義RB4、RB5為輸入
BSF TRISB,5
CLRFTRISE;PORTE設(shè)置為輸出
BCFSTATUS,5;選擇數(shù)據(jù)存儲(chǔ)器體0
MOVLWB'10001000';開啟RB口電平變化中斷
MOVWFINTCON;送W數(shù)據(jù)到INTCON
CLRFPORTD;PORTD口清零
BCF PORTE,0;RE0清零,選通LED
GOTO$;原地等待
;------------------------------------------------------------------------------------------
END

;------------------------------------------------------------------------------------------
;LCD顯示本站網(wǎng)址和電話實(shí)驗(yàn)參考程序(實(shí)驗(yàn)2-4.ASM)
;進(jìn)一步熟悉查表程序的用法,LCD的讀寫方法。
;------------------------------------------------------------------------------------------
LISTP=16F877A
INCLUDE"P16F877A.INC"
INCLUDE"MY.INC";COUNT、TEMP變量已經(jīng)定義
;------------------------------------------------------------------------------------------
EEQU03H;LCD片選信號(hào)腳定義在RB.3腳
RWEQU02H;LCD讀/寫信號(hào)腳定義在RB.2腳
RSEQU01H ;LCD寄存器選擇信號(hào)腳定義在RB.1腳
;------------------------------------------------------------------------------------------
ORG 0000H
NOP ;放置一條ICD必需的空操作指令
GOTO MAIN
ORG 0008H
;------------------------------------------------------------------------------------------
TABLE ;取第一行的顯示碼WWW.AJDZ.NET
ADDWF PCL,1 ;地址偏移量加當(dāng)前PC值
RETLW ' '
RETLW ' '
RETLW 'W'
RETLW 'W'
RETLW 'W'
RETLW '.'
RETLW 'A'
RETLW 'J'
RETLW 'D'
RETLW 'Z'
RETLW '.'
RETLW 'N'
RETLW 'E'
RETLW 'T'
RETLW ' '
RETLW ' '
RETLW 00H;數(shù)據(jù)結(jié)束標(biāo)記
;------------------------------------------------------------------------------------------
TABLE1 ;取第二行的顯示碼TEL0575 2263178
ADDWF PCL,1 ;地址偏移量加當(dāng)前PC值
RETLW 'T'
RETLW 'E'
RETLW 'L'
RETLW ':'
RETLW '0'
RETLW '5'
RETLW '7'
RETLW '5'
RETLW '-'
RETLW '2'
RETLW '2'
RETLW '6'
RETLW '3'
RETLW '1'
RETLW '7'
RETLW '8'
RETLW 00H;數(shù)據(jù)結(jié)束標(biāo)記
;------------------------------------------------------------------------------------------
MAIN
BSFSTATUS,RP0;選擇體1
MOVLW B'11110001'
MOVWF TRISB;PORTB的B1-3定義為輸出,其余為輸入
CLRF TRISD;PORTD端口定義為輸出
BCF STATUS,RP0
CALL DELAY ;調(diào)用延時(shí),剛上電LCD復(fù)位不一定有PIC快
MOVLW 01H
MOVWF PORTD ;清屏
CALL ENABLE
MOVLW 38H
MOVWF PORTD ;8位2行5x7點(diǎn)陣
CALL ENABLE
MOVLW 0FH ;顯示器開、光標(biāo)開、閃爍開
MOVWF PORTD
CALL ENABLE
MOVLW 06H ;文字不動(dòng),光標(biāo)自動(dòng)右移
MOVWF PORTD
CALL ENABLE
MOVLW 80H
MOVWF PORTD ;顯示位置
CALL ENABLE
CALL WRITE1 ;調(diào)用送第一行數(shù)子程序“WWW.AJDZ.NET"
MOVLW 0C0H
MOVWF PORTD ;第一行的位置
CALL ENABLE
CALL WRITE2 ;調(diào)用送第二行數(shù)子程序“TEL0575 2263178"
MOVLW 0C2H
MOVWF PORTD ;第二行的位置
CALL ENABLE
GOTO $
;------------------------------------------------------------------------------------------
WRITE1
CLRF COUNT ;送第一行數(shù)字程序
LOOP1
MOVFW COUNT
CALL TABLE
MOVWF TEMP
CALL DATA2LCD
INCF COUNT,F
MOVFW TEMP
XORLW 00H;只影響標(biāo)記位
BTFSS STATUS,Z;判斷第1行數(shù)據(jù)是否讀完,未讀完則繼續(xù)讀
GOTO LOOP1
RETLW 0
;------------------------------------------------------------------------------------------
WRITE2 ;送第二行數(shù)子程序
CLRF COUNT
LOOP2
MOVFW COUNT
CALL TABLE1
MOVWF TEMP
CALL DATA2LCD
INCF COUNT,1
MOVFW TEMP
XORLW 00H
BTFSS STATUS,Z
GOTO LOOP2
RETLW 0
;------------------------------------------------------------------------------------------
DATA2LCD ;送數(shù)據(jù)到LCD子程序
MOVWF PORTD
BSF PORTB,RS
BCF PORTB,RW
BCF PORTB,E
CALL DELAY
BSF PORTB,E
RETLW 0
;------------------------------------------------------------------------------------------
ENABLE
BCF PORTB,RS ;寫入控制命令的子程序
BCF PORTB,RW
BCF PORTB,E
CALL DELAY
BSF PORTB,E
RETLW 0
;------------------------------------------------------------------------------------------
DELAY
movlw 0ffh ;將外層循環(huán)參數(shù)值FFH經(jīng)過W
movwf 20h ;送入用作外循環(huán)變量的20H單元
lp0movlw 0ffh ;將內(nèi)層循環(huán)參數(shù)值FFH經(jīng)過W
movwf 21h ;送入用作內(nèi)循環(huán)變量的21H單元
lp1decfsz 21h,1 ;變量21H內(nèi)容遞減,若為0跳躍
goto lp1 ;跳轉(zhuǎn)到LP1處
decfsz 20h,1 ;變量20H內(nèi)容遞減,若為0跳躍
goto lp0 ;跳躍到LP0處
return ;返回主程序
;------------------------------------------------------------------------------------------
END
;------------------------------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(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)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

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