PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 16-12-2012, 12:29 PM   #16
kidmaster08
Đệ tử 2 túi
 
Tham gia ngày: Sep 2010
Bài gửi: 41
:
Ngồi nghịch ngợm viết chương trình cho việc đếm tần số sóng ngắn, các bạn thử xem con gì để sửa không nha. các bít cấu hình đã cấu hình trong mplab

Code:
 
 
PROCESSOR 16F877A
INCLUDE <P16F877A.INC>
 
    E EQU 0
    RS EQU 1
    RW EQU 2
    BUFF0 EQU 0X27
    BUFF1 EQU 0X28
    BUFF2 EQU 0X29
    BUFF3 EQU 0X31
    BUFF4 EQU 0X32
    BUFF5 EQU 0X33
    BUFF6 EQU 0X38
    BUFF7 EQU 0X39
    CNTW EQU 0X34
    CNT1 EQU 0X35
    CNT2 EQU 0X36
    WORKA EQU 0X41
    WORKB EQU 0X45
    CNTA EQU 0X42
    CNTB EQU 0X43
    CNTW1 EQU 0X43
    CNTW2 EQU 0X44
; BAT DAU CHUONG TRINH
    ORG 0X00 
    GOTO START
START
    BCF STATUS,RP1
    BSF STATUS,RP0
    MOVLW 0X00
    MOVWF TRISB
    CLRF PIE1
    MOVLW 0X00
    MOVWF TRISD
    MOVLW 0XFF
    MOVWF TRISC
    CLRF OPTION_REG
    BSF OPTION_REG,7
    BCF STATUS,RP0
 
    MOVLW 0X0E
    MOVWF T1CON ; THIET LAP THONG SO CHO BO DEM TMR1 : CHAN DEM TU RC0, HE SO CHIA =1, DEM KO DONG BO
    CLRF PIR1
 
;THIET LAP BAN DAU CHO LCD
    CALL WAITLCD
    BCF PORTB,RS
    MOVLW 0X38
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    BCF PORTB,RS
    MOVLW 0X01
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    BCF PORTB,RS
    MOVLW 0X0C
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
LOOP
    CLRF BUFF0
    CLRF BUFF1
    CLRF BUFF2
    CLRF BUFF3
    CLRF BUFF4
    CLRF BUFF5
    CLRF BUFF6
    CLRF BUFF7
    CLRF CNTA
    CLRF CNTB
    CLRF CNTW1
    CLRF WORKA
    CLRF WORKB
    CLRF CNTW2
    CLRF TMR1H
    CLRF TMR1L
    CLRF CNT1
    CLRF CNT2
    BCF PIR1,TMR1IF
    BSF T1CON,TMR1ON ; BAT DAU DEM
    NOP
    NOP
    NOP 
    NOP
    NOP
    NOP
    NOP
    NOP
NOP
    CALL TMRCHK 
    CALL TMRCHK
    CALL TMRCHK
    CALL TMRCHK
    CALL TMRCHK
    CALL TMRCHK
    CALL TMRCHK
    CALL TMRCHK
    CALL TMRCHK
    CALL TMRCHK
 
    BCF T1CON,TMR1ON 
    MOVF CNTW1,0 ; TAT BO DEM DE XU LY KET QUA DEM
    MOVWF CNTA
    MOVF CNTW2,0
    MOVWF CNTB
    MOVF TMR1H,0
    MOVWF CNT1
    MOVF TMR1L,0
    MOVWF CNT2
    BTFSS PIR1,TMR1IF
    GOTO HH0
    MOVLW 0XFF
    SUBWF CNTA,0
    BTFSC STATUS,Z ;CNTA DA BANG 255 HAY CHUA ?
    GOTO HH1
    INCF CNTA
    GOTO HH0
HH1 
    CLRF CNTA
    INCF CNTB
 
HH0 ; LUC NAY CNTA,CNTB LUU SO LAN TRAN, CNT1 VA CNT2 LUU TRONG TMR1H VA TMR1L
 
    MOVLW 0X02
    SUBWF CNTB,0
    BTFSC STATUS,C 
    GOTO OVER
    MOVLW 0X02
    SUBWF CNTB,0
    BTFSC STATUS,Z
    GOTO OVER
    BTFSS CNTB,0 ; BAT DAU VIET NHU CHUONG TRINH CU
    GOTO CD1
    MOVLW d'1'
    MOVWF BUFF0
    MOVLW d'6'
    MOVWF BUFF1
    MOVLW d'7'
    MOVWF BUFF2
    MOVLW d'7'
    MOVWF BUFF3
    MOVLW d'7'
    MOVWF BUFF4
    MOVLW d'2'
    MOVWF BUFF5
    MOVLW d'1'
    MOVWF BUFF6
    MOVLW d'6'
    MOVWF BUFF7
