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

論壇索引


Board index » All Posts




Re: PIC16F716的ADC問題
初級會員
初級會員


呃...請問一下...
程式碼要怎麼貼格式才不會變掉,謝謝。

發表於: 2005/1/17 14:01
頂部


Re: PIC16F716的ADC問題
初級會員
初級會員


謝謝版主的回覆

SIM可以模擬AD輸入嗎?請教一下謝謝。

我將我發生的狀況跟程式貼上,如下:

MCU為 PIC16F716
VDD=3V
AD的參考電壓為VDD
AD輸入腳為 RA1(第18腳)
LED輸出為 RB1

狀況為:
1. Brown Out Detect 選擇 On 時,AD輸入≧2.7V MCU就當住
2. Brown Out Detect 選擇 Off 時,
AD輸入慢慢增加至 2.5V ,MCU動作正常
AD輸入再增加至 5V ,MCU動作也正常
AD輸入再降至 0V ,
AD輸入再瞬間從 0V 升至 5V ,MCU當住
(只要AD輸入瞬間從 0V 升至 3V以上 ,MCU就會當住)

不曉得為什麼會這樣?是設定有問題嗎?還是有其它原因?
如果有人知道煩請不吝指導,謝謝。(百思不解中)
我再試試,有什麼發現再貼上來。

程式碼如下:
list p=16f716,r=dec ; list directive to define processor
include "c:\inc\p16f716.inc"

;Variable definition

ActiveFlag equ 37h
ADValue equ 38h
tempW equ 41h
tempStatus equ 42h
INTADCount1 equ 49h
INTADCount2 equ 50h
INTADCount3 equ 55h
DelayTime equ 52h
Count1 equ 53h
Count2 equ 54h

;Program Segment
org 00h
nop
goto start

org 04h
goto ISR

start
call Initial

banksel OPTION_REG
movlw b'11000000'
movwf OPTION_REG
banksel PIE1
bcf PIE1,ADIE
banksel INTCON
movlw b'00010000'
movwf INTCON
bsf INTCON,GIE
;--------------------------------------
banksel PIR1
bcf PIR1,ADIF
banksel ADCON0
movlw b'01001000'
movwf ADCON0
bsf ADCON0,ADON
banksel ADRES
clrf ADRES
banksel PIE1
bsf PIE1,ADIE
bsf INTCON,PEIE
;--------------------------------------
WaitInt
banksel PORTB
bsf PORTB,1
call ADDelay2
banksel PORTB
bcf PORTB,1
banksel ADCON0
bsf ADCON0,GO_DONE;.........ADgo
call ChkADValue
call ADDelay2
btfsc ActiveFlag,0
goto WaitInt
goto end1

Initial
movlw 1h
movwf ActiveFlag
movlw 0h
movwf ADValue
movwf tempW
movwf tempStatus
movlw 5h
movwf DelayTime

banksel TRISA
movlw b'00000010'
movwf TRISA
banksel PORTA
movlw b'00000000'
movwf PORTA
banksel TRISB
movlw b'00000001'
movwf TRISB
banksel PORTB
movlw b'00000000'
movwf PORTB

banksel ADCON1
movlw b'00000100'
movwf ADCON1

return

ISR
movwf tempW
swapf STATUS,w
movwf tempStatus

banksel PIR1
btfsc PIR1,ADIF
call GetADValue

swapf tempStatus,w
movwf STATUS
swapf tempW,f
swapf tempW,w

retfie

StopActive
banksel INTCON
movlw b'00010000'
movwf INTCON
bcf INTCON,GIE
;bcf INTCON,PEIE;
;banksel PIE1;
;bcf PIE1,ADIE;

movlw 0h
movwf ActiveFlag
banksel PORTB
bcf PORTB,1

PowerLed
banksel PORTB
bsf PORTB,1
call TestDelay
bcf PORTB,1
call TestDelay
decfsz DelayTime
goto PowerLed
movlw 5h
movwf DelayTime
banksel PORTB
bcf PORTB,1

return
;
GetADValue
btfss ActiveFlag,0
goto ExitGetADValue

banksel ADRES
movf ADRES,w
movwf ADValue
banksel PIR1
bcf PIR1,ADIF
return
ExitGetADValue
banksel PIR1
bcf PIR1,ADIF
return
;
ChkADValue
btfss ActiveFlag,0
goto ExitChkADValue

movlw D'119'
bcf STATUS,C
bcf STATUS,DC
bcf STATUS,Z
subwf ADValue,w
btfsc STATUS,Z
goto ADStop
btfsc STATUS,C
goto ADStop

return

ADStop
call StopActive
banksel ADCON0
bcf ADCON0,ADON
return
ExitChkADValue
return


;

ADDelay2
movlw D'66'
movwf INTADCount1
movlw D'100'
movwf INTADCount2
movlw D'100'
movwf INTADCount3
ADDelay2Loop
decfsz INTADCount3
goto ADDelay2Loop
movlw D'100'
movwf INTADCount3
decfsz INTADCount2
goto ADDelay2Loop
movlw D'100'
movwf INTADCount2
decfsz INTADCount1
goto ADDelay2Loop
return
;

TestDelay
movlw D'250'
movwf Count1
movwf Count2
TestLoop
decfsz Count2
goto TestLoop
movlw D'250'
movwf Count2
decfsz Count1
goto TestLoop
return
end1
end

發表於: 2005/1/17 13:53
頂部


Re: 請問A/D轉換
版主
版主


