basic-51 course chapter3 (thai)

3
72 The Prototype Electronics Proto Tech - Series Embedded System ศักดิ์ชัย ผางส�าเนียง ไมโครคอนโทรลเลอร MCS-51 ดวยโปรแกรม ภาษาเบสิก µÍ¹·Õè 3 : 㪌§Ò¹¾ÍõÍÔ¹¾ØµàÍÒµ¾Øµ เพิ่มเงื่อนไขในการควบคุมพอรต เอาตพุตดวยการอานคาจากพอรต อินพุต อีกหนึ่งการทดลองสําหรับ การเรียนรูเพื่อใชงานพอรตอินพุต เอาตพุตของไมโครคอนโทรลเลอร P89V51RD2 เรียน - เลน - ใช เกี่ยวกับ¾อร์ตอิน¾Øตของไมâครคอนâทรลเลอร์ P89V51RD2 ในการก�าหนดให้เป็นพอร์ตของไมโครคอนโทรลเลอร์ P89V51RD2 ท�างานเป็นพอร์ตอินพุต ต้องเริ่มต้นด้วยการเขียนข้อมูล "1" มาที่แต่ละบิต ของพอร์ตที่ต้องการใช้งานเป็นอินพุต เพื่อหยุดการท�างานของเฟตที่ใช้ใน การขับสัญญาณเอาต์พุตของบิตนั้น ๆ ท�าให้ขาสัญญาณของพอร์ตเชื่อม ต่อเข้ากับวงจรพูลอัปภายในโดยตรง ส่งผลให้ขาพอร์ตนั้นมีลอจิกเป็น "1" สามารถรับสัญญาณลอจิก "0" จากอุปกรณ์ภายนอกได้ง่าย สัญญาณ ข้อมูลจากอุปกรณ์ภายนอกจะถูกส่งเข้ามาแล้วเก็บไว้ในวงจรบัฟเฟอร์ ภายในพอร์ต แล้วรอให้ซีพียูมาอ่านค่าเข้าไป เมื่อเป็นเช่นนีอุปกรณ์ ภายนอกที่เชื่อมต่อกับพอร์ตอินพุตของไมโครคอนโทรลเลอร์ MCS-51 แบบแฟลชควรก�าหนดให้ท�างานในสภาวะลอกิจ "0" จะดีและสะดวกที่สุด ซึ่งในปัจจุบันอุปกรณ์อินพุตที่เชื่อมต่อไมโครคอนโทรลเลอร์แทบทั้งหมด ท�างานที่ลอจิก "0" อยู่แล้ว ในรูปที่ 3-1 แสดงโครงสร้างอย่างง่ายของขาพอร์ตทั้งหมดในไมโคร คอนโทรลเลอร์ MCS-51 มาตรฐาน การท´ลองที่ 2 อ‹านค‹าอิน¾Øตเ¾ื่อควบคØมเอาต์¾Øต การทดลองที่ 1 เราสามารถท�าให้ LED ติดดับตามเวลาที่ก�าหนดได้ แล้ว ในการทดลองนี้จะเปลี่ยนการวิธีควบคุม LED โดยมาใช้สวิตช์แทน ใน โปรแกรมของการทดลองนี้จะท�าให้เมื่อกดสวิตช์ครั้งแรก LED จะติด และ เมื่อกดอีกครั้ง LED จะดับ อุปกรณ์ที่ต้องใช้ในการทดลองนี้แสดงในรูปทีL2-1 ส่วนวงจรทดลองเป็นดังรูปที่ L2-2 (L2.1) เปิดโปรแกรม Bascom-8051 ขึ้นมา เขียนโปรแกรมที่ L2-1 บันทึกชื่อเป็น InOutPort.bas (L2.2) คอมไพล์และดาวน์โหลดโปรแกรมลงไปยังบอร์ด TPE-51 โดย ใช้ซอฟต์แวร์ Flash Magic (L2.3) รันโปรแกรมด้วยการกดสวิตช์ RESET จากนั้นทดลองกดสวิตช์ S1 หากทุกอยางถูกตอง LED ตองติดสวาง จากนั้นทดลองกดสวิตช S1 อีกครั้ง LED ตองดับ รูปที่ L2-1 แสดงอุปกรณ์ทั้งหมดที่ใช้ในการทดลองนีa b c d (a) LED ขนาด 5 มม. สีแดงหรือสีอื่นตามต้องการ (b) ตัวต้านทาน 5101/4W 5% หรือ 1% (c) สวิตช์กดติดปล่อยดับ (d) สายต่อวงจร 72 The Prototype Electronics

