PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Help !!! Bài tập pic16f87x , mong mọi người giúp đỡ ! (http://www.picvietnam.com/forum/showthread.php?t=6599)

mashimaro 01-07-2010 07:09 AM

Help !!! Bài tập pic16f87x , mong mọi người giúp đỡ !
 
Chào các bác , em là newbie mới học pic . Hôm nay thầy giáo có cho 2 bài tập sau ma em đọc mãi ko hiểu , mong các bác chỉ dạy giúp em :(

Bài 1 : Cho đoạn code PIC như sau : ( Fosc = 4Mhz)

#include p16F876.inc
org 0
goto deb
org 4
retfie

deb
bsf STATUS,RP0
clrf TRISB
bcf STATUS,RP0
movlw 0x30
movwf T1CON

sig
clrf TMR1L
movlw 0xf0
movwf TMR1H
bsf T1CON,0


b1
btfss PIR1,0
goto b1
bcf PIR1,0
bcf T1CON,0
comf PORTB
goto sig
end

Hỏi : 1.Tính chu kì ( period ) của tín hiệu (signal) trên bit thứ 4 của portB .
2. Thay đổi chương trình (giữ nguyên kq ) bằng cách sử dụng Interrupt.

Bài 2 : Viết 1 đoạn code sử dụng timer để tạo 1 interrupt sau 50 000 chu kì máy.

Mong các bác chỉ dạy giúp em , thanks các bac nhiều :D

mashimaro 01-07-2010 05:05 PM

Hic hic có bác nào giúp em giảng cho em chút :(

tdm 01-07-2010 10:09 PM

Trích:

Nguyên văn bởi mashimaro (Post 37034)
Chào các bác , em là newbie mới học pic . Hôm nay thầy giáo có cho 2 bài tập sau ma em đọc mãi ko hiểu , mong các bác chỉ dạy giúp em :(

Bài 1 : Cho đoạn code PIC như sau : ( Fosc = 4Mhz)

#include p16F876.inc
org 0
goto deb
org 4
retfie

deb
bsf STATUS,RP0
clrf TRISB
bcf STATUS,RP0
movlw 0x30
movwf T1CON

sig
clrf TMR1L
movlw 0xf0
movwf TMR1H
bsf T1CON,0


b1
btfss PIR1,0
goto b1
bcf PIR1,0
bcf T1CON,0
comf PORTB
goto sig
end

Hỏi : 1.Tính chu kì ( period ) của tín hiệu (signal) trên bit thứ 4 của portB .
2. Thay đổi chương trình (giữ nguyên kq ) bằng cách sử dụng Interrupt.

Bài 2 : Viết 1 đoạn code sử dụng timer để tạo 1 interrupt sau 50 000 chu kì máy.

Mong các bác chỉ dạy giúp em , thanks các bac nhiều :D

**********************************
clrf TMR1L
movlw 0xf0
movwf TMR1H
sau lệnh này giá tri trong timer1 là 0xf000 đổi sang dec là (61440)
timer1 là time 16bit có giá trị là 0xffff(dec=65535)
chu kì=65535-61440=4095
movlw 0x30
movwf T1CON (xem data sheet)
lệnh này sau 8 chu kì máy timer1 sẽ tăng thêm 1
chu kì trên portb=4095*8

mashimaro 01-07-2010 10:33 PM

Trích:

Nguyên văn bởi tdm (Post 37049)
**********************************

lệnh này sau 8 chu kì máy timer1 sẽ tăng thêm 1
chu kì trên portb=4095*8

Dạ bác cho em hỏi là làm thế nào để biết đc là 8 chu kì máy ạ :( cách tình thế nào ạ. ? Vì em mới nhập môn nên còn lơ mơ lắm hic hic..
Cám ơn bác rất nhiều .


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam