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

論壇索引


Board index » All Posts (julian47)




Re: 請問PIC16F877如何除頻?
#1
新會員
新會員


當我加上一個delay0.1秒副程式
我已經可以在示波器上看到變化了
謝~~
==========================
但是我現在想輸出PWM訊號
也就是把輸出的X(k+1)值 放到CCPR1L暫存器輸出 如下

mainprogram
call Initial
MainLoop
call Oper
call Delay0.1s
call PWM_Out
call XK1TOXK
goto MainLoop

如此一來我可以在同一個我設定之PWM週期(頻率20Hz)中看到duty cycle從0 不斷遞增直到約40%停止的現象

而且看到是每0.1秒遞增一次

我請問一下 能否在每一個週期中只放一個固定的duty cycle
第一個PWM週期中duty cycle為X(0)=0
第二個PWM週期中duty cycle為A*X(0)+B*U 約=9
第三個PWM週期中duty cycle為A*X(1)+B*U 約=17
. . . . . .
也就是在每一個連續週期中都只出現一個固定的訊號

請問如何修改我的程式啊???
麻煩了...


發表於: 2005/6/23 15:46
頂部


Re: 請問PIC16F877如何除頻?
#2
新會員
新會員


下面是我的程式流程
我有寫一個疊代的迴圈
但是結果一樣
不知道這樣是不是版大的意思
還是說還要在寫一個迴圈??
麻煩了~~

======================
;;;;程式宣告
;;;;定義自訂變數暫存器名稱
;;;;設定程式組譯起始位置
org 0x00
nop
goto mainprogram

;;;;主程式
mainprogram
call Initial
MainLoop
call Oper ;運算X(k+1)=A*X(k)+B*U
call PortC_Out ;輸出X(k)到PortC
call XK1TOXK ;疊代X(k+1)到X(k)
goto MainLoop

;初始化副程式
;給使用者設定係數
Initial
起始Xk=0
banksel PORTC
clrf PORTC ;將PORTC的輸出清除為零
banksel TRISC
clrf TRISC

banksel ADCON1
movlw B'00001110'
movwf ADCON1
bsf TRISA,0
banksel ADCON0
movlw B'10000001'
movwf ADCON0
return

;;;;運算
;;;;XK1TOXK副程式
;;;;A/D轉換副程式
;;;;
END

發表於: 2005/6/22 6:57
頂部


請問PIC16F877如何除頻?
#3
新會員
新會員


因為我目前使用20Mhz的石英震盪器
我設計一個DSP系統
需用到疊代運算
XK1=A*XK+B*U
YK=XK
A=0.9048
B=0.0952
U=2V電壓輸入經過AD轉換成AD_variable值
XK=起始為0

當我使用PORTC輸出 經過我自己所組裝的D/A電路
在示波器上所看到的只是2V電壓
理論上輸出應該是會產生一個步階信號慢慢的逼近2V電壓才對

所以我這樣的情形不知道是不是工作頻率太快
請問能夠使用除頻嗎 請問該如何使用

麻煩各位專家了 謝~~

發表於: 2005/6/21 10:02
頂部


Re: 請問AD轉換 可輸入sin波嗎
#4
新會員
新會員


謝謝各位專家大大的答覆...
我瞭解了..
Thanks..

發表於: 2005/6/21 8:00
頂部


請問AD轉換 可輸入sin波嗎
#5
新會員
新會員


如題

我使用信號產生器輸入(RA0)一個sin波信號
再使用轉換後的值 和另一個值作相乘EX:'B00000010'*ADRESH ->使用PORTC及PWM輸出
我的結果輸出怪怪的 不知道這樣可行嗎

請問
(1)我所使用之PIC16F877單晶片能夠接受負的電壓嗎
(2)這款單晶片能接受的工作電壓最大是不是只能到達5V

請求各位專家大大替我解惑 謝~~

發表於: 2005/6/19 11:42
頂部


請問AD轉換與乘法問題??
#6
新會員
新會員


請問
(1)AD轉換出來的訊號是何種訊號?是0101...嗎?
(2)若是如此 我可以給自己所設定的暫存器一個值(例如10100011) 再與AD輸出值相乘嗎 再做輸出嗎?
(3)如何判定AD輸出的訊號值為何(例如:RA0輸入3V->輸出為何?)