Upload: innovative-experiment-coltd

Post on 29-Mar-2016

224 views

Category:

Documents


5 download

DESCRIPTION

เรียน-เล่น-ใช้ ไมโครคอนโทรลเลอร์ MCS-51 ด้วยโปรแกรมภาษาเบสิก ตอนที่ 3 ใช้งานพอร์ตอินพุตเอาต์พุต

TRANSCRIPT

Page 1: BASIC-51 COURSE Chapter3 (Thai)

72 The Prototype Electronics

Prot

o Te

ch -

Ser

ies

Embedded System

ศกดชยผางสาเนยง

ไมโครคอนโทรลเลอร MCS-51 ดวยโปรแกรมภาษาเบสกµÍ¹·Õè 3 : 㪌§Ò¹¾ÍõÍÔ¹¾ØµàÍÒµ¾ØµµÍ¹·Õè 3 : 㪌§Ò¹¾ÍõÍÔ¹¾ØµàÍÒµ¾ØµµÍ¹·Õè 3 : 㪌§Ò¹¾ÍõÍÔ¹¾ØµàÍÒµ¾Øµ

เพมเงอนไขในการควบคมพอรต

เอาตพตดวยการอานคาจากพอรต

อนพต อกหนงการทดลองสาหรบ

การเรยนรเพอใชงานพอรตอนพต

เอาตพตของไมโครคอนโทรลเลอร

P89V51RD2

เรยน-เลน-ใช

เกยวกบ¾อร ตอน¾Øตของไมâครคอนâทรลเลอร P89V51RD2 ในการกาหนดใหเปนพอรตของไมโครคอนโทรลเลอร P89V51RD2ทางานเปนพอรตอนพต ตองเรมตนดวยการเขยนขอมล "1" มาทแตละบตของพอรตทตองการใชงานเปนอนพต เพอหยดการทางานของเฟตทใชในการขบสญญาณเอาตพตของบตนน ๆ ทาใหขาสญญาณของพอรตเชอมตอเขากบวงจรพลอปภายในโดยตรง สงผลใหขาพอรตนนมลอจกเปน "1"สามารถรบสญญาณลอจก "0" จากอปกรณภายนอกไดงาย สญญาณขอมลจากอปกรณภายนอกจะถกสงเขามาแลวเกบไวในวงจรบฟเฟอรภายในพอรต แลวรอใหซพยมาอานคาเขาไป เมอเปนเชนน อปกรณภายนอกทเชอมตอกบพอรตอนพตของไมโครคอนโทรลเลอรMCS-51แบบแฟลชควรกาหนดใหทางานในสภาวะลอกจ "0" จะดและสะดวกทสดซงในปจจบนอปกรณอนพตทเชอมตอไมโครคอนโทรลเลอรแทบทงหมดทางานทลอจก"0"อยแลว

ในรปท 3-1 แสดงโครงสรางอยางงายของขาพอรตทงหมดในไมโครคอนโทรลเลอรMCS-51มาตรฐาน

การท´ลองท 2 อ‹านค‹าอน¾Øตเ¾อควบคØมเอาต¾Øต การทดลองท 1 เราสามารถทาให LED ตดดบตามเวลาทกาหนดไดแลวในการทดลองนจะเปลยนการวธควบคมLEDโดยมาใชสวตชแทนในโปรแกรมของการทดลองนจะทาใหเมอกดสวตชครงแรก LED จะตด และเมอกดอกครง LED จะดบ อปกรณทตองใชในการทดลองนแสดงในรปทL2-1สวนวงจรทดลองเปนดงรปทL2-2

(L2.1) เปดโปรแกรม Bascom-8051 ขนมา เขยนโปรแกรมท L2-1บนทกชอเปนInOutPort.bas

(L2.2)คอมไพลและดาวนโหลดโปรแกรมลงไปยงบอรดTPE-51โดยใชซอฟตแวรFlashMagic

