• slider image 514
  • slider image 516
  • slider image 517
  • slider image 518
  • slider image 519
:::


Browsing this Thread:   2 Anonymous Users






Re: pic16f877程式不太懂
#3
版主
版主


查看用戶資訊
右邊的連結友一些 PIC 的中文書可以參考。建議你可以先讀一下 W100 的教育訓練課程或到 Microchip 上一下 RTC 的課。

http://www.microchip.com.tw/modules/w ... nglefile.php?cid=4&lid=24

發表於: 2009/11/27 11:35
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: pic16f877程式不太懂
#2
資深會員
資深會員


查看用戶資訊
組語看不懂 建議你買本書來K吧~~

訪間有很多PIC16F877的書~~~

看完 你就懂了 XD

發表於: 2009/11/27 9:26
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


pic16f877程式不太懂
#1
新會員
新會員


查看用戶資訊
LIST P=16F877, R=DEC
#INCLUDE P16F877.INC

CBLOCK 0X20
ENDC


CBLOCK
TEMP0
AAH
AAL
DR
OLD_DR
TEMPH
TEMPL
CARRY
;
TEMP01
AAH1
AAL1
DR1
OLD_DR1
TEMPH1
TEMPL1
CARRY1
AH1
AL1
ENDC

CBLOCK
R0_DLY5mS, R1_DLY5mS
ENDC

CBLOCK
R0_DLY0_1S, R1_DLY0_1S, R2_DLY0_1S
ENDC

ORG 0
NOP
MAIN:
BANKSEL TEMP0
MOVLW D'0'
MOVWF TEMP0
BANKSEL AAH
MOVLW D'0'
MOVWF AAH
BANKSEL AAL
MOVLW D'0'
MOVWF AAL

;BANKSEL OLD_DR
;MOVLW D'0'
;MOVWF OLD_DR


BANKSEL TRISD
MOVLW B'11111101'
MOVWF TRISD

BANKSEL ADCON1
MOVLW B'00001001'
MOVWF ADCON1

BANKSEL ADCON0
MOVLW B'10001001'
MOVWF ADCON0

BANKSEL PR2
MOVLW H'FF'
MOVWF PR2
BCF TRISC,2
BANKSEL CCP1CON
MOVLW B'00001111'
MOVWF CCP1CON
MOVLW B'00000101'
MOVWF T2CON
CALL DLY5mS

MAIN1:
BSF ADCON0,GO ; start a/d converting
MAIN2:
BTFSC ADCON0,GO ; a/d convertion finished?
GOTO MAIN2
MOVF ADRESH,W ;LEFT-JUSTFIED READ AD
MOVWF AAH
MOVF ADRESL,W
MOVWF AAL
BTFSC AAH,7
GOTO CW
GOTO CCW
CW:
BANKSEL CCPR1L
MOVLW B'11111111'
MOVWF CCPR1L
BSF CCP1CON,5
BSF CCP1CON,4
MOVLW B'11111111'
MOVWF TEMPH
MOVLW B'11000000'
MOVWF TEMPL
MOVF AAL,W ;(AAH,AAL)=(10000000,00000000)-(AAH,AAL)
SUBWF TEMPL,1
RLF TEMP0,W
SUBWF TEMPH,1
MOVF AAH,W
SUBWF TEMPH,1
MOVF TEMPL,W ;(AAH,AAL)=(TEMPH,TEMPL)
MOVWF AAL
MOVF TEMPH,W
MOVWF AAH
MOVF AAL,W
ADDWF AAL,1
RLF TEMP0,W
MOVWF CARRY
MOVF AAH,W
ADDWF AAH,W
ADDWF CARRY,W
MOVWF AAH
BCF TRISD,1

GOTO CONT2
CCW:


MOVLW B'10000000'
MOVWF TEMPH

MOVLW B'00000000'
MOVWF TEMPL
MOVF AAL,W ;(AAH,AAL)=(10000000,00000000)-(AAH,AAL)
SUBWF TEMPL,1
RLF TEMP0,W
SUBWF TEMPH,1
MOVF AAH,W
SUBWF TEMPH,1
MOVF TEMPL,W ;(AAH,AAL)=(TEMPH,TEMPL)
MOVWF AAL
MOVF TEMPH,W
MOVWF AAH
MOVF AAH,W
ADDWF AAH,1
BCF TRISD,1
CALL DLY0_1S

BANKSEL OLD_DR ;測試是否有進入CCW
MOVLW D'50'
MOVWF OLD_DR

CONT2: MOVF DR,W
;MOVWF OLD_DR
MOVF AAH,W
MOVWF CCPR1L
BCF CCP1CON,5
BCF CCP1CON,4
BTFSC AAL,7
BSF CCP1CON,5
BTFSC AAL,6
BSF CCP1CON,4


