พิมพ์หน้านี้ - เริ่มต้นใช้งาน PIC Microcontroller

LSVคลังสมองออนไลน์ "ปีที่21"

► อิเล็กทรอนิกส์ ► => ใช้งานPICด้วยภาษาASM => ข้อความที่เริ่มโดย: kiano♥ ที่ มกราคม 07, 2010, 04:01:39 PM



หัวข้อ: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: kiano♥ ที่ มกราคม 07, 2010, 04:01:39 PM
กระทู้สำหรับผู้เริ่มต้น และผู้สนใจทั่วไป ที่สนใจจะเริ่มเรียนเริ่มใช้งาน  PIC
จะพยายามเขียนแบบศัพท์ชาวบ้านเลยนะครับ เปิ่นๆบ้างแต่เอาเป็นว่า อ่านแล้วใช้งานได้ปุ๊บปั๊บเลยครับ

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

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

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

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

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


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: kiano♥ ที่ มกราคม 07, 2010, 06:34:11 PM
ถ้าในเครื่องใช้ไฟฟ้ายกตัวอย่างเครื่องซักผ้า การทำงานก็จะประกอบด้วย

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

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


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: kiano♥ ที่ มกราคม 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


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: kiano♥ ที่ มกราคม 08, 2010, 07:58:54 AM
- ขั้นตอนการสร้างโครงงาน PIC

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