(L2.3)รนโปรแกรมดวยการกดสวตชRESETจากนนทดลองกดสวตชS1หากทกอยางถกตอง LED ตองตดสวาง จากนนทดลองกดสวตช S1 อกครงLED ตองดบ

รปท L2-1 แสดงอปกรณทงหมดทใชในการทดลองน

ab

cd

(a) LED ขนาด 5 มม. สแดงหรอสอนตามตองการ

(b) ตวตานทาน 510Ω 1/4W 5% หรอ 1%

(c) สวตชกดตดปลอยดบ

(d) สายตอวงจร

72 The Prototype Electronics

Page 2: BASIC-51 COURSE Chapter3 (Thai)

The Prototype Electronics 73

รปท 3-1 โครงสรางของขาพอรตในไมโครคอนโทรลเลอร MCS-51

$regfi le = "89C51RD.DAT

$default Xram

$ramstart = 0 ‘ เรมตนการทำางานทตำาแหนงแรก

$ramsize = 1024 ‘ กำาหนดใหใชหนวยความจำาแรม 1024 ไบต

$crystal = 11059200 ‘ ใชความถสญญาณนาฬกา 11.059200MHz

Lamp Alias P0.0 ‘ กำาหนดใหคำาวา Lamp คอขาพอรต P0.0

Switch Alias P0.1 ‘ กำาหนดให switch คอขาพอรต P0.1

Lamp = 1 ‘ กำาหนดสภาวะเรมตนให Lamp มคาเปน “1”

Do ‘ จดเรมตนการวนรอบไมรจบ

Debounce Switch , 0 , Controllamp , Sub

‘ ตรวจสอบการกดสวตช ถาเปน “1” แสดงวายงไมมการกดสวตช

‘ ถาเปน “0” แสดงวา มการกดสวตชใหกระโดดไปทำางานทโปรแกรมยอย Controllamp

Loop ‘ จดสนสดของการวนรอบไมรจบ

Controllamp: ‘ จดเรมตนโปรแกรมยอย Controlleamp

If Lamp = 1 Then ‘ การตรวจสอบเงอนไข ถา Lamp มคาเปน “1”

Lamp = 0 ‘ ใหเปลยนคา Lamp เปน “0”

Else ‘ ถา Lamp ไมไดมคาเปน “1”

Lamp = 1 ‘ เปลยนคา Lamp ใหเปน “1”

End If ‘ จดสนสดการตรวจสอบเงอนไข

Return ‘ ยอนกลบ ในทนคอกลบไปท Do...Loop

โปรแกรมท L2-1 ไฟล InOutPort.bas โปรแกรมอานคาจากพอรตอนพตเพอใชในการควบคมพอรตเอาตพตอยางงาย (คาอธบายโปรแกรมภาษาไทยไมตองพมพ)

The Prototype Electronics 73

Page 3: BASIC-51 COURSE Chapter3 (Thai)

74 The Prototype Electronics

www.tpemagazine.com

จากโปรแกรมท L2-1 มคำาสงใหม 2 คำาสง และรปการเขยนโปรแกรมยอยเพมขนมา

คำาสงท 1 คอ คำสง Debounce เปนคำาสงทออกแบบมาเพอตรวจสอบการกดสวตชโดยเฉพาะเพอปองกนสญญาณรบกวนจากหนาสมผสของสวตชทยงไมนง เมอมสญญาณเขามา โปรแกรมจะไมทำางานทนท แตจะรออก 25 มลวนาทจงตรวจสอบอกครง หากยงมสญญาณเขามาอย แสดงวา ไมใชสญญาณรบกวน โปรแกรมจงทำางานตามเงอนไขทเขยนไว

คำาสง Debounce มวธการใชอย 2 รปแบบ คอ

Debounce Switch , 0 , โปรแกรมยอย, Sub

' ใหไปทโปรแกรมยอย Controllamp เมอ Switch มคาเปน "0"

Debounce Switch , 1 , โปรแกรมยอย , Sub

' ใหไปทโปรแกรมยอย Controllamp เมอ Switch มคาเปน "1"

คำาสงท 2 คอ คำสง IF...Then เปนคำาสงตรวจสอบเงอนไขวาเปนจรงหรอไมจรง หากเปนจรงใหไปทำาตามเงอนไขทอยหลง Then หากไมจรงใหไปทำาตามเงอนไขทอยหลง Else แทน รปแบบการใชงานทไมซบซอนมอย 2 แบบคอ IF..Else..Then และ IF...Then

