PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > MPASM

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

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
Prev Previous Post   Next Post Next
Old 17-10-2011, 04:24 PM   #1
kidmaster08
Đệ tử 2 túi
 
Tham gia ngày: Sep 2010
Bài gửi: 41
:
thac mac ve timer0

tinh hinh la minh viet cho 16f877a 1 chuong trinh vi du nhu sau
processor 16f877a
include <p16f877a.inc>
count1 equ 0x20
counta equ 0x21
countb equ 0x22
hangdonvi equ 0x23
hangchuc equ 0x24
wsave equ 0x25 ; cac thanh ghi dung de cat cac noi dung cua cac thanh ghi quan trong khi thuc thi chuong trinh ngat
pclathsave equ 0x26
statussave equ 0x27
fsrsave equ 0x28
org 0x004
goto isr
isr
movwf wsave
swapf STATUS,W
clrf STATUS
movwf statussave
movf PCLATH,W
movwf pclathsave
clrf PCLATH
movf FSR,W
movwf fsrsave
banksel PORTB
btfss INTCON,TMR0IF ; bang 1 thi tiep tuc minh nghi cau lenh nay la thua
goto exitint ; neu co ngat chua duoc set thi thoat khoi chuong trinh ngat
bcf INTCON,TMR0IF ; neu co ngat duoc set thi xoa co ngat de cho phep nhan biet thoi diem tiep theo xay ra ngat
incf hangdonvi,1 ; tang hang don vi len 1 don vi, ket qua luu o hangdonvi
movlw 0x0a
xorlw hangdonvi ;so sanh hang don vi co bang 10 ko?
btfss STATUS,Z
goto exitint ;neu chua bang 10 thi thoat khoi chuong trinh ngat
clrf hangdonvi ; neu bang 10 thi hang don vi =0 va tang chu so hang chuc len 1 don vi
incf hangchuc,1
movlw 0x0a
xorwf hangchuc,0 ;neu chu so hang chuc
btfss STATUS,Z ; neu hang chuc chua 10, thoat khoi chuong trinh ngat
goto exitint
clrf hangchuc ; neu bang 10 di resetlai hang chuc = 0 va thoat khoi chuong trinh
goto exitint
exitint ; thu tuc thoat khoi chuong trinh con phuc vu ngat
movf fsrsave,W
movwf FSR
movf pclathsave,W
movwf PCLATH
swapf statussave,W
movwf STATUS
swapf wsave,1
swapf wsave,0
retfie ; ket thuc chuong trinh ngat
org 0x000
goto start
org 0x050
start ; nhan start o dia chi 0x050
banksel TRISD
clrf TRISD
movlw b'11111100' ; rp1 va rb0 la cac chan ra
movwf TRISB
banksel PORTD ; xoa cong ra
clrf PORTD
movlw b'11111111' ; tat cac led hang don vi
movwf PORTB
clrf hangchuc ; bat dau vao chuong trinh xoa cac thanh ghi hangchuc va hang don vi
clrf hangdonvi
clrf TMR0 ; khoi tao gia tri dinh thoi TMR0
clrf INTCON ;
banksel OPTION_REG
movlw b'10000001' ; ko cho chon chuc nang dien tro keo duong o cong B va chon he so cho prescaler la 1:4
movwf OPTION_REG
bcf STATUS,RP0 ;
bsf INTCON,TMR0IE
bsf INTCON,PEIE ; cho phep ngat ngoasai vi
bsf INTCON,GIE ; cho phep toan bo cac ngat, bo dinh thoi TMR0 lam viec ngay tu cau lenh nay
; vong lap chinh
main
call hienthi
goto main ;vong lap vo han
hienthi
movlw b'00000001'
movwf PORTB
movf hangchuc,0 ; w = hangchuc
call table
movwf PORTD ; hien thi chu so hang chuc xong
call delay1ms ; tre 1ms
movlw b'00000010'
movwf PORTB
movf hangdonvi,0
call table
movwf PORTD ; hien thi chu so hang don vi xong
call delay1ms
return
table
addwf PCL,1
retlw 0xc0 ; hien thi so o
retlw 0xf9 ;1
retlw 0xa4 ;2
retlw 0xb0 ;3
retlw 0x99 ;4
retlw 0x92 ;5
retlw 0x82 ;6
retlw 0xf8 ;7
retlw 0x80 ;8
retlw 0x90 ;9
delay1ms
movlw d'1'
MOVWF count1
d1
movlw d'199'
movwf counta
movlw d'1'
movwf countb
d2
decfsz counta,1
goto $+2
decfsz countb,1
goto d2
decfsz count1
goto d1
return
return
end

tuy nhien sau khi bien dich proteus bao loi nhu sau
- stack overflow pushing return address of interupt
- stack underflow excuting RETURN instruction
mình không hiểu tại sao lại có 2 lỗi trên dẫn đến mô phỏng cua mình trên thiết bị ảo không thể thực hiện được. Mình dung proteus 7.5 Sp3 va trình biên dịch MPlab 7.52, khi biên dịch trên MPlab thi không báo lỗi, mong các ban chỉ hộ mình với nhé. Vì mình cung mới học Pic nên cũng chưa có kinh nghiệm j nhiều lám. Thank các bạn nhiều
kidmaster08 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Ðiều Chỉnh
Xếp Bài

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


Múi giờ GMT. Hiện tại là 03:25 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