งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

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

งานนำเสนอที่คล้ายกัน


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

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

17

18

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);


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

งานนำเสนอที่คล้ายกัน


Ads by Google