กรณ IF..Then...Else

IF A <> B Then

[เงอนไขเปนจรง - ใหกระทำาคำาสงในบลอกน]

Else

[เงอนไขไมเปนจรง - ใหกระทำาคำาสงในบลอกนแทน]

End if

กรณ IF... Then

IF A <> B Then

[เงอนไขเปนจรง - ใหกระทำาคำาสงในบลอกน]

[เงอนไขไมเปนจรง - ใหขามการทำางานไป]

ในโปรแกรมท L2-1 เลอกใชการตรวจสอบในแบบ IF...Then...Else เมอการตรวจสอบเงอนไขเปนจรง จะทำางานอยางหนง ถาหากไมเปนจรงกจะทำางานอกอยางหนง

ในขณะทคำาสง IF...Then จะเกดการทำางานตามทกำาหนดกตอเมอเงอนไขในการตรวจสอบเปนจรงเทานน หากไมจรง โปรแกรมกจะเพกเฉยเพราะไมไดวางเงอนไขคำาสงไว

โปรแกรมยอยเปนการสรางโปรแกรมขนมาเพอทำางานเฉพาะ โดยโปรแกรมยอยทสรางขนในโปรแกรมท L2-1 เรยกวา โปรแกรมยอยแบบไมเปนทางการ กลาวคอ สามารถสรางขนมาไดเลย โดยไมตองประกาศเปนโปรแกรมยอยกอนลวงหนา ตองมเครองหมายโคลอน : อยหลงชอของโปรแกรมยอยเสมอ เชน Controllamp: เปนตน

ส วนโปรแกรมยอยแบบเปนทางการตองมการประกาศชอของโปรแกรมยอยไวทสวนหวของโปรแกรม กอนเขาสโปรแกรมหลก ดงตวอยาง

Declare Sub Controllamp 'ประกาศชอของโปรแกรมยอย Controllamp

..............

.............. [รหสคำาสงของโปรแกรมหลก]

..............

Sub Controllamp () 'จดเรมตนของโปรแกรมยอย Controllamp

.......................... [รหสคำาสงของโปรแกรมยอย]

...........................

End sub 'จดสนสดของโปรแกรมยอย Controllamp

จากการทดลองทผานมาดวยคาสงเพยงไมกบรรทด ซงทาความเขาใจไดงาย กทาใหเราเขยนโปรแกรมควบคมการตดดบของ LED ดวยการใชสวตชไดแลว นคอการเรมตนสรางระบบควบคมงายจากอปกรณอนพตหนงตวควบคมอปกรณเอาตพตหนงตว การทดลองใน BASIC-51 Course จะคอยๆ เรมทวความนาสนใจเพมขนกบอปกรณทหลากหลาย และแนนอนนกทดลองมอใหมสามารถทาความเขาใจตามไปไดไมยากอยางแนนอน

2 The Prototype Electronics

SHOPÍØ»¡Ã³ãËÁ‹ÊÓ ËÃѺ¹Ñ¡»ÃдÔÉ°áÅйѡ·´Åͧ¨Ò¡ËŒÍ§·´Åͧ¢Í§ The Prototype Electronic

คณสมบตทางเทคนค

• ใชไมโครคอนโทรลเลอร P89V51RD2 จาก NXP หนวยความจาโปรแกรมแบบแฟลช 64 กโลไบต ความถสญญาณนาฬกาทใชคอ 11.0592MHz

• มจดตอพอรตครบทกขา และมจดบดกรตวตานทานพลอปไดดวย

• เชอมตอพอรต USB เพอการดาวนโหลดและสอสารขอมลกบคอมพวเตอร เนองจากบนบอรดตดตงชปแปลงสญญาณพอรต USB เปนพอรตอนกรมเบอร MCP2200 ของ Microchip

• มจดตอโมดล LCD 16 ตวอกษร 2 บรรทด รองรบทงแบบธรรมดาและแบบมไฟสองหลง

• สวตช RESET การทางาน

• รบแรงดนไฟเลยง 9 ถง 12V มวงจรควบคมไฟเลยงคงทท +5V 500mAชดสาเรจพรอมใชงาน (มโมดล LCD ,มาตรฐานพรอมสาย USB และซอฟตแวร) @1,070 บาท