CD1
    BTFSS CNTA,7
    GOTO CD2
    MOVLW d'8'
    ADDWF BUFF1
    MOVLW d'3'
    ADDWF BUFF2
    MOVLW d'8'
    ADDWF BUFF3
    MOVLW d'8'
    ADDWF BUFF4
    MOVLW d'6'
    ADDWF BUFF5
    MOVLW d'0'
    ADDWF BUFF6
    MOVLW d'8'
    ADDWF BUFF7
CD2
    BTFSS CNTA,6
    GOTO CD3
    MOVLW d'4'
    ADDWF BUFF1,1
    MOVLW d'1'
    ADDWF BUFF2
    MOVLW d'9'
    ADDWF BUFF3
    MOVLW d'4'
    ADDWF BUFF4
    MOVLW d'3'
    ADDWF BUFF5
    MOVLW d'0'
    ADDWF BUFF6
    MOVLW d'4'
    ADDWF BUFF7
CD3
    BTFSS CNTA,5
    GOTO CD4
    MOVLW d'2'
    ADDWF BUFF1
    MOVLW d'0'
    ADDWF BUFF2
    MOVLW d'9'
    ADDWF BUFF3
    MOVLW d'7'
    ADDWF BUFF4
    MOVLW d'1'
    ADDWF BUFF5
    MOVLW d'5'
    ADDWF BUFF6
    MOVLW d'2'
    ADDWF BUFF7
CD4
    BTFSS CNTA,4
    GOTO CD5
    MOVLW d'1'
    ADDWF BUFF1
    MOVLW d'0'
    ADDWF BUFF2
    MOVLW d'4'
    ADDWF BUFF3
    MOVLW d'8'
    ADDWF BUFF4
    MOVLW d'5'
    ADDWF BUFF5
    MOVLW d'7'
    ADDWF BUFF6
    MOVLW d'6'
    ADDWF BUFF7
 
CD5
    BTFSS CNTA,3    
    GOTO CD6
    MOVLW d'5'
    ADDWF BUFF2
    MOVLW d'2'
    ADDWF BUFF3
    MOVLW d'4'
    ADDWF BUFF4
    MOVLW d'2'
    ADDWF BUFF5
    MOVLW d'8'
    ADDWF BUFF6
    MOVLW d'8'
    ADDWF BUFF7
 
CD6
    BTFSS CNTA,2
    GOTO CD7
    MOVLW d'2'
    ADDWF BUFF2
    MOVLW d'6'
    ADDWF BUFF3
    MOVLW d'2'
    ADDWF BUFF4
    MOVLW d'1'
    ADDWF BUFF5
    MOVLW d'4'
    ADDWF BUFF6
    MOVLW d'4'
    ADDWF BUFF7
CD7    
    BTFSS CNTA,1
    GOTO CD8
    MOVLW d'1'
    ADDWF BUFF2
    MOVLW d'3'
    ADDWF BUFF3
    MOVLW d'1'
    ADDWF BUFF4
    MOVLW d'0'
    ADDWF BUFF5
    MOVLW d'7'
    ADDWF BUFF6
    MOVLW d'2'
    ADDWF BUFF7    
CD8
    BTFSS CNTA,0
    GOTO CD9
    MOVLW d'6'
    ADDWF BUFF3
    MOVLW d'5'
    ADDWF BUFF4
    MOVLW d'5'
    ADDWF BUFF5
    MOVLW d'3'
    ADDWF BUFF6
    MOVLW d'6'
    ADDWF BUFF7
CD9
    BTFSS CNT1,7
    GOTO CD10
    MOVLW d'3'
    ADDWF BUFF3
    MOVLW d'2'
    ADDWF BUFF4
    MOVLW d'7'
    ADDWF BUFF5
    MOVLW d'6'
    ADDWF BUFF6
    MOVLW d'8'
    ADDWF BUFF7
CD10
    BTFSS CNT1,6
    GOTO CD11
    MOVLW d'1'
    ADDWF BUFF3
    MOVLW d'6'
    ADDWF BUFF4
    MOVLW d'3'
    ADDWF BUFF5
    MOVLW d'8'
    ADDWF BUFF6
    MOVLW d'4'
    ADDWF BUFF7
