|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
本人剛學,請指出下面程序的錯誤...謝謝!! |
| 作者:蔣國偉 欄目:單片機 |
各位大俠: 本人剛開始學習PIC,自已想編一個(用的是16F877)由RB0口控制,RC0,1,2三口的輪流輸出.本人用MPLAB-ICD一步一步走就還可以連續(xù)運行就不行了.請各位幫忙指正一下.....謝謝!!! ;fan.asm include<P16f877.inc> ;*------------------------ count equ 20h ;*------------------ org 0 start clrf PORTC movlw 00h movlw b'00000001' movwf TRISB btfsc PORTB,0 goto start speed1 bsf STATUS,RP0 clrf TRISC bcf STATUS,RP0 movlw b'00000001' movwf PORTC btfsc PORTB,0 goto speed1 speed2 bsf STATUS,RP0 clrf TRISC bcf STATUS,RP0 movlw b'00000010' movwf PORTC btfsc PORTB,0 goto speed2 speed3 bsf STATUS,RP0 clrf TRISC bcf STATUS,RP0 movlw b'00000100' movwf PORTC btfsc PORTB,0 goto speed3 return end |
| 2樓: | >>參與討論 |
| 作者: km.xiong 于 2003/10/3 15:27:00 發(fā)布:
你清看門狗了嗎? |
|
| 3樓: | >>參與討論 |
| 作者: 蔣國偉 于 2003/10/3 15:41:00 發(fā)布:
怎樣清比較合理能標寫出來嗎?謝謝!!! 怎樣清比較合理能標寫出來嗎?謝謝!!! |
|
| 4樓: | >>參與討論 |
| 作者: km.xiong 于 2003/10/3 15:52:00 發(fā)布:
在溢出之前清掉就可以了,它的最小溢出時間是18ms 在溢出之前清掉就可以了,它的最小溢出時間是18ms |
|
| 5樓: | >>參與討論 |
| 作者: 蔣國偉 于 2003/10/3 15:54:00 發(fā)布:
它總在程序存儲器1F24的地址就停住了... |
|
| 6樓: | >>參與討論 |
| 作者: fxmxh 于 2003/10/4 16:25:00 發(fā)布:
改為: ;fan.asm include<P16f877.inc> ;*------------------------ count equ 20h ;*------------------ org 0 clrf PORTC start: clrwdt movlw b'00000001' movwf TRISB btfsc PORTB,0 goto start speed1 clrwdt bsf STATUS,RP0 clrf TRISC bcf STATUS,RP0 movlw b'00000001' movwf PORTC btfsc PORTB,0 goto speed1 speed2 clrwdt bsf STATUS,RP0 clrf TRISC bcf STATUS,RP0 movlw b'00000010' movwf PORTC btfsc PORTB,0 goto speed2 speed3 clrwdt bsf STATUS,RP0 clrf TRISC bcf STATUS,RP0 movlw b'00000100' movwf PORTC btfsc PORTB,0 goto speed3 goto start end |
|
| 7樓: | >>參與討論 |
| 作者: eeproom 于 2003/10/4 20:05:00 發(fā)布:
ERROR! 你們這樣的程序有問題的,PIC中等系列MCU將中斷入口定位在0x04h,你在從0x000入口后作一些初始化工作,必須在0x04之前跳過0x04。 ORG 0x00 nop ;留給ICD調(diào)試 clrwdt clrf PCLATH goto Main ; interrupt vector location ORG 0x04 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Main routine skip interrupt vecter address at 0x04. org 0x20 ;or other address Main ;Your routine. end ;具體情況請去參看mplab IDE\MCHIP_TOOLS\TEMPLATE\CODE\F877TEMP.ASM |
|
| 8樓: | >>參與討論 |
| 作者: dodome521 于 2003/10/5 10:30:00 發(fā)布:
bank 有問題 org 0 start clrf PORTC movlw 00h ;在此加 banksel TRISB movlw b'00000001' movwf TRISB ; banksel PORTB btfsc PORTB,0 goto start |
|
| 9樓: | >>參與討論 |
| 作者: 蔣國偉 于 2003/10/8 8:52:00 發(fā)布:
多謝,各位的指點.另外關于按鍵去抖動是何原理? 關于按鍵去抖動是何原理? main btfsc PORTB,0 ;\ goto $+6 ; \ call Delay ; 按鍵去抖動 btfsc PORTB,0 goto $+3 ; / call FMsel ;/ movwf PORTCB movf MODESELB,W ; movwf MODESEL ; call LongDelay |
|
| 10樓: | >>參與討論 |
| 作者: mcusales 于 2003/10/8 17:11:00 發(fā)布:
呵 我建議你先了解一下程序初始化設計,并找?guī)讉Mode程序參考。 oyadongxiao@163.com |
|
| 11樓: | >>參與討論 |
| 作者: 蔣國偉 于 2003/10/10 19:31:00 發(fā)布:
謝謝各位的指點.現(xiàn)確定為如下程序可在ICD上行了. ;fan.asm include<P16f877.inc> ;*------------------------ Count equ 20h Count1 equ 21h Count2 equ 22h ;*------------------ org 0x005 clrf PORTC start clrwdt movlw b'00000001' movwf TRISB btfsc PORTB,0 goto start call Delay btfsc PORTB,0 nop speed1 clrwdt bsf STATUS,RP0 clrf TRISC bcf STATUS,RP0 movlw b'00000001' movwf PORTC call Delay btfsc PORTB,0 goto speed1 call Delay btfsc PORTB,0 nop speed2 clrwdt bsf STATUS,RP0 clrf TRISC bcf STATUS,RP0 movlw b'00000010' movwf PORTC call Delay btfsc PORTB,0 goto speed2 call Delay btfsc PORTB,0 nop speed3 clrwdt bsf STATUS,RP0 clrf TRISC bcf STATUS,RP0 movlw b'00000100' movwf PORTC call Delay btfsc PORTB,0 goto speed3 call Delay btfsc PORTB,0 nop goto start ;*---------------- Delay clrf Count clrf Count1 movlw 0x01 movwf Count2 LDloop decfsz Count,f goto LDloop decfsz Count1,f goto LDloop decfsz Count2,f goto LDloop return end |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |