Re: 組語變數可以這樣用嗎 ?
|
||||
---|---|---|---|---|
中級會員
|
'MPASMㄧ天講義' 看的霧煞煞 , 因為實在抽不出時間上課 .
謝謝 Ryang !
發表於: 2006/10/19 11:48
|
|||
|
Re: 組語變數可以這樣用嗎 ?
|
||||
---|---|---|---|---|
中級會員
|
願聞其詳 ! 請指教 !
變數該如何宣告呢 ?
發表於: 2006/10/18 15:14
|
|||
|
組語變數可以這樣用嗎 ?
|
||||
---|---|---|---|---|
中級會員
|
我用pic18f452及ICD2 想寫組語時發現變數SecL一直是常數,
同時不知到 if...else...endif 這樣做是否有效 . 以下是發展中程式 , SecL 代表秒數的個位數, 超過 9 時 秒數的 十位要進位 , 但是 SecL 一直不變, 是何原因, 請先進們指教 !
;**************************************************************************
發表於: 2006/10/18 9:04
|
|||
|
誰有W401 ex2,3,4,5 的標準答案 ?
|
||||
---|---|---|---|---|
中級會員
|
W401 Exercise 內 ex2,3,4,5 問號部份填不出來
不知誰有asm 程式 ? ( 我用 pic18f452 + 外部 8MHz crystal ) 以下是自作實習板及 自己填的ex2及ex3 程式, 請指教 ;************************************************************************** ;**** File : Ex2.asm ;**** 設計一個一秒鐘讓 PORTD 的 LED 自動加一的程式 ;************************************************************************** list p = 18F452 #include <p18F452.inc> ; Temp EQU b'00000001' TMR1_VAL EQU .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 ; Null_Loop goto Null_Loop ; Do loop here ; ;*********************************************************************** ;**** Initial the PORTD for the output port ;*********************************************************************** Init_IO movlw 0FFH movwf ADCON1 movlw 0FFH movwf TRISC clrf TRISD movlw b'00000001' movwf PORTD 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 ;*************************************************************************************** ;**** 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 addwfc PORTD,Temp ; infsnz PORTD ; PORTD = PORTD + 1; retfie FAST ; Return with shadow register ; END ;************************************************************************** ;**** File : Ex3.asm ;**** Read VR1 with the analog voltage input and convert the voltage ;**** to 8-bit digital on LED ;************************************************************************** list p = 18F452 include <p18F452.inc> ; C_Hold_Delay equ 0x20 ; ;******************************************************************** ;**** 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_AD ; AD_Loop rcall C_Hold_Time ; Delay 50uS for the sample hold time bsf ADCON0, GO ; Start convert the A/D nop ; Nop Check btfsc ADCON0, GO ; Check the A/D completed ? goto Check ; A/D isn't completed yet, continut check. swapf ADRESH, w ; save the a/D result with MSB to ; andlw 0x0F movwf PORTD nop rcall C_Hold_Time goto AD_Loop ;*********************************************************************** ;**** Initial the PORTD for the output port ;*********************************************************************** Init_IO: clrf TRISD clrf PORTD ; bsf TRISA,RA0 ; Set RA0 with input mode ; return ;*********************************************************************** ;**** Initial A/D Converter ;*********************************************************************** Init_AD: movlw b'00001110' ; Left Justified, Fosc/32 movwf ADCON1 ; Set AN0 for the Analog Input ; movlw b'10000001' ; Fosc/32 , Select AN0 channel movwf ADCON0 ; A/D on ; bsf PIE1,ADIE ; Disable interrupt of A/D return ; ; ;*********************************************************************** ;**** Sample Hold (Charge) time delay routine (50uS) ;*********************************************************************** C_Hold_Time: movlw 020H movwf C_Hold_Delay nop decfsz C_Hold_Delay,F bra $-4 return ;*************************************************************************************** ;**** ISRs() : High priority interrupt service routine ;**** ;*************************************************************************************** Hi_ISRs retfie FAST ; Return with shadow register ; END
發表於: 2006/7/17 11:33
|
|||
|
Re: 自己作demo board 就是不通
|
||||
---|---|---|---|---|
中級會員
|
ok , 只用 22pF , 結果如下.
依圖作的結果如下( Configuration bit 設為 HS ) MPLAB ICD 2 Ready Programming Target... ...Validating configuration fields ...Erasing Part ...Programming Program Memory (0x0 - 0x2F) ...Loading DebugExecutive ...Programming DebugExecutive ...Programming Debug Vector ...Programming RSBUG Verifying... ...Program Memory ...Debug Executive ...Debug Vector ...Verify Succeeded Programming Configuration Bits .. Config Memory Verifying configuration memory... ...Verify Succeeded Connecting to debug executive ICD0083: Debug: Unable to enter debug mode. Please double click this message for more information. MPLAB ICD 2 Ready 還是卡住 !!! *************** Crystal 改 8Mhz 就 解決了!
發表於: 2006/6/30 9:43
|
|||
|
Re: 自己作demo board 就是不通
|
||||
---|---|---|---|---|
中級會員
|
我用的是 33p 2 個 加上 10MHz crystal .
是否有電路圖可以剪來參考, 我想只作一片含括MCLR 外部振盪器 及電話接頭 的最小功能實驗板 ( LCD , LED , sensor 等 考慮 外接 ) , 謝謝 .
發表於: 2006/6/30 9:03
|
|||
|
Re: 自己作demo board 就是不通
|
||||
---|---|---|---|---|
中級會員
|
已設為 HS , 不過晚上回家後會再檢查看看 , 謝謝 .
還是不通 , 改了一些電路 , 全掛了 . 只好再重作一塊板子了 . 不管如何 , 仍然謝謝各位的指導 .
發表於: 2006/6/27 9:28
|
|||
|
Re: 自己作demo board 就是不通
|
||||
---|---|---|---|---|
中級會員
|
好的 , 晚一點 會剪下, 先請各位休息 , 我再對一對線路圖 (我是
依照 PIC18F452 C Advance Training Board 作的 ) Connecting to MPLAB ICD 2 ...Connected Setting Vdd source to target Target Device PIC18F452 found, revision = b5 ...Reading ICD Product ID Running ICD Self Test ...Passed MPLAB ICD 2 Ready Resetting Target MPLAB ICD 2 Ready Programming Target... ...Validating configuration fields ...Erasing Part ...Programming Program Memory (0x0 - 0x2F) ...Loading DebugExecutive ...Programming DebugExecutive ...Programming Debug Vector ...Programming RSBUG Verifying... ...Program Memory ...Debug Executive ...Debug Vector ...Verify Succeeded Programming Configuration Bits .. Config Memory Verifying configuration memory... ...Verify Succeeded Connecting to debug executive ICD0083: Debug: Unable to enter debug mode. Please double click this message for more information. MPLAB ICD 2 Ready
發表於: 2006/6/26 17:17
|
|||
|
Re: 自己作demo board 就是不通
|
||||
---|---|---|---|---|
中級會員
|
RB6 , RB7 僅用於 ICD2 電話線的 第2,3 腳 (PGC 及 PGD )
發表於: 2006/6/26 16:15
|
|||
|