ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
ได้พิมพ์โดยNiran Sindudeja ได้เปลี่ยน 9 ปีที่แล้ว
1
บทที่ 3 การรับ และส่งข้อมูลจากภายนอก และการเขียนโปรแกรม
เทอดศักดิ์ ลิ่วหาทอง สาขาวิชาอิเล็กทรอนิกส์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
2
I/O Ports PIC มี I/O Port ชนิดต่างๆเพื่อใช้ติดต่อกับอุปกรณ์ต่อพ่วงผ่าน เช่น Digital I/O Ports Analog to Digital Converter Port Pulse Width Modulation (PWM) Ports
3
โครงสร้างของ I/O Ports
ทุก Port ของ PIC สามารถกำหนดให้เป็น Input หรือ Output Port ก็ได้ ทุก Port จะมี Register อยู่ 3 ตัวคือ TRIS Register ใช้กำหนดให้ Port เป็น Input (TRIS=1) และ Output (TRIS=0) Port Register ใช้เก็บค่าที่อ่านได้จากอุปกรณ์ต่อพ่วง LAT Register ใช้เก็บค่าที่จะส่งไปให้อุปกรณ์ต่อพ่วง
4
ข้อห้ามของการนำเอา Output กับ Output มาต่อเชื่อมกัน
เช่นถ้า Output ของ Not Gate ตัวบนเป็น 1 และตัวล่างเป็น 0 จะทำให้ไม่สามารถบอกได้ว่า Y มีสถานะเป็น 1 หรือ 0 และโดยปกติจะทำให้ Not Gate พังเสียหายได้
5
Tristate Buffer ถ้าต้องการนำ Output ของวงจรดิจิตอลมาต่อเชื่อมกันจะต้องต่อผ่าน Tristate Buffer เสมอ ถ้าขา Enable เป็น 0 จะทำให้ Output มีสถานะเป็นไปตามสถานะของ Input แต่ถ้าขา Enable เป็น 1 จะทำให้ Output มีสถานะเป็น High Impedance Tristate Buffer
6
โครงสร้างของ I/O Ports
ถ้าต้องการให้ Port เป็น Input Port จะต้องเซ็ทให้ TRIS = 1 เพื่อให้ Output ของ Tristate Buffer ตัวบนเป็น High Impedance เพื่อตัดการเชื่อมต่อของ LAT ออกจากอุปกรณ์ต่อพ่วงที่อยู่ภายนอก ถ้าต้องการให้ Port เป็น Output Port จะต้องให้ TRIS = 0 เพื่อให้ Output ของ Tristate Buffer มีสถานะเดียวกับสถานะของ LAT
7
โครงสร้างของ I/O Ports
8
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
9
I/O Port ของ PIC18F8722
10
I/O Port ของ PIC18F8722
11
I/O Port ของ PIC18F8722
12
I/O Port ของ PIC18F8722
13
I/O Port ของ PIC18F8722
14
I/O Port ของ PIC18F8722
15
I/O Port ของ PIC18F8722
16
I/O Port ของ PIC18F8722
19
#include <p18f8722.h> #include <adc.h> #include <delays.h> #include <timers.h> #define NUMBER_OF_LEDS 8 #pragma code void main(void) { char LED[] = { 0b , 0b , 0b , 0b , 0b , 0b , 0b , 0b }; int i=0; ADCON1 = 0b ; 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);
20
#include <p18f8722.h> #include <adc.h> #include <delays.h> #include <timers.h> #define NUMBER_OF_LEDS 8 #pragma code void main(void) { char LED[] = { 0b , 0b , 0b , 0b , 0b , 0b , 0b , 0b }; int i=0; ADCON1 = 0b ; 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);
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.