• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::

論壇索引


Board index » All Posts (totoo2)




Re: PIC16F73 程式記憶體頁的切換問題
#1
新會員
新會員


版主這應該是push&pop
我原先就有如下
MOVWF W_BUF ;┐
MOVF STATUS,W ;│
CLRF STATUS ;│
MOVWF STATUS_BUF ; > 作PUSH動作
MOVF PCLATH,W ;│
MOVWF PCLATH_BUF ;│
CLRF PCLATH ;┘
.
.
CALL CH_BANK0 ;
MOVF PCLATH_BUF,W ;┐
MOVWF PCLATH ;│
MOVF STATUS_BUF,W ; > 作POP動作
MOVWF STATUS ;│
MOVF W_BUF,W ;┘
RETFIE
我也有改成如版主所講的如下

MOVWF W_BUF
MOVF STATUS,W
BCF STATUS,RP0
MOVWF STATUS_BUF
MOVF PCLATH,W
MOVWF PCLATH_BUF
.
.
.
BCF STATUS,RP0
MOVF PCLATH_BUF,W
MOVWF PCLATH
MOVF STATUS_BUF,W
SWAPF W_BUF,F
SWAPF W_BUF,W
RETFIE
但結果還是不行
是不是還有哪裡我沒有設到的
但原先程式只使用到page0時所有功能都是正常的
先在連一開機的顯示畫面都沒有
天阿....版主你一定要救救我...

發表於: 2005/6/10 14:38
頂部


Re: PIC16F73 程式記憶體頁的切換問題
#2
新會員
新會員


版主還是不行ㄋ
會不會跟我的中斷有關係
我在page0中,有一個顯示掃描中斷
必須每0.25秒去處理一次中斷副程式

我真的找不出任何原因
在程式未跨頁前都是正常運作
因為功能上增加以致程式跨頁
結果竟會如此
版主麻煩你囉
如有必要我也可以將我的整支程式給你看

發表於: 2005/6/10 9:17
頂部


Re: PIC16F73 程式記憶體頁的切換問題
#3
新會員
新會員


版主你好
我知道有這虛指令
但我沒用過
不知是不是要先定義這巨集
還是要怎用可否請版主教一下
或是有技術文件可查
......萬分的感謝

發表於: 2005/6/9 22:36
頂部


Re: PIC16F73 程式記憶體頁的切換問題
#4
新會員
新會員


版主你好:
我有做切回的動作但狀況還是一樣
以下是在page0下呼叫page1的程式段:
.
.
R_EEPROM: ;讀取EEPROM中紀錄值
MOVLW H'0000' ;讀出00H位址之資料 MOV A,#ADDRESS
BSF PCLATH,3 ;換PAGE1
CALL READ_93C46 ;
BCF PCLATH,3 ;換PAGE0
MOVLW H'005D' ;判斷是否有被記錄93
.
.

以下是我page1的程式碼:
;******************************************** ;*********** 查表程式段
;******************************************** ORG 0X800 ;定義第一頁程式段位址
TABLE_7SET: ;七段顯示器顯示值
ADDWF PCL,F ; W對應值
RETLW B'00000011' ;0 0
RETLW B'10011111' ;1 1
RETLW B'00100101' ;2 2
RETLW B'00001101' ;3 3
RETLW B'10011001' ;4 4
RETLW B'01001001' ;5 5
RETLW B'11000001' ;6 6
RETLW B'00011111' ;7 7
RETLW B'00000001' ;8 8
RETLW B'00011001' ;9 9
RETLW B'00000010' ;0. A
RETLW B'10011110' ;1. B
RETLW B'00100100' ;2. C
RETLW B'00001100' ;3. D
RETLW B'10011000' ;4. E
RETLW B'01001000' ;5. F
RETLW B'11000000' ;6. 10
RETLW B'00011110' ;7. 11
RETLW B'00000000' ;8. 12
RETLW B'00011000' ;9. 13
RETLW B'01110001' ;F 14
RETLW B'00010001' ;A 15
RETLW B'11110101' ;r 16
RETLW B'10000011' ;V 17
RETLW B'00110001' ;P 18
RETLW B'11111111' ; 19
RETLW B'01100001' ;E 1A
RETLW B'11101111' ;_ 1B
RETLW B'10100001' ;K 1C
RETLW B'00010011' ;N 1D
RETLW B'10010001' ;H 1E
RETLW B'11100011' ;L 1F
RETLW B'11000111' ;u 20
RETLW B'11100001' ;t 21
RETLW B'11000101' ;o 22
RETLW B'10000101' ;d 23
RETLW B'11111101' ;- 24
;********************************************
;** 程式名稱 : 93C46.ASM **
;** 程式功能 : PIC 對 93C46 之副程式 **
;** 程式語言 : PIC16F73 ASSEMBLY **
;********************************************
READ_93C46: ;讀取指定位址的內容
IORLW H'0080' ;給OP CODE
ANDLW H'00BF' ;取指定位址
MOVWF ADDRES_93C46 ;將OP CODE &
;ADDRESS取出
CALL COMMAND ;
BCF PORTC,7 ;清除DI
CALL SK_PULSE ;
CALL SK_PULSE ;

