Re: 備用電源如何做 ?
|
||||
---|---|---|---|---|
中級會員
|
謝謝你的建議 !
這樣是否變成用電池為主電源了呢 ? 這是開放論談, 歡迎任何建言, 謝謝.
發表於: 2007/1/18 10:21
|
|||
|
Re: 無用的I/O接腳該開路還是短路?
|
||||
---|---|---|---|---|
中級會員
|
這個問題一堆人討論過,結論是不要讓任何
腳 floating , 不過最正確說法還是要讓版主來回答.
發表於: 2007/1/18 8:40
|
|||
|
Re: 備用電源如何做 ?
|
||||
---|---|---|---|---|
中級會員
|
謝謝 , 好方法, 我試試看 .
另外, 普通 3 號電池 2 個 應該可以維持MCU繼續運轉,有方 法切換嗎 ?
發表於: 2007/1/17 16:02
|
|||
|
Re: PIC16F873使用ICD2--TMR0問題
|
||||
---|---|---|---|---|
中級會員
|
在debug mode sim 下 可看到 TIMER0 變動嗎 ?
OPTION_REG 在BANK1
發表於: 2007/1/17 12:26
|
|||
|
Re: PIC16F873使用ICD2--TMR0問題
|
||||
---|---|---|---|---|
中級會員
|
應該會動的 , 可否將程式貼出來 ?
發表於: 2007/1/17 7:54
|
|||
|
備用電源如何做 ?
|
||||
---|---|---|---|---|
中級會員
|
我測過 緊急停電(BROWN OUT) 及低電壓偵測(LVD) 後仍然有時間能完成 中斷副程式內有限之指令, 例如將重要之資料保存在 DATA EEPROM 內 , 因此, 應該有時間作MCU本身備用電源之轉換
,請問該如何設計電路圖 ? (任何建議都可以, 先謝謝了)
發表於: 2007/1/16 12:13
|
|||
|
Re: 請問中斷設定的問題
|
||||
---|---|---|---|---|
中級會員
|
根據 data sheet , 意義完全不同
發表於: 2007/1/9 15:17
|
|||
|
18F4550 sample 哪裡買 ?
|
||||
---|---|---|---|---|
中級會員
|
我現在海外 , 想回台灣後 買18F4550 系sample , 請問哪裡
買 , 同時 具usb 功能的MCU 還有哪些系列 ?
發表於: 2007/1/9 7:15
|
|||
|
Re: 組語變數可以這樣用嗎 ?
|
||||
---|---|---|---|---|
中級會員
|
好的,謝謝.
改成 cblock .. res .. endc 如下 (此程式已可顯示時間00:00至11:59並循環) ;************************************************************************** ;**** File : clock.asm ;**** 設計一個時鐘程式 ;************************************************************************** list p = 18F452 #include <p18F452.inc> ; cblock 0x00 Clock_HourH:1 ; define address for hour upper digit Clock_HourL:1 ; define address for hour lower digit Clock_MinH:1 ; define address for minute upper digit Clock_MinL:1 ; define address for minute lower digit Clock_SecH:1 ; define address for second upper digit Clock_SecL:1 ; define address for second lower digit Count1:1 ; define address for time delay count number Count1_1:1 Count1_2:1 Count2:1 Count2_1:1 Count2_2:1 endc ; #define NINE b'00001001' #define FIVE b'00000101' #define THREE b'00000011' #define TWO b'00000010' #define ONE b'00000001' #define ZERO b'00000000' #define TEMP b'00000000' #define TEMP1 b'00000001' #define Count1_Init_Value 06AH ; LED digits alternately display times(SCANNING) #define TMR1_VAL .2000 ; Timer1 設定為 500ms 中斷一次 ;******************************************************************** ;**** RESET Vector @ 0x0000 ;******************************************************************** org 0x0000 bra Main ; org 0x0008 bra Hi_ISRs ; ;******************************************************************** ;**** The Main Program start from Here !! ;******************************************************************** org 0x002A Main: call Init_IO call Init_Timer1 bsf RCON,IPEN ; Enable Interrupt priority bsf INTCON,GIEH ; Enable all High Priority Interrupt movlw ZERO movwf Clock_SecH movlw ZERO movwf Clock_SecL movlw ZERO movwf Clock_MinL movlw ZERO movwf Clock_MinH movlw ZERO movwf Clock_HourL movlw ZERO movwf Clock_HourH movlw ZERO movwf Count1 movlw ZERO movwf Count2_1 movlw ZERO movwf Count2_2 ; Null_Loop goto LEDdisplay Null_Loop1 goto CountUpSecL goto Null_Loop ; Do loop here ; LEDdisplay movlw Count1_Init_Value nop nop cpfseq Count1,W goto IncCount1 goto clrCount1 goto Null_Loop1 IncCount1 movf Clock_HourH,W movwf PORTD bsf PORTC,7 call TIMER100U bcf PORTC,7 movf Clock_HourL,W movwf PORTD bsf PORTC,6 call TIMER100U bcf PORTC,6 movf Clock_MinH,W movwf PORTD bsf PORTC,5 call TIMER100U bcf PORTC,5 movf Clock_MinL,W movwf PORTD bsf PORTC,4 call TIMER100U bcf PORTC,4 incf Count1 goto LEDdisplay clrCount1 movlw ZERO movwf Count1 goto Null_Loop1 ;*********************************************************************** ;**** Initial the PORTE&PORTD for the output port ;*********************************************************************** CountUpSecL nop movlw b'00001001' nop nop nop cpfseq Clock_SecL,0 goto SecLCountUp goto SecLZero SecLCountUp incf Clock_SecL nop goto Null_Loop SecLZero nop movlw ZERO movwf Clock_SecL movlw b'00000101' nop nop nop cpfseq Clock_SecH,0 goto SecHCountUp goto SecHZero goto Null_Loop SecHCountUp nop incf Clock_SecH nop goto Null_Loop SecHZero nop movlw ZERO movwf Clock_SecH nop movlw NINE nop nop cpfseq Clock_MinL,0 goto MinLCountUp goto MinLZero goto Null_Loop MinLCountUp incf Clock_MinL goto Null_Loop MinLZero movlw ZERO movwf Clock_MinL movlw FIVE nop nop cpfseq Clock_MinH,0 goto MinHCountUp goto MinHZero goto Null_Loop MinHCountUp incf Clock_MinH goto Null_Loop MinHZero movlw ZERO movwf Clock_MinH movlw ONE nop nop cpfseq Clock_HourH,0 goto CountUpHourL goto HourLCheck goto Null_Loop CountUpHourL movlw NINE nop nop cpfseq Clock_HourL,0 goto HourLCountUp goto HourLZero goto Null_Loop HourLCheck movlw ONE nop nop cpfseq Clock_HourL,0 goto PureCountUpHourL goto HourHLZero goto Null_Loop HourLCountUp incf Clock_HourL goto Null_Loop HourLZero movlw ZERO movwf Clock_HourL incf Clock_HourH goto Null_Loop PureCountUpHourL incf Clock_HourL goto Null_Loop HourHLZero movlw ZERO movwf Clock_HourL movlw ZERO movwf Clock_HourH goto Null_Loop Init_IO movlw 00FH movwf ADCON1 bsf TRISB,0 bcf PORTB,0 clrf TRISE movlw b'00000010' movwf PORTE clrf TRISD bcf TRISC,4 ; LED power digit for Sec Low bcf TRISC,5 ; LED power digit for Sec High bcf TRISC,6 ; LED power digit for Min Low bcf TRISC,7 ; LED power digit for Min High bcf PORTC,4 bcf PORTC,5 bcf PORTC,6 bcf PORTC,7 movlw b'00000000' movwf PORTD call TIMER100U call TIMER100U call TIMER100U return ;*********************************************************************** ;**** Initial Timer1 as a 500ms Timer ;*********************************************************************** Init_Timer1 movlw 0CFH ; 16-bit mode , Prescaler = 1:1 , Async mode movwf T1CON ; Use external 32768Hz crystal , Timer1 On ; movlw (.65536-TMR1_VAL)/.256 ; Calcute the MSB value for the Timer1 movwf TMR1H movlw (.65536-TMR1_VAL)%.256 ; Calcute the LSB value for the Timer1 movwf TMR1L ; movlw 001H ; Set Timer1 for high priority interrupt movwf PIE1 ; Clear Timer1 Interrupt flag movlw 001H movwf IPR1 bcf PIR1, TMR1IF bsf PIE1, TMR1IE ; Enable Timer1 Interrupt return TIMER100U movlw 002H nop cpfseq Count2_2,0 goto Time_Loop1 goto TIMER_Finish2 Time_Loop1 incf Count2_2 Time_Loop2 movlw 005H nop cpfseq Count2_1,0 goto TIMER_Loop goto TIMER_Finish1 TIMER_Loop incf Count2_1 movlw 0A8H movwf Count2 decfsz Count2 bra $-2 goto Time_Loop2 TIMER_Finish1 clrf Count2_1 goto TIMER100U TIMER_Finish2 clrf Count2_2 return ;*************************************************************************************** ;**** ISRs() : 中斷服務程式 ;**** ;*************************************************************************************** Hi_ISRs bcf PIR1, TMR1IF ; Clear Timer1 Interrupt flag ; movlw (.65536-TMR1_VAL)/.256 ; Calcute the MSB value for the Timer1 movwf TMR1H movlw (.65536-TMR1_VAL)%.256 ; Calcute the LSB value for the Timer1 movwf TMR1L retfie FAST ; Return with shadow register ; END
發表於: 2006/10/19 16:38
|
|||
|