ขอความกรุณาด้วยนะคับ มือใหม่อยากทำ ไฟวิ่งควบคุมความเร็วแบบปรับระดับได้ โดยใช้สวิชต์ 2 ตัว = ="

Started by gajidirdz, May 28, 2013, 10:31:00 PM

Previous topic - Next topic

gajidirdz

Quote from: course-mcu on June 01, 2013, 07:48:18 PM
ทำได้หรือยังครับ
Quote from: RoLRoR on May 29, 2013, 01:54:43 PM
Quote from: JENG on May 29, 2013, 01:44:27 PM
http://www.youtube.com/watch?v=BJ32zNHbRzw

source code
;D ไฟกระพริบเทพฯ  มัลติทาสเลยครับ 0;D
จะพยายามศึกษาโค้ดจากที่คุณ JENG ทำเหมือนกัน

#include <16F877.h>
#FUSES NOWDT, HS, NOBROWNOUT, NOLVP
#use delay(clock=10000000,RESTART_WDT)
#USE fast_io(b)
#USE fast_io(a)

const unsigned char led[4]={0x11,0x22,0x44,0x88};

void main(void)
{ unsigned char i;
unsigned int16 t_cnt, t=2000;

set_tris_b(0x00);
set_tris_a(0xFF);

while(1)
{ if(!input(PIN_A0)) // SW Chk
{ delay_ms(100); // SW Bounce Push
if(!input(PIN_A0)) // SW Double Chk
{ if(t > 1000) t = 1000;
else if(t > 500) t = 500;
else if(t > 100) t = 100;
else t = 2000;
}
while(!input(PIN_A0)); // SW Wait Pull
delay_ms(200); // SW Bounce Pull
}

if(--t_cnt == 0) // Counter Decrement
{ t_cnt = t; // Counter Reload
output_b(led[i]); // Output Data
if(++i > 3) i = 0; // Next Data
}

delay_ms(1); // Delay Period
}
}



::: เพิ่มเติม :::  ครับ ไม่ใช่ คับ (คับ = แน่นอก)  ;)
ที่ PIN_A0,A1 รับค่ากด SW ต่อ R-Pullup ไว้แล้วใช่ไหมครับ
ส่วนจะเพิ่มสวิตช์อีกตัว แยกเป็นเพิ่มค่าและลดค่า ก็น่าจะเพิ่มเองได้แล้วนะครับ


ทำได้แล้วครับ ขอบคุณทุกคำแนะนำมากๆนะครับ  8)