CALL RDBYTE ;
MOVWF DATAH_93C46 ;W給高位元暫存器
CALL RDBYTE ;
MOVWF DATAL_93C46 ;將 W 給低位元暫存器

CALL CLR_CS ; 這四個副程式
CALL SK_PULSE ;都在page1
CALL SETB_CS ;
CALL SK_PULSE ;
RETURN ;
;----------副程式-------------------------------;

RDBYTE: BSF PORTC,7 ;讀取1BYTE
RLF DATA_93C46_TMP,F ;
MOVLW D'08' ;
MOVWF EEPROM_T1;
BCF PCLATH,3 ;換
;PAGE0****940608
CALL CH_BANK1 ;
BSF PCLATH,3 ;換
;PAGE1****940608
BSF PORTC,7 ;規劃 PORTC,7 為輸入腳
BCF PCLATH,3 ;換
;PAGE0****940608
CALL CH_BANK0 ;
BSF PCLATH,3 ;換
;PAGE1****940608

RDB1: BCF PORTC,6 ;
BTFSC PORTC,7 ;
GOTO $+3
BCF STATUS,C ;
GOTO $+2
BSF STATUS,C ;
RLF DATA_93C46_TMP,F ;
NOP ;
BSF PORTC,6 ;
NOP ;
DECFSZ EPROM_T1,1;結果為0跳過下一行
GOTO RDB1 ;
NOP ;
MOVF DATA_93C46_TMP,W;

BCF PCLATH,3 ;換
;PAGE0****940608
CALL CH_BANK1;
BSF PCLATH,3 ;換PAGE1****940608
BCF PORTC,7 ;規劃 PORTC,7 為輸出腳

BCF PCLATH,3;換PAGE0****940608
CALL CH_BANK0;
BSF PCLATH,3;換PAGE1****940608
RETURN ;
.
.
.
.
.
END

發表於: 2005/6/9 17:03
頂部


PIC16F73 程式記憶體頁的切換問題
#5
新會員
新會員


我原先只用到page0但因功能上的增加
使的程式記憶體需寫到page1
但彼此間都有資料的互傳
原先在page0上功能都正常
線將某些副程式移到page1後程式就不正常
我移過去的是93c46的讀寫副程式
我呼叫的方式如下
BSF PCLATH,3 ;換PAGE1
CALL EWEN_93C46 ;致能93C46抹除/寫入功能
.
.
副程式尾端有
RETURN

我一直找不出到底哪邊有問題,請客方高手幫忙解答

發表於: 2005/6/8 17:31
頂部


關於PWM的精度
#6
新會員
新會員


各位先進大家好:
我目前使用PIC16F73作PWM輸出
我的輸出頻率是可調的
目前於40KHz頻率作上下調整,但每一階的調整精度0.4KHz
我使用的石英震盪器是16M的,就算我換成20M的震盪器也只能將經度降到3.多K,我的理想精度是0.2K如能到0.1K是更好的不知各位先進能否給我提供方法,看我設定上是否需要更改或是換PIC的哪一系列晶片也可以,但是要能相容我現在寫好的程式,而且日後我還需要做到80KHz以上的機種,精度上是我所必須的,期望各位大大能提供我有效的方法在此先感謝各位大大!!

發表於: 2005/3/27 1:44
頂部


請教各位先進PIC16F873問題!!
#7
新會員
新會員


PIC16F873這顆晶片怎麼好像都沒有人使用,是不是它本身就有問題或不穩定的現象。
承我之前發表的問題,皆將各位先進提供之方法試過,但問題仍未解決,程式方面我也用模擬軟體模擬過ok後才將程式燒到晶片中,如真是晶片有不穩定現象可否請各位先進告知騎晶片問題,並煩請建議較穩定之晶片,以供小弟解決目前工作上的問題。

發表於: 2004/11/8 14:24
頂部


請問PIC16F873的RESET及PORTB不正常問題!!
#8
新會員
新會員


感謝各位高手提供之方法,但小弟已經逐一測試過,所欲之問題並未排除,實感困擾故小弟在此將詳細之測試規格張貼出來,請各方高手提供排出之方法,謝謝!!

