เริ่มต้นใช้งาน PIC Microcontroller
LSVคลังสมองออนไลน์ "ปีที่14"
พฤศจิกายน 25, 2024, 01:57:53 pm *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
 
   หน้าแรก   ช่วยเหลือ เข้าสู่ระบบ สมัครสมาชิก  
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: เริ่มต้นใช้งาน PIC Microcontroller  (อ่าน 78373 ครั้ง)
kiano♥
kiano555@gmail.com
กลุ่มสนับสนุนLSV+มีน้ำใจ
member
****

คะแนน337
ออฟไลน์ ออฟไลน์

กระทู้: 570


การให้น่าภูมิใจกว่าได้รับ Line ID : Tech64

kiano555@windowslive.com kiano555@yahoo.com
เว็บไซต์ อีเมล์
« เมื่อ: มกราคม 07, 2010, 04:01:39 pm »

กระทู้สำหรับผู้เริ่มต้น และผู้สนใจทั่วไป ที่สนใจจะเริ่มเรียนเริ่มใช้งาน  PIC
จะพยายามเขียนแบบศัพท์ชาวบ้านเลยนะครับ เปิ่นๆบ้างแต่เอาเป็นว่า อ่านแล้วใช้งานได้ปุ๊บปั๊บเลยครับ

- PIC Microcontroller คืออะไร
- ต้องมีอะไรบ้าง ถึงจะใช้งาน PIC ได้
- ขั้นตอนการสร้างโครงงาน PIC

- PIC Microcontroller คืออะไร
มันเป็นเหมือนคอมพิวเตอร์เครื่องหนึ่งครับ ประกอบไปด้วยส่วนสำคัญๆคือ อินพุต ส่วนประมวณผล และเอาพุต แล้วการทำงานของมันก็จะทำงานตามโปรแกรมที่อยู่ในตัวมัน ลองนึกภาพดูนะครับ ว่าเราซื้อคอมมาใหม่ ประกอบเสร็จแล้ว แต่ไม่มีวินโดว์ มันจะทำงานอะไรได้ไหม ก็เหมือน pic ที่ซื้อมาใหม่ จะต้องลงโปรแกรมให้มันก่อนมันถึงจะทำงานได้

ทำไมต้องเป็น PIC  ขอให้ลองนึกดูนะครับว่าถ้าจะสร้างไฟวิ่งขึ้นมาสักวงจรแบบวิ่งไปวิ่งกลับ ถ้าใช้ไอซีดิจิตอลธรรมดามาต่อ ก็ต้องต่อตามวงจรที่ได้ออกแบบไว้ และต้องมีอุปกรณ์ต่อรอบข้างมากมายจึงจะทำเป็นไฟวิ่งไปกลับได้ แต่ถ้าวันไหนเบื่อไม่อยากให้มันวิ่งไปวิ่งกลับ อยากวิ่งแบบอื่นบ้าง จะทำอย่างไร ก็ต้องรื้ออันเก่าออกต่อใหม่ แต่ถ้าเป็น pic ใช้แค่ไอซีตัวเดียวแต่ทำงานได้ครอบคลุม ใช้อุปกรณ์รอบข้างน้อย แถมยังจุโปรแกรมไฟวิ่งเอาหลายๆรูปแบบได้เลย ถ้าอยากได้เพิ่มเติมเข้าไปอีก ก็ถอดดออกมาเขียนโปรแกรมเข้าไปใหม่ ไม่ต้องต่อวงจรใหม่ให้ยุ่งยาก

จะขอยกตัวอย่างการทำงานของมันให้ครับ เช่นโปรแกรมไฟวิ่ง 3 รูปแบบ จะมีสวิทช์สามตัว เพื่อเลือกรูปแบบการวิ่ง

อินพุต    คือสวิทช์ จะคอยรับคำสั่งจากผู้ใช้งาน ว่ากดสวิทช์ตัวไหน
ตัวประมวณผล ก็คือ pic จะประมวณผลจากอินพุตว่าสวิทช์ตัวไหนโดนกด แล้วต้องทำอะไรจากการกดสวิทช์ตัวนั้นๆ แล้วส่งค่าที่คำนวณได้ออกไปเอาพุต
เอาพุต ก็คือ หลอดไฟ LED จะแสดงผลที่ได้จากการคำนวณของ pic ให้ผู้ใช้งานได้เห็น


บันทึกการเข้า

kiano♥
kiano555@gmail.com
กลุ่มสนับสนุนLSV+มีน้ำใจ
member
****

คะแนน337
ออฟไลน์ ออฟไลน์

กระทู้: 570


การให้น่าภูมิใจกว่าได้รับ Line ID : Tech64

