Re: 請問如何在PIC16F877上面讀取出晶片裡面的程式?
|
||||
---|---|---|---|---|
初級會員
|
MICROCHIP
MPLAB 你指燒錄器的是這個嗎?
發表於: 2005/8/24 14:10
|
|||
|
关于变频器如何实现电机正反转?
|
||||
---|---|---|---|---|
新會員
|
请教大家:在变频器矢量控制中,电机的转速是不通过调整转矩电流间接调整的?如果是那样的话该如何实现电机的正反转呀?
谢谢大家了!
發表於: 2005/8/24 11:23
|
|||
|
Re: pic16f877問題請教~棘手~
|
||||
---|---|---|---|---|
高級會員
|
你應該規劃出硬體電路
假設你的系統電壓是5V 你可以在ADC 輸入端設計一個分壓電路把5V分壓成2.5V 這軟體簡單但是你沒有說明硬體如何設計這。。。。。叫人很難幫你 請在明述你的需求或者你的狀況例如code 貼上來或許可以比較快可以幫你 例如:你是用組合語言或者C 如果是C是哪一家compiler 是hitech CCS或IAR或。。。。。。
發表於: 2005/8/24 10:39
|
|||
|
Re: 請問力蒲48燒錄問題
|
||||
---|---|---|---|---|
資深會員
|
我公司也是Leap-48USB型
當初在用也是問題很多因為說明書太簡單 Reverse=Enable or Disable==>我都是Enable因為此項好像用不到 ID0..ID1..ID2..ID3===>這是有燒EEPROM時才用的到 震盪選擇 LVP...等===>LVP? Oscillator : 振盪器工作模式選擇 RC-OSC as RA6:以外接RC 為振盪 器元件,RA6 為一標準的I/O 腳功能 HS-PLL Enable:外接振盪器或石英晶 體為振盪元件,並啟動內部4 倍頻電 路為振盪來源,4 倍頻 PLL 電路只有 在此模式下才會動作 EC-OSC2 as RA6:採用外部振盪器從 OCS1 腳輸入振盪源,RA6 為一標準 的I/O 腳功能 EC-OSC2 as Clock Out:採用外部振盪從OCS1 腳輸入振盪源,RA6 變 為OCS2 的振盪頻率除4 後的輸出腳(Fosc/4) RC:RC 振盪模式(OSC2 輸出為 Fosc/4) HS:外接較高頻率石英振盪器(>4MHz~20MHz)或一般的陶瓷振盪器 XT:外接石英振盪器(>200KHz~4MHz) LP:外接低頻率石英振盪器(32KHz~200KHz) 如果要讓18F452 工作在40MHz 的速度只有用10MHz 的石英晶體及選用 HS–PLL Enable 模式方可達到,18F452 是無法直接振在40MHz 的。 這是要配合MPLAB IDE裡面選項 兩個都要選擇一樣嗎===>YES
發表於: 2005/8/24 9:13
|
|||
==== ^^ ^^ ====
|
||||
|
c18 字串函數的 :Warning [2054]
|
||||
---|---|---|---|---|
資深會員
|
#include <p18f252.h>
#include <string.h> const rom far char RomMsg1[]="PIC18F252"; void main(void) { unsigned char len; len=strlenpgm(&RomMsg1); } 如上面程式, 編譯時都會顯示 Warning [2054] suspicious pointer conversion 但是執行結果是正榷的 請問出現那個警告正常現象嗎? 有無方法消除(看起來很礙眼) ??
發表於: 2005/8/24 8:44
|
|||
|
是不是程式記憶體換頁的問題
|
||||
---|---|---|---|---|
新會員
|
各位先進們討教了...
我寫了一個密碼的程式,因為使用OTP IC,為了結省IC能重複使用, 將原本燒過的程式部分用NOP 蓋掉 來燒錄新的程式,程式短一點狀況下重複使用都正常,但是當程式覆蓋到260行時燒出來的動作就出現問題,檢查發現當我執行到327行時有一個查表的動作,如果當工作站存器內容是"1"加上程式計數器當時的位置應該是跳到329行,但是他卻跳到了48行,我看了PLC的位置是他跳的位置沒錯...可使卻不是我想要他跳的位置...是不是程式記憶體換頁的問題,我該怎麼做能?? 再請教一個問題,16C622有2K的程式記憶體位置,但他卻只有兩個BANK可以切換,這樣怎麼夠2K切換呢? 不好意思...初學 一堆狀況...麻煩各位了!! ; 2005 08/14 密碼比較 LIST P=16C622 include "P16C622.inc" KEY1 EQU 20H KEY2 EQU 21H KEY3 EQU 22H KEY4 EQU 23H password EQU 30H password2 EQU 31H COUN1 EQU 25H ;密碼順位 COUN2 EQU 26H ;比對密碼順位 BTU_DELY EQU 2DH ;調整等待按鍵多久沒按後清除參數 READ1 EQU 27H ORG 0X00 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP ;==================================== ;初值設定 ;==================================== CLRF PORTA CLRF PORTB BSF STATUS,RP0 ;置第1檔頁 MOVLW 0x00 ; RA4-RA0 暫為輸出,可以改變 MOVWF TRISA ;暫存器內容模擬輸入狀態 CLRF TRISB ;設PORTB 為輸出 BCF STATUS,RP0 ;置第0檔頁 MOVLW B'00000111' ; 設為數位輸入 MOVWF CMCON GOTO MAIN ;================================ ; 6秒延遲 ;================================ DELAY CLRF 2BH CLRF 2CH MOVLW 0FH MOVWF BTU_DELY DEL2 GOTO READ ;檢查輸入 DEL2_2_1 DECFSZ 2BH,F GOTO DEL2 DECFSZ 2CH,F GOTO DEL2_2_1 DECFSZ BTU_DELY,F GOTO DEL2_2_1 RETURN ;======================================= ; ;=============================================== MAIN CLRF COUN1 CLRF KEY1 ;清除輸入密碼= CLRF KEY2 ; = CLRF KEY3 ; = CLRF KEY4 ; <==== CLRF COUN2 ; 密碼比對次數計數 CALL DELAY ;呼叫六秒延遲 GOTO MAIN ;六秒到,沒有按鍵,重置狀態等待輸入按鍵 ;======================================== ; 密碼讀入 ;======================================== READ BTFSS PORTA,4 GOTO DEL2_2_1 ;沒有按鍵回到BTU_DELAY 6秒延遲 MOVF PORTA,W ; 先存入READ1暫存器= MOVWF READ1 ; <======= BCF READ1,4 ;清除按鍵檢測位元 VT ;============ keyEnter ;比對密碼是否為"井"鍵 MOVF READ1,W XORLW 0x0C ;比對是否為"井"鍵 BTFSC STATUS,Z ;輸入不是"井" 跳去存輸入密碼 GOTO EnterOk ;比對密碼 BTFSC COUN1,2 ;檢查四個密碼是否已經輸入, GOTO READ ;以輸入四個密碼,等待"井"號 ;================================== MOVF COUN1,W INCF COUN1,F ; 輸入次數加一 ADDWF PCL,F ;程式累加器 + WF GOTO KEYIN1 ;跳到對應的位置存入 GOTO KEYIN2 ; GOTO KEYIN3 ; GOTO KEYIN4 ; ;GOTO keyEnter ; 跳到比對密碼 KEYIN1 MOVF READ1,W MOVWF KEY1 CALL DELAY_2 GOTO READ KEYIN2 MOVF READ1,W MOVWF KEY2 CALL DELAY_2 GOTO READ KEYIN3 MOVF READ1,W MOVWF KEY3 CALL DELAY_2 GOTO READ KEYIN4 MOVF READ1,W MOVWF KEY4 CALL DELAY_2 GOTO READ ;========================================= ; 組合輸入的密碼為兩個byte ;======================================= EnterOk ;是"井"跳去組合密碼 SWAPF KEY1,W ADDWF KEY2,W MOVWF password SWAPF KEY3,W ADDWF KEY4,W MOVWF password2 ;============================ ; codecompare ;============================ codecompare MOVF COUN2,W ;比對產品組計數 CALL CodCoun1 ;跳到對應的產品密碼組別 XORWF password,W BTFSC STATUS,Z GOTO NEXTCODE ;RETURN 第一組密碼比對正確則跳去比對第二組 ERRORCODE INCF COUN2,F ;不是第一產品密碼,加一,比對下一個 GOTO codecompare NEXTCODE MOVF KEY2,W ;將第二組密碼與輸入的第二組密碼比對 XORWF password2,W BTFSS STATUS,Z GOTO ERRORCODE ;第二組密碼與輸入錯誤,比對下一個產品密碼 CLRF PORTB INCF COUN2,W MOVWF PORTB GOTO MAIN CodCoun1 ;跳到對應的產品密碼 ADDWF PCL,F ;程式累加器 + WF GOTO codes1 GOTO codes2 GOTO codes3 GOTO MAIN ;三組內建密碼比對都錯誤表示輸入碼錯誤,跳回重新數入 ;======================================== ; 密碼 ;======================================== codes1 MOVLW 094H ;鐵捲門2 MOVWF KEY2 ;將密碼先移到KEY2,等待做比對 RETLW 066H ;鐵捲門1 codes2 MOVLW 092H ;汽車2 MOVWF KEY2 RETLW 063H ;汽車1 codes3 MOVLW 055H ;冷氣2 MOVWF KEY2 RETLW 060H ;冷氣1 ;================================= ; 200mS 延遲 ;================================= DELAY_2 BTFSC PORTA,4 ;等待按鍵放掉 GOTO $-1 RETURN END
發表於: 2005/8/24 8:06
|
|||
|
Re: 我的BANK怎麼了?
|
||||
---|---|---|---|---|
新會員
|
不好意思!!
我已經在之前的討論內容早找到解答....如下 Re: 16F628 與 16F628A MPASM 的提示有三種 : 1. Error : 程式有嚴重的錯誤導致 MPASM 無法翻譯,這時一定要找出錯誤出來 2. Warning : 程式被檢測出重要的錯誤,可能導致程式執行上的錯誤,最好將錯誤找出來修正 3. Message : 只是訊息的通知,確定你已經按規定設定了即可。
發表於: 2005/8/24 0:16
|
|||
|
我的BANK怎麼了?
|
||||
---|---|---|---|---|
新會員
|
各位先進們討教了: 以下是我程式我再編譯後出現這樣的一段訊息: "Message[302] D:\PIC PROGRAM\L-RMOVE.ASM 11 : Register in operand not in bank 0. Ensure that bank bits are correct. " 但是我的BANK並沒有切錯啊 !!傷腦筋!! ; 2005 08/05 LED 左右移 測試ok LIST P=16C622 include "P16C622.inc" COUNTER EQU 20H ORG 0X00 MAIN CLRF PORTB BSF STATUS,RP0 ;置第1檔頁 CLRF TRISB ;設PORTB 為輸出 BCF STATUS,RP0 ;置第0檔頁 MOVLW b'00000111' MOVWF CMCON ; 設porta為數位輸入 BSF PORTB,0 ;輸出第0位元"1" BCF STATUS,C ;設定轉入為"0" ;========================================= initial CALL scan LL2 CALL DELAY RLF PORTB,F DECFSZ COUNTER ,F GOTO LL2 CALL scan RRR CALL DELAY RRF PORTB,F DECFSZ COUNTER,F GOTO RRR GOTO initial ;=============================== scan MOVLW 03H MOVWF COUNTER RETURN ;=============================== DELAY MOVLW 0xFF MOVWF 22H CLRF 23H DEL2 DECFSZ 23H,F GOTO DEL2 DECFSZ 22H,F GOTO DEL2 RETURN END
發表於: 2005/8/23 23:57
|
|||
|
Re: 關於USB001的課程_USB Driver的問題
|
||||
---|---|---|---|---|
管理員
|
不知道 LAB TOOL 48XP 對 Configuration bits 的設定是否能由 .hex 檔中的資訊直接匯入 ?
另外須注意的是在 Configuration bits 的設定中要做一些小修改. >> 96 MHZ PLL Prescaler 需要設為 Divide by 6 (24 Mhz) 以符合 PPP013 的 Oscillator 設定. 如果還有問題 , 打 0800717718 一起討論一下吧 :) Best Regards,
發表於: 2005/8/23 23:44
|
|||
|