บทที่ 3 การรับ และส่งข้อมูลจากภายนอก และการเขียนโปรแกรม

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

Introduction to C Introduction to C.
โครงสร้างโปรแกรมภาษา C
Combination Logic Circuits
ลอจิกเกต (Logic Gate).
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
อัลกอริทึ่มทำงานวนซ้ำ
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
การเขียนโปรแกรมคอมพิวเตอร์
เครื่องบันทึกข้อมูลสำหรับสถานีไฟฟ้าย่อย Substation Data Logger
Computer Programming 1 LAB Test 3
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงาน.
คำสั่ง while และ คำสั่ง do..while
Control Statement if..else switch..case for while do-while.
Department of Computer Business
สายอักขระและ การประมวลผลสายอักขระ (String and String manipulation)
บทที่ 11 การเขียนโปรแกรมโดยใช้ข้อมูลชนิดพอยท์เตอร์
Chapter 7 ขอบเขตของตัวแปร Variable Scope.
LAB # 4 Computer Programming 1 1. พิจารณาโปรแกรมต่อไปนี้
LAB # 5 Computer Programming 1 1.
LAB # 4.
คำสั่งเพื่อการกำหนดเงื่อนไข
รับและแสดงผลข้อมูล.
โครงสร้างภาษาซี.
หน่วยที่ 2 ภาษาโปรแกรม และการออกแบบโปรแกรม
ฟังก์ชั่น function.
คำสั่งวนซ้ำ (Looping)
คำสั่งควบคุมการทำงาน
Lecture no. 10 Files System
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
ดิจิตอลกับไฟฟ้า บทที่ 2.
ส่วนประกอบของสกาดา 1. Field Instrumentation 2. Remote Station
การใช้ภาษาซี มาสั่งงานผ่านพอร์ตพริ้นเตอร์
ไมโครคอนโทรลเลอร์เบื้องต้น
ไมโครคอนโทรลเลอร์เบื้องต้น
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงานลักษณะของฟังก์ชั่นมีความรอบรัดสั้นกว่าแบบวนลูป.
คำสั่งควบคุมการทำงาน
Flow Control.
การเขียนโปรแกรมภาษาซี
ตัวแปรกับชนิดของข้อมูล
ฟังก์ชั่น digital ทำหน้าที่อ่านค่าลอจิกจากเซนเซอร์
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
C language W.lilakiatsakun.
เรื่องคอมพิวเตอร์ทำงานอย่างไร
ดิจิตอลเทคนิค 2 (3) (Digital Techniques)
Computer Programming for Engineers
การเขียนโปรแกรมประยุกต์ใช้งาน
โปรแกรมประยุกต์อื่นๆ
2 /* ข้อความนี้เป็นเพียงคำอธิบาย ไม่มีผลต่อขั้นตอนการ ทำงานของโปรแกรม */ /* A simple program to display a line of text */ #include void main ( ) { printf.
อัลกอริทึ่มทำงานวนซ้ำ
บทที่ 5 Interrupt เทอดศักดิ์ ลิ่วหาทอง สาขาวิชาอิเล็กทรอนิกส์
โครงสร้างข้อมูลแบบรายการโยง (Link List)
ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ (ม.ค.-ก.พ. 2558)
Foxconn Motherboard.
วิชา การปฏิบัติการประกอบเครื่องคอมพิวเตอร์
Input / Output ธนวัฒน์ แซ่เอียบ.
บทที่ 1 ดิจิตอลลอจิกและ โครงสร้างคอมพิวเตอร์
บทที่ 6 IPST-BOT กับการหลบหลีก สิ่งกีดขวางแบบสัมผัส
เครื่องมือที่ใช้ JUnit4.8.1 on Eclipse SDK3.5.2 ขึ้นไป
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การเขียนผังงาน ผังงาน (Flowchart)
การเขียนโปรแกรมบนเว็บ (Web Programming) บทที่ 2: ทบทวนการเขียน ภาษา Java ใช้ร่วมกับ Html และการรับข้อมูลจาก Form.
การทำซ้ำ Pisit Nakjai.
Digital System Engineering
กลุ่มสาระการเรียนรู้ การงานอาชีพและเทคโนโลยี
บทที่ 4 วงจร ADC เทอดศักดิ์ ลิ่วหาทอง สาขาวิชาอิเล็กทรอนิกส์
ADC & UART.
การเขียนโปรแกรมรับข้อมูลแบบอนาล็อก
ภาษา C เบื้องต้น.
ตัวอย่างการต่ออุปกรณ์ต่อพ่วงเข้ากับ PIC16F877A
ใบสำเนางานนำเสนอ:

