ipst-microbox 1/3
DESCRIPTION
IPST MicroBOX PowerPoint PresentationTRANSCRIPT
การพฒนาโปรแกรมบน IPST MicroBOXการพฒนาโปรแกรมบน IPST-MicroBOXกฤษดา ใจเยน
นคร ภกดชาต
วรพจน กรแกววฒนกล
บรษท อนโนเวตฟ เอกเพอรเมนต จากดwww.inex.co.th
ชดท 1
สโลกสโลก
สโลกไมโครคอนโทรลเลอรสโลกไมโครคอนโทรลเลอร
ประวตไมโครโปรเซสเซอร
คอมพวเตอร คอ อปกรณทใชซอฟตแวรเปนตวดาเนนการทางาน วาตองการให
ป ใ ใ อปกรณใดทางานใดบาง
การพฒนาระบบคอมพวเตอรกเปนรปเปนรางมากขนเมอ Intel ไดพฒนา
อปกรณสาหรบประมวลผลคาสง ทเรยกวา “ไมโครโปรเซสเซอร”
"(Microprocessor)"( p )
MPU 4004 (MCS-4)
ไมโครโปรเซสเซอรตวแรกของโลกไมโครโปรเซสเซอรตวแรกของโลก 1971: 4004 ไมโครโปรเซสเซอร
ป ไ โ โป เปนไมโครโปรเซสเซอรตวแรกจากอนเทล ประดษฐกรรมชนนพฒนาขนเพอใชกบเครองคดเลขของ Busicom และปทางเขาสการออกแบบสงประดษฐใหมๆ อยางเชน เครองคอมพวเตอรสวนทางเขาสการออกแบบสงประดษฐใหมๆ อยางเชน เครองคอมพวเตอรสวนบคคล จานวนทรานซสเตอร: 2,300 ตว
ความเรวสญญาณนาฬกา: 108 kHz
1972: 8008 ไมโครโปรเซสเซอร 8008 เปนไมโครโปรเซสเซอรทมประสทธภาพสงกวารน 4004 ถงสองเทา 8008 เปนไมโครโปรเซสเซอรทมประสทธภาพสงกวารน 4004 ถงสองเทา โดยมการกลาวถงในบทความของ Radio Electronics เมอป 1974 วา อปกรณทชอ Mark-8 ใชชป 8008 สาหรบ Mark-8 นนเปนทรจกกนวาคอคอมพวเตอรรนแรกสาหรบใชภายในบาน จานวนทรานซสเตอร: 3,500 ตวความเรว: 200 kHzความเรว: 200 kHz
สโลกไมโครคอนโทรลเลอรสโลกไมโครคอนโทรลเลอร
ไมโครโปรเซสเซอร
การทางานของไมโครโพรเซสเซอร
จะทาหนาทประมวลคาสงขอมลในรป
Address
Data ROM
สญญาณดจตอล มาเทยบกบตาราง
ชดคาสง เพอกาหนดการทางานในแบบ
ตางๆ สวนอตราการประมวลผลนน
Data
ตางๆ สวนอตราการประมวลผลนน
ขนอยกบความถสญญาณนาฬกาทปอนให
ไมโครโพรเซสเซอร จาเปนตองมอปกรณ
Microprocessor RAM
Address
Data
รวมอนๆประกอบเขาดวยกน ไมวาจะเปน
หนวยความจา อปกรณรบ-สงสญญาณ
ตางๆI/O
Address
Data ตางๆ/
สโลกไมโครคอนโทรลเลอรสโลกไมโครคอนโทรลเลอร
ไมโครคอนโทรลเลอรกบไมโครโปรเซสเซอร
AddressI t t
จรง ๆ แลวไมโครโปรเซสเซอรสามารถ
นาไปประยกตใชในงานตางๆ มากมาย Data ROM
Interrupt
Watchdog
นาไปประยกตใชในงานตางๆ มากมาย
แตดวยขนาดของระบบซงมขนาดใหญ
รวมถงลกษณะงานบางอยางไม
ป ใช ส ใ
Microprocessor RAM
Address
Data
จาเปนตองใชความสามารถในการ
ประมวลผลมากนก
ไมโครคอนโทรลเลอรจงไดถอกาเนดขน
Address
ไมโครคอนโทรลเลอรจงไดถอกาเนดขน
โดยไดทาการรวมอปกรณพนฐานตางๆ
เขามาอยในไอซตวเดยว เพอลดขนาด
และความซบซอนของวงจรลง ทาใหI/O
Oscillator
Dataและความซบซอนของวงจรลง ทาให
ราคาของระบบถกลง
MicroController
สโลกไมโครคอนโทรลเลอรสโลกไมโครคอนโทรลเลอร
ไมโครคอนโทรลเลอรทมใชงานทว ๆ ไป
ไมโครโปรเซสเซอร
ไมโครคอนโทรลเลอร MCS-51
ไ โ โ ไ โ โ ไมโครคอนโทรลเลอร AVRไมโครคอนโทรลเลอร PIC ไมโครคอนโทรลเลอร BASIC Stamp ไมโครคอนโทรลเลอร AVR
สโลกไมโครคอนโทรลเลอรสโลกไมโครคอนโทรลเลอร
ไมโครคอนโทรลเลอรทมใชงานทว ๆ ไป
สโลกไมโครคอนโทรลเลอรสโลกไมโครคอนโทรลเลอร
ตวอยางการใชงานไมโครคอนโทรลเลอรในเครองปรบอากาศ
ระบบควบคมของเครองปรบอากาศ
ตรวจสอบการเปด
จากรโมตหรอสวตช
+V
220V
สงใหคอมเพรสเซอรทางาน
Data In
ตรวจสอบอณหภมจาก
ไ
มากกวา
คาทตงไวCompressor
Microcontroller
Digital In
Digital Out
เซนเซอร กบคาทตงไว
นอยกวา
คาทตงไว
A/D in
สงใหคอมเพรสเซอรหยดทางาน
ขนตอนการพฒนาโปรแกรมกบไมโครคอนโทรลเลอรขนตอนการพฒนาโปรแกรมกบไมโครคอนโทรลเลอร
ภาษา BASICภาษา Java Analog
Digital
ซอฟตแวร ฮารดแวรซอฟตแวรภาษา C
ขนตอนการพฒนาโปรแกรมกบไมโครคอนโทรลเลอร
ออกแบบฮารดแวร
โปเขยนโปรแกรมบนคอมพวเตอร
แกไขขอผดพลาด
คอมไพลโปรแกรมเปนภาษาเครอง
ตรวจสอบขอผดพลาด เปนภาษาเครอง
ดาวนโหลดโปรแกรม
ขอผดพลาด
ดาวนโหลดโปรแกรมไปยงบอรด
ภาษาทใชเขยนตดตอกบไมโครคอนโทรลเลอรภาษาทใชเขยนตดตอกบไมโครคอนโทรลเลอร
เชนเดยวกบการเขยนโปรแกรมบนคอมพวเตอร เชนเดยวกบการเขยนโปรแกรมบนคอมพวเตอร
ไมโครคอนโทรลเลอรสามารถเขยนโปรแกรมโดยใชภาษาระดบสง เชน
ภาษา BASIC ภาษา C หรอ PASCAL ได
แตภาษาทตดกบตวไมโครคอนโทรลเลอรแตละตวมาคอ ภาษาแอสเซมบล
ในแตละตระกลของไมโครคอนโทรลเลอร
กจะมโครงสรางทางภาษา (แอสแซมบล ) แตกตางกนกจะมโครงสรางทางภาษา (แอสแซมบล ) แตกตางกน
ภาษาสงกบไมโครคอนโทรลเลอรแบงออกเปน 2 รปแบบคอ
1. ใชคอมไพเลอร ภาษาตาง ๆ ชวยในการเขยนโปรแกรม
2. ใชอนเตอรพรเตอร ซงฝงตวอยในโมดลไมโครคอนโทรลเลอรเบอรนน ๆ
การพฒนาไมโครคอนโทรลเลอรในปจจบนรปแบบท 1 ใชไมโครคอนโทรลเลอรมตวแปลภาษา
• โมดลสาเรจรป ไมตองพงอปกรณภายนอก• โมดลสาเรจรป ไมตองพงอปกรณภายนอก
• ม อนเตอรพรตเตอร (ตวแปลภาษาในตว)
• ซอฟตแวรภาษาเบสกเขยนงาย มใหใชงานฟร
• ใชเวลาในการเรยนรนอย พฒนางานไดเรว ใชเวลาในการเรยนรนอย พฒนางานไดเรว
ราคาคอนขางสงเมอเทยบกบไมโครคอนโทรลเลอรตระกลอน
การพฒนาไมโครคอนโทรลเลอรในปจจบนการพฒนาไมโครคอนโทรลเลอรในปจจบน
รปแบบท 2 ใชไมโครคอนโทรลเลอรผานคอมไพเลอร
• ตองใชเครองโปรแกรมภายนอกในการโปรแกรม
ไ • คอมไพเลอรภาษา C แจกฟร
• ทางานดวยความเรวสง
• ราคา(ไมโครคอนโทรลเลอร ) ไมแพง
สาหรบผเรมตน ใชระยะเวลาในการเรยนรนานกวารปแบบท 1
ATMEGA-16 จาก ATMEL หวใจของ IPST-MicroBOX
• หนวยความจาโปรแกรมภายใน 16 kByte
• หนวยความจา RAM 1 kByte
• ทางานดวยความเรว 16 ลานคาสงตอวนาท ทครสตอล 16 MHz
• พอรตอนพตเอาตพต 32 ตาแหนง• พอรตอนพตเอาตพต 32 ตาแหนง
• วงจรพลสวดธมอดเลเตอร 4 ชอง
• ไทเมอรเคานเตอร 3 ตว
• การสอสารอนกรม SPI/I2C/USART
• วงจรแปลงสญญาณอะนาลอกเปนดจตอล 10 บต 8 ชอง
โป ไ • สามารถโปรแกรมและลบไดนบหมนครง
ATMEGA-16 จาก ATMEL หวใจของ IPST-MicroBOX
วงจรแปลงสญญาณ
อะนาลอกเปนดจตอล 10 บตไทเมอรเคานเตอร
หนวยความจาโปรแกรม
16 กโลไบต
อะนาลอกเปนดจตอล 10 บต
PA0-PA7PORTA
(อะนาลอกอนพต)
16 กโลไบต
หนวยความจาขอมล
1 กโลไบตพอรต
PC0-PC7PORTC
หนวยความจา EEPROM
512 ไบต
1 กโลไบตอนพต
เอาตพตPD0-PD7PORTD
ATMEGA16
512 ไบต
ออสซลเลเตอร
16 MHz
PB0-PB4PORTB
PORTBPB5-PB7
ดาวนโหลดโปรแกรมดาวนโหลดโปรแกรม
แบบ ISP
พ ๆ นอง ๆ ในตระกล ATMEGAของ Atmelพ ๆ นอง ๆ ในตระกล ATMEGAของ Atmel
ชดท 2
แนะนากลองสมองกล แนะนากลองสมองกล
IPST-MICROBOX
ชดสมบรณแบบ
บอรดควบคมหลก
ตาแหนงตาง ๆ บนบอรด IPST-MICROBOXตาแหนงตาง ๆ บนบอรด IPST MICROBOX
พอรต C สาหรบ
ตอบอรดขบ 7 เซกเมนต สวตช เปด/ปด
พอรต P6-P7
(อนพตอะนาลอก) ตอบอรดขบ 7 เซกเมนต สวตช เปด/ปด
จดตอไฟเลยง
จากอแดปเตอรพอรต P0-P5
(อนพตอะนาลอก)
จดตอไฟจาก
แบตเตอร
พอรต P0 P5
(อนพตอะนาลอก)
ไมโครคอนโทรลเลอร
พอรต B0-B4
ATMEGA16
ครสตอล 16 MHz
พอรต D
(เอนกประสงค)
พอรต B0 B4
(เอนกประสงค)
ครสตอล 16 MHz
(เอนกประสงค)
พอรต D0 และ D1
รบและสงขอมลอนกรม
จดเชอมตอสาหรบ
ดาวนโหลดโปรแกรม
สวตชรเซต
กลมบอรดควบคมและโปรแกรม
• เครองโปรแกรม PX-400
• บอรดหลก IPST-MICROBOX
กลมแผงวงจรตรวจจบแบบดจตอล
• แผงวงจรสวตช
• โมดลรบแสงอนฟราเรด
กลมแผงวงจรตรวจจบแบบอะนาลอกกลมแผงวงจรตรวจจบแบบอ นาลอก
• วดแสง,อณหภม,เสยง
• วดความตานทาน,สนามแมเหลก
กลมแผงวงจรขบเอาตพต
• ขบ LED ,ขบ 7 เซกเมนต,
• ขบมอเตอร,ขบรเลย
กลมบอรดควบคมและโปรแกรมกลมบอรดควบคมและโปรแกรม
1. แผงวงจร Micro BOX
2 ช โ โป PX 400 2. ชดดาวนโหลดโปรแกรม PX-400 พรอมสายตอพอรตอนกรม
3. แผงวงจร UCON-232S สาหรบแปลงพอรต USB เปนพอรตอนกรม
กลมแผงวงจรขบเอาตพต
แผงวงจรขบ LED สองส
แผงวงจรขบ LED อนฟราเรด
แผงวงจรขบรเลยแผงวงจรขบ ตวเลข 7 สวน
แผงวงจรขบ LED อนฟราเรด
แผงวงจรขบลาโพงเปยโซ แผงวงจรขบมอเตอรแผงวงจรแสดงผลและพอรตเอนกประสงค
กลมแผงวงจรตรวจจบแบบดจตอลกลมแผงวงจรตรวจจบแบบดจตอล
2 ชด
• เปนอปกรณรบขอมลดจทล
• ใหโลจก ‘0’ ถาตรวจจบคลน
อนฟราเรดยานความถ 38kHz ได
กลมแผงวงจรตรวจจบแบบอะนาลอก
แผงวงจรตรวจจบแสง
แผงวงจรตรวจจบสนามแมเหลกโมดลตรวจจบเสยง
สแผงวงจรตรวจจบแสง
อนฟราเรด แผงวงจรตรวจจบอณหภม
โมดลตรวจจบและวดระยะทาง
ดวยแสงอนฟราเรด
แผงวงจรตรวจจบการสะทอน แผงวงจรตรวจวดคาความตานทาน
กลมแผงวงจรตวตานทานปรบคาได
แผงวงจรตวตานทานปรบคาได ตวตงแผงวงจรตวตานทานปรบคาได แบบเลอน
สญลกษณของ
ตวตานทานปรบคาได
แผงวงจรตวตานทานปรบคาได ตวนอน
ตวตานทานปรบคาได
ชดท 3
การตดตง
AVR Studio ใ โป ไ โ โ เครองมอหลกในการพฒนาโปรแกรมบนไมโครคอลโทรเลอรตระกล AVR
เครองมอสาหรบสรางและแกไขซอรสโคด
เครองมอสาหรบคอมไพลซอรสโคดใหเปนภาษาเครอง
เครองมอสาหรบการจาลองการทางาน
เครองมอสาหรบโปรแกรมไมโครคอนโทรลเลอรผานพอรตอนกรม
* AVR Studio ไมมคอมไพเลอรภาษา C ตดตงอยภายในจะตองตดตงโปรแกรม Winavr กอนถงจะคอมไพลภาษา C ได
AVR Studio เปนซอฟตแวรจากAVR Studio เปนซอฟตแวรจาก
ผผลตชปไมโครคอนโทรลเลอร AVR
สามารถดาวนโหลดเวอรชนลาสดไดท
www.atmel.com/avr
เลอกหวขอ
Tools & Software
ซอฟตแวรคอมไพลเลอรภาษา C สาหรบไมโครคอนโทรลเลอร AVR
เปนซอฟตแวร open source ดาวนโหลดโปรแกรมไดท
http://sourceforge net/projects/winavr/http://sourceforge.net/projects/winavr/
ผลลพธจากการคอมไพลเปน *.hex ดาวนโหลดลงไมโครคอนโทรลเลอร
ไ ไดทนท
ใชงานรวมกบ AVR Studio โดย AVR Studio จะคนหาโปรแกรม
โ โ WINAVR โดยอตโนมตหลงจากตดตงแลว
เปนไฟลสนบสนนชดคาสงหรอฟงกชนตาง ๆ
segment.h สาหรบควบคมการแสดงผล 7
เซกเมนต
sound.h สาหรบการสรางเสยง
analog h ส
lcd.h สาหรบควบคมการแสดงผล LCD
led.h สาหรบควบคม LED 8 ดวงบนบอรด 7
analog.h สาหรบการอานคาอะนาลอกจากขาพอรตของ AVR
in out.h สาหรบการอานคาและสงคาไปยงled.h สาหรบควบคม LED 8 ดวงบนบอรด 7
เซกเมนต
motor.h สาหรบการควบคมมอเตอร
in_out.h สาหรบการอานคาและสงคาไปยงพอรตอนพตเอาตพต
gp2d120 h srf05 h sht11 h serial.h สาหรบการสอสารขอมลอนกรมกบ
คอมพวเตอร
gp2d120.h ,srf05.h , sht11.h,
timer.h , memsic.h
ทาการคดลอก โฟลเดอร include ไปไวในไดรฟ C เพอการเรยกใชงานไดสะดวก
ทดลองสราง Project
เลอก New Project หลงจากเรยกโปรแกรม AVR Studio
ทดลองสราง Project
Project type: AVR GCC
Project name: Counting
ตงชอ Counting
เลอก Location ตามความเหมาะสม
ทดลองสราง Project
รายชอไฟลท
เขยนซอรสโคด
เกยวของ ภาษา C
หนาตาง
แสดงผลลพธ
การคอมไพลการคอมไพล
การปรบแตงคาในโปรเจค โปรเจคทสรางขนใหมตองผานการปรบคาตาง ๆ กอนเรมพฒนา
โปรแกรม
เลอกเมน Project Configuration Options
หวขอ General
atmega16เชคทงหมด
16000000
การปรบแตงคาในโปรเจค
กดเพอเพมไฟล i l dกดเพอเพมไฟล include
หวขอท 2
การปรบแตงคาในโปรเจค
ปรบแตงเฉพาะเมอตองการใชงานเกยวของกบการคานวณคณตศาสตร
serial.h และ lcd.h
เพมไลบราร libm.a
ชดคาสงในไลบราร IPST
in out h – รวมคาสงพนฐานเพอจดการอนพตเอาทพตin_out.h รวมคาสงพนฐานเพอจดการอนพตเอาทพต
sleep.h – รวมคาสงหนวงเวลาเปนมลลวนาท
led.h – รวมคาสงแสดงผลขอมลบนแถว LED 8 ดวง
segment h – รวมคาสงแสดงผลขอมลบน LED แบบ 7 สวนsegment.h รวมคาสงแสดงผลขอมลบน LED แบบ 7 สวน
timer.h – รวมคาสงจบเวลา
analog.h - รวมคาสงอานคาอนพตแบบอะนาลอก
sound h – รวมคาสงสงสญญาณเสยงออกทางลาโพงเปยโซ sound.h – รวมคาสงสงสญญาณเสยงออกทางลาโพงเปยโซ
motor.h – รวมคาสงควบคมมอเตอรไฟตรง
ตาแหนงตาง ๆ บนบอรด IPST-MICROBOXตาแหนงตาง ๆ บนบอรด IPST MICROBOX
พอรต C สาหรบ
ตอบอรดขบ 7 เซกเมนต สวตช เปด/ปด
พอรต P6-P7
(อนพตอะนาลอก) ตอบอรดขบ 7 เซกเมนต สวตช เปด/ปด
จดตอไฟเลยง
จากอแดปเตอรพอรต P0-P5
(อนพตอะนาลอก)
จดตอไฟจาก
แบตเตอร
พอรต P0 P5
(อนพตอะนาลอก)
ไมโครคอนโทรลเลอร
พอรต B0-B4
ATMEGA16
ครสตอล 16 MHz
พอรต D
(เอนกประสงค)
พอรต B0 B4
(เอนกประสงค)
ครสตอล 16 MHz
(เอนกประสงค)
พอรต D0 และ D1
รบและสงขอมลอนกรม
จดเชอมตอสาหรบ
ดาวนโหลดโปรแกรม
สวตชรเซต
BD1W04M
K1DC IN/OUT
+-
K2AC/DC input
LED1
R11k
IC1LM2940-5.0
S1POWER +5V
D11N4002
วงจรของ IPST-MicroBOXAC/DC input6-12V
+5V
AVC C
30VC C
10
AREF32
R3R2
4.7k
C10.1/50V
C21000/6.3V
C40.1/50V
C31000uF/6.3V
วงจรของ IPST MicroBOX
RESET9R347R
+5V C50.1/50V
SW1Reset
6 PB5/MOSI
R4150R
7 PB6/MISO
R5150R
R6
J6PA0
J7PA1
J8PA2
+5VR20150R
PA0R21150R
PA1R22150R
PA2R23
MOSI
RESET
MISO
SCK
IC1ATMEGA16
40
39
38
8 PB7/SCK
R6150R
1 PB0
R7150R
J1PB0
J2PB1
J3
+5V
2 PB1
R8150R
3 2
R9150R
J9PA3
J10PA4
J11PA5
J12PA6
150RPA3
R24150R
PA4R25150R
PA5R26150R
PA6
37
36
35
34
J3PB2
J4PB3
J5PB4
3 PB2
4 PB3
R10150R
5 PB4
R11150R
J13PA7
R27150R
PA7
J14PD0/RxD
J15PD1/TxD
+5VR28150R
PD0R29150R
PD1+5V
R12
33
14
15PD1/TxD
J16PD2
J17PD3
J18PD4
J19
R30150R
PD2R31150R
PD3R32150R
PD4R33150R
PD5
PC0
PC1
PC2
PC3
PC4
22
23
24
25
26
150R
R13150R
R14150R
R15150R
R16150R
J22PORTC
16
17
18
19
3111GND
GND
J19PD5
J20PD6
J21PD7
PD5R34150R
PD6R35150R
PD7
PC4
PC5
PC6
PC7
27
29
28
R17150R
R18150R
R19150R
20
21
XTAL1 XTAL212 13
Xtal116MHz
C630pF
C730pF
การเชอมตอกบคอมพวเตอรเพอดาวนโหลดขอมลการเชอมตอกบคอมพวเตอรเพอดาวนโหลดขอมล
ชดท 4
ป การทดลองอปกรณกลม
แผงวงจรขบ LED สองส : ZX LED2Cแผงวงจรขบ LED สองส : ZX-LED2C
O LED
220LOW
O LED
+S
HIGH
Bi-colorLED
R
G
+
S HIGH+S
ใ ใ ไใช LED แบบ 2 สในการแสดงผล โดยเลอกได 2 แบบ
ชอง HIGH ถาอนพตเปนลอจก "1" LED ตดเปนสแดง
ชอง LOW ถาอนพตเปนลอจก "0" LED ตดเปนสเขยว ชอง LOW ถาอนพตเปนลอจก "0" LED ตดเปนสเขยว
ถาไมใชสญญาณทกาหนด LED จะดบ
การทดลองท 1 ควบคมการตดดบของ LED
LED Blinking ZX-LED2C
Bi-color LEDD-+ S -+ S
1.ทาการเชอมตอแผงวงจร ZX-LED2C เขากบบอรด IPST ทตาแหนง PD7
การทดลองท 1 ควบคมการตดดบของ LED2.เปดโปรแกรม AVR Studio สรางโปรเจกตใหมแลว
เขยนโปรแกรมตอไปนลงไปเขยนโปรแกรมตอไปนลงไป
#include <ipst.h>pvoid main(){
while(1){
out b(1 1);out_b(1,1);sleep(500);out b(1,0);_sleep(500);
}}}
การทดลองท 1 ควบคมการตดดบของ LED
3. คอมไพลโปรแกรม ตรวจสอบ
กดปมเพอคอมไพล
หนาตาง Build ตองแสดง
ขอความ "Build Secceeded”
แสดงวาโปรแกรมทเขยนขนไมมกดปมเพอคอมไพล แสดงวาโปรแกรมทเขยนขนไมม
ขอผดพลาด
4. เปดโปรแกรม AVR Prog โดย
ไปทหนาตาง Tools เลอก
ไ
AVR Prog
ไมเกดขอผดพลาด
การทดลองท 1 ควบคมการตดดบของ LED
4. เปดโปรแกรม AVR Prog โดยไปทหนาตาง Tools
เลอก AVR Prog
* ขอท 4 ขามขนตอนสาคญไปคอ การเชอมตอบอรด
IPST เขากบคอมพวเตอรและจายไฟใหกบบอรด IPSTIPST เขากบคอมพวเตอรและจายไฟใหกบบอรด IPST
4 ทาการเชอมตอบอรด IPST 4. ทาการเชอมตอบอรด IPST
เขากบเครองโปรแกรม PX-400
5. เชอมตอสายระหวาง PX-400
กบคอมพวเตอร
6. จายไฟใหกบบอรด IPST
โ โ7. เปดโปรแกรม AVR Prog โดย
ไปทหนาตาง Tools
เลอก AVR Progเลอก AVR Prog
การทดลองท 1 ควบคมการตดดบของ LED8. กดป ม Browse เลอกตาแหนงทเกบ
โปรแกรม (นามสกล *.hex ) จะเกบไวไน
1. เลอกไฟล
โฟลเดอร Default
9. เลอกเบอรของไมโครคอนโทรลเลอร
ใ ใหตรง
10. ถาไมจาเปนไมใหเขาไปเปลยนแปลง
คาในโฟลเดอร Advanced คาในโฟลเดอร Advanced
11. กดป ม Program เพอโปรแกรมขอมล
ลงไปยงไมโครคอนโทรลเลอร3. Program
2. เลอกเบอร
sleep - คาสงหนวงเวลา
ใ ไฟ อยในไฟลเฮดเดอร sleep.h
การใชงาน
sleep(m) – หนวงเวลา m มลลวนาท (โดยประมาณ)
ตาแหนงพอรต
out_d(x,y) – คาสงกาหนดขาพอรตมลอจก “0” หรอ “1”
ตาแหนงพอรต
อยในไฟลเฮดเดอร in_out.h
การใชงาน
out d(7,1) กาหนดให PD7 มลอจก “1”_ ( , )
out_d(6,0) กาหนดให PD6 มลอจก “0”
แผงวงจรสวตช : ZX-SWITCH D SWITCH
LOW10kSWITCH +S
HIGH510 +SR
Bi-color LEDG
+5+5
0V ลอจก “0”
10kR1
0V 10kR1
5V5V ลอจก “1”
SW1
0V
SW1
5V
GND GND
การทดลองท 2 การอานคาจากแผงวงจรสวตช1.ทาการเชอมตอแผงวงจร ZX-LED2C เขากบบอรด IPST ทตาแหนง PD7
2 เชอมตอแผงวงจรสวตชเขากบชอง PB42. เชอมตอแผงวงจรสวตชเขากบชอง PB4ZXB X-LED
2C
Bi-color LED
-+ S -+ S
ATMEGA16
การทดลองท 2 การอานคาจากแผงวงจรสวตช3. เปดโปรแกรม AVR Studio สรางโปรเจกตใหมแลว
เขยนโปรแกรมตอไปนลงไปเขยนโปรแกรมตอไปนลงไป
#include <ipst.h>void main(){
while(1){{
if(in_b(4)==0){
o t d(7 1)out_d(7,1);}else{{
out_d(7,0);}
}}}
การทดลองท 2 การอานคาจากแผงวงจรสวตช
4. คอมไพลโปรแกรม
5. ดาวนโหลดโปรแกรมลงไปยงไมโครคอนโทรลเลอร
6. ทดสอบการทางานของโปรแกรม
เมอกดสวตช LED ......เมอกดสวตช LED ......
เมอปลอยสวตช LED …..
บททดสอบ 1 สวตชกดตด กดดบ
ZX-LED
Bi-coloATMEGA16 D2C
or LED
-+ S -+ S
ATMEGA16
ใ เขยนโปรแกรมใชฮารดแวรเดม เมอกดสวตช 1 ครง LED ตด กดสวตชอก 1 ครง LED
ดบ สลบกนไปเรอย ๆ
เฉลย รปแบบท 1
#include <ipst.h>void main(){
while(1){
if(i b(4) 0)if(in_b(4)==0){toggle_d(7);sleep(300);sleep(300);}
}}}
เฉลย รปแบบท 2
#include <ipst.h>char a=0;void main()void main(){
while(1){
if(in_b(4)==0){
if (a==0){{
a=1;out_d(7,1);
}else{
a=0;out d(7,0);out_d(7,0);
}sleep(300);
}}}
}
ฟงชนสาหรบอานคาจากพอรตอนพต
ฟงกชน in_a สาหรบอานคาระดบสญญาณดจตอลจากพอรต A
ฟงกชน in_b สาหรบอานคาระดบสญญาณดจตอลจากพอรต B
ฟงกชน in_c สาหรบอานคาระดบสญญาณดจตอลจากพอรต C
ฟงกชน in_d สาหรบอานคาระดบสญญาณดจตอลจากพอรต D
รปแบบฟงกชน+5V
RB5
R510k
R710k
R910k
R4150R
6
ตวอยาง
char in_a(x)
char in_b(x)RB6
RB7
SW1R6150R
R8150R
7
8SW2
SW3
if (in_b5==0){out_d(6,1);
char in_c(x)
char in_d(x)GND 11GND 31
SW3_
}
พารามเตอร x ทาหนาทกาหนดขาสญญาณทตองการอานคาซงมคาตงแต 0 ถง 7
การคนคา อาจมคาเปน 0 หรอ 1
แผงวงจรแสดงผลตวเลข 4 หลก : Display4
ใชแสดงผลในรปแบบของตวเลข 4 หลก
ไฟ หรอไฟแสดงตาแหนง 8 จดหรอผสมกน
• ใช LED 7 4 โ • ใช LED ตวเลข 7 สวน 4 หลกแบบแคโทดรวม
และม LED จานวน 8 ดวง สามารถเลอกใหแยกกน
แสดงผลหรอรวมกนกได แสดงผลหรอรวมกนกได
• มจดตอขาพอรต C แบบ 10 ขา จานวน 2 จด
เพอตอกบแผงวงจรหลก MicroBOX และตอพวง
เพอขยายจานวนหลกทตองการแสดงผล
เมอขยายจะเปนการขยายคราวละ 4 หลก
3 ปและมจดตอ 3 ขา อนเปนขาควบคมการแสดงผลของ
แตละหลก หากใชปกต 4 หลกจะมจดตอควบคม 4 ชด
วงจรของแผงวงจรแสดงผลตวเลข 4 หลก : Display4
+5V
Rp21k*8
+5V
+5V
A0 Y0
VCC
32
1718
20C1
01uF/50V
K2PORT
IC174HC541 DISP1 DISP2 DISP3 DISP4
ba
Q1 Q2 Q3 Q4R1-R8
A7A6A5A4A3A2A1A0
Y7Y6Y5Y4Y3Y2Y1Y0
9876543
11121314151617
OE2OE11 19K1
dpgfedcb
+5V
Q1KRC102M
Q2KRC102M
Q3KRC102M
Q4KRC102M
Rp1220k*8
300RGND10
J1
PORT
LED1-LED8ON
commoncontrolled
DIGIT1
J2DIGIT2
J3
J1Q5
KRC102M
DIGIT3
J4DIGIT4
J5LED
ฟงกชน segment หรอ SEGMENT สาหรบแสดงผลขอมลท LED ตวเลข 7 สวน
รปแบบฟงกชน void segment(unsigned int val)
พารามเตอร val ทาหนาทกาหนดคาขอมลทตองการแสดงผลขอมลท LED ตวเลข 7 สวน(ทง 4 หลก)
ชวงขอมลทเปนไปไดคอตงแต 0 ถง 9999 เทานน ถาคาขอมลมคามากกวานจะแสดงขอความเปน “----”
ตวอยางท 1
segment(2549); // แสดงคาขอมล 2549 ท LED ตวเลข 7 สวน
ตวอยางท 2
int i=0;while(1){{
sleep(1000); // หนวงเวลา 1 วนาท
segment(i++); // แสดงคาขอมลของ i ท 7 เซกเมนต พรอมเพมคา i
}}
การทดลองท 3 โ แสดงผลขอมลท 7 เซกเมนต โดยเพมคาขน 1 คาทกๆ 1 วนาท เรมตนทคา 0
1. ทาการเชอมตอแผงวงจร 7
เซกเมนตเขากบบอรด IPST
• เชอมตอสายขอมล 8 บตจากพอรต C
เขากบจดตอ PORT ของ DSP4เขากบจดตอ PORT ของ DSP4
• ตอสายจากจด PB4 เขากบจดตอ DIGIT4
• ตอสายจากจด PB3 เขากบจดตอ DIGIT3 ตอสายจากจด PB3 เขากบจดตอ DIGIT3
• ตอสายจากจด PB2 เขากบจดตอ DIGIT2
• ตอสายจากจด PB1 เขากบจดตอ DIGIT1 ตอสายจากจด PB1 เขากบจดตอ DIGIT1
การทดลองท 3
2. เปดโปรแกรม AVR Studio สรางโปรเจกตใหมแลว
โป ไป ไปเขยนโปรแกรมตอไปนลงไป
#include <ipst.h>void main(){
unsigned int i=0;hil (1)while(1)
{segment(i++);segment(i );sleep(1000);
}}
การทดลองท 3
4. คอมไพลโปรแกรม
5. ดาวนโหลดโปรแกรมลงไปยงไมโครคอนโทรลเลอร
6. ทดสอบการทางานของโปรแกรม
การทดลองท 4 แสดงผลขอมลท 7 เซกเมนต โดยการเพมคาขน 1 คาทกๆ 1 วนาท
เรมตนจาก 0 เมอนบถง 10 ใหปดการแสดงผลเรมตนจาก 0 เมอนบถง 10 ใหปดการแสดงผล
#include <ipst.h>void main()
1. ใชวงจรในการทดลองท 3void main(){
unsigned int i=0;g ;for(i=0;i<11;i++){
2. เปดโปรแกรม AVR Studio
สรางโปรเจกตใหมแลว เขยน
โปรแกรมตอไปนลงไปsegment(i);sleep(1000);
}
โปรแกรมตอไปนลงไป
}segment_off();while(1);( );
}
การทดลองท 5 แสดงผลขอมลท 7 เซกเมนต โดยแสดงคาจานวนครงในการกดสวตช
(ใชวธกดคางคาการนบจะไมเพมขน)(ใชวธกดคางคาการนบจะไมเพมขน)
1. ใชวงจรในการทดลองท 3
แลวตอสวตชเพมเตม
เขาทตาแหนง PD7
ในตาแหนงขา LOW
การทดลองท 5 แสดงผลขอมลท 7 เซกเมนต โดยแสดงคาจานวนครงในการกดสวตช
(ใชวธกดคางคาการนบจะไมเพมขน)(ใชวธกดคางคาการนบจะไมเพมขน)
2. เปดโปรแกรม AVR Studio #include <ipst h>สรางโปรเจกตใหม
แลวเขยนโปรแกรมตอไปนลงไป
ไ โป
#include <ipst.h>void main(){
i d i t i 0 4. คอมไพลโปรแกรม
5. ดาวนโหลดโปรแกรมลงไปยง
ไมโครคอนโทรลเลอร
unsigned int i=0;while(1){
ไมโครคอนโทรลเลอร
6. ทดสอบการทางานของโปรแกรมsegment(i);if(in_d(7)==0){
while(in_d(7)==0);sleep(100);i++;;
}}
}}
การทดลองท 6 แสดงคาจานวนครงในการกดสวตชท 7 เซกเมนต เพมขนทละ 1
เมอกดคางคาการนบจะเพมขนอยางตอเนอง
1. ใชวงจรในการทดลองท 5#i l d <i t h>2. เปดโปรแกรม AVR Studio
สรางโปรเจกตใหม
โป ไป ไป
#include <ipst.h>void main(){
แลวเขยนโปรแกรมตอไปนลงไป
4. คอมไพลโปรแกรม
5 ดาวนโหลดโปรแกรมลงไปยง
unsigned int i=0;while(1){ 5. ดาวนโหลดโปรแกรมลงไปยง
ไมโครคอนโทรลเลอร
6. ทดสอบการทางานของโปรแกรม
segment(i);if(in_d(7)==0){{
i++;sleep(200);
}}
}}
บททดสอบ 2
เขยนโปรแกรมตงเวลานบ 60 วนาท
ในแบบนบลง (Count down) เมอนบ
ลงมาจนกระทงถง 0 หนาจอแสดงผล
จะตองดบลงอตโนมต
บททดสอบ 3
เขยนโปรแกรมแสดงผลขอมลท
7 เซกเมนต โดยใหแสดงคาเรมตน
ท 100
เมอกดสวตชท PD7 คาการนบจะตอง
เพมขน 1 คา เพมขน 1 คา
เมอมการกดสวตชท PD6 คาการนบ
จะตองลดลง 1 คา
การทดลองท 7 แสดงผล LED 8 หลก โดยแสดงคาความสมพนธของตวเลขท
กาหนดใหออกไปแสดงผลในรปเลขฐานสอง 0b11000001กาหนดใหออกไปแสดงผลในรปเลขฐานสอง 0b11000001
1. เชอมตอสายขอมล 8 บตจากพอรต C
ของบอรด IPST เขากบบอรด DSP-4
2. ตอสายจากจด PB0 เขากบบอรด DSP-4
3. จมเปอรจ มไปทาง COM CONTROL
การทดลองท 7 แสดงผล LED 8 หลก โดยแสดงคาความสมพนธของตวเลขท
กาหนดใหออกไปแสดงผลในรปเลขฐานสอง 0b11000001กาหนดใหออกไปแสดงผลในรปเลขฐานสอง 0b11000001
4. เปดโปรแกรม AVR Studio สรางโปรเจกตใหม แลวเขยนโปรแกรมตอไปนลงไป
5. คอมไพลโปรแกรม
6. ดาวนโหลดโปรแกรมลงไปยงไมโครคอนโทรลเลอร
7 ทดสอบการทางานของโปรแกรม7. ทดสอบการทางานของโปรแกรม
#include <ipst.h>void main(){
while(1){
led8(0b11000001);led8(0b11000001);}
}
การทดลองท 8 ไฟกระพรบ LED 8 หลก โปรแกรมจะสงให LED บต 2 (หลกท 3 เมอนบ
จากซายมอ) กบบต 7(หลกท 8 เมอนบจากซายมอ)กระพรบตอเนอง จากซายมอ) กบบต 7(หลกท 8 เมอนบจากซายมอ)กระพรบตอเนอง
1. ใชวงจรในการทดลองท 7
2 เปดโปรแกรม AVR Studio 2. เปดโปรแกรม AVR Studio
สรางโปรเจกตใหม แลวเขยน
โปรแกรมตอไปนลงไป
#include <ipst.h>void main(){
3. คอมไพลโปรแกรม
4. ดาวนโหลดโปรแกรมลงไปยง
ไ โ โ
{while(1){
l d8(0b10000100) ไมโครคอนโทรลเลอร
5. ทดสอบการทางานของโปรแกรม
led8(0b10000100);sleep(200);led8(0b00000000);sleep(200);
}}
การทดลองท 9 ไฟกระพรบ LED 8 หลก ไลลาดบจากซายไปขวา
1. ใชวงจรในการทดลองท 7
2 เปดโปรแกรม AVR Studio #i l d <i t h> 2. เปดโปรแกรม AVR Studio
สรางโปรเจกตใหม แลวเขยน
โปรแกรมตอไปนลงไป
#include <ipst.h>void main(){
unsigned char i = 0b10000000;3. คอมไพลโปรแกรม
4. ดาวนโหลดโปรแกรมลงไปยง
ไ โ โ
unsigned char i = 0b10000000;while (1){
led8(i);ไมโครคอนโทรลเลอร
5. ทดสอบการทางานของโปรแกรม
led8(i);i = i >> 1;if (i == 0){i = 0b10000000;}{i 0b10000000;}sleep(100);
}}
บททดสอบ 4
เขยนโปรแกรมแสดงไฟวงท LED 8 หลก
โดยวงวนจากบต 0 ไปยงบต 7
แผงวงจรลาโพงเปยโซ : SPEAKER
• ใชลาโพงเปยโซ มอมพแดนซ 32
• มคาความถเรโซแนนซในยาน 1 ถง 3kH• มคาความถเรโซแนนซในยาน 1 ถง 3kHz
C110/16V+
K1SOUND
10/16VS+
SP1SP1Piezo
speaker
ชดคาสงสาหรบกาเนดเสยง
ฟงกชน beep กาเนดเสยงความท 2kHz นาน 10 mSec
ป
beep_a(char ch)beep b(char ch)
ตวอยาง
beep d(3);
รปแบบ
beep_b(char ch)beep_c(char ch)beep_d(char ch)
p_ ( );สงเสยงออกลาโพงทตาแหนง PD3
ฟงกชน sound กาเนดเสยงโดยกาหนดความถและระยะเวลาได
รปแบบ ตวอยาง
d b(3 800 500)sound_a(char ch,int freq,int time)sound_b(char ch,int freq,int time)sound c(char ch,int freq,int time)
sound_b(3,800,500)สงเสยงออกลาโพงทตาแหนง PB3
_
sound_d(char ch,int freq,int time) ความถ 800 Hz ระยะเวลา 0.5 วนาท
การทดลองท 10 โปรแกรมกาเนดสญญาณเสยงแบบงายทขา PD6
1. เชอมตอลาโพงเปยโซเขากบ PD6
* ยงไมตองถอดบอรด 7 เซกเมนตออก เพอใชในการทดลองตอไป
SPEAKER
การทดลองท 10 โปรแกรมกาเนดสญญาณเสยงแบบงายทขา PD6
2. เปดโปรแกรม AVR Studio 2. เปดโปรแกรม AVR Studio
สรางโปรเจกตใหม แลวเขยน
โปรแกรมตอไปนลงไป
3. คอมไพลโปรแกรม
4. ดาวนโหลดโปรแกรมลงไปยง
ไมโครคอนโทรลเลอร
#include <ipst.h>void main(){ ไมโครคอนโทรลเลอร
5. ทดสอบการทางานของโปรแกรม
{while (1){
beep d(6);beep_d(6);sleep(200);beep_d(6);l (1000)sleep(1000);
}}
การทดลองท 11 โปรแกรมกาเนดสญญาณเสยงแบบงายแบบท 2 ทขา PD6
2. เปดโปรแกรม AVR Studio 2. เปดโปรแกรม AVR Studio
สรางโปรเจกตใหม แลวเขยน
โปรแกรมตอไปนลงไป
3. คอมไพลโปรแกรม
4. ดาวนโหลดโปรแกรมลงไปยง
ไมโครคอนโทรลเลอร
#include <ipst.h>void main(){ ไมโครคอนโทรลเลอร
5. ทดสอบการทางานของโปรแกรม
{while (1){
sound d(6 800 500);sound_d(6,800,500);sleep(200);sound_d(6,800,500);l (1000)sleep(1000);
}}