|
Re: 關於使用 internal oscillator
|
||||
|---|---|---|---|---|
|
資深會員
![]()
|
參照:
關於你的 CONFIG 裡面並沒有OSC的設定 這是PIC18 CONFIG 依照裡面的指示 去設定一下OSC 這樣應該就會有你要的結果吧
發表於: 2007/12/14 16:38
|
|||
|
||||
|
Re: ICD2無法連線
|
||||
|---|---|---|---|---|
|
資深會員
![]()
|
我的回答有解決你的問題
我很高興 ^^ 不過 妳是用我上述哪個解決的 我很好奇 ~~~
發表於: 2007/12/14 10:11
|
|||
|
||||
|
Re: 30f4011 的case的語法
|
||||
|---|---|---|---|---|
|
資深會員
![]()
|
右邊連結=> 中文參考書 裡面最後一本
就是dsPIC30F4011的中文書
發表於: 2007/12/14 9:44
|
|||
|
||||
|
Re: ICD2無法連線
|
||||
|---|---|---|---|---|
|
資深會員
![]()
|
請問 妳有檢查電腦裡面有沒有抓到ICD2 ??(裝置管理員裡)
如果有抓到ICD2 還是出現這個訊息的話 有以下的可能: 1.你重複開啟MPLAB (就是開啟兩個以上MPLAB) 2.你把ICD2 USB接頭拔除 再重新插過 3.系統重開 .... 再不行 ~~ 就是有可能 妳的ICD2出問題了 不過這可能性極小 因為ICD2正常使用下很耐用的~~~
發表於: 2007/12/13 19:47
|
|||
|
||||
|
Re: 關於App025的LCD
|
||||
|---|---|---|---|---|
|
資深會員
![]()
|
參照:
您好 關於你所提供的程式 裡面的設定PORE ,TRISCE 我都有改過 RS, RW ,E ; 我上面PO的那個程式 就是APP001-WORKSHOP W201的範例程式 裡面的初始設定 關於PORTE TRISE 我也都改過 ~~ 跟本網站上所提供的的16F877_LCD範例程式 裡面設定有小差異 ; 只是我怎樣試, LCD都不能正常顯示出來 所以我才會問~~~ 主程式我都沒改~~ 只是 也真的不知道問題到底出在哪 >"<
發表於: 2007/12/13 19:34
|
|||
|
||||
|
Re: 關於App025的LCD
|
||||
|---|---|---|---|---|
|
資深會員
![]()
|
沒人知道這檔案錯誤在哪嗎 ???
有人知道嗎 幫我解答一下 >"<
發表於: 2007/12/13 15:43
|
|||
|
||||
|
Re: 請問實驗版問題
|
||||
|---|---|---|---|---|
|
資深會員
![]()
|
關於你的問題
基本上 MCU 不具備DSP功能 不知道你是要用DSP功能的PIC 還是一般MCU的PIC? 我剛剛查了 一下PIC A/D解析度最多到12BIT in DSC dsPIC30F3014,dsPIC30F4013 ~~ 妳要實驗版能用的 就要是DIP包裝的 最好是DIP-40PIN (不然就要用轉接座才可以使用) 基本上 PIC系列都可以使用MPLAB來支援 除非是新品 ^^
發表於: 2007/12/11 22:56
|
|||
|
||||
|
Re: PIC18F4550的USB怎麼開始用?
|
||||
|---|---|---|---|---|
|
資深會員
![]()
|
請問 台南OR高雄 有可能會開USB的RTC嗎?
還是只會開在台北 @@?
發表於: 2007/12/11 19:05
|
|||
|
||||
|
Re: 關於App025的LCD
|
||||
|---|---|---|---|---|
|
資深會員
![]()
|
我用W201裡面的(LAB_ANS\lcd.asm)設定檔
主程式也是用用W201範例裡的(LAB_ANS\lab2.asm) (W201 is FOR APP001) 然後依照APP025的設定 更改如下 MCU PIC16F877-20/P ICD2 但 燒錄後 LCD只出現第一排的方塊 只有方塊 = = 請問LCD 定義檔設定錯在哪 ? ;************************************************ ;* LCD.ASM * ;************************************************ ;* Contains subroutines to control an external * ;* lcd panel in 4-bit mode. These routines * ;* were designed specifically for the panel on * ;* the MCU201 workshop demo board, but should * ;* work with other LCDs with a HD44780 type * ;* controller. * ;* Routines include: * ;* - InitLCD to initialize the LCD panel * ;* - putcLCD to write a character to LCD * ;* - SendCmd to write a command to LCD * ;* - clrLCD to clear the LCD display * ;* - L1homeLCD to return cursor to line 1 home* ;* - L2homeLCD to return cursor to line 2 home* ;* - PutHexLCD to write a HEX Code to LCD * ;* - Hex2ASCII to convert 4 bits to ASCII Code* ;************************************************ ; list p=16f877 #include <p16f877.inc> ; ; Defines for I/O ports that provide LCD data & control ; PORTB.0 - PORTB.3 are Data Pins for LCD Module => PORTE,2 --> [E] : LCD operation start signal control ; PORTB.4 is E Control Signal for LCD => PORTE,0 --> [RS]: ; PORTB.5 is RS Control Signal for LCD => PORTE,1 --> [RW]: ; PORTC.2 is BackLight Control pin for LCD Module ; global InitLCD global putcLCD global clrLCD global L1homeLCD global L2homeLCD global SendCmd global PutHexLCD global Hex2ASCII ; LCD_DATA equ PORTD LCD_CNTL equ PORTD ; Defines for I/O pins that provide LCD control #define RS PORTE,0 #define RW PORTE,1 #define E PORTE,2 ; LCD Module commands DISP_ON EQU 0x00C ; Display on DISP_ON_C EQU 0x00E ; Display on, Cursor on DISP_ON_B EQU 0x00F ; Display on, Cursor on, Blink cursor DISP_OFF EQU 0x008 ; Display off CLR_DISP EQU 0x001 ; Clear the Display ENTRY_INC EQU 0x006 ; ENTRY_INC_S EQU 0x007 ; ENTRY_DEC EQU 0x004 ; ENTRY_DEC_S EQU 0x005 ; DD_RAM_ADDR EQU 0x080 ; Least Significant 7-bit are for address DD_RAM_UL EQU 0x080 ; Upper Left coner of the Display ; ; Directs linker to provide 4 variables in GPR memory UDATA Byte RES 1 Byte1 RES 1 Count RES 1 Count1 RES 1 W_BUFR RES 1 Hex_Bfr RES 1 ; PROG1 CODE ;******************************************************************* ;* The LCD Module Subroutines * ;* Command sequence for 2 lines of 5x16 characters * ;******************************************************************* InitLCD BANKSEL TRISD bcf TRISE,2 clrf TRISE movlw 0x0F ; Initialize inputs/outputs for LCD movwf TRISD BANKSEL LCD_DATA CLRF PORTE clrf LCD_DATA ; Clear LCD data & control bits ; movlw .50 ; Power=On delay 50mS Call Delay_MS ; movlw 0x02 ; Init for 4-bit interface call Send_4bit movlw .10 ; Delay 10 mS Call Delay_MS ; movlw b'00000011' ; Fully Initial LCD module call Send_4bit ; Sent '0011' data 4 time movlw .5 ; Delay 5mS Call Delay_MS movlw b'00000011' call Send_4bit call Delay_1MS ; Delay 1mS movlw b'00000011' call Send_4bit movlw b'00000010' call Send_4bit ; movlw b'00101000' ; Set 2 lines & 5 x 7 dots call SendCmd movlw DISP_ON ; Turn display on (0x0C) call SendCmd movlw ENTRY_INC ; Configure cursor movement call SendCmd movlw DD_RAM_ADDR ; Set writes for display memory call SendCmd return ; ;******************************************************************* ;*SendChar - Sends character to LCD * ;*This routine splits the character into the upper and lower * ;*nibbles and sends them to the LCD, upper nibble first. * ;******************************************************************* putcLCD banksel Byte movwf Byte ; Save WREG in Byte variable call Delay_1MS swapf Byte,W ; Write upper nibble first andlw 0x0f movwf LCD_DATA bsf RS ; Set for data bsf E ; Clock nibble into LCD bcf E movf Byte,W ; Write lower nibble last andlw 0x0f movwf LCD_DATA bsf RS ; Set for data bsf E ; Clock nibble into LCD bcf E return ; ;********************************************************************* ;* To put the HEX value to LCD Display ,, ;* High nibble first than Low nibble ;* Input : W Reg. ;********************************************************************* PutHexLCD banksel W_BUFR movwf W_BUFR ; Save W Register !! swapf W_BUFR,W ; High nibble first !! call Hex2ASCII call putcLCD ; movf W_BUFR,W call Hex2ASCII call putcLCD return ; ;****************************************************************** ;* Convert a low nibble to ASCII code ;* Input : W Reg. ;* Output: W Reg. ;****************************************************************** Hex2ASCII andlw 0x0f ; Mask Bit 4 to 7 movwf Hex_Bfr sublw .09 btfsc STATUS,C ; If W less than A (C=1) --> only add 30h goto Add_W_30 Add_W_37 movlw 0x37 goto Hex_cont Add_W_30 movlw 0x30 Hex_cont addwf Hex_Bfr,W ; The correct ASCII code for this char !! return ; ;******************************************************************* ;* SendCmd - Sends command to LCD * ;* This routine splits the command into the upper and lower * ;* nibbles and sends them to the LCD, upper nibble first. * ;******************************************************************* SendCmd banksel Byte movwf Byte ; Save WREG in Byte variable call Delay_1MS swapf Byte,W ; Send upper nibble first andlw 0x0f movwf LCD_DATA bcf RS ; Clear for command bsf E ; Clock nibble into LCD bcf E movf Byte,W ; Write lower nibble last Send_4bit andlw 0x0f movwf LCD_DATA bcf RS ; Clear for command bsf E ; Clock nibble into LCD bcf E return ; ;******************************************************************* ;* clrLCD - Clear the contents of the LCD * ;******************************************************************* clrLCD movlw CLR_DISP ; Send the command to clear display call SendCmd return ; ;******************************************************************* ;* L1homeLCD - Moves the cursor to home position on Line 1 * ;******************************************************************* L1homeLCD movlw DD_RAM_ADDR|0x00 ; Send command to move cursor to call SendCmd ; home position on line 1 return ;******************************************************************* ;* L2homeLCD - Moves the cursor to home position on Line 2 * ;******************************************************************* L2homeLCD movlw DD_RAM_ADDR|0x28 ; Send command to move cursor to call SendCmd ; home position on line 2 return ;******************************************************************* ;* Delay - Generic LCD delay (1.024mS @ 4MHz) * ;* Since the microcontroller can not read the busy flag of the * ;* LCD, a specific delay needs to be executed between writes to * ;* the LCD. * ;******************************************************************* Delay_1MS ; 2 cycles for call clrf Count ; 1 cycle to clear counter variable Dloop nop decfsz Count,F ; These two instructions provide a goto Dloop ; (256 * 3) -1 cycle count return ; 2 cycles for return ; ;******************************************************************* ;* Delay - 1mS base delay * ;* input : W Reg. * ;* * ;******************************************************************* Delay_MS movwf Count1 ; DLop1 call Delay_1MS decfsz Count1,F goto DLop1 return ; END
發表於: 2007/12/11 12:26
|
|||
|
||||