|
Tài trợ cho PIC Vietnam |
MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ... |
|
Ðiều Chỉnh | Xếp Bài |
|
24-12-2007, 04:26 PM | #1 |
Đệ tử 5 túi
Tham gia ngày: Sep 2006
Bài gửi: 100
: |
Mạch test đó bạn làm những việc gì? Chương trình viết như thế nào? không ổn định như thế nào? Lúc chạy lúc không hay thế nào? Bây giờ bạn có thể làm như thế này để Test ngắt Timer1: Giả dụ bạn có 1 cái mạch nào đó có gắn LED trên chân cổng, bạn viết chương trình trễ để chớp tắt LED đi. Còn cái ngắt Timer1 thì chỉ có thế, không quá phức tạp. Không có chuyện nó chạy thiếu ổn định, chỉ là do mình quản lý hệ thống chương trình chưa tốt.
__________________
Do more than exist, LIVE |
24-12-2007, 05:14 PM | #2 | |
Đệ tử 4 túi
Tham gia ngày: Jan 2007
Bài gửi: 79
: |
Trích:
Những hiện tượng trên chỉ xảy ra khi mình viết ngắt timer1, những chương trình khác như quét phím, đọc xung từ timer0 chạy rất tốt, không việc gì cả. Mình không hiểu tại sao nữa. Chương trình nhâp nháy led . Code:
processor 16f877a ;vi dieu khien duoc su dung la PIC16F877A cua Microchip include <p16f877a.inc> ;header file kem theo __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF ;=================================================================================================== ;NHOM CAC THANH GHI TRONG CHUONG TRINH NGAT W_save EQU 0x20 PCLATH_save EQU 0x21 STATUS_save EQU 0x22 FSR_save EQU 0x23 DEM EQU 0X24 count1 EQU 0x25 counta EQU 0x26 countb EQU 0x27 ;=================================================================================================== ORG 0X004 GOTO ISR ISR ;=================================================================================================== ;DOAN CHUONG TRINH BAT BUOC KHI VAO NGAT MOVWF W_save SWAPF STATUS_save,W CLRF STATUS MOVWF STATUS_save MOVF PCLATH,W MOVWF PCLATH_save CLRF PCLATH MOVF FSR,W MOVWF FSR_save ;=================================================================================================== ;CHUONG TRINH CHINH CUA NGAT ;=================================================================================================== BTFSS PIR1,TMR1IF GOTO exit_int BCF PIR1,TMR1IF BCF T1CON,TMR1ON CLRF T1CON CLRF TMR1L CLRF TMR1H MOVLW 0X00 MOVWF T1CON MOVLW 0XFC MOVWF TMR1H MOVLW 0X17 MOVWF TMR1L BSF T1CON,TMR1ON DECFSZ DEM,1 GOTO exit_int COMF PORTB,1 MOVLW D'100' MOVWF DEM GOTO exit_int ;=================================================================================================== ;DOAN CHUONG TRINH BAT BUOC KHI KET THUC CHUONG TRINH NGAT exit_int MOVF FSR_save,W MOVWF FSR MOVF PCLATH_save MOVWF PCLATH SWAPF STATUS_save,W MOVWF STATUS SWAPF W_save,1 SWAPF W_save,0 RETFIE ORG 0X0000 GOTO start ORG 0X050 ;================================================================================================= ;CHUONG TRINH CHINH ;================================================================================================= start BSF STATUS, RP0 ; Select Bank 1 MOVLW 0x06 ; Configure all pins MOVWF ADCON1 ; as digital inputs BCF STATUS, RP0 ; Select Bank 0 BCF STATUS,RP1 BSF STATUS,RP0 MOVLW 0X00 MOVWF TRISB BCF STATUS,RP0 MOVLW D'100' MOVWF DEM ;------------------------------------------------------------------------------------------------ ;KHOI TAO TIMER 1 ;------------------------------------------------------------------------------------------------ CLRF T1CON CLRF INTCON BSF STATUS,RP0 CLRF PIE1 BSF PIE1,TMR1IE BCF STATUS,RP0 CLRF PIR1 MOVLW 0XFC MOVWF TMR1H MOVLW 0X17 MOVWF TMR1L BSF T1CON,TMR1ON BSF INTCON,TMR1IE BSF INTCON,PEIE BSF INTCON,GIE MOVLW B'10000110' MOVWF PORTB GOTO $ END |
|
|
|