การสื่อสารทางพอร์ตอนุกรมของ MCS-51 โดยใช้ภาษาซี

ใครที่เคยเขียนโปรแกรมด้วยภาษาซีมาก่อนคงรู้จักคำสั่ง printf แน่นอน ใน Turbo C++ เมื่อเราใช้คำสั่ง printf("Your text") หมายถึงสั่งให้พิมพ์ตัวอักษรลงที่หน้าจอที่หน้าจอก็จะมีผลลัพธ์ดังรูปข้างล่างนี้

Your text

และใน Keil ก็มีคำสั่งนี้เช่นกัน ใช้ร่วมกับการตั้ง Baud Rate เป็นการส่งข้อมูลออกทาง Serial Port เราสามารถเลือกความเร็วในการรับส่งข้อมูลได้จากการตั้ง Baud Rate สำหรับในการทดลองนี้ผมใช้ค่ามาตราฐานในการรับส่งข้อมูล คือ 9600 bps และจะต้องตั้งค่าดังนี้

SCON = 0x52; // set speacial function register
TMOD = 0x20;
TH1 = 0xfd; // Baud Rate = 9600
TR1 = 1;

ในภาษาซีเมื่อเราใช้ คำสั่ง printf( ) จึงต้องประกาศ #include <stdio.h> ไว้ที่ตอนต้นของโปรแกรมด้วย ในส่วนของวงจรผมใช้ไอซีสำเร็จรูปเบอร์ DS275 ที่แปลงระดับสัญญาณของ RS232 ให้เป็น TTL และจาก TTL ให้เป็นสัญญาณ RS232 หรือจะใช้ MAX 232 ก็ได้ไม่ว่ากันครับ ส่วนไมโครคอนโทรเลอร์ผมใช้เบอร์ยอดนิยมเบอร์ 89C52 มาเริ่มต่อวงจรกันเลยดีกว่าครับ

ส่วนของโปรแกรมมีสั้นๆ ไม่ยาวมากครับ เมื่อเทียบการเขียนโปรแกรมภาษาแอสเซมบลีกับภาษาซีแล้วภาษาแอสเซมบลีจะยาวกว่าเยอะเลยครับ

//****************************************//
//Program : Serial Communication
//Copyright (C) Aon_Micro
//****************************************//

#include <reg51.h>
#include <stdio.h>

void start (void) {
SCON = 0x52; // set speacial function register
TMOD = 0x20;
TH1 = 0xfd; // Baud Rate = 9600
TR1 = 1;

}

/********** MAIN **********/
void
main (void) {

start (); // start

printf ("MCS-51 Serial Communication...\n");
printf ("Baud Rate 9600bps...\n");
printf ("Program by [email protected]...\n");

while (1); // stop
}

เมื่อเขียนโปรแกรมเสร็จแล้วให้ลองเบิร์นลงไมโครคอนโทรเลอร์แล้วเปิดโปรแกรม Hyper Termial ที่อยู่ในเมนู start - - - > Acessories - - - > Communication - - - > Hyper Termial (ถ้าไม่มีให้ Add program ที่ Control panel) เมื่อเปิดขึ้นมาแล้วให้ใส่ชื่อ Keil C51 ในช่อง Name แล้วเลือกการสื่อสารที่ port1, port2 ...

หน้าต่าง Property ให้เลือก Restore Defaults จากนั้นให้กดรีเซตที่บอร์ดไมโครคอนโทรลเลอร์จะประกฎดังภาพ

แสดงถึงการส่งข้อมูลจากไมโครคอนโทรลเลอร์มายังคอมพิวเตอร์

 


Copyright © 2003 Aon micro. All rights reserved

E-mail:[email protected]

 

Hosted by www.Geocities.ws

1