欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于PIC單片機匯編程序問題 MPLAB IDE rp0 equ 5h不工作 [打印本頁]

作者: asd-123    時間: 2019-2-24 12:05
標題: 關于PIC單片機匯編程序問題 MPLAB IDE rp0 equ 5h不工作
各位大師好,我在學習PIC過程中遇到了一個問題我用的是MPLAB IDE再輸入指令是rp0  equ  5時,單片機能工作,但是如果是rp0 equ  5h時編譯成功,但是單片機不工作,為什么------請各位大師指點一下,著急啊

作者: Y_G_G    時間: 2019-2-24 16:15
按說這是不會有問題的,我之前也是這樣隨便定義的,只要不是大于進制的值,rp0都是一樣的呀
可能是別的地方的問題吧
作者: eb900001    時間: 2019-2-24 19:50
編譯設置問題,可以查看一下編譯設置是否設置了16進制數據。一般情況是默認是16進制的,你軟件是不是改過設置。
作者: Y_G_G    時間: 2019-2-25 00:02
eb900001 發表于 2019-2-24 19:50
編譯設置問題,可以查看一下編譯設置是否設置了16進制數據。一般情況是默認是16進制的,你軟件是不是改過設 ...

PIC編譯16進制和10進制寫法是不一樣的,但默認了也一樣,16進制的5和8進制的5還有10進制的5,值是一樣的,樓主沒有完整的代碼,也就不知道是什么問題了
作者: asd-123    時間: 2019-2-25 07:44
status equ 3h
portd  equ 08h
trisd  equ 88h
flag equ 25h
org 00h
nop
bsf status,5
movlw 00h
movwf trisd
bcf status,5
movlw 01h
movwf portd
bsf flag,0
loop  btfss status,0
      goto loop1
      comf flag,1
loop1 btfss flag,0
      goto loop2
      rlf portd,0
      movwf portd
      goto loop3
loop2 rrf  portd,0
      movwf portd
loop3 call delay
      goto loop
;************延時*******
delay
     movlw 0ffh
     movwf 20h
lp0  movlw 0ffh
     movwf 21h
lp1  decfsz 21h,1
     goto lp1
     decfsz 20h ,1
     goto lp0
     return
     end這是編譯好的,通過了但是把rp0 equ 5單片機能工作改成rp0 equ 5h編譯能成功單是下載到單片機就不工作了
作者: Y_G_G    時間: 2019-2-25 10:48
rp0 equ 5在哪里呀?
你是在bsf status,5中用RP0來代替嗎?
很久沒有用PIC匯編了
你可以直接用#define指令
我之前定義的就是這樣子的
端口加一條包含指令就不用再去定義了就像這樣:
#include <p16f877a.inc>        ;包含了PIC16F877A的寄存器聲稱文件
#define    S1        PORTB,0                ;按置S1
#define    S2        PORTB,1                ;按置S2
#define    S3        PORTB,2                ;按置S3
#define           COM0        PORTD,0                ;
#define           COM1        PORTD,1                ;
#define           COM2        PORTD,2                ;
#define           COM3        PORTD,3                ;定義幾個顯示的RA端口
#define            CY        STATUS,0        ;C為標志位,減法有借位=0,無借位=1
#define            SCL        PORTD,4                ;時鐘信號線
#define            SDA        PORTD,7                ;數據信號線
#define            SDA_C   TRISD,7        ;數據方向控制寄存器
作者: Y_G_G    時間: 2019-2-25 10:54
asd-123 發表于 2019-2-25 07:44
status equ 3h
portd  equ 08h
trisd  equ 88h

而且,你應該在代碼的第一行就配置了好單片機的一些配置信息:像低電壓復位,使用晶振,看門狗之類的
我把我以前寫的一個24C01的全部代碼發給你參考一下,代碼是已經驗證過的,沒有問題 PIC16F877A_IIC.rar (2.56 KB, 下載次數: 8)

作者: asd-123    時間: 2019-2-25 18:14
上個程序是修改過好的,以前有rp0 equ 5h,不能用
作者: Y_G_G    時間: 2019-2-25 20:17
asd-123 發表于 2019-2-25 18:14
上個程序是修改過好的,以前有rp0 equ 5h,不能用

不知道你用的是什么型號的單片機,5H應該是個端口的地址,而不是RP0,RP0是位5,不一樣的概念呀
作者: Y_G_G    時間: 2019-2-25 20:19
asd-123 發表于 2019-2-25 18:14
上個程序是修改過好的,以前有rp0 equ 5h,不能用

#define            RP0        STATUS,5
你應該是這樣定義的,這樣的話,就可以直接清除和置位RP0位了
BCF RP0
BSF RP0
就可以了




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1