kiano555@windowslive.com kiano555@yahoo.com
เว็บไซต์ อีเมล์
« ตอบ #1 เมื่อ: มกราคม 07, 2010, 06:34:11 pm »

ถ้าในเครื่องใช้ไฟฟ้ายกตัวอย่างเครื่องซักผ้า การทำงานก็จะประกอบด้วย

สวิทช์กด  คืออินพุต ที่คอยรับคำสั่งจากผู้ใช้ กดซัก กดล้าง กดปั่น อนาคตคงมีปุ่มกดตากผ้าและเก็บผ้าด้วยครับ
ประมวณผล คือ PIC ที่จะคอยประมวณผลจากปุ่มกด ว่ากดปุ่มไหนแล้วต้องทำงานอย่างไร เช่นซักผ้าก็จะคำนวณเวลาว่าจ่ายน้ำเข้าเท่าไหร่ซักนานแค่ไหน ขึ้นอยู่กับโปรแกรมที่ได้เขียนเอาไว้ในตัว PIC แล้วก็จะไปสั่งให้เอาพุตทำงาน
เอาพุต คือมอเตอร์ โซลีนอล์ยวาล์ว จะทำตามที่ PIC สั่งงานมา เพื่อให้ได้งานตามต้องการ และยังมีจอแสดงผลอีก เพื่อให้รู้ว่ากำลังทำงานอะไรอยู่

จะเห็นแล้วว่าทำงานได้ครอบคลุมจริงๆครับ ไม่เพียงแต่จะทำเป็นพวกของเล่นไฟกระพริบ หุ่นยนต์ได้เพียงอย่างเดียว มันประยุกต์ใช้งานได้ตามแต่เราจะเขียนโปรแกรมให้มันทำงานได้ รวมทั้งระบบตู้คอนโทรลไฟฟ้า มอเตอร์หรืออะไรต่างๆ ก็นำไปประยุกต์ใช้งานได้ครับ
บันทึกการเข้า
kiano♥
kiano555@gmail.com
กลุ่มสนับสนุนLSV+มีน้ำใจ
member
****

คะแนน337
ออฟไลน์ ออฟไลน์

กระทู้: 570


การให้น่าภูมิใจกว่าได้รับ Line ID : Tech64

kiano555@windowslive.com kiano555@yahoo.com
เว็บไซต์ อีเมล์
« ตอบ #2 เมื่อ: มกราคม 07, 2010, 07:45:09 pm »

- ต้องมีอะไรบ้าง ถึงจะใช้งาน PIC ได้

อุปกรณ์เครื่องไม้เครื่องมือที่จำเป็นสำหรับการใช้งาน PIC มีดังนี้ครับ

1. เครื่องคอมพิวเตอร์ และโปรแกรมวินโดว์
2. โปรแกรมสำหรับเขียนโค๊ด PIC และโปรแกรมจำพวกซิมูเลเตอร์
3. เครื่องเบิร์นโค๊ดลง PIC และโปรแกรมสำหรับเบิร์น

1.   เครื่องคอมพิวเตอร์

 แบบไหนก็ได้ที่มีโปรแกรมวินโดว์พร้อมที่จะใช้งาน ไม่จำเป็นต้องเร็วมาก แต่ในบางกรณี ที่ทำงานเกี่ยวกับจำลองการทำงานของ PIC หรือที่เขาเรียกว่า ซิมูเลเตอร์ ก็ต้องใช้ทรัพยากรณ์ของเครื่องคอมพิวเตอร์มากเหมือนกัน

2.   โปรแกรมสำหรับเขียนโค๊ด PIC

รวมไปถึงโปรแกรมสำหรับจำลองการทำงานของ PIC ด้วย โปรแกรมที่เขียนโค๊ดจะขึ้นอยู่กับภาษาที่ใช้เขียนโค๊ด เวลาเขียนก็เขียนด้วยภาษาใดภาษาหนึ่ง หรือจะเขียนด้วยกันทั้งสองภาษาเลยก็ได้

MikroC เป็นโปรแกรมสำหรับเขียนโค๊ดด้วยภาษาซี ดูการใช้งานโปรแกรมและดาวโหลดโปรแกรมได้จากที่นี่
http://www.ubmthai.com/leksoundsmf3/index.php?topic=67451.0

Mplab IDE เป็นโปรแกรมสำหรับเขียนโค๊ดด้วยภาษาแอสเซมบลี ดูการใช้งานโปรแกรมและดาวโหลดโปรแกรมได้จากที่นี่
http://www.ubmthai.com/leksoundsmf3/index.php?topic=67452.0

