welcome to
http://www.geocities.com/aon_micro
|
การสื่อสารทางพอร์ตอนุกรมของ MCS-51 โดยใช้ภาษาซี ใครที่เคยเขียนโปรแกรมด้วยภาษาซีมาก่อนคงรู้จักคำสั่ง printf แน่นอน ใน Turbo C++ เมื่อเราใช้คำสั่ง printf("Your text") หมายถึงสั่งให้พิมพ์ตัวอักษรลงที่หน้าจอที่หน้าจอก็จะมีผลลัพธ์ดังรูปข้างล่างนี้
และใน Keil ก็มีคำสั่งนี้เช่นกัน ใช้ร่วมกับการตั้ง Baud Rate เป็นการส่งข้อมูลออกทาง Serial Port เราสามารถเลือกความเร็วในการรับส่งข้อมูลได้จากการตั้ง Baud Rate สำหรับในการทดลองนี้ผมใช้ค่ามาตราฐานในการรับส่งข้อมูล คือ 9600 bps และจะต้องตั้งค่าดังนี้
ในภาษาซีเมื่อเราใช้ คำสั่ง printf( ) จึงต้องประกาศ #include <stdio.h> ไว้ที่ตอนต้นของโปรแกรมด้วย ในส่วนของวงจรผมใช้ไอซีสำเร็จรูปเบอร์ DS275 ที่แปลงระดับสัญญาณของ RS232 ให้เป็น TTL และจาก TTL ให้เป็นสัญญาณ RS232 หรือจะใช้ MAX 232 ก็ได้ไม่ว่ากันครับ ส่วนไมโครคอนโทรเลอร์ผมใช้เบอร์ยอดนิยมเบอร์ 89C52 มาเริ่มต่อวงจรกันเลยดีกว่าครับ ส่วนของโปรแกรมมีสั้นๆ ไม่ยาวมากครับ เมื่อเทียบการเขียนโปรแกรมภาษาแอสเซมบลีกับภาษาซีแล้วภาษาแอสเซมบลีจะยาวกว่าเยอะเลยครับ
เมื่อเขียนโปรแกรมเสร็จแล้วให้ลองเบิร์นลงไมโครคอนโทรเลอร์แล้วเปิดโปรแกรม 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]