PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụng

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

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 03-12-2010, 10:13 PM   #1
thienngoc
Nhập môn đệ tử
 
Tham gia ngày: May 2010
Bài gửi: 3
:
chương trình ngắt cho PIC16F877A

em đang làm đề tài cảm biến nhiệt độ dùng pic 16f877a hiển thị lên 3 led 7 đoạn dùng ngôn ngữ C,jờ e muốn khi đến nhiệt độ 80*C thì chuông sẽ reo,nếu như vậy mình có cần sử dụng ngắt ko mấy anh và chương trình như thế nào?xin mấy anh giúp dùm,em cám ơn
File Kèm Theo
File Type: rar vxl2.rar (193.1 KB, 407 lần tải)
thienngoc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-12-2010, 11:27 PM   #2
thienngoc
Nhập môn đệ tử
 
Tham gia ngày: May 2010
Bài gửi: 3
:
có ai júp em với,đang cần lắm..hix
thienngoc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-12-2010, 12:03 AM   #3
tomato2711
Đệ tử 2 túi
 
tomato2711's Avatar
 
Tham gia ngày: Jan 2010
Bài gửi: 26
:
dùng ngắt hay ko thì tùy bạn, theo mình thì nên dùng ngắt, chương trình voi main() thì bạn viết cho nó hiển thị led và đọc ADC, bên trong ngắt thì bạn tạo xung PWM cho chuông nó reo.
trong void main() thì viết khai báo, hiển thị led va đọc ADC bình thường, để ngắt xảy ra thì Set bit GIE, vì ADC là ngoại vi nên Set them bit PEIE, sau đó sét bitADIE, và ngắt xảy ra khi ADIF = 1, việc muốn nó bao nhiêu thì ngắt là bạn quyết định.
cái sườn là vậy, bạn tự viết nhé!
tomato2711 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-12-2010, 08:22 AM   #4
thienngoc
Nhập môn đệ tử
 
Tham gia ngày: May 2010
Bài gửi: 3
:
anh có thể nói rõ hơn được ko?em mới học về pic nên ko rành về ngắt lắm...
thienngoc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-12-2010, 11:33 AM   #5
tomato2711
Đệ tử 2 túi
 
tomato2711's Avatar
 
Tham gia ngày: Jan 2010
Bài gửi: 26
:
em down datasheet của nó về xem phần sơ đồ interrupt ấy.
để sử dụng chương trình ngắt thì GIE=1, để ngắt ngoại vi (timer1, timer2, ADC...) thì bít PEIE=1, (nếu dùng ngắt Timer0 thi ko cần), và để ngắt ADC thì set ADIE=1;
__________________
Càng học càng thấy ngu ra.(~.~)...............
tomato2711 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-03-2011, 10:42 PM   #6
stupid11
Đệ tử 6 túi
 
stupid11's Avatar
 
Tham gia ngày: Dec 2009
Nơi Cư Ngụ: TP.Hồ Chí Minh
Bài gửi: 133
:
Send a message via Yahoo to stupid11
Trích:
Nguyên văn bởi thienngoc View Post
em đang làm đề tài cảm biến nhiệt độ dùng pic 16f877a hiển thị lên 3 led 7 đoạn dùng ngôn ngữ C,jờ e muốn khi đến nhiệt độ 80*C thì chuông sẽ reo,nếu như vậy mình có cần sử dụng ngắt ko mấy anh và chương trình như thế nào?xin mấy anh giúp dùm,em cám ơn
cái này không cần sử dụng ngắt ADC làm gì cho nó phức tạp....nếu mưốn chuông reO thỉ dung PWM ý tưởng là như thế này:
.....
.
.
x=read_ADC();
x=x*2.049 //nếu ADC ở chế độ 10bit và sử dụng LM35 ,,nếu dùng loại khác thì tính toán lại//


if(x>=80)
{
y=120 ; //giá trị này để cài dặt tần số để chuông reo..thường thì vài kHz
xuatxung(); //đưa giá trị y=120 vào duty của PWM =>XUẤT XUNG
}
else
{
y=0;
xuatxung(); //đưa 0 vào duty =>tắt xung
}
.
.
.
.
void xuatxung()
{
setup_ccp1(CCP_PWM);
set_pwm1_duty(y); //đưa giá trị duty vào đây
set_timer_2(t2_div_by_4,255,1)
}

chắc bạn đã hiểu ý mình rối chứ.chúc bạn thành công.
stupid11 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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:31 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