สองโปรแกรมข้างต้นเป็นตัวที่ใช้งานบ่อย แต่ก็ยังมีอีกหลายตัวที่ยังไม่เอ่ยถึง แล้วยังมีโปรแกรมสำหรับจำลองดูการทำงานของโค๊ดด้วยนั่นคือ หลังจากที่เขียนโค๊ดเสร็จแล้ว ไม่ต้องไปเบิร์นเข้า PIC แล้วต่อวงจรดู คือสามารถใช้โปรแกรมพวกนี้จำลองการทำงานให้เราดูได้เลย ทำให้ไม่ต้องเสียเวลาต่อวงจร เสียอุปกรณ์ในการทดลอง โปรแกรมที่จำเป็นมีดังนี้

Proteus เป็นโปรแกรมวาดรูปวงจรอิเล็กทรอนิกส์ ออกแบบลายวงจร PCB แต่ที่ใช้บ่อยคือจำลองการทำงานของวงจร PIC ทำให้ไม่ต้องเสียเวลาไปต่อวงจรจริงๆ เขียนโค๊ดเสร็จก็เอาโค๊ดเข้ามาโปรแกรมนี้ดูการทำงานได้เลย ถ้าไม่เป็นไปตามที่ต้องการ ก็กลับไปแก้โค๊ดใหม่ ดูการใช้งานโปรแกรมและโหลดโปรแกรมได้จากที่นี่
http://www.ubmthai.com/leksoundsmf3/index.php?topic=67453.0

PIC SimulatorIDE เป็นโปรแกรมซิมมูเลเตอร์อีกตัว ที่ดูการทำงานของ PIC แบบเข้าถึงทุกตำแหน่งความจำ หรือเรียกว่า Register ได้ทุกตำแหน่ง
ดูการใช้งานโปรแกรมและโหลดโปรแกรมได้จากที่นี่ http://www.ubmthai.com/leksoundsmf3/index.php?topic=67454.0

3.   เครื่องเบิร์นโค๊ดลง PIC และโปรแกรมสำหรับเบิร์น
เครื่องเบิร์น PIC ที่ผมใช้อยู่และขอแนะนำคือรุ่น PX-200 ดูรายละเอียดได้จาก http://www.inex.co.th/micro/programmer.html
หรือดูได้จากที่นี่  http://www.es.co.th/search.asp?Word=px%2D200&PC=037004&Mode=1&tb=&stk=&pb=&view=Selection&pic=checked

บริษัทที่ผลิต PIC ออกมาขายชื่อ บริษัทไมโครซิฟ และเขาได้ผลิตเครื่องโปรแกรม PIC มาขายด้วย เรียกว่า PICKIT2 แต่จุดประสงค์หลักของเขาคือการขายตัว PIC เขาเลยทำเครื่องโปรแกรมมาขายแบบโอเพ่นซอร์ส คือบอกทุกรายละเอียดเกี่ยวกับเครื่องโปรแกรม ทั้งวงจรทั้งการใช้งานต่างๆ เลยมีคนผลิตออกมาขายบ้าง แต่ไม่ได้ใช้ชื่อว่า PICKIT2 ใช้ชื่อเรียกต่างๆกัน แล้วแต่จะตั้งขึ้นมา แต่การทำงานเหมือนกับ PICKIT2 ทุกอย่าง ใช้ชิฟตัวเดียวกัน ใช้วงจรเหมือนกัน รวมทั้งใช้ซอฟแวร์ในการเบิร์นโค๊ดลง PIC ตัวเดียวกันด้วย แต่ที่สำคัญ ราคาถูกกว่ามากมาย PICKIT2 จะขายอยู่ที่ 3,500 บาท แต่ตัวที่ทำเป็น OEM ออกมาขายราคาจะอยู่ที่ 1,000 บาท ซึ่งนั่นก็คือเครื่องรุ่นที่แนะนำคือ PX-200 นั่นเอง
รายละเอียดของ PICKIT2 ดูได้จาก http://www.es.co.th/search.asp?Word=pickit2&PC=037004&Mode=1&tb=&stk=&pb=&view=Selection&pic=checked
บันทึกการเข้า
kiano♥
kiano555@gmail.com
กลุ่มสนับสนุนLSV+มีน้ำใจ
member
****

คะแนน337
ออฟไลน์ ออฟไลน์

กระทู้: 570


การให้น่าภูมิใจกว่าได้รับ Line ID : Tech64

kiano555@windowslive.com kiano555@yahoo.com
เว็บไซต์ อีเมล์
« ตอบ #3 เมื่อ: มกราคม 08, 2010, 07:58:54 am »

- ขั้นตอนการสร้างโครงงาน PIC