ขั้นตอนที่ 1 คิดวงจร จะได้วงจรออกมาตามภาพครับ เป็นวงจรพื้นฐานของ PIC คือใช้พอร์ต B ทั้งหมดเป็น เอาต์พุต แล้วต่อเข้ากับหลอด LED
(http://i962.photobucket.com/albums/ae101/kiano555/PIC-MICRO/circuit.png)
จากรูปด้านบน นอกจากส่วนวงจรจ่ายไฟของ 7805 แล้วแทบจะไม่มีอะไรเลย เพราะทุกอย่างทำงานด้วย PIC16F627A โดยในวงจรไม่มีคริสตอล เพราะจะใช้ออสซิลเลเตอร์ภายในของ PIC ทำให้ประหยัดอุปกรณ์ไปได้อีก และเพื่อแสดงให้เห็นว่า PIC มันทำงานได้โดยไม่ต้องมีอุปกรณ์ภายนอกช่วยเลย แม้แต่อาร์พูลอัพต่อที่ขารีเซ็ตก็ไม่ใช้ สวิทช์ SW1 ทำหน้าที่เลือกรูปแบบการวิ่งของหลอด


ขั้นตอนที่ 2 เขียนโฟว์ชาร์ทการทำงานของโค๊ด จะได้โฟว์ชาร์ตการทำงานตามภาพด้านล่างครับ
(http://i962.photobucket.com/albums/ae101/kiano555/PIC-MICRO/flowchart.png)
จากรูปโฟว์ชาร์ทการทำงาน จะเห็นว่าแยกออกเป็น 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

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



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

เริ่มจากสร้างโฟลเดอร์ใหม่ขึ้นมาก่อน เพื่อใช้เก็บโค๊ดที่เราจะเขียนขึ้นครับ ตามภาพด้านล่าง
(http://i962.photobucket.com/albums/ae101/kiano555/PIC-MICRO/001.png)  (http://i962.photobucket.com/albums/ae101/kiano555/PIC-MICRO/002.png)

จากนั้นเปิดโปรแกรม MikroC แล้วสร้างโปรเจคใหม่ขึ้นมาตามภาพด้านล้าง
(http://i962.photobucket.com/albums/ae101/kiano555/PIC-MICRO/003.png)

แล้วใส่รายละเอียดต่างๆของโปรเจคตามภาพตัวอย่างครับ
(http://i962.photobucket.com/albums/ae101/kiano555/PIC-MICRO/004.png)

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

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

หลังจากที่เลือกตั้งค่าต่างๆของโปรเจคเสร็จแล้ว ก็เริ่มเขียนโค๊ดกันได้เลย ซึ่งโค๊ดจากด้านล่างนี้ ก๊อปไปวางไว้ที่หน้าต่างเขียนโค๊ดของ MikroC ได้เลยครับ
(http://i962.photobucket.com/albums/ae101/kiano555/PIC-MICRO/005.png)



//************************************************************************************
//************************************************************************************
//
//   ไฟวิ่งเลือกได้ 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);
}

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


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

(http://i962.photobucket.com/albums/ae101/kiano555/PIC-MICRO/006.png)

มาดูกันครับ ว่าหลังจากกดคอมไพล์ผ่านแล้ว เราจะได้ไฟล์อะไรบ้าง ซึ่งจะได้ตามรูปด้านล่างเลยครับ ไฟล์ที่วงสีแดงไว้คือ HEX ไฟล์ หรือไฟล์ที่แปลงแล้วเป็นภาษาเครื่อง เราจะนำไฟล์ตัวนี้เองครับ ไปเบิร์นเข้า PIC
(http://i962.photobucket.com/albums/ae101/kiano555/PIC-MICRO/007.png)



หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: abdul+ ที่ มีนาคม 26, 2010, 12:02:57 PM
 :)ขอบคุณมากครับ


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: rbung ที่ พฤษภาคม 16, 2010, 06:57:23 PM
โอ้โฮ ผมไม่ได้เข้ามาตั้งนาน แวะมาดูบอร์ด มีMikro C ด้วย กำลังตั้งไข่อยู่ ขอฝากตัวด้วยครับ  lv!


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: tutu ที่ มิถุนายน 13, 2010, 01:24:41 PM
ฝากเนื้อฝากตัวด้วยครับ...กำลังเริ่มจะหาไข่มาตั้งเลยครับ...แฮะๆ ขอเรียนด้วยคนนะ


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: got_extra ที่ กรกฎาคม 23, 2010, 08:27:13 PM
แล้วถ้าจะทำให้มันเปลี่ยนได้ซัก7รูปแบบนี้ต้องแก้อะไรตรงใหนบ้างครับ..ขออธิบายพร้อมโค้ดก็ดีครับจะได้เข้าใจง่านใว้ต่อยอดต่อ.........พอดีกำลังศึกษาด้วยตัวเองอยู่(มือใหม่)ซื้อหนังสือมาอ่านไม่ค่อยเข้าใจเท่าไรแต่พอไปได้..อิอิ

 :(


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: kiano♥ ที่ กรกฎาคม 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


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: got_extra ที่ กรกฎาคม 24, 2010, 05:32:18 PM
timer();  นี้คืออะไรครับ... shocked2


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: got_extra ที่ กรกฎาคม 24, 2010, 08:42:14 PM
ก็อปไปวางแล้วคอมไพล์แล้วไปผ่าน....เพราะอะไร.... cry2!!


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: kiano♥ ที่ กรกฎาคม 24, 2010, 09:38:42 PM
timer(); คือการเรียกใช้งานฟังก์ชั่น timer  ซึ่งเป็นฟังก์ชั่นหน่วงเวลาที่ใช้งานร่วมกัน ทำให้ประหยัดพื้นที่เขียนโค๊ด
การคอมไพไม่ผ่าน มันต้องมีการฟ้องว่า ไม่ผ่านเพราะอะไร ต้องใช้เหตุผลในการพิจารณาปัญหา
กรณีของคุณผมเดาไม่ออกว่าไม่ผ่านเพราะอะไร เพราะคุณไม่ได้บอกอะไรไว้เลย


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: got_extra ที่ กรกฎาคม 24, 2010, 10:05:28 PM
ตอนนี้คอมไพล์ผ่านแล้ว ต่อวงจรตามรูปแต่ไม่มีอะไรเกิดขึ้นเลยLEDไม่ติดเลยไม่ทราบว่าเป็นที่อะไรครับ.......... cry2!!


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: got_extra ที่ กรกฎาคม 26, 2010, 07:27:03 PM
ช่วยด้วยครับ....ผมใช้ชุดฝึกจากหนังสือpic.......learning by doingครับต่อวงจรแล้วไม่มีอะไรเกิดขึ้นเลย...พอมีวิธีเขียนโค้ดแบบอื่นเปล่าครับ....


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: kiano♥ ที่ กรกฎาคม 26, 2010, 07:36:49 PM
มันตอบยากนะครับ เพราะไม่ได้บอกไว้
- ต่อวงจรไหน ต่อถูกหรือยัง ทดสอบวงจรแล้วหรือยัง ต่อคริสตอลหรือยัง อาร์รีเซ็ตต่อหรือยัง
- เขียนโค๊ดตัวไหน ทดสอบโค๊ดแล้วหรือยัง เบิร์นโค๊ดผ่านหรือไม่
ใจเย็นๆสิครับ ไล่ดูดีๆ ว่าผิดพลาดตรงไหน ถ้าเริ่มทำครั้งแรกจริงๆ ก็อย่าเพิ่งรีบร้อนไปเขียนโค๊ดทียากๆ ให้เอาแค่ไฟกระพริบหลอดเดียวก่อน เพื่อให้แน่ใจว่าเราต่อวงจรได้ถูกต้อง และเขียนโค๊ดโปรแกรมถูก แล้วอย่าลืมตั้งค่า config ต่างๆตามหนังสือด้วยล่ะ ถ้าทำตามหนังสือทุกขั้นตอน ไม่ข้ามขั้นก็น่าจะทำได้นะ


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: got_extra ที่ กรกฎาคม 26, 2010, 08:29:43 PM
คอมไฟล์ผ่าน ...เบรินลงicก็ผ่าน ต่อคลิตตอลแล้วต่อถูกครบทุกอย่างครับ......วงจรไฟวงธรรมดาทำได้หมดแล้วครับต่อวงจรก็ติด.....
จะเป็นไปได้เปล่าครับที่จะเป็นที่บอดร์เบรินลงicมันใช้ไม่ได้.....
รูปบอร์ดที่ผมใช้เบรินIC


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


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: sua ที่ ตุลาคม 27, 2010, 04:15:59 AM
 lv!
กำลังหัดเรียนการเขียนโปรแกรมตัวนี้อยู่พอดี ขอบอกว่าอธิบายได้แบบแจ่มเลยครับ laugh2  ก็เลยอยากให้อธิบายพิ่มอีกหน่อยครับ
 
  portA=0xFF;     //ให้พอร์ต A ทุกขาเป็น อินพุต
  portB=0x00;     //ให้พอร์ต B ทุกขาเป็น เอาพุต

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

ขอบบคุณครับ thank2


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: decha ที่ ตุลาคม 27, 2010, 06:42:00 AM
ดูที่ภาพตาราง  คงจะช่วยให้เข้าใจได้มากขึ้นนะครับ


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: sua ที่ ตุลาคม 27, 2010, 09:18:29 PM
 kiss6 ขอบคุณมากเลย หายสงสัยแล้ว  thank2


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: E29IOU ที่ พฤศจิกายน 11, 2010, 12:14:36 PM
 lv! ขอฝากเนื้อฝากตัวด้วยนะครับ hungry2


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: Dumrong007 ที่ กันยายน 28, 2011, 11:41:27 AM
สอนบทต่อไปหน่อยครับ รอดูอยู่  อย่างเช่นการหน่วงเวลาโดยใช้ timer0,timer1,timer2  lv!


หัวข้อ: Re: เริ่มต้นใช้งาน PIC Microcontroller
เริ่มหัวข้อโดย: Poine ที่ มกราคม 11, 2013, 06:48:05 PM
แบบว่าไม่มีพื้นฐานเลยไม่รู้ว่าจะเริ่มยังไงดี ต้องศึกษาไปทำ โปรเจค ใครก็ได้ช่วยแนะนำหน่อยครับ cry2!!