CD11
    BTFSS CNT1,5
    GOTO CD12
    MOVLW d'8'
    ADDWF BUFF4
    MOVLW d'1'
    ADDWF BUFF5
    MOVLW d'9'
    ADDWF BUFF6
    MOVLW d'2'
    ADDWF BUFF7
CD12
    BTFSS CNT1,4
    GOTO CD13
    MOVLW d'4'
    ADDWF BUFF4
    MOVLW d'0'
    ADDWF BUFF5
    MOVLW d'9'
    ADDWF BUFF6
    MOVLW d'6'
    ADDWF BUFF7
CD13 
    BTFSS CNT1,3
    GOTO CD14
    MOVLW d'2'
    ADDWF BUFF4
    MOVLW d'0'
    ADDWF BUFF5
    MOVLW d'4'
    ADDWF BUFF6
    MOVLW d'8'
    ADDWF BUFF7
CD14
    BTFSS CNT1,2
    GOTO CD15
    MOVLW d'1'
    ADDWF BUFF4
    MOVLW d'0'
    ADDWF BUFF5
    MOVLW d'2'
    ADDWF BUFF6
    MOVLW d'4'
    ADDWF BUFF7
CD15
    BTFSS CNT1,1
    GOTO CD16
    MOVLW d'5'
    ADDWF BUFF5
    MOVLW d'1'
    ADDWF BUFF6
    MOVLW d'2'
    ADDWF BUFF7
CD16
    BTFSS CNT1,0
    GOTO CD17
    MOVLW d'2'
    ADDWF BUFF5
    MOVLW d'5'
    ADDWF BUFF6
    MOVLW d'6'
    ADDWF BUFF7
CD17
    BTFSS CNT2,7
    GOTO CD18
    MOVLW d'1'
    ADDWF BUFF5
    MOVLW d'2'
    ADDWF BUFF6
    MOVLW d'8'
    ADDWF BUFF7
CD18
    BTFSS CNT2,6
    GOTO CD19    
    MOVLW d'6'
    ADDWF BUFF6
    MOVLW d'4'
    ADDWF BUFF7
CD19
    BTFSS CNT2,5
    GOTO CD20
    MOVLW d'3'
    ADDWF BUFF6
    MOVLW d'2'
    ADDWF BUFF7
CD20
    BTFSS CNT2,4
    GOTO CD21
    MOVLW d'1'
    ADDWF BUFF6
    MOVLW d'6'
    ADDWF BUFF7
CD21
    BTFSS CNT2,3
    GOTO CD22
    MOVLW d'8'
    ADDWF BUFF7
CD22
    BTFSS CNT2,2
    GOTO CD23
    MOVLW d'4'
    ADDWF BUFF7
CD23
    BTFSS CNT2,1
    GOTO CD24
    MOVLW d'2'
    ADDWF BUFF7    
CD24
    BTFSS CNT2,0
    GOTO CONVERT
    MOVLW d'1'
    ADDWF BUFF7
CONVERT
    MOVLW 0X0A
    SUBWF BUFF7,0
    BTFSS STATUS,C
    GOTO CR1
    MOVLW 0X0A
    SUBWF BUFF7,1
    INCF BUFF6
    GOTO CONVERT
CR1
    MOVLW 0X0A
    SUBWF BUFF6,0
    BTFSS STATUS,C
    GOTO CR2
    MOVLW 0X0A
    SUBWF BUFF6,1
    INCF BUFF5
    GOTO CR1
CR2
    MOVLW 0X0A
    SUBWF BUFF5,0
    BTFSS STATUS,C
    GOTO CR3
    MOVLW 0X0A
    SUBWF BUFF5,1
    INCF BUFF4
    GOTO CR2
CR3
    MOVLW 0X0A
    SUBWF BUFF4,0
    BTFSS STATUS,C
    GOTO CR4
    MOVLW 0X0A
    SUBWF BUFF4,1
    INCF BUFF3
    GOTO CR3
CR4
    MOVLW 0X0A
    SUBWF BUFF3,0
    BTFSS STATUS,C
    GOTO CR5
    MOVLW 0X0A
    SUBWF BUFF3,1
    INCF BUFF2
    GOTO CR4
CR5
    MOVLW 0X0A
    SUBWF BUFF2,0
    BTFSS STATUS,C
    GOTO CR6
    MOVLW 0X0A
    SUBWF BUFF2,1
    INCF BUFF1
    GOTO CR5
