เนื่องจากผมกำลังทำบทเรียนช่วยสอนให้รุ่นน้องแผนกเทคนิคคอมพิวเตอร์ ว.เทคนิคพระนครศรีอยุธยา เลยลองเอามาให้ชมกันครับ (แบบพื้นฐานนะครับ) สำหรับใครที่เขียนเป็นแล้วก็อย่ามาบ่นนะครับว่ามันง่ายไป
ถ้าช่วงใหนว่างๆ ผมก็จะทะยอยทำ vdo มาสอนอีกครับ รอบต่อๆไปจะมีการสอนต่อ 7segment ด้วยครับ Tongue
:ถ้าใครก็ตามแต่ ที่ copy บทความหรือ vdo ที่ผมทำไว้ก็ช่วยให้เครดิตหน่อยเถอะครับ : )
ปล. ผมอาจนานๆมาอัพทีนะครับ ต้นฉบับครับ
http://www.zone-it.com/175324
ใช้โปรแกรม Proteus และ Keil uVision3 และภาษา C ในการทำ
- - - - - - - - - - - - - - - - - - - - - - - - - - -
ก่อนเริ่มเขียน เราควรมีพื้นฐานภาษา C อยู่ด้วย รูปแบบการเขียนโปรแกรม
- - - - - - - - - - - - - - - - - - - - - - - - - - -
#include <reg51.h> // เป็นคำสั่งใช้รวมไฟล์ส่วนหัวเข้ามาในโปรแกรม ซึ่งมีหลายแบบ เช่น stdio.h , conio.h , reg51.h ฯลฯ
void main() // เป็น function หลักของโปรแกรม และเราสามารถสร้างเพิ่มเองได้ เดี๋ยวจะอธิบายในคราวต่อไป
{ // ตั้งแต่ { จนถึง } คือคำสั่งที่เราต้องการให้ทำงานหรือแสดงผลเช่นการคำนวน ฯลฯ
โค้ดโปรแกรม;
}
- - - - - - - - - - - - - - - - - - - - - - - - - - -
คำสั่งที่ใช้งานบ่อยๆก็มีประมาณนี้ครับ
reg51.h เป็นการประกาศว่าจะใช้ special function register
stdio.h ประกาศ prototype สำหรับ I/O ฟังก์ชัน
for คือการทำซ้ำ
for(count=0; count<10; count++) // count++ เพิ่มขึ้น 1 , count-- ลดลง 1 ฯลฯ
{
คำสั่งที่ต้องการให้ทำซ้ำ..
}
while การทำซ้ำอย่างมีเงื่อนไข
while(เงื่อนไข)
{
คำสั่งที่ต้องการให้ทำซ้ำ..
}
คำสั่งตรวจสอบเงื่อนไข [ if...elseif...else]
คือ ถ้าเป็นจริง จะให้ทำอะไรต่อไป และถ้าเป็นเท็จ จะให้ทำอะไรต่อไป
- if
ตัวอย่างการใช้งาน
if (a<b)
{
printf("ok");
}
- if...else
ตัวอย่างการใช้งาน
if (a<b)
{
printf("ok");
}
else
{
printf("no");
}
- if...elseif...else
ตัวอย่างการใช้งาน
if (a<b)
{
printf("ok1");
}
elseif (a<c)
{
printf("ok2");
}
elseif (a<d)
{
printf("ok3");
}
else
{
printf("no");
}
sbit = เป็นการควบคุมบิตของไมโครคอนโทรลเลอร์แบบเจาะจงบิต
sbit ชื่อตัวแปร = P1^บิตที่เท่าไหร่ก็ว่าไป;
sbit SW = P1^0; // ควบคุมพอร์ต P1 ที่บิต 0
delay = เป็นคำสั่งหน่วงเวลา
เครื่องหมายเปรียบเทียบ
> = มากกว่าหรือไม่
< = น้อยกว่าหรือไม่
>= = มากกว่าหรือเท่ากันหรือไม่
<= = น้อยกว่าหรือเท่ากันหรือไม่
!= = ไม่เท่ากันหรือไม่
== = เท่ากันหรือไม่
&& = ตรวจสอบว่าเป็นจริงทั้งหมดหรือไม่ ดูภาพประกอบจะได้เข้าใจมากขึ้น
|| = ตรวจสอบว่าเป็นจริงทั้งหมดหรือมีส่วนใดส่วนหนึ่งเป็นจริงหรือไม่ ดูภาพประกอบจะได้เข้าใจมากขึ้น
ตัวแปร
- char [ ตัวอักษร ] ได้แก่ ตัวอักษร ตัวเลข และกลุ่มตัวอักขระพิเศษใช้พื้นที่ในการเก็บข้อมูล 1 ไบต์
- int [ จำนวนเต็ม ] ได้แก่ จำนวนเต็มบวก จำนวนเต็มลบ ศูนย์ ใช้พื้นที่ในการเก็บ 2 ไบต์
- long [ จำนวนเต็มที่มีขนาด 2 เท่า ] ข้อมูลที่มีเลขเป็นจำนวนเต็ม ใช้พื้นที่ 4 ไบต์
- float [ เลขทศนิยม ] ข้อมูลที่เป็นเลขทศนิยม ขนาด 4 ไบต์
- - - - - - - - - - - - - - - - - - - - - - - - - - -
ในการเขียนโปรแกรมควบคุมไมโครคอนโทรลเลอร์บางคำสั่งต้องใช้เลขฐาน 16 ในการเขียน
การแปลงเลขฐาน 2 เป็น ฐาน 16
สมมุติเราต่อหลอดไฟที่พอร์ต P1.0 , P1.3 , P1.7
ให้เราทำตามนี้
0 = เป็นจริง , 1 = เป็นเท็จ
ก็จะได้ 89 เวลาใช้ให้เขียนเป็น 0x89
ตัวอย่า
...
void main()
{
if(sw==0)
{
P1=0x0f;
}
else
{
P1=0x89
}
}
- - - - - - - - - - - - - - - - - - - - - - - - - - -