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)
-   -   Đà nẵng vào đây cùng thảo luận về PIC (http://www.picvietnam.com/forum/showthread.php?t=4204)

hoc_picpicpic 07-06-2009 12:03 AM

bác Mr.Bi ơi con robo đó có những chức năng gì thế , em thấy bác dùng pic8f4431 mà sao chẳng thấy đoạn code nào viết cho bộ PWM thế .

vidieukhiencdn 07-06-2009 01:45 AM

Bạn tienchuan oi mạch nhiệt độ LM35 bạn thử chưa, chạy tốt ko vậy, minh muốn làm thử mạch đó

tienchuan 07-06-2009 09:07 AM

Trích:

Nguyên văn bởi vidieukhiencdn (Post 26555)
Bạn tienchuan oi mạch nhiệt độ LM35 bạn thử chưa, chạy tốt ko vậy, minh muốn làm thử mạch đó

Dạ em đã làm mạch thật,mạch này em làm để nộp ở môn Thực Tập Mạch Số Ứng Dụng(thầy đã test thử bằng điếu con ngựa,và cho em điểm A hehe).Mạch chạy rất ổn định,sai số cỡ chưa tới 1 độ ,nhưng do khi làm mạch in,em hàn con lm35dz gần chỗ nguồn (con 7805),nên nó chạy một lát thì có sai số chút ít(do con 7805 nó nóng lên anh ơi).Em thấy anh/bạn nên vẽ jump để đưa con lm 35dz ra khỏi mạch in bằng dây tín hiệu 3 đường (dây 3 sợi ấy) thì mạch đo ngon ơ luôn !
Chúc Anh/bạn thành công !
Chào !!! [+=+]

vidieukhiencdn 07-06-2009 11:30 AM

Thank bạn rất nhiều, mình sẽ ráp thử, có gì ko rõ bạn giúp mình nhé.

Mr.Bi 08-06-2009 09:01 PM

Trích:

Nguyên văn bởi hoc_picpicpic (Post 26551)
bác Mr.Bi ơi con robo đó có những chức năng gì thế , em thấy bác dùng pic8f4431 mà sao chẳng thấy đoạn code nào viết cho bộ PWM thế .

Trong mạch này t đâu dùng PWM mà khai báo làm chi .

sonduy1 04-08-2009 03:40 PM

bác vào khoe hàng hay giúp đỡ anh em tìm hiểu pic vậy.post những bài mà a,e ở đây xài dc,còn cái đó từ từ đã.

Mr.Bi 05-08-2009 11:07 PM

Trích:

Nguyên văn bởi sonduy1 (Post 28348)
bác vào khoe hàng hay giúp đỡ anh em tìm hiểu pic vậy.post những bài mà a,e ở đây xài dc,còn cái đó từ từ đã.

sr , đây là luồng cùng trao đổi về PIC chứ k phải luồng dành cho ng mới bắt đầu , điều đó cũng có thể hỉu là căn bản về PICu cần phải có , đã sử dụng wa hết các chức năng của PIC. t chỉ đi sâu vào ứng dụng những chức năng đó , cách giao tiếp với những module ngoài . ok ?

sonduy1 06-08-2009 05:38 PM

bác coi giúp e cái !..!
 
#include <16f877a.h>
#fuses HS,NOWDT
#use delay(clock=4000000)
#byte trisb=0x86
#byte portb=0x06
#BYTE TRISD=0X88
#BYTE PORTD=0X08


char bang_ma[10]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 0};
char n1,n2,n3,n4;
char sec,min,h;
#int_timer1
void ngat_TMR1()
{ int time,count;
set_timer1(15535);
time++;
if(time=1);//dc 1/2s
//<thuc hien cong viec>
{
count++;
if(count==1)
{ portb=bang_ma[N1];
OUTPUT_LOW(PIN_A0);
DELAY_MS(10);
OUTPUT_HIGH(PIN_A0);
}
if(count==2)
{ portb=bang_ma[N2];
OUTPUT_LOW(PIN_A1);
DELAY_MS(10);

}
if(count==3)
{ portD=bang_ma[N3];

OUTPUT_LOW(PIN_A4);DELAY_MS(10);
OUTPUT_HIGH(PIN_A4);
}
if(count==4)
{ portD=bang_ma[N4];
OUTPUT_LOW(PIN_A5);
DELAY_MS(10);
}
count==0;



}
time==0;
}
//SU DUNG HAM NGAT TIMER0 DE HIEN THI
#INT_TIMER0

void ngat_timer0()
{ int dem;

set_timer0(15536); //mac dinh gia tri ban dau cho TMR0

dem++;
if(dem==20) //20*50000=1s
{ dem=0;
sec++;
}
if(sec==60)
{ sec=0;
min++;
}
if(min==60)
{ min=0;
h++;
}
if(h==24)
{ h=0;
}
}





VOID main(void)
{ trisb=0x00;
portb=0xff;
TRISD=0X00;
PORTD=0XFF;
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
set_timer0(15536);
enable_interrupts(int_timer0);
enable_interrupts(global);


setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
set_timer1(15535);
enable_interrupts(int_timer1);
enable_interrupts(global);
N1=H/10;
N2=H%10;
N3=SEC/10;
N4=SEC%10;
while(1)
{

NGAT_TIMER0();
N1=H/10;
N2=H%10;
N3=SEC/10;
N4=SEC%10;
ngat_TMR1();

}
}