MPLAB IDE 有提供軟體模擬功能,名稱叫 MPLAB SIM
用用看比較不會像瞎子摸象般找不到問題之所在。

發表於: 2005/1/17 13:36
頂部


Re: 請問關於A/D轉換問題
版主
版主


沒錯! 所以選用適當的震盪頻率與預除器的值是可以達到最快的轉換速率,OSC 不一定是越高越好。

以書上為例: 如使用38.4MHz就可以得到約 5uS 的轉換速度
Tad=(1/38.4MHz) * 16 = 41.67nS
conversion rate = 12 Tad = 12 * 41.67nS = 5 uS

按書上說最小的TAD必須大於 385 nS (Table 25-21, page 372), 如果小於此時間就轉換結果就會不準。

發表於: 2005/1/17 13:32
頂部


Re: 74154IC4對16解碼
版主
版主


很簡單!

用軟體建一個 4 對16的查表輸出就可以了。

發表於: 2005/1/17 13:09
頂部


74154IC4對16解碼
新會員
新會員


請問原本用74154IC做4對16解碼,用16F877做編碼
74154輸出為負電,不符合我要正輸出,利用多顆正反器來
達到正輸出,這樣體積就會變大,想說利用一顆ㄶF877來做
4對16解馬來取代74154IC
RA3~RA0做4輸入,RC~RD做16輸出
如RA3~RA0都為0,即RC0輸出,0001即RC1輸出
0010即RC2輸出,0011即RC3輸出,以此類推
該用什麼方式作判斷
謝謝

發表於: 2005/1/16 22:18
頂部


Re: 請問關於A/D轉換問題
新會員
新會員


謝謝版主的回答

"PIC18F4431轉換速度為5uS"<-----

請問如果是用10MHz crystal + PLL
那參考Datasheet 第256頁 關於
AD clock source (TAD)是否就只得選擇32Tosc或是64Tosc
那轉換時間最快也至少需9.6us嗎?(12TAD的情況下)
是這樣嗎?
如果是這樣的話那設成16Tosc或是8Tosc的話
會造成什麼問題嗎?

發表於: 2005/1/15 17:13
頂部


Re: 何謂BANDGAP
資深會員
資深會員


Google -> search bandgap ... you got it !

http://www.ece.utexas.edu/~holberg/lecture_notes/bandgap.pdf

這篇文章的第一句話應改為 General voltage reference have ...

http://www.veeco.com/learning/learning_lattice.asp

發表於: 2005/1/15 13:51
頂部


Re: LCD顯示
資深會員
資深會員


不要去修改 LCD.C,也不必去改,你只要修改主程式就好

在主程式引入 LCD.C 之前設定就好,如下:

#define use_portb_lcd // 加這行就用 PORTB
//#define use_portd_lcd // 加這行就用 PORTD
#include <lcd.c>
void main()
{
...
}

原因,在 LCD.C 裡面有這行,就會依據你的設定來選擇
#if defined use_portb_lcd
...

程式庫裡的,盡量不要改,若要改的話,就先複製到你的主程式所在的工作目錄,再改個名字,例如 LCD_for_proj_01.c
這樣才好做版本的管理。

若使用 CCS ,建議您去買一套 CCS 的實驗板,才好搭配他的範例程式去測試,若出現問題時,直接去 CCS 的討論區發問就好,那裡有許多樂於助人的高手,兩天之內一定會有答覆的。我選擇 CCS 的兩個主要原因就是 (1) 功能超強的 printf 和 (2)因為他的討論區非常非常的好。在 CCS 的 IDE 底下,用滑鼠點選 HELP -> Tech Support 就可以發 e-mail 去給 CCS,通常有點慢,討論區比較有用。

CCS 實驗板:
http://www.ccsinfo.com/hardware.shtml
CCS 討論區:
http://www.ccsinfo.com/forum/

你的 PORTB 為何不能用?我也想不通。我用 PORTB 接 LCD 已經三年了,F877, F45x 都沒問題啊。更改 LCD 接線也都沒問題,只要那四條 data 線在同一個 PORT 就好,其他三條可以隨意變更,把 LCD.C 改幾行就好。

去買個 CCS 的實驗板吧

我當初買的是
http://www.ccsinfo.com/ace.shtml
含 LCD/Keypad Kit 和 Experimenter's Kit
刷信用卡,一星期後收到,打開盒子,三十分鐘搞定 LCD,當時的心情真是爽啊,呵呵。

Experimenter's Kit 裡面的週邊 IC 也十分有用。

學校或學生就用超便宜的教育版吧
http://www.ccsinfo.com/education.shtml

CCS-C 比較像 PC 的 Turbo-C,
Hi-Tech 和 C18 我都沒用過,要請版主出馬囉。
他們的 printf 好像沒有 CCS 的那麼強喔。

C 語言的原作者 K&R 說,第一個 C 程式應該是 printf("Hello world !"),詳見 "The C Programming Language" ,
http://www.ccsinfo.com/newtopiccbooks.shtml
我覺得,第二個 C 程式用 printf(lcd_putc,"x = %f", 3.1416) 就更爽了,呵呵。


發表於: 2005/1/15 13:36
頂部


Re: 請問A/D轉換
新會員
新會員


謝謝各位的幫忙...
我沒有偵測工具 所以都只能將程式燒起來直接測試

發表於: 2005/1/14 19:21
頂部



« 1 ... 7271 7272 7273 (7274) 7275 7276 7277 ... 7522 »



:::

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

教育訓練中心

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