晶片編號:PIC16F873-20/SP
石英晶體:16MHz搭配電容15PF
重置電路:目前使用4.7k配0.1uF經兩次反向器(74HC14)將信號準為穩定
規劃方式:PORT B為四顆七段顯示器顯示值
PORT A之A4A5經74HC138解碼為四顆七段之掃描線
燒錄碼(CONFIG WORD):H'3BBA'(B'11101110111010')
測試程式:
LIST P=16f873,R=DEC ;設定單晶片型態
INCLUDE "c:\mplab\P16F873.INC" ;宣告標頭檔
DEL_CNT1 EQU H'0020' ;延時暫存器
DEL_CNT2 EQU H'0021' ;延時暫存器
DEL_CNT3 EQU H'0022' ;延時暫存器
SCAN EQU H'0023' ;
RL EQU H'0024'
RLCNT EQU H'0025'
;************************************************
;*********** 程式起點 *****************
;************************************************
ORG H'0000' ;
BCF STATUS,RP0 ;選擇BANK0
BCF STATUS,RP1 ;選擇BANK0
GOTO START ;
;************************************************
;*********** 主程式 *****************
;************************************************
START: ;
CALL PIC_INIT ;PIC初始化
MOVLW B'00110000' ;
MOVWF SCAN ;
KS: MOVLW D'8'
MOVWF RLCNT

MOVLW B'11111110' ;
BSF STATUS,C
KL: MOVWF RL

MOVWF PORTB ;
CALL DELAY ;
RLF RL,1
MOVF RL,0
DECFSZ RLCNT,1 ;
GOTO KL ;
GOTO CHSCN
CHSCN:
MOVF SCAN,0 ;
MOVWF PORTA ;

MOVLW B'00010000' ;
SUBWF SCAN,1 ;
BTFSC STATUS,Z ;┘檢查Z(1執行下一行指令,0跳過下一行指令)
GOTO R_SCAN ;


CLRWDT ;
GOTO KS ;
R_SCAN: MOVF SCAN,0 ;
MOVWF PORTA ;

MOVLW B'00110000' ;
MOVWF SCAN ;
GOTO KS ;
;************************************************
;*********** 晶片初始化 *****************
;************************************************
PIC_INIT: ;PIC初始化
;@@@@@@@@@@@@@@@ BANK1 @@@@@@@@@@@@@@@@
BSF STATUS,RP0 ;選擇BANK1
BCF STATUS,RP1 ;選擇BANK1
MOVLW B'11001011' ;規劃PROTA
MOVWF TRISA ;
MOVLW B'00000000' ;規劃PROTB
MOVWF TRISB ;
;MOVLW B'00001001' ;規劃PROTC
;MOVWF TRISC ;
;@@@@@@@@@@@@@@@ BANK0 @@@@@@@@@@@@@@@@
BCF STATUS,RP0 ;選擇BANK0
BCF STATUS,RP1 ;選擇BANK0
MOVLW B'00000100' ;
MOVWF PORTA ;給PROTA初值
MOVLW B'11111111' ;
MOVWF PORTB ;給PROTB初值
;MOVLW B'00100100' ;
;MOVWF PORTC ;給PROTC初值
RETURN ;
;************************************************
;*********** 延時(0.25秒)副程式 ************
;************************************************
DELAY: ;
MOVLW H'0004' ;作4次..改成0010則作16次及作1秒
MOVWF DEL_CNT1 ;
DELAY1: MOVLW H'00FA' ;作250次
MOVWF DEL_CNT2 ;
DELAY2: MOVLW H'00FA' ;作250次
MOVWF DEL_CNT3 ;
DELAY3: NOP ;┐
NOP ;│五個指令,每個指令週期=1/(20M/4)=0.2u秒
NOP ; >5x0.2u=1u秒
NOP ;│16x250x250x1u=1秒

DECFSZ DEL_CNT3,1 ;┘
GOTO DELAY3 ;
DECFSZ DEL_CNT2,1 ;
GOTO DELAY2 ;
DECFSZ DEL_CNT1,1 ;
GOTO DELAY1 ;
RETURN ;
END

發表於: 2004/11/1 15:05
頂部


請問PIC16F873的RESET及PORTB不正常問題!!
#9
新會員
新會員


感謝minusone你的回應
對於你的回應我有以下疑點可否煩請你在替我解決-
●在程式方面我以確認沒有問題,而且也有模擬過程是的動作。
並且以作以最簡單的動作"hi→延時0.5秒→lo"這樣的動作循
環;這樣在程式上應該不會有什麼問題,而且也避開所謂的
Read-Modify-Write現象;而我也再PORTB上接了提升電阻
,那還有哪邊的問題造成開電源無法開始運作跟PORTB的
RB6&RB7沒有我所需求的動作輸出ㄋ
感謝你!

發表於: 2004/10/28 8:34
頂部


請問PIC16F873的RESET及PORTB不正常問題!!
#10
新會員
新會員


◎我使用的是PIC16F873晶片
※WDT、PWRT、BOR都disable了。
●RESET問題:
  在第一腳接一47K電阻至VCC,於送電後卻無法運作,需再
  新送電源1~2次方可使晶片動作。
  改用RC電路作重置電路,則須重置數次方可使晶片運作。

●PORTB不正常問題:
  我的程式動作是在晶片運作後由PORTB輸出HI、LO交替的
  信號,但在晶片運作後RB6&RB7一直保持HI信號輸出。

煩請各方高手幫我解惑~~感謝!!

發表於: 2004/10/27 11:18
頂部






:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------