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

論壇索引


Board index » All Posts (saintw)




Re: AD產生不同頻率輸出問題
#11
初級會員
初級會員


謝謝熱心回應
依建議更改程式如下

PWM:
MOVF FEAD,W ; 將FEAD reg=AD值取出放入W
BANKSEL PR2 ;
MOVWF PR2 ; W=FEAD 之值放入PR2
BANKSEL FEAD ;
MOVF FEAD,W ; 將FEAD reg=AD值取出放入W
MOVWF XCAGE ; W=FEAD 之值放入XCAGE reg
RRF XCAGE ; 右移做 AD/2 動作
BANKSEL CCPR1L ;
MOVWF CCPR1L ; 將 AD/2 值放入CCPR1L;
banksel TRISC ;
BCF TRISC,2 ;
banksel T2CON ;
MOVLW B'00000100' ;
MOVWF T2CON ;
MOVLW B'00001100' ;
MOVWF CCP1CON ;
RETURN ;


發現終於可使用AD調變頻率(以VR調整),但頻率不對,高達數K~數十KHZ.
使用ICE看,發現AD/2動作數值有誤,是它造成的?
煩請不吝指正


發表於: 2004/10/22 11:32
頂部


Re: AD產生不同頻率輸出問題
#12
初級會員
初級會員


參考書上一段PWM範例程式如下:

banksel PR2
MOVLW .127 ; 設定PR2=128us 週期之PWM波形
MOVWF PR2
BANKSEL CCPR1L
MOVLW .40 ; 達成DUTYCYCLE=40us
MOVWF CCPR1L
BANKSEL TRISC
BCF TRISC,2 ;
...

原本我曾嘗試將AD輸出的值放入 CCPR1L
如下:
MOVLW AD_TEMP ;
MOVWF CCPR1L ;

而後發現調整AD只能變動DUTYCYCLE;

1.所以現在我應將AD輸出的值放入PR2?
2.那我要如何放入 PWM Period/2 的值在CCPR1L?
3.另我原想規劃TIMER1中斷(1ms),如依提供方法去做.現在還需要用到?

謝謝賜教!

發表於: 2004/10/21 14:00
頂部


AD產生不同頻率輸出問題
#13
初級會員
初級會員


使用PIC16C73,不知該如何將AD輸出的值,設計搭配計時器TIMER1 ,產生不同頻率輸出?我的AD範圍由500~6000, 欲設計DUTYCYCLE=50% ,可隨AD值變化產生不同頻率 ,

發表於: 2004/10/21 0:43
頂部


Re: ADC (16C73) 輸出問題
#14
初級會員
初級會員


問題已解,將MOVLW 05H ; 5次
改為movlw 0D ;13次 後
就可顯示至8160,
謝謝各位前輩指教!

發表於: 2004/10/18 21:47
頂部


Re: ADC (16C73) 輸出問題
#15
初級會員
初級會員


謝謝熱心指導
我若想X32 就須左移 5
故 255X32=8160

程式一段如下,請問這樣就可顯示X32的值?

;將DAT1內之十六進位之值轉成十進位值存放於D1,D0內


HTOD2:
movf ADRES,W ; 將AD 值載入W
MOVWF DAT1 ; DAT1=W
MOVF FSR,W
MOVWF 2EH
MOVLW 05H ; 5次
MOVWF TEMP
CLRF D0
CLRF D1
BCF STATUS,C ;
LOOPD
RLF DAT1; 左移入CF
RLF D1
RLF D0
DECFSZ TEMP ;共須移位5次完成後跳格回
GOTO ADJD1 ;位值調整副程式
MOVF 2EH,W ;將原存於2EH之FSR取回W
MOVWF FSR
RETLW 00H

ADJD1
MOVLW D1
MOVWF FSR
CALL ADJB
MOVLW D0
MOVWF FSR
CALL ADJB
GOTO LOOPD





發表於: 2004/10/18 19:54
頂部


Re: ADC (16C73) 輸出問題
#16
初級會員
初級會員


是的,因我計劃從0250~6000,劃分25段,每段增加25,
不知是否有相關範例可供參考,THANKS

發表於: 2004/10/18 17:26
頂部


Re: ADC (16C73) 輸出問題
#17
初級會員
初級會員


我是想,既然16C73有一個ADRES (00~FF=0~255)那要顯示至0~9999並非不可行,只要乘上倍率後,存至兩暫存器,再轉成7-SEG顯示.如依此或可解決,只是不知有無此一段範例程式.

發表於: 2004/10/17 13:14
頂部


ADC (16C73) 輸出問題
#18
初級會員
初級會員


請問該如何將AD值正確輸出至4位數7段顯示器上,但顯示器最大只能顯示0255, 因PIC 16C73
只有一個AD暫存器(ADRES) ? 假使如此,有何辦法解決? *不
換MICROCONTROLLER為前提*

--------------------------------------------------------------------------

發表於: 2004/10/14 16:09
頂部


Re: 0~9999計數程式,請教各位
#19
初級會員
初級會員


謝謝版主的回應建議,我會就你的建議研究流程.

發表於: 2004/10/4 12:56
頂部


Re: 0~9999計數程式,請教各位
#20
初級會員
初級會員


