PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   Mach mo phong den giao thong (http://www.picvietnam.com/forum/showthread.php?t=449)

thang0105 02-06-2006 11:13 PM

Mach mo phong den giao thong
 
Chào các anh chị em, mình cũng vừa mới nghiên cứu về PIC16F84A và ứng dụng vào mô phỏng một mạch đèn giao thông có đếm số.
Mạch mô phỏng mình dùng PROTEUS đễ vẽ. Còn đoạn code thì dùng chương trình MPLAB viết. Tuy nhiên vì sản phẩm đầu tay về con PIC nên đoạn mã chưa chạy, cũng chưa biết sai chỗ nào. Ở đây mình chỉ đơn thuần là xuất các chân trên các Port cho các Led sáng, sau đó delay một khoảng thời gian, và cứ như vậy theo phương pháp quét Led.
Nào, anh chị em cùng ra tay giúp đỡ lính mới nhé.

falleaf 03-06-2006 12:27 AM

Bạn cứ gửi các sản phẩm lên bằng cách tải file từ máy, nếu dung lượng quá lớn, gửi email cho F qua falleaf.pic@gmail.com, F sẽ upload lên host của picvietnam để lưu trữ.

Chúc vui.

luanht 14-07-2010 11:04 AM

chào các bác! xin hỏi ai có mach đèn giao thông gui gium em với. cảm on nhiều! phamvanluan817@gmail.com

manhdktd 14-07-2010 10:53 PM

1 Attachment(s)
Trích:

Nguyên văn bởi luanht (Post 37316)
chào các bác! xin hỏi ai có mach đèn giao thông gui gium em với. cảm on nhiều! phamvanluan817@gmail.com

http://www.youtube.com/watch?v=GAJVE...eature=channel
đây là phần mô phỏng của mình.bạn có thể tham khảo.vì mình không học vi sử lý nên bài này chỉ làm cho vui thôi,có gì chưa tốt mong các bạn bổ xung.

HAI1817 16-07-2010 01:11 PM

bạn có mạch nao điều khiển moto dc secvo không

HAI1817 20-07-2010 03:32 PM

1 Attachment(s)
anh chị giúp dùm em code của em với sao không nhận được giá trị encoder lên lcd

HAI1817 21-07-2010 05:35 PM

Trích:

Nguyên văn bởi HAI1817 (Post 37359)
bạn có mạch nao điều khiển moto dc secvo không

http://www.picvietnam.com/forum/imag...ost_thanks.gif

HANC 21-07-2010 07:03 PM

vấn đề là đọc xung encoder điều khiển motor dc
 
em là thành viên mới của diễn đàn mong mọi người chỉ dùm em ổn định tốc độ động cơ với,đề tài trong lớp của em.cụ thể encoder 400 xung em đưa vào timer0 (pic 16f877a)chân AR4 đọc em muốn 0.5s lấy mẫu 1 lần tiếp theo làm như thế nào,em đọc trên diễn đàn cũng chưa hiểu lắm.
Em có xem code của tác giả nào đó như thế này
#include <16f877a.h>
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=8000000)
#include <lcd_lib_4bit.c>
int16 cnt,cnt2,xung,v;
int8 a,b,c;
#int_TIMER0
void TIMER0_isr(void) //TIMER0 dem xung ve
{
set_timer0(255);
if(tmr0if==1)
{
cnt++;
tmr0if=0;
}
}
#int_TIMER1 //TIMER1 dem tgian,tinh van toc
void TIMER1_isr(void)
{
set_timer1(5565);
if(tmr1if==1)
{
xung=get_timer0()*4;
v=(xung*60)/((100*60*0.001));
tmr1if=0;
}
}
void Lcd()
{
while(1)
{
a=(int)v/100;
b=(int)(v-a*100)/10;
c=(int)v%10;
LCD_putcmd(0xC0);
LCD_putchar("xung encoder");
LCD_putcmd(0x80);
LCD_putchar(a+48);
LCD_putcmd(0x81);
LCD_putchar(b+48);
LCD_putcmd(0x82);
LCD_putchar(c+48);
}
}
void Ngat()
{
set_timer0(255);
setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_4);
enable_interrupts(INT_TIMER0);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_2);
set_timer1(5565);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
}
void PWM()
{
setup_timer_2(T2_DIV_BY_16,255,1);
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);
set_pwm1_duty(1000);
set_pwm2_duty(1022);
}
void main()
{
set_tris_d(0);
set_tris_a(0xff); //Cho tin hieu di vao RA4
set_tris_c(0);
LCD_Init();
PWM();
Ngat();
Lcd();
delay_ms(100);
}
mong các anh chị giải thích(các công thức trên,timer0,timer1,timer2)
cảm ơn nhiều (code trên em thử không thấy đọc được)

HANC 21-07-2010 07:58 PM

Không ai giúp em vậy,một tí ý kiến gì cũng được

HANC 24-07-2010 02:22 PM

giúp em về cái đọc encoder với
 
1 Attachment(s)
đây là đoạn mã từ diễn đàn

#include "16f877a.h"
#fuses hs
#use delay (clock = 8000000)
#include <abc.c>
int16 a,count,xung,b;
int8 nghin,tram,chuc,donvi;
#int_rtcc // Ngat Timer 0

void Timer0_isr() //CHAN TIMER0 LA RA4
{ set_timer0(255);
xung++;
if (xung==2)
{
xung=1;
}
b++;

}


void hienthi(int16 b)
{
a=get_timer0();
nghin = b / 1000 ;
tram = b % 1000/100 ;
chuc = b % 1000%100/10 ;
donvi = b % 1000%100%10;
lcd_gotoxy(3,2);
printf(lcd_putc,"%1d%1d%1d%1d",nghin,tram,chuc,don vi);
}
void main()
{
lcd_init();
a=0; xung=0; b=0;
setup_timer_0 (RTCC_EXT_l_TO_h);
setup_counters (rtcc_ext_l_to_h,RTCC_DIV_1);
set_timer0(0);

enable_interrupts(INT_RTCC);

enable_interrupts(GLOBAL);
lcd_gotoxy(2,1);
printf(lcd_putc,"Do encoder");
set_tris_a(0xff);
count = 0;
while (TRUE)
{

hienthi(b);

}

}

xung cứ tăng lên
nếu tính vận tốc phải làm sao ,anh chị chỉ em với công thức giải thích dùm em

HAI1817 05-08-2010 12:14 PM

đề tài này em cũng thích có ai giúp bạn ấy không
đề tài em giống bạn HANC.Cảm ơn nhiều

HANC 12-08-2010 08:05 PM

vẫn là encoder
 
em tốn nhiều tiền lắm rồi mà không có ai giúp

xungba22 17-08-2010 12:06 AM

cách lập trình của bạn chỉ để lập trình mấy bài chơi thôi.
nếu làm kiểu đóa mà sai thì biết kiểm tra o đâu.

HANC 24-08-2010 03:22 PM

bạn có điều khiển qua sevo dc chưa cho tôi tham khảo với.chứ nói thì ai nói không được còn làm thì khó đấy


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