(4)以下是我所撰寫的程式 我希望使用PWM做輸出 但是結果好像不是我所寫要的 可否麻煩各位專家幫我看一下哪有錯


--我希望RA0輸入3V經過AD輸出 再與乘數AB相乘 再使用PWM輸出Mux_L 使用示波器擷取RC2訊號--

LIST P=16F877, R=DEC
INCLUDE <P16F877.INC>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
AD_variable EQU 0x20 ;
XY EQU 0x21 ;
AB EQU 0x22 ;
Mux_H EQU 0x23 ;
Mux_L EQU 0x24 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 0x00
nop
goto mainprogram
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mainprogram
call initial

call ADtrans
call DSP_Oper
call MuxABXY
call PWM_Out
;;;;;;;;;;;;;;;;;;;;;;;;;
initial
movlw B'00000101' ;
movwf AB ;乘數

banksel TRISC
movlw B'00000000'
movwf TRISC
banksel PORTC
movlw B'00000000'
movwf PORTC
movlw 0xff
movwf PR2
banksel TMR2
clrf TMR2
movlw 0x00
movwf CCPR1L
movlw 0x0C
movwf CCP1CON
movlw 0x00
movwf T2CON
bsf T2CON,TMR2ON

banksel ADCON1
movlw B'00001110'
movwf ADCON1
bsf TRISA,0
bcf STATUS,RP0
movlw B'10000001'
movwf ADCON0
banksel PORTC
bsf PORTC,3
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ADtrans
banksel ADCON0
bsf ADCON0,GO
Wait
btfsc ADCON0,GO
goto Wait
movf ADRESH,W
movwf AD_variable
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DSP_Oper
movf AD_variable,W
movwf XY
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2個8bit暫存器XY、AB相乘,將16bit結果分別存於2個8bit暫存器Mux_H與Mux_L中
MuxABXY
clrf Mux_H
clrw
MuxLoop
addwf XY,W
btfsc STATUS,C
incf Mux_H,f
decfsz AB,f
goto MuxLoop
movwf Mux_L
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PWM_Out
movf Mux_L,W
banksel CCPR1L
movwf CCPR1L
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
END

PS:我所使用的是PIC16F877單晶片

麻煩各位專家大人.... 謝~~


發表於: 2005/5/21 13:22
頂部


Re: 請問安裝轉移函數 in PIC using operating System method問題...
#7
新會員
新會員


那您的意思是說
若我堅持要用pic16f877及組合語言
利用作業系統中斷方式
要完成安裝轉移函數(濾波器)是不行的嗎??

發表於: 2005/3/19 15:56
頂部


請問安裝轉移函數 in PIC using operating System method問題...
#8
新會員
新會員


我想要寫一套DSP程式(轉移函數G(z)->含有加法.乘法與Daley)
安裝進入PIC單晶片
我希望在寫程式語言(組合語言)的時候
使用作業系統的方式 像DOS中斷一樣
根據AX的值來執行不同的動作

但是我該如何去查PIC內部作動的指令
將我想要的一個一個工作步驟放入指定的暫存器中
再來作CALL的動作呢

PS:我先說明一下 我所使用的是PIC16F877單晶片
不知此塊單晶片是否能夠執行這樣子的工作 還是說需要用別塊PIC?


麻煩各位瞭解的大大 能夠替我解惑....謝~~

發表於: 2005/3/15 14:28
頂部


2個8bit暫存器A、B相乘問題~~
#9
新會員
新會員


我要將2個8bit暫存器A、B相乘,
將16bit結果分別存於2個8bit暫存器MuxHigh與MuxLow中

以下是我的程式:
==============================================
MuxAB
clrf MuxHigh ;
clrw
Loop
addwf A,W
btfsc STATUS,C
incf MuxHigh,F
decfsz B,F
goto Loop
movwf MuxLow
return
=======================================
我想要累加A暫存器,共累加B次
(1)而我的A=1.8472 B=0.8765
那我的A與B該怎麼宣告
是不是要將A.B值 先畫成010101...的形式
(2)最後若我想要在portC作輸出 該怎麼設定啊

PS:我是用PIC16F877晶片..

麻煩一下~~ 謝...

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






:::

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

教育訓練中心

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