KIT VI điều KHIỂN sử DỤNG PIC

81 43 1
KIT VI điều KHIỂN sử DỤNG PIC

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đề tài đồ án làm mô hình kit vi điều khiển sử dụng pic có nhiều chức năngThực hành Vi Xử Lý nhằm giúp cho học sinhsinh viên có kiến thức, kỹ năng cơ bản về lập trình cho vi điều khiển, đồng thời hổ trợ cho việc “học đi đôi với hành”. Mỗi bài thực hành có nội dung và yêu cầu cụ thể gắn liền với nội dung đã học lý thuyết trên lớp, giúp cho học sinh sinh viên hiểu bài tốt hơn. Đồng thời mỗi bài thực hành là một kiến thức thực tế: Quảng cáo quang led, hiển thị led 7 đoạn, đo và điều khiển nhiệt độ, đồng hồ thời gian thực, điều khiển động cơ DC, động cơ bước…. Để học tốt môn học này, yêu cầu học viên chuẩn bị bài trước ở nhà (Đọc chương trình mẫu, mô phỏng trước bằng phần mềm hỗ trợ trên máy tính, phân tích các yêu cầu mở rộng để định hướng giải quyết vấn đề), khi đến phòng thực hành học sinhsinh viên chủ yếu dành thời gian cho việc nạp chương trình cho chạy thực tế trên kit thực hành và học cách giải quyết các yêu cầu khó. mời các bạn xem