เริ่มจากคิดโปรเจคที่จะทำก่อนเลยครับ ขอยกตัวอย่างโปรเจคง่ายๆนะครับ เช่น
"ไฟวิ่ง 3 รูปแบบ"
รูปแบบที่แสดงผลออกมาคือ จะมีไฟวิ่งเลือกรูปแบบได้ 3 รูปแบบโดยการเลือกรูปแบบการวิ่งนั้นกดเลือกที่ SW1

ขั้นตอนที่ 1 คิดวงจร จะได้วงจรออกมาตามภาพครับ เป็นวงจรพื้นฐานของ PIC คือใช้พอร์ต B ทั้งหมดเป็น เอาต์พุต แล้วต่อเข้ากับหลอด LED

จากรูปด้านบน นอกจากส่วนวงจรจ่ายไฟของ 7805 แล้วแทบจะไม่มีอะไรเลย เพราะทุกอย่างทำงานด้วย PIC16F627A โดยในวงจรไม่มีคริสตอล เพราะจะใช้ออสซิลเลเตอร์ภายในของ PIC ทำให้ประหยัดอุปกรณ์ไปได้อีก และเพื่อแสดงให้เห็นว่า PIC มันทำงานได้โดยไม่ต้องมีอุปกรณ์ภายนอกช่วยเลย แม้แต่อาร์พูลอัพต่อที่ขารีเซ็ตก็ไม่ใช้ สวิทช์ SW1 ทำหน้าที่เลือกรูปแบบการวิ่งของหลอด


ขั้นตอนที่ 2 เขียนโฟว์ชาร์ทการทำงานของโค๊ด จะได้โฟว์ชาร์ตการทำงานตามภาพด้านล่างครับ

จากรูปโฟว์ชาร์ทการทำงาน จะเห็นว่าแยกออกเป็น 3 ส่วน

ส่วนที่ 1 จะกำหนดพอร์ตต่างๆของ PIC คือกำหนดว่าพอร์ตไหนเป็น อินพุต หรือ เอาต์พุด

ส่วนที่ 2 คือส่วนรับคำสั่งจากสวิทช์ จะเห็นว่า เมื่อเรากดสวิทช์ SW1 ค่าของตัวแปร P จะเพิ่มขึ้น 1 ค่า แล้วเข้ามาเงื่อนไขตรวจสอบสวิทช์อีกเพื่อดูว่า ปล่อยมือจากสวิทช์แล้วหรือยัง ถ้าเรายังไม่ปล่อยมือจากสวิทช์ SW1 หลอด LED จะติดทุกหลอดเพื่อแสดงให้เห็นว่า ปล่อยมือได้แล้ว รับคำสั่งเรียบร้อยแล้ว...อิอิ สังเกตุให้ดีครับ จะเห็นว่าตรงนี้ลูกศรชี้วนไปที่จุดเริ่มวนลูป นั่นคือ ถ้าเรายังไม่ปล่อยมือจากสวิทช์ โปรแกรมก็จะทำงานวนอยู่ในลูปนี้ แล้วหลังจากที่ปล่อยมือจากสวิทช์ โปรแกรมจะออกจากลูป แล้วมาที่เงื่อนไขต่อไป คือตรวจสอบค่าของตัวแปร P ถ้าค่าของตัวแปร มากกว่า 2 หรืออีกอย่างคือ P มีค่าตั้งแต่ 3 4 5 6 ... ไปจะกำหนดให้ P มีค่าเป็น 0 แต่ถ้า P มีค่า 2  1  0 ก็ผ่านไปได้แล้ววิ่งไปตามลูกศรเลยครับ

ส่วนที่ 3 จะเป็นการตรวจสอบเงือนไขรูปแบบไฟวิ่ง โดยจะตรวจสองค่าของตัวแปร P ถ้ามีค่าเป็น 0 เงือนไขที่ 1 จะเป็นจริงแล้วจะไปทำงานไฟวิ่งรูปแบบที่ 1 แต่ถ้าไม่เป็นจริงก็จะตรวจสอบว่า ค่าของ P เป็น 1 หรือไม่ ถ้าเป็นจริง ก็จะทำงานไฟวิ่งรูปแบบที่ 2 สุดท้าย ถ้าค่าของ P ไม่ได้มีค่าเป็น 0 หรือ 1 ก็จะทำงานไฟวิ่งรูปแบบที่ 3

อ่านแล้วงงใช่ไหมครับ... อิอิ ผมก็เริ่มงงแล้ว

บันทึกการเข้า
kiano♥
kiano555@gmail.com
กลุ่มสนับสนุนLSV+มีน้ำใจ
member
****

คะแนน337
ออฟไลน์ ออฟไลน์

กระทู้: 570


การให้น่าภูมิใจกว่าได้รับ Line ID : Tech64

