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 18-10-2009, 09:12 PM   #1
zonnamtao
Đệ tử 1 túi
 
Tham gia ngày: Aug 2009
Bài gửi: 16
:
Điều chỉnh độ sáng LED

Em đang làm đề tài điều chỉnh độ sáng đèn led bằng PWM thông qua cảm biến quang đưa tín hiệu vào kênh AN0. Mong các bác góp ý dùm.

[code]

#include <16F877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#device 16F877a*=16 ADC=8
#include <def_877A.h>
#use delay(clock=4000000)
#include <def_877a.h>
int8 mode=0,somode;
int8 value,aa;
int8 duty;
int8 const a[11] = {192,249,164, 176,153,146,130,248,128,144,136};

#INT_EXT //khai bao ngat ngoai
EXT_ISR()
{//KHAI BAO NGAT
mode++;
if (mode==11) mode = 0;
}
// End of INT
void pro1();



void main() {

set_tris_b(0x01);
set_tris_d(0x00);
set_tris_c(0x00);

setup_port_a(ALL_ANALOG);//Đọc giá trị ánh sáng môi trường từ //cảm biến quang trở
setup_adc(adc_clock_internal);

set_adc_channel( 0 );
setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_4, 249, 4);

enable_interrupts(int_EXT);//ngắt ngoài dùng để đặt mức sáng
ext_int_edge(L_TO_H); //
enable_interrupts(GLOBAL);
portd=192;set_pwm1_duty(0);
while(1)
{
switch(mode)
{
CASE 0: portd=a[mode];set_pwm1_duty(0);BREAK;
default: pro1() ; break;
}
}
}
void pro1()
{

portd=a[mode];
value=(float)read_adc();
delay_us(10);
somode=(mode*25.5);//22.5=0.5V*255/5V // 5V/0.5V=10 muc
if (value<somode)
{

duty=(somode-value);
set_pwm1_duty(duty);

}
else set_pwm1_duty(0);
}

thay đổi nội dung bởi: zonnamtao, 19-10-2009 lúc 02:08 AM.
zonnamtao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-10-2009, 11:53 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Bài viết của bạn vẫn còn một đoạn văn bản tiếng Việt không dấu. Ngay cả đặt câu hỏi mà bạn cũng không thực hiện được cho đàng hoàng, thử hỏi có mấy người muốn giúp bạn?

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-10-2009, 02:02 AM   #3
zonnamtao
Đệ tử 1 túi
 
Tham gia ngày: Aug 2009
Bài gửi: 16
:
Trích:
Nguyên văn bởi namqn View Post
Bài viết của bạn vẫn còn một đoạn văn bản tiếng Việt không dấu. Ngay cả đặt câu hỏi mà bạn cũng không thực hiện được cho đàng hoàng, thử hỏi có mấy người muốn giúp bạn?

Thân,
Xin lổi tất cả mọi người. Em ẩu quá. Em đã sửa lại trên rồi. Rút kinh nghiệm lần sau.

thay đổi nội dung bởi: zonnamtao, 19-10-2009 lúc 02:09 AM.
zonnamtao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-10-2009, 12:59 PM   #4
ngoctuan2008
Nhập môn đệ tử
 
Tham gia ngày: Aug 2009
Bài gửi: 2
:
Theo mình bạn nên để ADC=10,thì mức độ lấy mẫu sẽ chuẩn xác hơn, không hiểu mấy tiền bối nghĩ sao.
ngoctuan2008 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à 02:22 AM.


Đượ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