感謝版主的友善回應,但因敝人對pic摸索中.只能參照書本範例截取片段,現改寫如下
但還是有問題,電路為RB0~7接7 SEG (SINK MODE),RC 4~7 接PNP以推動 7SEG
煩請再不吝賜教

;0計數9 ;
LIST P=16C73 ;
W_STK EQU 0X20 ;
STATUS_STK EQU 0X21 ;
PCLATH_STK EQU 0X22 ;
TMPCNT EQU 0X24 ;
CNT EQU 0X25 ;
SCANCH EQU 0X26 ;
CH EQU 0X27 ;
TNR0H EQU 0X28 ;
#DEFINE _DIGIT_ADDR 0X30 ;

ORG 00H ;
GOTO START ;
ORG 04H ;
MOVF STATUS,W ;
CLRF STATUS ;
MOVWF STATUS_STK ;
MOVF PCLATH,W ;
MOVWF PCLATH_STK ;
CLRF PCLATH ;
BCF STATUS,RP0 ;
BTFSC PIR2,CCP2IF ;
GOTO INIT ;

END_INT:
BCF STATUS,RP0 ;
MOVF PCLATH_STK,W ;
MOVWF PCLATH ;
MOVF STATUS_STK,W ;
MOVWF STATUS ;
MOVF W_STK,W ;
RETFIE ;

START CALL PIC_INIT ;
BSF INTCON,PEIE ;
BSF INTCON,GIE ;


INIT MOVLW 0FFH ; RESET RB
MOVWF RB ;..
MOVWF RC ;
MOVLW DSPTB ; 將TABLE表資料,載入TEMP register
MOVWF TABN ;..
MOVF TABN,W ;..
MOVWF TEMP ;..
MOVWF TEMP1 ;..
MOVWF TEMP2 ;..
MOVWF TEMP3 ;..
MOVLW 0AH ; 設定計數器CNTT=0A
MOVWF CNTT ;..
MOVLW 64H ; 設定計數器CNTH=64H
MOVWF CNTH ;..
MOVLW 03H ; 設定計數器CNTK(K1 K2)=03E8H
MOVWF CNTK1 ;..
MOVLW 0E8H ;
MOVWF CNTK2 ;..

MOVLW 00 ; 設定計數器CNT9X=00
MOVWF CNT9A ; ..
MOVWF CNT9B ; ..
MOVWF CNT9C ; ..
MOVWF CNT9D ; ..
MOVLW 01H ; 被減數 be applied for ROUND4
MOVWF ASS ; ..

ZERO1 MOVF TABN,W ; 歸零
MOVWF TEMP2 ; ..
MOVWF TEMP1 ; ..
MOVWF TEMP ; ..

ROUND1 CALL RESET ;
MOVLW 0AH ; 設定比較器COMP=0A
MOVWF COMP ;..
MOVLW 70H ; 設定SCAN個位數
MOVWF SCAND ;..
MOVF SCAND,W ; 將SCANNER 設定RA ENABLE
MOVWF RC ;..
MOVF TEMP,W ; (將個位數PC(PROGRAM COUNTER)移至W register
CALL LDTAB ; 載入table表至PC
MOVWF RB ; 顯示TABLE表數值至個位數 7 seg)
;GOTO END_INT ;
;RETURN ;

INCF TEMP ; 每次執行,TEMP數值+1
INCF CNT9A ; 每次執行,CNT9A數值+1
MOVF CNT9A,W ; (XOR運算"CNT9A&COMP"後
XORWF COMP ; ,存入COMP
BTFSS 03H,02 ; ZF旗標為"0"則跳行,否則繼續)
GOTO ROUND1 ;
GOTO INIT ;



RESET MOVLW 0FFH ; RESET RB
MOVWF RB ;..
RETURN ;

PIC_INIT
;Bank1
CLRF INTCON ;
;BSF INTCON,T0IE ;
BSF STATUS,RP0 ;
MOVLW B'00000000' ;
MOVWF TRISB ;
MOVLW B'00000000' ;
MOVWF TRISC ;
CLRF PIE2 ;
BSF PIE2,CCP2IE ;
;Bank0
BCF STATUS,RP0 ;
MOVLW B'11111111' ;
MOVWF RB ;
MOVLW 0XFF ;
MOVWF RC ;
MOVLW B'00110001' ;
MOVWF T1CON ;
MOVLW B'00001000' ;
MOVWF CCP2CON ;
MOVLW 0XF4 ;
MOVWF CCPR2H ;
MOVLW 0X24 ;
MOVWF CCPR2L ;
RETURN ;

LDTAB MOVWF PCL ;
ORG 0E0H ;

RETLW B'00001000' ;0
RETLW B'11101011' ;1
RETLW B'01010000' ;2
RETLW B'11000000' ;3
RETLW B'10000011' ;4
RETLW B'10000100' ;5
RETLW B'00000100' ;6
RETLW B'10001001' ;7
RETLW B'00000000' ;8
RETLW B'10000001' ;9
RETLW 00 ;

發表於: 2004/10/1 11:36
頂部



« 1 (2) 3 »



:::

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... ]

教育訓練中心

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