ชดคต (มโมดล LCD ,มาตรฐานพรอมสาย USB และซอฟตแวร) @749 บาท

เฉพาะแผนวงจรพมพและไอซ MCP2222 @321 บาท

อปกรณเสรม :

สาย IDC1MF @20 บาท (ม 5 เสน) สาย IDC1FF @20 บาท (ม 5 เสน)

TPE-51 ºÍôäÁâ¤Ã¤Í¹â·ÃÅàÅÍà MCS-51 ÊÓ ËÃѺ§Ò¹·´ÅͧáÅоѲ¹Òâ¤Ã§§Ò¹

• ราคาสนคาทงหมดรวม VAT 7 % แลว

• คาจดสง ฟร

• สมาชก TPE ลด 15 %

EMS คดคาสงเพม 100 บาท

บรษท อนโนเวตฟ เอกเพอรเมนต จากด108 ซอยสขมวท101/2 ถ.สขมวท แขวงบางนา เขตบางนา กรงเทพฯ 10260 โทรศพท : 0-2747-7001 ถง 4 โทรสาร : 0-2747-7005 website : www.inex.co.th หรอ www.tpemagazine.com

ÃØ‹¹Áҵðҹ SM-S4312M SM-S4312M

เปนเซอรโวมอเตอรแบบอะนาลอกมาตรฐาน ดบเบลบอลแบรง ใชเฟองโลหะทงตว มมของแกนหมน 120

ขนาด : 41.3 x 20.7 x 40 มม.หรอ 1.63 x 0.81 x 1.57 นว นาหนก : 60 กรม

แรงบด : 10.3 กโลกรม.เซนตเมตร @4.8V และ 11.1 กโลกรม.เซนตเมตร @6V

@963 บาท

ÃØ‹¹àÅ¡ SM-S3317M SM-S3317M

เปนเซอรโวมอเตอรแบบอะนาลอกขนาดเลก ดบเบลบอลแบรง ใชเฟองโลหะทงตว มมของแกนหมน 120

ขนาด : 31.3 x 16.5 x 28.6 มม. หรอ 1.23 x 0.65 x 1.13 นว นาหนก : 27 กรม

แรงบด : 2.4 กโลกรม.เซนตมเตร @4.8V และ 2.9 กโลกรม.เซนตเมตร @6V

@428 บาท

ÃØ‹¹»ÃѺᵋ§ SM-S4309RSM-S4309R

เปนเซอรโวมอเตอรแบบอะนาลอกทปรบแตงหมนไดรอบตว 360

ดบเบลบอลแบรง ใชเฟองโลหะทงตว ขนาดเทากบรน SM-S4312M

ขนาด : 41.3 x 20.7 x 40 มม.หรอ 1.63 x 0.81 x 1.57 นว

นาหนก : 56 กรม

แรงบด : 7.7 กโลกรม.เซนตเมตร @4.8V และ 8.7 กโลกรม.เซนตเมตร @6V

@963 บาท

SM-S4505B

เปนเซอรโวมอเตอรแบบอะนาลอก ดบเบลบอลแบรง ใชเฟองโลหะผสมกบเฟองพลาสตก ราคาประหยด มมของแกนหมน 120

ขนาด : 40.3 x 20.2 x 36 มม. หรอ 1.59 x 0.80 x 1.42 นว นาหนก : 39 กรม

แรงบด : 3.5 กโลกรม.เซนตมเตร @4.8V และ 4.3 กโลกรม.เซนตเมตร @6V

@642 บาท

à«ÍÃâÇÁÍàµÍÃÊÓ ËÃѺ§Ò¹àÁ¤Ò·Ã͹ԡʢ¹Ò´àÅ¡ ÃØ‹¹Áҵðҹ SM-S4505B

Ἃ¹¾ÅÒʵԡ PVC ÊÓ ËÃѺ§Ò¹»ÃдÔÉ°เปนแผนพลาสตกขนาด A4 หนา 3 มม. สเทา ตดเจาะงาย ไมแตก ประกอบหรอเชอมตอไดดวย

กาวตราชางหรอนายาประสานพลาสตกแบบเดยวกบทใชกบแผนอะครลก ทาสไดงาย

@97 บาท

PVC

TPE-51TPE-51

74 The Prototype Electronics