kiano555@windowslive.com kiano555@yahoo.com
เว็บไซต์ อีเมล์
« ตอบ #4 เมื่อ: มีนาคม 25, 2010, 11:17:05 pm »

หลังจากที่ได้วงจร ได้โฟว์ชาร์ทการทำงานของโปแกรมกันแล้ว ก็มาเริ่มเขียนโค๊ดโปรแกรมกันเลยครับ เริ่มจากเปิดโปรแกรมเขียนโค๊ดที่ชื่อว่า MikroC ขึ้นมาแล้วสร้างโปรเจคขึ้นมาใหม่ ตามขั้นตอนต่างๆในภาพครับ ( หรือดูขั้นตอนต่างๆได้จากกระทู้ http://www.ubmthai.com/leksoundsmf3/index.php?topic=67451.0 )

เริ่มจากสร้างโฟลเดอร์ใหม่ขึ้นมาก่อน เพื่อใช้เก็บโค๊ดที่เราจะเขียนขึ้นครับ ตามภาพด้านล่าง
 

จากนั้นเปิดโปรแกรม MikroC แล้วสร้างโปรเจคใหม่ขึ้นมาตามภาพด้านล้าง


แล้วใส่รายละเอียดต่างๆของโปรเจคตามภาพตัวอย่างครับ


จากภาพด้านบน จะมีช่องให้เราใส่ค่าต่างๆ ซึ่งมีคำอธิบายไว้ในภาพแล้ว และมีที่น่าสังเกตุตรงช่อง config ของ PIC ถ้ายังไม่เข้าใจก็ให้เลือกติ๊กตามตัวอย่างในภาพเลยครับ อธิบายตามตัวที่เลือกติ๊กได้ดังนี้

_WDT_OFF      ปิดการทำงานของ วอทดอก ไทม์เมอร์
_LVP_OFF       ปิดการทำงานแบบ โลว์โวลเตจโปรแกรมเมอร์ เพื่อให้ใช้ขาของพอร์ต B ได้ครบทุกขา
_MCLRE_OFF   ปิดการทำงานของขารีเซ็ต เพื่อไม่ต้องต่ออาร์พูลอัพที่ขารีเซ็ต และสามารถนำขารีเซ็ตมาเป็นอินพุตได้ นั่นคือขา 4 (RA5)
_INTRC_OSC_NOCLKOUT  เลือกสัญญาณ CLK จากภายในแบบ RC และขา CLK OUT ใช้งานเป็น อิน-เอาท์พุตได้ นั่นคือขา 15 (RA6)
_HS_OSC       เลือกใช้คริสตอลความถี่สูง จากความถี่เท่าไหร่ถึงเท่าไหร่ลืมแล้วครับ ต้องเปิดอ่านในดาต้าชีท แต่ถ้าใช้ CLK ภายในไม่ต้องติ๊กตัวนี้ก็ได้

หลังจากที่เลือกตั้งค่าต่างๆของโปรเจคเสร็จแล้ว ก็เริ่มเขียนโค๊ดกันได้เลย ซึ่งโค๊ดจากด้านล่างนี้ ก๊อปไปวางไว้ที่หน้าต่างเขียนโค๊ดของ MikroC ได้เลยครับ




//************************************************************************************
//************************************************************************************
//
//   ไฟวิ่งเลือกได้ 3 รูปแบบ
//   PIC16F627A
//   http://www.ubmthai.com/leksoundsmf3/index.php?PHPSESSID=911e51fa19d3a848c23316dcb39cf132;topic=67728.msg357764#msg357764
//
//************************************************************************************

void timer(void);   //ประกาศฟังก์ชั่นใช้ร่วมกัน

main()
{
//--------------- จากโฟว์ชาร์ทส่วนที่ 1 กำหนดพอร์ตต่างๆ
  char p=0;        //กำหนดตัวแปร p เป็นแบบ char มีค่าเท่ากับ 0
  cmcon=0x07;    //รีจิสเตอร์ cmcon มีค่าเท่ากับ 00000111 เพื่อให้พอร์ต A รับสัญญาณแบบดิจิตอล
  portA=0xFF;     //ให้พอร์ต A ทุกขาเป็น อินพุต
  portB=0x00;     //ให้พอร์ต B ทุกขาเป็น เอาพุต

//--------------- จากโฟว์ชาร์ทส่วนที่ 2 ตรวจสอบการกดสวิทช์ SW1
  while(1)
  {
    if(portA.f0==0)
    {
      p++;
      while(portA.f0==0)
      {
        portB=0xFF;
        timer();
      }
      if(p>2)
      {
        p=0;
      }
    }


//--------------- จากโฟว์ชาร์ทส่วนที่ 3 ตรวจสอบค่าของ P เพื่อกำหนดรูปแบบการวิ่ง
    if(p==0)                    //ถ้า P มีค่าเท่ากับ 0 ให้วิ่งรูปแบบที่ 1
    {
      portB=0b11111111;
      timer();
      portB=0b00000000;
      timer();
    }else{
    if(p==1)                  //ถ้า P มีค่าเท่ากับ 1 ให้วิ่งรูปแบบที่ 2
    {
      portB=0b11110000;
      timer();
      portB=0b00001111;
      timer();
    }else{                   //ไฟวิ่งรูปแบบที่ 3
      portB=0b11000000;
      timer();
      portB=0b00110000;
      timer();
      portB=0b00001100;
      timer();
      portB=0b00000011;
      timer();
    }
    }
 
  } // end while-1
} // end main

void timer(void)
{
  delay_ms(100);
}

//************************************************************************************
//************************************************************************************


จากรูปด้านล่างคือการคอมไพล์โค๊ดผ่านแล้ว



มาดูกันครับ ว่าหลังจากกดคอมไพล์ผ่านแล้ว เราจะได้ไฟล์อะไรบ้าง ซึ่งจะได้ตามรูปด้านล่างเลยครับ ไฟล์ที่วงสีแดงไว้คือ HEX ไฟล์ หรือไฟล์ที่แปลงแล้วเป็นภาษาเครื่อง เราจะนำไฟล์ตัวนี้เองครับ ไปเบิร์นเข้า PIC


บันทึกการเข้า
abdul+
สนับสนุนLSV+
member
***

คะแนน103
ออฟไลน์ ออฟไลน์

กระทู้: 483


« ตอบ #5 เมื่อ: มีนาคม 26, 2010, 12:02:57 pm »

 Smileyขอบคุณมากครับ
บันทึกการเข้า
rbung
member
*

คะแนน1
ออฟไลน์ ออฟไลน์

กระทู้: 9


อีเมล์
« ตอบ #6 เมื่อ: พฤษภาคม 16, 2010, 06:57:23 pm »

โอ้โฮ ผมไม่ได้เข้ามาตั้งนาน แวะมาดูบอร์ด มีMikro C ด้วย กำลังตั้งไข่อยู่ ขอฝากตัวด้วยครับ  lv!
บันทึกการเข้า
tutu
member
*

คะแนน2
ออฟไลน์ ออฟไลน์

กระทู้: 110


« ตอบ #7 เมื่อ: มิถุนายน 13, 2010, 01:24:41 pm »

ฝากเนื้อฝากตัวด้วยครับ...กำลังเริ่มจะหาไข่มาตั้งเลยครับ...แฮะๆ ขอเรียนด้วยคนนะ
บันทึกการเข้า
got_extra
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 73


อีเมล์
« ตอบ #8 เมื่อ: กรกฎาคม 23, 2010, 08:27:13 pm »

แล้วถ้าจะทำให้มันเปลี่ยนได้ซัก7รูปแบบนี้ต้องแก้อะไรตรงใหนบ้างครับ..ขออธิบายพร้อมโค้ดก็ดีครับจะได้เข้าใจง่านใว้ต่อยอดต่อ.........พอดีกำลังศึกษาด้วยตัวเองอยู่(มือใหม่)ซื้อหนังสือมาอ่านไม่ค่อยเข้าใจเท่าไรแต่พอไปได้..อิอิ

 Sad
บันทึกการเข้า
kiano♥
kiano555@gmail.com
กลุ่มสนับสนุนLSV+มีน้ำใจ
member
****

คะแนน337
ออฟไลน์ ออฟไลน์

กระทู้: 570


การให้น่าภูมิใจกว่าได้รับ Line ID : Tech64

kiano555@windowslive.com kiano555@yahoo.com
เว็บไซต์ อีเมล์
« ตอบ #9 เมื่อ: กรกฎาคม 23, 2010, 10:28:33 pm »

main(){
  char กำหนดตัวแปรต่างๆ
  tris ต่างๆ

  while(ตรวจสอบการกดสวิทช์)
  {
    ตรวจสอบการกดสวิทช์ เพิ่มค่าตัวแปรสวิทช์
  } // จบการตรวจสอบสวิทช์

  if(ตัวแปรสวิทช์มีค่า 1)
  {
    ไฟวิ่งรูปแบบที่ 1
  }

  if(ตัวแปรสวิทช์มีค่า 2)
  {
    ไฟวิ่งรูปแบบที่ 2
  }

  if(ตัวแปรสวิทช์มีค่า 3)
  {
    ไฟวิ่งรูปแบบที่ 3
  }

  if(ตัวแปรสวิทช์มีค่า 4)
  {
    ไฟวิ่งรูปแบบที่ 4
  }

  if(ตัวแปรสวิทช์มีค่า 5)
  {
    ไฟวิ่งรูปแบบที่ 5
  }

เขียนแบบนี้จะเพิ่มกี่รูปแบบก็ได้ครับ
 
} // end main
บันทึกการเข้า
got_extra
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 73


อีเมล์
« ตอบ #10 เมื่อ: กรกฎาคม 24, 2010, 05:32:18 pm »

timer();  นี้คืออะไรครับ...
บันทึกการเข้า
got_extra
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 73


อีเมล์
« ตอบ #11 เมื่อ: กรกฎาคม 24, 2010, 08:42:14 pm »

ก็อปไปวางแล้วคอมไพล์แล้วไปผ่าน....เพราะอะไร.... cry2!!
บันทึกการเข้า
kiano♥
kiano555@gmail.com
กลุ่มสนับสนุนLSV+มีน้ำใจ
member
****

คะแนน337
ออฟไลน์ ออฟไลน์

กระทู้: 570


การให้น่าภูมิใจกว่าได้รับ Line ID : Tech64

kiano555@windowslive.com kiano555@yahoo.com
เว็บไซต์ อีเมล์
« ตอบ #12 เมื่อ: กรกฎาคม 24, 2010, 09:38:42 pm »

timer(); คือการเรียกใช้งานฟังก์ชั่น timer  ซึ่งเป็นฟังก์ชั่นหน่วงเวลาที่ใช้งานร่วมกัน ทำให้ประหยัดพื้นที่เขียนโค๊ด
การคอมไพไม่ผ่าน มันต้องมีการฟ้องว่า ไม่ผ่านเพราะอะไร ต้องใช้เหตุผลในการพิจารณาปัญหา
กรณีของคุณผมเดาไม่ออกว่าไม่ผ่านเพราะอะไร เพราะคุณไม่ได้บอกอะไรไว้เลย
บันทึกการเข้า
got_extra
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 73


อีเมล์
« ตอบ #13 เมื่อ: กรกฎาคม 24, 2010, 10:05:28 pm »

ตอนนี้คอมไพล์ผ่านแล้ว ต่อวงจรตามรูปแต่ไม่มีอะไรเกิดขึ้นเลยLEDไม่ติดเลยไม่ทราบว่าเป็นที่อะไรครับ.......... cry2!!
บันทึกการเข้า
got_extra
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 73


อีเมล์
« ตอบ #14 เมื่อ: กรกฎาคม 26, 2010, 07:27:03 pm »

ช่วยด้วยครับ....ผมใช้ชุดฝึกจากหนังสือpic.......learning by doingครับต่อวงจรแล้วไม่มีอะไรเกิดขึ้นเลย...พอมีวิธีเขียนโค้ดแบบอื่นเปล่าครับ....
บันทึกการเข้า
kiano♥
kiano555@gmail.com
กลุ่มสนับสนุนLSV+มีน้ำใจ
member
****

คะแนน337
ออฟไลน์ ออฟไลน์

กระทู้: 570


การให้น่าภูมิใจกว่าได้รับ Line ID : Tech64

kiano555@windowslive.com kiano555@yahoo.com
เว็บไซต์ อีเมล์
« ตอบ #15 เมื่อ: กรกฎาคม 26, 2010, 07:36:49 pm »

มันตอบยากนะครับ เพราะไม่ได้บอกไว้
- ต่อวงจรไหน ต่อถูกหรือยัง ทดสอบวงจรแล้วหรือยัง ต่อคริสตอลหรือยัง อาร์รีเซ็ตต่อหรือยัง
- เขียนโค๊ดตัวไหน ทดสอบโค๊ดแล้วหรือยัง เบิร์นโค๊ดผ่านหรือไม่
ใจเย็นๆสิครับ ไล่ดูดีๆ ว่าผิดพลาดตรงไหน ถ้าเริ่มทำครั้งแรกจริงๆ ก็อย่าเพิ่งรีบร้อนไปเขียนโค๊ดทียากๆ ให้เอาแค่ไฟกระพริบหลอดเดียวก่อน เพื่อให้แน่ใจว่าเราต่อวงจรได้ถูกต้อง และเขียนโค๊ดโปรแกรมถูก แล้วอย่าลืมตั้งค่า config ต่างๆตามหนังสือด้วยล่ะ ถ้าทำตามหนังสือทุกขั้นตอน ไม่ข้ามขั้นก็น่าจะทำได้นะ
บันทึกการเข้า
got_extra
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 73


อีเมล์
« ตอบ #16 เมื่อ: กรกฎาคม 26, 2010, 08:29:43 pm »

คอมไฟล์ผ่าน ...เบรินลงicก็ผ่าน ต่อคลิตตอลแล้วต่อถูกครบทุกอย่างครับ......วงจรไฟวงธรรมดาทำได้หมดแล้วครับต่อวงจรก็ติด.....
จะเป็นไปได้เปล่าครับที่จะเป็นที่บอดร์เบรินลงicมันใช้ไม่ได้.....
รูปบอร์ดที่ผมใช้เบรินIC
บันทึกการเข้า
kiano♥
kiano555@gmail.com
กลุ่มสนับสนุนLSV+มีน้ำใจ
member
****

คะแนน337
ออฟไลน์ ออฟไลน์

กระทู้: 570


การให้น่าภูมิใจกว่าได้รับ Line ID : Tech64

kiano555@windowslive.com kiano555@yahoo.com
เว็บไซต์ อีเมล์
« ตอบ #17 เมื่อ: กรกฎาคม 26, 2010, 09:21:26 pm »

ตัวเบิร์นโปรแกรมที่แถมมากับหนังสือเป็นแบบ JMD Programmer มันจะใช้ไฟจากพอตคอมมาเลี้ยงวงจร และใช้ในการเบิร์น PIC ด้วย ดังนั้นถ้าต่อสายพ่วงออกมาแบบนี้ไม่ดีครับ แนะนำให้เสียบเข้าโดยตรงกับพอตคอมเลย ถ้าสนใจเล่นจริงจังก็ลงทุนซื้อเครื่องเบิร์นใหม่เลย ราคาไม่ถึงพันบาท จบครั้งเดียว ไม่ต้องหงุดหงิดใจกับปัญหาการเบิร์นอีก
http://www.es.co.th/listproduct.asp?PRODCODE=037004&PAGE=1
บันทึกการเข้า
sua
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 10


อีเมล์
« ตอบ #18 เมื่อ: ตุลาคม 27, 2010, 04:15:59 am »

 lv!
กำลังหัดเรียนการเขียนโปรแกรมตัวนี้อยู่พอดี ขอบอกว่าอธิบายได้แบบแจ่มเลยครับ   ก็เลยอยากให้อธิบายพิ่มอีกหน่อยครับ
 
  portA=0xFF;     //ให้พอร์ต A ทุกขาเป็น อินพุต
  portB=0x00;     //ให้พอร์ต B ทุกขาเป็น เอาพุต

0ตัวแรกหมายถึงอะไรครับ
x หมายถึงคูณใช่หรือไม่
FF หรือ 00 จะเป็นรูปแบบเฉพาะลงไปเลยว่าทุกขาเป็นอินพุท หรือเอาพุท ผมเข้าใจถูกไหมครับ และสมมุติว่าต้องการแค่ขาใดขาหนึ่ง หรือไม่ทั้งหมดเป็นอินพุทหรือเอาพุท จะมีรูปแบบคำสั่งเปลี่ยนไปหรือไม่อย่างไร มีหลักในการดูอย่างไรจึงจะเข้าใจ

ขอบบคุณครับ
บันทึกการเข้า
decha
member
*

คะแนน3
ออฟไลน์ ออฟไลน์

กระทู้: 58


อีเมล์
« ตอบ #19 เมื่อ: ตุลาคม 27, 2010, 06:42:00 am »

ดูที่ภาพตาราง  คงจะช่วยให้เข้าใจได้มากขึ้นนะครับ
บันทึกการเข้า
sua
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 10


อีเมล์
« ตอบ #20 เมื่อ: ตุลาคม 27, 2010, 09:18:29 pm »

  ขอบคุณมากเลย หายสงสัยแล้ว 
บันทึกการเข้า
E29IOU
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 15



« ตอบ #21 เมื่อ: พฤศจิกายน 11, 2010, 12:14:36 pm »

 lv! ขอฝากเนื้อฝากตัวด้วยนะครับ
บันทึกการเข้า
Dumrong007
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 87


อีเมล์
« ตอบ #22 เมื่อ: กันยายน 28, 2011, 11:41:27 am »

สอนบทต่อไปหน่อยครับ รอดูอยู่  อย่างเช่นการหน่วงเวลาโดยใช้ timer0,timer1,timer2  lv!
บันทึกการเข้า
Poine
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 1


« ตอบ #23 เมื่อ: มกราคม 11, 2013, 06:48:05 pm »

แบบว่าไม่มีพื้นฐานเลยไม่รู้ว่าจะเริ่มยังไงดี ต้องศึกษาไปทำ โปรเจค ใครก็ได้ช่วยแนะนำหน่อยครับ cry2!!
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  

Powered by MySQL Powered by PHP Powered by SMF 1.1 RC2 | SMF © 2001-2006, Lewis Media

lsv2555Please follow the new website at https://www.pohchae.com

Valid CSS!