KIT VĐK VÀ CHỨC NĂNG SỬ DỤNG PHẦN GIỚI THIỆU KIT THỰC HÀNH VI XỬ LÝ EASYPIC_PRO I Giới Thiệu Môn Học Thực hành Vi Xử Lý nhằm giúp cho học sinh-sinh viên có kiến thức, kỹ lập trình cho vi điều khiển, đồng thời hổ trợ cho việc “học đôi với hành” Mỗi thực hành có nội dung yêu cầu cụ thể gắn liền với nội dung học lý thuyết lớp, giúp cho học sinh- sinh viên hiểu tốt Đồng thời thực hành kiến thức thực tế: Quảng cáo quang led, hiển thị led đoạn, đo điều khiển nhiệt độ, đồng hồ thời gian thực, điều khiển động DC, động bước… Để học tốt môn học này, yêu cầu học viên chuẩn bị trước nhà (Đọc chương trình mẫu, mơ trước phần mềm hỗ trợ máy tính, phân tích yêu cầu mở rộng để định hướng giải vấn đề), đến phòng thực hành học sinhsinh viên chủ yếu dành thời gian cho việc nạp chương trình cho chạy thực tế kit thực hành học cách giải yêu cầu khó II Giới Thiệu Phần Mềm MPASM Là phần mềm hãng Microchip hổ trợ miễn phí, cho việc lập trình cấp thấp với vi điều khiển Pic Hiện nay, thực tế có nhiều phần mềm hổ trợ cho việc lập trình cho Pic CCS, PICBasic, MikroBasic, Hi-Tech… song phần mềm có ưu nhươc riêng Tuy nhiên, làm việc với MPLAB giúp cho người học hiểu rỏ Pic Để lập trình cho Pic với MPLAB người học phải: Nắm vững tập lệnh, hiểu rỏ ghi chức (TRISA,TRISB, OPTION_REG, INTCON, ADCON0, ADCON1, CCPR1L….) Đồng thời, hiểu rỏ chế làm việc Modul bên Pic (ADC, PWM, Timer0, Timer1….) Làm việc với MPASM người thợ mua viên gạch để xây nhà CCS CCS chương trình biên dịch lập trình ngôn ngữ C cho vi điều khiển hãng Microchip Chương trình tích hợp trình biên dich riêng biết cho dịng PIC khác là: ‐ PCB cho dòng PIC 12‐bit opcodes ‐ PCM cho dòng PIC 14‐bit opcodes ‐ PCH cho dòng PIC 16 18‐bit Tất trình biên dịch đuợc tích hợp lại vào chương trình bao gồm trình soạn thảo biên dịch CCS CCS có nhiều phiên khác nhau, mức độ lập trình ứng dụng bình thường sử dụng phiên nào, nhiên người học nên cặp nhật phiên để có cơng cụ hỗ trợ mạnh Giống nhiều trình biên dịch C khác cho PIC, CCS giúp cho người sử dụng nắm bắt nhanh vi điều khiển PIC sử dụng PIC dự án Các chương trình điều khiển thực nhanh chóng đạt hiệu cao thơng qua việc sử dụng ngơn ngữ lập trình cấp cao – Ngơn ngữ C PROTEUS Phần mềm PROTEUS viết công ty Labcenter Electronics Hiện phổ biến giới PROTEUS tự khẳng định mạnh tính mơ mạch ngun lý sát với thực tế Nó cung cấp hầu hết linh kiện điện tử để người sử dụng tạo từ mạch đơn giản đến phức tạp chạy thử với tính xác cao Chính PROTEUS dùng nhiều cơng tác giảng dạy, phịng thí nghiệm…Đặc biêt, phòng thực hành VI XỬ LÝ III Giới thiệu KIT thực hành Vi Xử Lý Hình 1.1 Giới thiệu tổng quan cấu hình KIT:KIT sử dụng board mạch EASYPIC_PRO Gồm có 23 phận sau: 1) Power supply 2) LCD1602 and GLCD128x64 module 3) MMC/SD read/write module 4) Single LED PORTC and PORTD 5) 4*4 matrix keyboard module 6) Push button switch module 7) DS1302 Real time clock module 8) A/D converter module 9) I2C 24XXX module 10) SPI eeprom 93xxx module 11) MCU RESET Button 12) External ICSP Header 13) PICKit2 on-board Programmer 14) MCU Sockets DIP8/14/18/28/40 Pin 15) Six-digital 7-segment display module 16) Remote control receiver & decoder 17) DS18B20 thermometer module 18) Buzzer module 19) Stepper motor control module 20) RS232 communication module 21) USB Communication module 22) PS/2 keyboard module 23) Direct Port Access Chức chi tiết Module sử dụng thường xuyên cho mục đích thực hành: a Module CPU mạch tạo xung chuẩn (MCU Socket and System Clock selection): 23) Power supply 24) LCD1602 and GLCD128x64 module 25) MMC/SD read/write module 26) Single LED PORTC and PORTD 27) 4*4 matrix keyboard module 28) Push button switch module 29) DS1302 Real time clock module 30) A/D converter module 31) I2C 24XXX module 32) SPI eeprom 93xxx module 33) MCU RESET Button 34) External ICSP Header 35) PICKit2 on-board Programmer 36) MCU Sockets DIP8/14/18/28/40 Pin 37) Six-digital 7-segment display module 38) Remote control receiver & decoder 39) DS18B20 thermometer module 40) Buzzer module 41) Stepper motor control module 42) RS232 communication module 43) USB Communication module 44) PS/2 keyboard module 23) Direct Port Access Chức chi tiết Module sử dụng thường xuyên cho mục đích thực hành: a Module CPU mạch tạo xung chuẩn (MCU Socket and System Clock selection): Hình 1.2 Modue CPU bao gồm thành phần sau: 40-pin chip socket 28-pin for PIC16F57 chip socket 28-pin chip socket 20-pin chip socket 18-pin chip socket 14-pin chip socket 8-pin chip socket 8-pin for PIC10FXXX chip socket OSCA ( lựa chọn clock sử dụng cho DIP40/28 and PIC16F57) 10 OSCB (lựa chọn clock sử dụng cho DIP18) 11 OSCC (lựa chọn clock sử dụng cho DIP20/14/8) Module System Clock Selections: PIC10Fxx clock seletion: PIC10Fxx sử dụng dao động nội (Internal RC oscillation) Hình 1.3 b Module nguồn cung cấp (POWER SUPPLY MODULE): Power module nguồn cung cấp điện cho toàn board phát triển EasyPIC_PRO Nó cung cấp đầu 5V DC cho tất module board mạch Module bao gồm thành phần sau: - External power input: ngõ vào cấp nguồn cho Board - Power indication: LED báo nguồn - Power selection Jumper: cho phép lựa chọn nguồn nguồn 5V từ cổng USB Board - Power Switch: cho phép ON/OFF để nối ngắt nguồn Board mạch Sơ đồ nguyên lý modul nguồn: SW3 SW SLIDE-SPDT +5V SW2 U1 D2 LM7805/TO 1 DIODE D3 C1 C3 VIN GND J1 470 C4 R1 47uF/16V DIODE 47uF/25V 104 C5 D5 47uF/16V SW KEY -P2011 D4 C6 DC INPUT VOUT DIODE DIODE Hình 1.4 c Modul LCD (128x64LCD and 16x02 LCD): Charracter LCD1602 chiết áp điều chỉnh độ tương phản Graphic LCD12864 chiết áp điều chỉnh độ tương phản 104 D6 LED Hình 1.5 Mô tả module sau: 12864 LCD and 1602 LCD sử dụng PortA làm bit điều khiển PortD bit liệu Tất chân chúng nối tới chân MCU thông qua loạt Jumper mà không dùng đến DIP Switch Đề nghị không rút LCD khỏi socket có nguồn điện Trong thí nghiệm, điện trở kéo lên RA4 bắt buộc phải kích hoạt cách SW14_4 ON Sơ đồ nguyên lý: Hình 1.6 d Modul LED đơn PORTB PORTC Module bao gồm thành phần sau: LED đơn sử dụng cho PORT B LED đơn sử dụng cho PORT C Hình 1.7 Tất Port tương ứng với bit ngõ Tất Port có Coding switch riêng biệt để kiểm soát chúng Đề nghị OFF tất coding switch không sử dụng để tránh ảnh hưởng đến hoạt động bình thường module khác Thông qua Header giao tiếp PORTC, bạn tiến hành thử nghiệm với port khác (ví dụ PORTA, PORTD…) Tuy nhiên sử dụng điều này, chắn coding switch OFF Tất LED có cực âm nối tới GND, bạn muốn LED sáng, cần điện áp mức cao đầu chân tương ứng PORT Sơ đồ nguyên lý module: Hình 1.8 e Modul bàn phím ma trận 4x4 (Matrix Keyboard): Module bao gồm thành phần sau: void main( ) { set_tris_c(0b00011000); set_tris_b(0); set_tris_e(0); i2c_send(0x00,0);// ghi giay hien hanh i2c_send(0x01,45);//ghi phut hien hanh i2c_send(0x02,8);//ghi gio hien hanh while (1) { giay=doc_i2c(giay,0); phut=doc_i2c(phut,1); gio=doc_i2c(gio,2); hien_thi(giay,phut,gio); } } //DOC I2C doc_i2c(int y,int8 addr) { i2c_start(); i2c_write(0xD0); //Gui dia chi cua slave i2c_write(addr); //thiet lap lai tro can doc du lieu o byte co dia chi nao? i2c_stop(); I2C_start(); I2C_write(0xD1); // Gui lenh doc du lieu y=i2c_read(0);// Khong duoc bo so "0" i2c_stop(); return y; } //HIEN THI LEN LED DOAN void hien_thi(int x, int y, int z) { 66 //khi doc du lieu tu DS1307 la so BCD can lay lan luot bit cao va bit // thap de xuat int chuc_giay,donvi_giay, chuc_phut,donvi_phut, chuc_gio,donvi_gio, i; chuc_giay=x&0b11110000;//lay bit cao chuc_giay =swap(chuc_giay);// dao bit cao bit thap de hien thi donvi_giay=x&0b00001111;// lay bit thap chuc_phut=y&0b11110000;//lay bit cao chuc_phut =swap(chuc_phut);// dao bit cao bit thap de hien thi donvi_phut=y&0b00001111;// lay bit thap chuc_gio=z&0b11110000;//lay bit cao chuc_gio =swap(chuc_gio);// dao bit cao bit thap de hien thi donvi_gio=z&0b00001111;// lay bit thap for (i=0; i 99 lập lại Hướng dẫn thực hành Các chương trình sử dụng chương trình: void quetled7doan() Các hàm hỗ trợ khai báo ngắt: enable_interrupts(global); // Cho phép ngắt toàn cục enable_interrupts(int_EXT);// Cho phép ngắt ngồi RB0 Chương trình mẫu: #include #use delay(clock=4000000) #fuses HS,NOWDT,NOPROTECT,NOLVP,PUT int8 const maled7doan[]={ ma4led từ -> 9} int8 donvi,chuc; 70 #byte dataled= #bit led1= #bit led2= // Khai báo chương trình phục vụ ngắt RB0 #INT_EXT void ngat_rb0() { Dem++; //tang giá trị đếm If(dem >99) Dem=0; Delay_ms(10); //kiểm tra ngưỡng giá trị đếm //chống dội tín hiệu (nếu cần) } //khai báo chương trình quét led đoạn Void quetled7doan() { //Nội dung học, sinh vien tự viết đoạn chương trình } //khai báo chương trình Void main() { Set_tris_b(0b00000001); //khai báo RB0 chiều nhập enable_interrupts(global); // khai bao ngat toan cuc enable_interrupts(int_EXT);// khai báo ngat ngoai RB0 while(1) { donvi=dem%10; chuc=dem/10; quetled7doan(); } } Các bước thực Bước 1: Nhập nội dung chương trình vào máy (lắp đầy nội dung trống 71 cho phù hợp), biên dịch, kiểm tra lỗi sửa lỗi phần mềm PIC C Compiler Bước 2: Chạy mô chương trình phần mềm protuers chương trình biên dịch thành cơng Bước 3: Nạp chương trình vào kit, dùng nút nhân giả lập tín hiệu vào ngắt chân RB0(chú ý gạt DIP_SW vị trí) kiểm tra kết Các yêu cầu mở rộng • Dùng thêm tín hiệu RB1 để chọn mode đếm: RB1 mức L đếm lên, RB1 mức H đếm xuống: Gợi ý: Sửa lại chương trình phục vụ ngắt ngồi RB0: // Khai báo chương trình phục vụ ngắt RB0 #INT_EXT void ngat_rb0() { If(RB1==0) { Dem++; //tang giá trị đếm If(dem >99) Dem=0; //kiểm tra ngưỡng giá trị đếm Delay_ms(10); //chống dội tín hiệu } If(RB1==1) { Dem ; //giảm giá trị đếm If(dem ==255) Dem=99; //kiểm tra ngưỡng giá trị đếm Delay_ms(10); //chống dội tín hiệu } } • Viết lại chương trình đếm với u cầu phần a sử dụng ngắt RB: Gợi ý: Khai báo lại chương trình phục vụ ngắt ngồi RB: // Khai báo chương trình phục vụ ngắt RB #INT_RB 72 void ngat_rb() { If(RB1==0) { Dem++; //tang giá trị đếm If(dem >99) Dem=0; //kiểm tra ngưỡng giá trị đếm Delay_ms(10); //chống dội tín hiệu } If(RB1==1) { Dem ; //giảm giá trị đếm If(dem ==255) Dem=99; //kiểm tra ngưỡng giá trị đếm Delay_ms(10); //chống dội tín hiệu } } Trong chương trình chỉnh lại hàm cho phép ngắt: enable_interrupts(global); // khai bao ngat toan cuc enable_interrupts(int_RB);// khai báo ngat ngoai RB Tín hiệu vào cấp nhóm chân port: RB4, RB5, RB6, RB7 II Thực hành sử dụng ngắt timer 1 Sơ đồ nguyên lý 73 VCC R21 1K U1 PIC16F877A RD0 RD1 RD2 RD3 RD4 RD5 RD6 RD7 10 RE0 RE1 RE2 DIP_SW8 ON R65 R65 R65 R65 R65 R65 R65 R65 220 220 220 220 220 220 220 220 A B C D E F G DP A B C D E F G DP DIS1 7SEG_DIPS A B C D E 10 F G DP A B C D E F G DP DIS2 7SEG_DIPS A B C D E 10 F G DP VCC1 VCC2 A B C D E F G DP VCC1 VCC2 DIS3 7SEG_DIPS A B C D E 10 F G DP A B C D E F G DP DIS4 7SEG_DIPS A B C D E 10 F G DP DIS5 7SEG_DIPS A B A C B D C E D F E G 10 F DP G DP DIS6 7SEG_DIPS A B A C B D C E D F E G 10 F DP G DP VCC1 VCC2 VCC1 VCC2 VCC1 VCC2 VCC1 VCC2 8 8 VDD VDD 11 32 RA0 RA1 RA2 RA3 RA4 RA5 SW2 10 11 12 DIP_SW6 ON DIG1 DIG2 DIG3 DIG4 DIG5 DIG6 R54 10K Q5 MMBT3906 R55 10K DIG1 DIG2 Hình 2.19 74 Q6 MMBT3906 R57 10K DIG3 Q7 MMBT3906 R56 10K DIG4 Q8 MMBT3906 R58 10K DIG5 VCC OSC2/CLKOUT VSS VSS SW1 10 11 12 13 14 15 16 Q9 MMBT3906 R59 10K DIG6 Q10 MMBT3906 12 31 RE0/RD*/AN5 RE1/WR*/AN6 RE2/CS*/AN7 19 20 21 22 27 28 29 30 C8 33pF OSC1/CLKIN RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 13 Y1 8MHz 14 RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 33 34 35 36 37 38 39 40 C2 33pF RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 15 16 17 18 23 24 25 26 RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS*/C2OUT RC0 RC1 RC2 RC3 RC4 RC5 RC6 RC7 MCLR*/VPP RA0 RA1 RA2 RA3 RA4 RA5 C7 10uF 1 SW15 RESET VCC Yêu cầu Dùng ngắt timer kết hợp với led đoạn, viết chương trình điều khiển led đoạn hiển thị phút giây Hướng dẫn thực hành Các chương trình sử dụng chương trình: void quetled7doan(); void bin_bcd(); Các hàm hỗ trợ: enable_interrupts(global); // Cho phép ngắt toàn cục enable_interrupts(int_timer1);// Cho phép ngắt timer setup_timer_1(T1_INTERNAL | T1_DIV_BY_2);//Chọn mode timer1 set_timer1(15536); //nạp giá trị ban đầu rimer1 Chương trình mẫu: #include #use delay(clock=12000000) #fuses HS,NOWDT,NOPROTECT,NOLVP,PUT int8 const maled7doan[]={ ma4led từ -> 9} int8 lapngat,giay,phut,gio,led1,led2,led3,led4,led5,led5; #byte dataled= #bit led1= #bit led2= #bit led3= #bit led4= #bit led5= #bit led6= // Khai báo chương trình phục vụ ngắt timer1 #INT_TIMER1 void ngat_timer1() { set_timer1(15536); //nạp lại giá trị ban đầu rimer1 lapngat = lapngat +1; if(lapngat ==10) 75 { lapngat =0; giay=giay+1; if(giay==60) { giay=0; phut=phut+1; if(phut==60) { phut=0; gio++; if(gio==24) { Gio=0; } } } } } //khai báo chương trình quét led đoạn Void quetled7doan() { //Nội dung học, sinh vien tự viết đoạn chương trình } Void bin_bcd() { led1=giay%10 ; led2=giay/10 ; led3=phut%10 ; led4=phut/10 ; led1=gio%10 ; led2=gio/10 ; } //khai báo chương trình Void main() 76 { enable_interrupts(global); // khai bao ngat toan cuc enable_interrupts(int_timer1);// khai báo ngat ngoai RB0 setup_timer_1(T1_INTERNAL | T1_DIV_BY_2);//Chọn mode timer1 set_timer1(-50000); //nạp giá trị ban đầu rimer1 giay=0; phut=0; gio=0; lap_giay=0; while(1) { bin_bcd(); quetled7doan(); } } Các bước thực Bước 1: Nhập nội dung chương trình vào máy (lắp đầy nội dung trống cho phù hợp), biên dịch, kiểm tra lỗi sửa lỗi phần mềm PIC C Compiler Bước 2: Chạy mô chương trình phần mềm protuers chương trình biên dịch thành cơng Bước 3: Nạp chương trình vào kit (chú ý gạt DIP_SW vị trí) theo dõi hiển thị led đoạn để kiểm tra kết Các yêu cầu mở rộng • Sửa lại thành chương trình đồng hồ bấm thể thao hiển thị phút, giây, % giây ? Gợi ý: Thay đổi lại thời gian nạp vào timer1, giá trị biến lapngat khống chế ngưỡng giá trị cho biến phù hợp • Thêm tính báo thức vào chương trình đồng hồ ? Gợi ý: Viết thêm chương trình void baothuc() có nhiệm vụ kiểm tra giá trị thời gian hành ngưỡng thời gian đặt trước để báo thức III Sử dụng ngắt port nối tiếp Sơ đồ nguyên lý 77 VCC C42 U10 MAX232A 1UF C43 V+ C+ VC1- C45 1UF C44 1UF 1UF CN19 SUB_D 9P C2+ R85 330 R86 330 14 13 15 T1OUT T2OUT R1IN R2IN GND C2T1IN T2IN R1OUT R2OUT VCC 11 10 12 16 R87 330 R88 330 SW15 ON SW DIP-2 VCC VCC R21 1K U1 PIC16F877A 15 16 17 18 23 24 25 26 C2 33pF 13 Y1 8MHz 14 C8 33pF 12 31 RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS*/C2OUT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT OSC1/CLKIN RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 RE0/RD*/AN5 RE1/WR*/AN6 RE2/CS*/AN7 33 34 35 36 37 38 39 40 RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 19 20 21 22 27 28 29 30 RD0 RD1 RD2 RD3 RD4 RD5 RD6 RD7 10 RE0 RE1 RE2 DIP_SW8 ON R65 R65 R65 R65 R65 R65 R65 R65 220 220 220 220 220 220 220 220 A B C D E F G DP A B C D E F G DP DIS1 7SEG_DIPS A B C D E 10 F G DP A B C D E F G DP DIS2 7SEG_DIPS A B C D E 10 F G DP VCC1 VCC2 A B C D E F G DP VCC1 VCC2 DIS3 7SEG_DIPS A B C D E 10 F G DP VCC1 VCC2 8 VCC OSC2/CLKOUT VSS VSS SW1 10 11 12 13 14 15 16 VDD VDD 11 32 RA0 RA1 RA2 RA3 RA4 RA5 SW2 10 11 12 DIP_SW6 ON DIG1 DIG2 DIG3 DIG4 DIG5 DIG6 R54 10K DIG1 Hình 2.20 78 Q5 MMBT3906 R55 10K DIG2 RC0 RC1 RC2 RC3 RC4 RC5 RC6 RC7 MCLR*/VPP Q6 MMBT3906 R57 10K DIG3 Q7 MMBT3906 RA0 RA1 RA2 RA3 RA4 RA5 C7 10uF SW15 RESET Yêu cầu • Dùng ngắt port nối tiếp kết hợp với led đoạn viết chương trình nhận giá trị truyền thơng từ máy tính phần mềm qua cồng COM hiển thị lên led đoạn Hướng dẫn thực hành Các chương trình sử dụng chương trình: void quetled7doan() Các hàm hỗ trợ: enable_interrupts(INT_RDA);/Cho phép ngắt nhận liệu port nối tiếp enable_interrupts(GLOBAL); //Cho phép ngắt toàn cục getc(); // Đọc liệu port nối tiếp putc(); //gởi byte printf(); //gởi chuỗi Chương trình mẫu: #include #include #fuses nowdt,noprotect,nolvp,hs,put #use delay(clock=4000000) #use rs232 (baud = 9600,parity = n,xmit=pin_c6,rcv=pin_c7)//khai báo sử dụng port nối tiếp int8 output; #int_RDA void RDA_isr() { output=getc(); } //khai báo chương trình quét led đoạn Void quetled7doan() { //Nội dung học } 79 void main() { enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); set_tris_c(0b10000000); while(1) { Led1 = output%10; Led2 = (output/10)%10; Led3 = output/100; quetled7doan(); } } Các bước thực Bước 1: Nhập nội dung chương trình vào máy (lắp đầy nội dung trống cho phù hợp), biên dịch, kiểm tra lỗi sửa lỗi phần mềm PIC C Compiler Bước 2: Chạy chương trình máy tính chọn kiểu liệu thập phân (dec) Bước 3: Cắm cable kết nối rs232 giao tiếp máy tính kit thực hành vi xử lý Bước 4: Nạp chương trình vào kit (chú ý gạt DIP_SW vị trí) , nhập giá trị vào cửa sổ bấm send theo dõi hiển thị led đoạn Các yêu cầu mở rộng • Sửa lại kiểu liệu khác nhau: nhị phân (bin), thập lục phân (hex), ký tự (ascii) ? Gợi ý: Thay đổi lại kiểu liệu biến output • Gởi ngược liệu lên máy tính ? Gợi ý: sử dụng hàm putc() hàm printf() để gởi liệu 80 ... thị cách sử dụng LED đơn • Vi? ??t chương trình tạo thời gian trễ sử dụng ứng dụng vi điều khiển B Yêu Cầu • Nắm vững tập lệnh vi điều khiển PIC1 6F877A • Biết cách vi? ??t chương trình điều khiển LED... Vi? ?n nhận xét: Kỹ thuật(6đ): Thao tác(1đ): An tòan(1đ): Tổ chức nơi làm vi? ??c(1đ): Thời gian(1đ): A Mục Đích • Điều khiển thiết bị ngoại vi Port vi điều khiển • Điều khiển vi? ??c hiển thị cách sử. .. switch điều khiển vi? ??c kết nối, module sử dụng, chắn coding switch trạng thài ON, không sử dụng đề nghị coding switch phải OFF để không ảnh hưởng đến làm vi? ??c bình thường module khác Bằng vi? ??c sử dụng

Ngày đăng: 21/05/2021, 20:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan