|
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, 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! |
|
|