greenfield 07-08-2009 09:20 PM

Bác nào đã làm chuẩn giao tiêps SPI xing chỉ cho em với. Em đang cần làm giao tiếp với EEPROM

Mr.Bi 08-08-2009 09:06 PM

Trích:

Nguyên văn bởi greenfield (Post 28448)
Bác nào đã làm chuẩn giao tiêps SPI xing chỉ cho em với. Em đang cần làm giao tiếp với EEPROM

EEPROM bi h thường giao tiếp I2C , vd mấy con 24Cxx . Nếu ai đã từng làm về I2C thì sẽ thấy cực kỳ dễ dùng . B chưa test thử EEPROM với chuẩn SPI

Mr.Bi 08-08-2009 09:27 PM

Trích:

Nguyên văn bởi sonduy1 (Post 28393)
#include <16f877a.h>
#fuses HS,NOWDT
#use delay(clock=4000000)
#byte trisb=0x86
#byte portb=0x06
#BYTE TRISD=0X88
#BYTE PORTD=0X08


char bang_ma[10]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 0};
char n1,n2,n3,n4;
char sec,min,h;
#int_timer1
void ngat_TMR1()
{ int time,count;
set_timer1(15535);
time++;
if(time=1);//dc 1/2s
//<thuc hien cong viec>
{
count++;
if(count==1)
{ portb=bang_ma[N1];
OUTPUT_LOW(PIN_A0);
DELAY_MS(10);
OUTPUT_HIGH(PIN_A0);
}
if(count==2)
{ portb=bang_ma[N2];
OUTPUT_LOW(PIN_A1);
DELAY_MS(10);

}
if(count==3)
{ portD=bang_ma[N3];

OUTPUT_LOW(PIN_A4);DELAY_MS(10);
OUTPUT_HIGH(PIN_A4);
}
if(count==4)
{ portD=bang_ma[N4];
OUTPUT_LOW(PIN_A5);
DELAY_MS(10);
}
count==0;



}
time==0;
}
//SU DUNG HAM NGAT TIMER0 DE HIEN THI
#INT_TIMER0

void ngat_timer0()
{ int dem;

set_timer0(15536); //mac dinh gia tri ban dau cho TMR0

dem++;
if(dem==20) //20*50000=1s
{ dem=0;
sec++;
}
if(sec==60)
{ sec=0;
min++;
}
if(min==60)
{ min=0;
h++;
}
if(h==24)
{ h=0;
}
}





VOID main(void)
{ trisb=0x00;
portb=0xff;
TRISD=0X00;
PORTD=0XFF;
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
set_timer0(15536);
enable_interrupts(int_timer0);
enable_interrupts(global);


setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
set_timer1(15535);
enable_interrupts(int_timer1);
enable_interrupts(global);
N1=H/10;
N2=H%10;
N3=SEC/10;
N4=SEC%10;
while(1)
{

NGAT_TIMER0();
N1=H/10;
N2=H%10;
N3=SEC/10;
N4=SEC%10;
ngat_TMR1();

}
}

k biết u mún hỏi j , đọc sơ thì thấy hình như u chưa nắm ngắt timer
- K ai gọi hàm ngat_timer0() , ngat_timer1() cả ,khi khởi tạo ngắt timer , ta đã đặt thời gian ngắt , cứ khi mô timer tràn thì tạo ngắt , trong ct chính , ta k phảii gọi . Í tui nói ở đây là u xem hàm ngắt timer như 1 hàm con bình thường nên gọi . Hỉu sai chỗ í đó
- Đã dùng ngắt timer thì k ai còn gọi thêm delay nữa . Mục đích của ngắt timer là thay thế cho delay
- Trong hàm ngắt timer 1 , cuối ct ngắt có count ==0 để trống trơn t k hỉu u chỗ ni mún j , cóa phải u mún xóa biến count ??? Nếu xóa biến count thì ct k thực hiện đc if (count==2) , ==3 ... biết vì sao k ? Thử nhẩm sẽ thấy , vì count k bao h đếm lên đc tới 2

van truong 29-10-2011 07:48 PM

chuong trinh do chay chet lien ,len mang pot bay cho vui do ma

van truong 29-10-2011 07:53 PM

led 3D 8*8*8 cube
 
su dung pic de lam led 3d

van truong 29-10-2011 08:08 PM

led 3D 8*8*8 cube
 
hinh anh va video minh thuc hien ne
hinh anh
http://www.mediafire.com/i/?v7e0zeflavzdff6
http://www.mediafire.com/i/?v69s9mu684mkt2q
video
http://www.mediafire.com/?haqkr203ztj2qzi
http://www.mediafire.com/?rec1ml6niyntymf

van truong 29-10-2011 08:16 PM

led 3D 8*8*8 cube
 
hinh anh va video minh thuc hien ne
hinh anh
http://www.mediafire.com/i/?v7e0zeflavzdff6
http://www.mediafire.com/i/?v69s9mu684mkt2q
video
http://www.mediafire.com/?haqkr203ztj2qzi
http://www.mediafire.com/?rec1ml6niyntymf

///////////////////////////////


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