บทที่ 3 การรับ และส่งข้อมูลจากภายนอก และการเขียนโปรแกรม เทอดศักดิ์ ลิ่วหาทอง สาขาวิชาอิเล็กทรอนิกส์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง

I/O Ports PIC มี I/O Port ชนิดต่างๆเพื่อใช้ติดต่อกับอุปกรณ์ต่อพ่วงผ่าน เช่น Digital I/O Ports Analog to Digital Converter Port Pulse Width Modulation (PWM) Ports

โครงสร้างของ I/O Ports ทุก Port ของ PIC สามารถกำหนดให้เป็น Input หรือ Output Port ก็ได้ ทุก Port จะมี Register อยู่ 3 ตัวคือ TRIS Register ใช้กำหนดให้ Port เป็น Input (TRIS=1) และ Output (TRIS=0) Port Register ใช้เก็บค่าที่อ่านได้จากอุปกรณ์ต่อพ่วง LAT Register ใช้เก็บค่าที่จะส่งไปให้อุปกรณ์ต่อพ่วง

ข้อห้ามของการนำเอา Output กับ Output มาต่อเชื่อมกัน เช่นถ้า Output ของ Not Gate ตัวบนเป็น 1 และตัวล่างเป็น 0 จะทำให้ไม่สามารถบอกได้ว่า Y มีสถานะเป็น 1 หรือ 0 และโดยปกติจะทำให้ Not Gate พังเสียหายได้

Tristate Buffer ถ้าต้องการนำ Output ของวงจรดิจิตอลมาต่อเชื่อมกันจะต้องต่อผ่าน Tristate Buffer เสมอ ถ้าขา Enable เป็น 0 จะทำให้ Output มีสถานะเป็นไปตามสถานะของ Input แต่ถ้าขา Enable เป็น 1 จะทำให้ Output มีสถานะเป็น High Impedance Tristate Buffer

โครงสร้างของ I/O Ports ถ้าต้องการให้ Port เป็น Input Port จะต้องเซ็ทให้ TRIS = 1 เพื่อให้ Output ของ Tristate Buffer ตัวบนเป็น High Impedance เพื่อตัดการเชื่อมต่อของ LAT ออกจากอุปกรณ์ต่อพ่วงที่อยู่ภายนอก ถ้าต้องการให้ Port เป็น Output Port จะต้องให้ TRIS = 0 เพื่อให้ Output ของ Tristate Buffer มีสถานะเดียวกับสถานะของ LAT

โครงสร้างของ I/O Ports

I/O Port ของ PIC18F8722 PWR = Power Supply O = Output I = Input ANA = Analog Signal DIG = Digital Output ST = Schmitt Buffer Input TTL = TTL Buffer Input X = Don’t Care

I/O Port ของ PIC18F8722

I/O Port ของ PIC18F8722

I/O Port ของ PIC18F8722

I/O Port ของ PIC18F8722

I/O Port ของ PIC18F8722

I/O Port ของ PIC18F8722

I/O Port ของ PIC18F8722

I/O Port ของ PIC18F8722

#include <p18f8722.h> #include <adc.h> #include <delays.h> #include <timers.h> #define NUMBER_OF_LEDS 8 #pragma code void main(void) { char LED[] = { 0b00000001, 0b00000011, 0b00000111, 0b00001111, 0b00011111, 0b00111111, 0b01111111, 0b11111111 }; int i=0; ADCON1 = 0b00001110; TRISAbits.TRISA5 = 1; TRISBbits.TRISB0 = 1; TRISD = 0; PORTD = 1; while(1) { if(PORTAbits.RA5==0) i++; if(i==8) i=7; PORTD = LED[i]; while(PORTAbits.RA5==0); } if(PORTBbits.RB0==0) i--; if(i<0) i=0; while(PORTBbits.RB0==0);

#include <p18f8722.h> #include <adc.h> #include <delays.h> #include <timers.h> #define NUMBER_OF_LEDS 8 #pragma code void main(void) { char LED[] = { 0b00000001, 0b00000011, 0b00000111, 0b00001111, 0b00011111, 0b00111111, 0b01111111, 0b11111111 }; int i=0; ADCON1 = 0b00001110; TRISAbits.TRISA5 = 1; TRISBbits.TRISB0 = 1; TRISD = 0; PORTD = 1; while(1) { if(PORTAbits.RA5==0) i++; if(i==8) i=7; PORTD = LED[i]; while(PORTAbits.RA5==0); } if(PORTBbits.RB0==0) i--; if(i<0) i=0; while(PORTBbits.RB0==0);