|
Tài trợ cho PIC Vietnam |
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 |
09-09-2012, 09:37 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Sep 2011
Bài gửi: 2
: |
Sự khác biệt giữa Pic16 và Pic18
Em chỉ mới học pic, thấy trên diễn đàn có rất nhiều tài liệu nhưng gần như tất cả là dành cho con pic16 nhưng em đang học con pic18 mà cụ thể là pic18f2550. Giữa hai con có nhiều điểm khác biệt nhưng em chưa cụ thể được khác nhau như thế nào, nhất là trong tập lệnh asm. Hình như là con pic18f2550 thì không cần vào ra các bank nhưng con 16f, không biết có đúng không. Mong anh em trên diễn đàn giúp em, nếu có tài liệu, code mẫu, asm hay c đều được về con 18f thì cho em xin.
Cảm ơn mọi người, chúc buổi tối tốt lành! |
09-09-2012, 11:16 PM | #2 |
Nhập môn đệ tử
Tham gia ngày: Sep 2011
Bài gửi: 2
: |
[/CODE]
;................................................. ........... ;..................DEFINE......................... ........... LIST P=PIC18F2550 include <p18f2550.inc> ; __CONFIG.... CONFIG WDT=OFF ; disable watchdog timer ; CONFIG MCLRE = ON ; MCLEAR Pin on ; CONFIG DEBUG = OFF ; Enable Debug Mode ; CONFIG LVP = OFF ; Low-Voltage programming disabled (necessary for debugging) ; CONFIG FOSC = INTOSCIO_EC ;Internal oscillator, port function on RA6 ; REGISTER W_TEMP EQU 0x08 STATUS_TEMP EQU 0x09 BSR_TEMP EQU 0x0A COUNT1 EQU 0x0B COUNT2 EQU 0x0C COUNT EQU 0x0D ;================================================= =========== ORG 0x00 GOTO SETUP ORG 0x08 GOTO INTERUPT ORG 0x12 ;================================================= =========== INTERUPT: BCF INTCON,TMR0IF ; clear flag MOVWF W_TEMP ; W_TEMP is in virtual bank MOVFF STATUS, STATUS_TEMP ; STATUS_TEMP located anywhere MOVFF BSR, BSR_TEMP ; BSR_TMEP located anywhere ;......................MAIN INT.............................. INCFSZ COUNT,1 GOTO ENDINT BTG PORTA,2 ;................................................. ........... ENDINT: MOVFF BSR_TEMP, BSR ; Restore BSR MOVF W_TEMP, W ; Restore WREG MOVFF STATUS_TEMP, STATUS ; Restore STATUS RETFIE ;================================================= =========== SETUP ;........SET UP PORT IS INPUT OR OUTPUT.................. MOVLW 0x00 MOVWF TRISA CLRF PORTA ;................SET UP TIMER0 ........................... ;MOVLW b'00000000' ;USE INTERNAL CLK AND DIV 2 ;MOVWF T0CON ;MOVLW 0x00 ;MOVWF TMR0H ;MOVWF TMR0L ;65000 CALL INIT_TIMER0 ;................SET UP INT .............................. ;MOVLW b'10100000' ;MOVWF INTCON ;....START TIMER0 ;BSF T0CON,7 CLRF COUNT ;================================================= =========== LOOP GOTO LOOP ;================================================= =========== ;================================================= =========== ;........................SUB FUNCTION.......................... ;FUNCTION DELAY DELAY DELAY2 DECFSZ COUNT1,1 GOTO DELAY2 DECFSZ COUNT2,1 GOTO DELAY2 MOVLW 0F0h MOVWF COUNT1 MOVWF COUNT2 RETURN ;================================================= =========== ;TURN LED ON/OFF LEDON ; turn the led on MOVLW 01h MOVWF PORTA RETURN LEDOFF ; turn the led off MOVLW 00h MOVWF PORTA RETURN LEDTOG ; turn the led ON/OFF MOVLW 01h XORWF PORTA,0 MOVWF PORTA RETURN ;================================================= =========== INIT_TIMER0 BSF RCON,IPEN ;enable priority interrupts. BCF INTCON2,TMR0IP BSF INTCON,TMR0IF BSF INTCON,TMR0IE BSF INTCON,GIEH ;set the global interrupt enable bits BSF INTCON,GIEL CLRF T0CON MOVLW 0x3c MOVWF TMR0H MOVLW 0xAF MOVWF TMR0L BSF T0CON,TMR0ON RETURN ;================================================= =========== END [/CODE] NHỜ MỌI NGƯỜI COI DÙM EM! |
|
|