MAIN_1:
BANKSEL TEMP01
MOVLW D'0'
MOVWF TEMP01
BANKSEL AAH1
MOVLW D'0'
MOVWF AAH1
BANKSEL AAL1
MOVLW D'0'
MOVWF AAL1

BANKSEL OLD_DR1
MOVLW D'0'
MOVWF OLD_DR1


BANKSEL TRISD
MOVLW B'11111110'
MOVWF TRISD

BANKSEL ADCON1
MOVLW B'00001001'
MOVWF ADCON1

BANKSEL ADCON0
MOVLW B'10010001'
MOVWF ADCON0

BANKSEL PR2
MOVLW H'FF'
MOVWF PR2
BCF TRISC,1
BANKSEL CCP2CON
MOVLW B'00001111'
MOVWF CCP2CON
MOVLW B'00000101'
MOVWF T2CON
CALL DLY5mS

MAIN1_1:
BSF ADCON0,GO ; start a/d converting
MAIN2_1:
BTFSC ADCON0,GO ; a/d convertion finished?
GOTO MAIN2_1
MOVF ADRESH,W ;LEFT-JUSTFIED READ AD
MOVWF AAH1
MOVF ADRESL,W
MOVWF AAL1
BTFSC AAH1,7
GOTO CW1
GOTO CCW1
CW1:

BANKSEL CCPR2L
MOVLW B'11111111'
MOVWF CCPR2L
BSF CCP2CON,5
BSF CCP2CON,4
MOVLW B'11111111'
MOVWF TEMPH1
MOVLW B'11000000'
MOVWF TEMPL1
MOVF AAL1,W
SUBWF TEMPL1,1
RLF TEMP01,W
SUBWF TEMPH1,1
MOVF AAH1,W
SUBWF TEMPH1,1
MOVF TEMPL1,W
MOVWF AAL1
MOVF TEMPH1,W
MOVWF AAH1
MOVF AAL1,W
ADDWF AAL1,1
RLF TEMP01,W
MOVWF CARRY1
MOVF AAH1,W
ADDWF AAH1,W
ADDWF CARRY1,W
MOVWF AAH1
BSF TRISD,0

GOTO CONT2_1
CCW1:
MOVLW B'10000000'
MOVWF TEMPH1

MOVLW B'00000000'
MOVWF TEMPL1
MOVF AAL1,W ;(AAH,AAL)=(10000000,00000000)-(AAH,AAL)
SUBWF TEMPL1,1
RLF TEMP01,W
SUBWF TEMPH1,1
MOVF AAH1,W
SUBWF TEMPH1,1
MOVF TEMPL1,W ;(AAH,AAL)=(TEMPH,TEMPL)
MOVWF AAL1
MOVF TEMPH1,W
MOVWF AAH1
MOVF AAH1,W
ADDWF AAH1,1
BCF TRISD,0
CALL DLY0_1S

CONT2_1:MOVF DR1,W
MOVWF OLD_DR1
MOVF AAH1,W
MOVWF CCPR2L
BCF CCP2CON,5
BCF CCP2CON,4
BTFSC AAL1,7
BSF CCP2CON,5
BTFSC AAL1,6
BSF CCP2CON,4
GOTO MAIN

DLY5mS:
MOVLW 20
MOVWF R1_DLY5mS
DLY5m1:
MOVLW 50
MOVWF R0_DLY5mS
DLY5m2:
NOP
DECFSZ R0_DLY5mS
GOTO DLY5m2

DECFSZ R1_DLY5mS
GOTO DLY5m1
RETURN


;
DLY0_1S:
MOVLW 10 ; 1*10mS=0.01S
MOVWF R2_DLY0_1S
DLY0_1S3:
MOVLW 10 ; 10*0.1mS=1mS
MOVWF R1_DLY0_1S
DLY0_1S2:
MOVLW 100 ; 100*1uS=0.1mS
MOVWF R0_DLY0_1S
DLY0_1S1:
NOP ; 1ck
DECFSZ R0_DLY0_1S ; 1ck
GOTO DLY0_1S1 ; 2ck(totaly 4 ck=1uS)
;
DECFSZ R1_DLY0_1S
GOTO DLY0_1S2
;
DECFSZ R2_DLY0_1S
GOTO DLY0_1S3
RETURN
END

這個程式我接LED之後 我把可變電組接到RA0上

轉了之後發現RC1和RC2都有輸出PWM

可變R從0轉到底變化是

RC1是大約到2.5V左右就跳回0V左右在跳到2.5V
RC2是轉到某個值之後閃爍閃爍
這樣程式要改變這個燈的閃爍方式要從哪邊改呢??

發表於: 2009/11/26 20:30
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------