PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

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
Prev Previous Post   Next Post Next
Old 12-12-2012, 11:43 AM   #1
muatuyet_2012
Nhập môn đệ tử
 
Tham gia ngày: Apr 2010
Bài gửi: 6
:
Exclamation Giúp đỡ về ngắt với pic16f877a

Mình đã đọc nhiều luồng về ngắt timer nhưng vẫn chưa áp dụng đúng vào chương trình của mình,mong các bạn góp ý giúp mình với.
Mình dùng Pic16f877a , crystal: 20Mhz hiển thị led 7 đoạn

Mô tả một chút về công việc mình làm như sau:
1. Đọc ADC ( h= read_analog(0) )
2. Có 4 nút nhấn : UP,DOWN,SET,ENTER để đặt giá trị ban đầu set_high,wd_high,time
Các giá trị set_high,wd_high,time là các giá trị đặt trước.
3. Mình muốn điều khiển như sau:
ta có: c1= set_high/time;
y1= h - set_high;
z1= y1/c1; (z1 ,time : theo đơn vị tính là thời gian (giây))
Led sẽ sáng với thời gian z1 (giây) sau đó tắt với thời gian tắt là (time - z1) (giây)

Khi không dùng ngắt thì code chạy đúng nhưng có vấn đề nhỏ như sau: Khi led đang sáng hay đang tắt thì led 7 đoạn ko hoạt động và không thể sử dụng nút nhấn vì mình sử dụng hàm delay_ms() để điều khiển.Mình muốn dùng ngắt trong trường hợp này thì phải làm sao.Mong các bạn giúp đỡ .
Code của mình khi ko dùng ngắt như sau:

while(1)
{
a=read_analog(0);
a= a/div ;
h=a;
SET_ENTER(); // hàm đặt giá trị ban đầu
if(setenter==5) //kiểm tra kết thúc quá trình đặt giá trị
{
if(h > (set_high + wd_high))
{ LED=1; p=1;}

if(p==1)
{
if(h <= (set_high + wd_high))
{
if(h<= set_high)
{
p=0;
LED=0;
}
else
{
c1 = wd_high / time;
y1 = h - set_high;
z1 = y1/c1;

//Mình đang cần dùng ngắt để xử lý đoạn này:
for(k=0;k<z1;k++)
{
LED=1;
delay_ms(1000);
}
for(l=0;l<(time - z1);l++)
{
LED=0;
delay_ms(1000);
}
}
}
}
}
}
muatuyet_2012 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


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à 04:24 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