ภาษา C สำหรับ MCS-51

เริ่มโดย melonsplitz, 24 มกราคม 2007, 18:31:55

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

melonsplitz

คือตอนนี้ผมกำลังทำ pre-project อยู่อะครับ

อาจารย์ให้ทำรถเดินตามเส้น แบบว่ามีทางขาดด้วยอะ

ไคพอจะมีเว็บสอนเขียนโปรแกรม หรือตัวอย่าง code โปรแกรมภาษา C สำหรับ MCS-51 มั่งครับ  จะส่งต้นเดือนหน้าแล้วคร้าาาบ >,<

melonsplitz


เรารักนายนะน้องฟี่

http://www.sunncity.com/Games/Maze3D/Maze3D.zip

เป็นเกมเขา วงกต อ่ะครับ คล้ายๆกัน แต่เป็นภาษา java น่ะครับ

ดูโค๊ต ก็น่าจะ มีไอเดียขึ้นมาหน่อย เพราะ คำสั่งมันก็คล้ายๆกัน

เห็นก็น่าจะพอเดาได้ว่าอะไรคืออะไร ว่าแต่ java 1+2 ผมยังได้ D อยู่เลย แฮ่ๆ ๆ :lol:  :lol:  :lol:  :lol:

melonsplitz

:roll: เปิดดูแล้วงงๆมึนๆ >,<

แต่ก็ขอบคุณมากครับ จะลองแกะๆเกาๆดู

ว่าแต่ผมยังไม่เคยเรียน Java เลยอะ แฮะๆๆ  :lol:  :lol:

เรารักนายนะน้องฟี่

ผมเคยเรียนแต่ จาวา ครับ ไม่เคยเรียน C   :lol:  :lol:  :lol:  :lol:  :lol:

EThaiZone

จาวาก็กำลังศึกษา แต่ไม่เคยลองเขียน
ส่วน C ผมได้นิดเดียวเอง
แค่เขียนในรันบนดอส เหอๆ

ความจริงไม่ได้อยากเรียน แต่มีบังคับสอน
และหนังสือเรียนที่จารย์ใช้สอน C มันซังกะบ๊วยสุดๆ

ว่าแต่MCS-51 มันคืออะไรครับ ???

melonsplitz

MCS-51 มันคือ ไมโครคอนโทรลเลอร์ ครับ
เอาไว้โปรแกรมควบคุมมอเตอร์ตัวรถครับ

EThaiZone

อ้อ ผมก็นึกว่าเป็นพวกคอมรุ่นเก่าๆ
แบบพวกเครื่องเกมส์อย่าง Atari ซะอีก

ผมเคยรู้แต่พวกเขียนคุมผ่าน IC (จำผิดๆ)

แต่รู้แค่ทฤษฎี ไม่เคยลองทำ

idelsonar

MCS-51 เคยเขียนเมื่อ 2 ปีก่อน ไม่ได้ใช้แล้วมันลืม
อีก 2 เทอมมีเรียน
[direct=https://techer.co.th]MEANWELL[/direct] | [direct=https://store.techer.co.th]สวิทชิ่ง พาวเวอร์ ซัพพลาย[/direct]

goldrich

ใช้เซนเซอร์กี่ตัวอ่ะครับ

ที่ผมเคยทำ คือใช้เซนเซอร์ 3 ตัว

โดย 2 ตัวอยู่นอก(ซ้ายขวา) วิเคราะห์สีขาว (โต๊ะขาว) อีกตัวอยู่ในวิเคราะห์สีดำ (วิ่งตามแถบสีดำ)

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

จากนั้นก็มาทำ event ต่าง ๆ โดยพิจารณาจากเซนเซอร์ทั้ง 3 ตัวครับ โดย
1. กรณี 2ขาว เจอขาว 1ดำเจอดำ ก็ไปโมดูล เดินหน้า
2. กรณี 1ขาว(ซ้าย)เจอขาว 1ขาว(ขวา)เจอดำ 1ดำเจอดำ ก็ เลี้ยวขวา
3. กรณี  1ขาว(ซ้าย)เจอดำ 1ขาว(ขวา)เจอขาว 1ดำเจอดำ ก็เลี้ยวขวา
4. กรณี เจอขาวหมด ก็ให้หมุนกลับ
(พอเข้าใจมั้ยครับ)


ส่วนเขียนยังไง .... ลงหม้อไปหมดแล้วครับ แหะ ๆ
18+
XSONIC Harddisk dock สำหรับคนมีฮาร์ดดิสหลายลูก

ถ้าความเห็นของผมมีประโยชน์ ขอ +1 Thank ครับ

totiz

ใช่ tools ชื่อ keil หรือป่าวคับ
ลองดูตัวอย่างนะ

#include <REG51F.H>

void delay(unsigned int value)
{
  unsigned int count;
  for (count = 1; count < value; count++);
}

void main()
{
       while(1)
       {
            P1=0x55;
            delay(200);
            P1=0xAA;
            delay(200);
       }

}


อันนี้คือให้ port1 ออก 1 สลับกับ 0
แต่ถ้าจะทำรถเดิมตามเส้น   ต้องมีเซนเซอร์  อย่างน้อยก็ 2 ตัว  ข้างหน้า
ซ้ายกับขวา      ถ้าใช่ MCS51  ก็ใช่ port1  อย่างเดี่ยวก็พอ
เอามา 2 บิตรับเซนเซอร์   อีก 2 บิตควบคุมล้อทั้ง 2 ข้าง
เวลารับ input เข้ามาต้อง out 1 ออกไปก่อน(ถ้าเรียนโครงสร้างของ MCS51 มาแล้วจะรู้นะ)  อันนี้้ถ้ายังไม่รู้คงงงๆ  เดี่ยวเขียนให้ดูละกัน

เอาง่ายๆนะ  ไปต่อยอดเอา

bit x;                       // ถ้าไม่ได้ก็ int x;
P1 = 0x03;             // 0000 0011  เอา 1 ไปที่ P1.0 กับ P1.1
                              // ทำแค่ครั้งแรกครั้งเดี่ยว สำหรับบิตที่จะ input
while(1)
{
    x = P1^0          // หรือ P1.0 สักอย่างจำไม่ได้ละ  ลองหาดู
    if(x == 1)
    {
          P1^2 = 1;
    }
    else
    {
          P1^2 = 0;
     }
}


อันนี้ไม่มีอะไรมากแค่ input ค่าเข้ามา  แล้วก็ output ออกไป
ต้องเอาไปประยุกค์อีกนะ

melonsplitz

นึกว่ากระทู้หายไปไหนโดนย้านมาอีกหัวข้อนี่เอง แฮะๆๆ ><

ตั้งกระทู้วันที่ 24 พอกลับมาดูอีกทีหาไม่เจอ search ก็ไม่เจอ

พอดีวันนี้ลอง search google ดันมาเจอกระทู้นี้ติดอันดับ 2
http://www.google.co.th/search?hl=th&q=%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2+c+mcs51&btnG=%E0%B8%84%E0%B9%89%E0%B8%99%E0%B8%AB%E0%B8%B2%E0%B9%82%E0%B8%94%E0%B8%A2+Google&meta=&aq=o

ขอบคุณทุกๆท่านมากครับ แล้วผมจะลองเอาเขียนดู แฮะๆๆ

ปล.บอร์ดต้องทำหใหม่หมดเลยอะ ที่ทำมาใช้ไม่ได้ เหอะๆๆ
โปรแกรมก็เขียนยังไม่เส็ด จะส่งวันที่ 12 แระ ดีนะที่เลื่อนวันส่ง
จะทันไม๊เนี่ยๆๆๆ ><