CR6
    MOVLW 0X0A
    SUBWF BUFF1,0
    BTFSS STATUS,C
    GOTO DOCKQ
    MOVLW 0X0A
    SUBWF BUFF1,1
    INCF BUFF0
    GOTO CR6
 
DOCKQ 
    MOVLW d'48'
    ADDWF BUFF0,1
    ADDWF BUFF1,1
    ADDWF BUFF2,1
    ADDWF BUFF3,1
    ADDWF BUFF4,1
    ADDWF BUFF5,1
    ADDWF BUFF6,1
    ADDWF BUFF7,1
    BCF PORTB,RS
    MOVLW 0X80
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #'.'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #'T'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #'A'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #'N'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #' '
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #'S'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #'O'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #' '
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #'C'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #'O'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
    MOVLW #'N'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #'G'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #' '
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
    MOVLW #'T'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #'A'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
    MOVLW #'C'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
 
 
    BCF PORTB,RS
    MOVLW 0XC2
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVF BUFF0,0
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
 
 
    MOVF BUFF1,0
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
    MOVLW #'.'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E 
    CALL WAITLCD
 
    MOVF BUFF2,0
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E 
    CALL WAITLCD
 
    MOVF BUFF3,0
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E 
    CALL WAITLCD
 
    MOVF BUFF4,0
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E 
    CALL WAITLCD
 
    MOVLW #' '
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E 
    CALL WAITLCD
 
    MOVF BUFF5,0
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E 
    CALL WAITLCD
 
 
    MOVF BUFF6,0
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E 
    CALL WAITLCD
 
 
    MOVF BUFF7,0
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E 
    CALL WAITLCD
 
    MOVLW #'M'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E 
    CALL WAITLCD    
 
    MOVLW #'H'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E 
    CALL WAITLCD
    MOVLW #'z'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E 
    CALL WAITLCD
    GOTO LOOP
 
TMRCHK ; XU LY THOI GIAN THUC, CAN THAN
    MOVLW d'189'
    MOVWF WORKB
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
;    NOP
TMRCHK1
    MOVLW d'25'
    MOVWF WORKA
KT     
    BTFSS PIR1,TMR1IF 
    GOTO XX1
    BCF PIR1,TMR1IF 
    MOVLW 0XFF
    SUBWF CNTW1,0
    BTFSS STATUS,Z
    GOTO XXX
    INCF CNTW2
    CLRF CNTW1
    GOTO XX2
XXX 
    INCF CNTW1
    GOTO XX2
XX1 
    NOP
    NOP 
    NOP 
    NOP 
    NOP
    NOP
    NOP
    NOP
XX2 
    nop
    NOP
    NOP 
    NOP
    NOP
NOP
    NOP
DECFSZ WORKA
    GOTO KT
    DECFSZ WORKB ; XEM LAI TAI DAY
    GOTO TMRCHK1
    RETURN
OVER
    BCF PORTB,RS
    MOVLW 0X81
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
    MOVLW #'.'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
 
    MOVLW #'O'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
 
    MOVLW #'V'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
 
    MOVLW #'E'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
 
 
    MOVLW #'R'
    MOVWF PORTD
    BSF PORTB,E
    BCF PORTB,E
    CALL WAITLCD
    goto LOOP
 
WAITLCD
    BCF PORTB,E
    BSF PORTB,RW
    BSF STATUS,RP0
    MOVLW 0XFF
    MOVWF TRISD
    BCF STATUS,RP0
WAIT1
    BTFSC PORTD,7
    GOTO WAIT1
    BSF PORTB,RS
    BCF PORTB,RW
    BSF STATUS,RP0
    MOVLW 0X00
    MOVWF TRISD
    BCF STATUS,RP0
    RETURN
    END
Mô phong trên proteus thì được, không hiểu ra mạch thực thì thế nào,hĩ

thay đổi nội dung bởi: hatuan296, 16-12-2012 lúc 03:37 PM.
kidmaster08 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
TUT ve I2C ( pic16f877a ) mafd_47a MPASM 24 17-03-2024 12:25 AM
Bộ so sánh và PWM cho PIC16F877A anhquangngai Cơ bản về vi điều khiển và PIC 24 08-09-2012 09:00 AM
TUT về USART trong PIC16F877A mafd_47a MPASM 10 28-09-2009 09:58 PM
Pic16f877a TỪ DỄ TỚi KhÓ ntc Cơ bản về vi điều khiển và PIC 373 23-05-2009 10:24 PM
CCS C for PIC16F877A nhh Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) 405 24-04-2008 12:00 PM


Múi giờ GMT. Hiện tại là 11:09 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam