ขอคำแนะนำหน่อยครับ
ธนพัทธ์ ถันทอง |
ก็อื่น สวัสดีครับ ผมเป็นนักศึกษา มทร.พระนครเหนือ ครับ พอดีว่าอย่าศึกษาการเขียนโปรแกรมภาษาซี เลยไปหาซื้อบอร์ด ไมโครคอนโทรลเลอร์มา (อันนี้ไม่ทราบจริงๆว่ามีร้านพี่ เว็บไซต์นี้อะ ขาย ถ้าผมรู้ก็มาซื้อที่นี้อะครับ ใกล้บ้านนี้ครับ ผมอยู่ บางโพนี้เอง) ต่อครับ ได้ บอร์ด MCS-51 รุ่น MEB-2000 มา แต่ผมใช้ ไมโครเบอร์ P89V51RD2 ที่ใช้ตัวนี้เพราะว่า ผมมีแต่ Notebook พอร์ตที่ใช้ได้ก็แค่ เป็น พอร์ตอนุกรม ต่อ RS232 จึงต้องใช้เบอร์นี้ครับ คืออย่างนี้ ผมใช้ โปรแกรม Keil uVision 3 ในการComplier ที่สงสัยอะครับ คือ แล้วผมเขียนโปรแกรมเสร็จมัน Complier ไม่ผ่านผมลองตรวจดูหลายครั้งแล้วครับเป็นแค่โปรแกรมเล็กๆ สั้นๆ เองไม่ได้เขียนผิดหรือตกใด แต่ผมลองเอาต้นฉบับที่มีอยู่ คัดลอกแล้วมาวางลง เหมือนกานทุกอย่าง มันComplier ผ่านอะครับ งงๆๆ มากๆๆ และ มีการแจ้งว่าไม่สามารถเปิดไฟล์ได้ (#include <P89V51RD2.H>ที่ใช้) แต่เขียนเป็น #include <studio.h> สามารถเปิดได้ และมันหา P0 ที่ผมใช้อ้างอิงพอร์ต 0 ไม่เจออะครับ ดูตามที่ภาพนะครับ ช่วยหน่อยนะครับ ขอบคุณครับ |
เว็บมาสเตอร์ |
อย่างแรกนะครับเราไปดูก่อนนะครับว่าโปรแกรมที่ เราลงมีตัว P89V51RD2ไปดู library ของโปรแกรมนะครับว่ามีMCU เบอร์นี้หรือป่าวครับ อย่างที่สองนะครับบอร์ดที่น้องซื้อมานั้นมีโปรแกรมตัวอย่างแถมมาให้ด้วยใช่ไหมครับ ถ้าเป้นของ ETT หรือ MRT INEX จะให้มาครับ เราสามารถเอาตัวอย่างมา Complier ได้เลยไม่ต้องเขียนใหม่แต่ถ้าอยากเริ่มเขียนไหมก้ได้เพียงแต่เลือกเบอร MCU ให้ตรงตั้งค่าของ KEIL ให้ตรง บางทีน้องก็ไม่ต้อง #include P89XXXXX ใช้ #include <reg52.h> // Standard 8052 SFR : File แล้วมาเซ็ตคุณสมบัติของเบอร์MCUอีกทีก้ได้ครับ /* AT89C51AC3 SFR */ sfr CKCON = 0x8F; // Clock Control sfr P4 = 0xC0; // Port P4 หรือ // #include <REGLV51RD2.h> // Header file register for P89V51RD2BN ตัวอย่าง /*******************************************/ /*******************************************/ // LED Blink Test /* Include Section */ #include <reg52.h> // Standard 8052 SFR : File /* AT89C51AC3 SFR */ sfr CKCON = 0x8F; // Clock Control sfr P4 = 0xC0; // Port P4 sbit led = P1^0; // P1.0 = lED ON/OFF /* User Define Function */ void delay(unsigned long); // Delay Time Function(1..4294967295)
void main() { CKCON = 0x01; // Initial X2 Mode (BUS Clock = 58.9824 MHz)
while (1) // Loop Continue { led = ~led; // Tiggle LED delay(50000); // Delay Blink } } /*******************************************/ /* Long Delay Time Function(1..4294967295) */ /*******************************************/ void delay(unsigned long i) { while(i > 0) {i--;} // Loop Decrease Counter return; }
|
ธนพัทธ์ ถันทอง |
ขอบคุณครับผม |
