Luận văn - NGHIÊN CỨU VI ĐIỀU KHIỂN PIC16F84 - Phần 3 ppsx

20 362 0
Luận văn - NGHIÊN CỨU VI ĐIỀU KHIỂN PIC16F84 - Phần 3 ppsx

Đ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

Phần IV: ứng dụng 32 Phần IV: ỨNG DỤNG Bảng ứng dụng chip vi điều khiển PIC16F84 gồm 3 modul: điều khiển LED; điều khiển LCD và điều khiển động cơ Servol. IV.1. Điều khiển LED IV.1.1. Hoạt động Modul điều khiển LED là modul đơn giản nhất trong bảng điều khiển. Việc điều khiển chỉ đơn giản là xuất bit tín hiệu ra các pin tương ứng nối với LED. Tín hiệu được xuất qua LED ngay khi ngắt ngoài được kích (Start button) trên chip. Chương trình điều khiển LED nhấp nháy được viết dưới dạng vòng lặp vô tận nên LED sẽ nhấp nháy theo một chu trình được thiết kế trong chương trình và lập lại mãi đến khi nào người điều khiển ấn phím Stop hoặc chip được Reset. IV.1.2. Mạch điều khiển Trong mạch điều khiển, các Led được nối với chip qua các chân RB1, RB2, RB4, RB5, RB6. Buttom SW1 nối chân ngắt ngoài RB0/INT với mass, làm chức năng như nút Start. Khi ngắt ngoài được kích, chương trình sẽ rẽ nhánh đến chương trình con điều khiển Led để điều khiển Led nhấp nháy. Button SW2 nối chân kiểm tra điều kiện RA0 với mass, làm chức năng như nút Stop. Khi nút Stop được nhấn, làm cho chân RA0 xuống mức điện áp thấp, khi đó chương trình sẽ được thoát khỏi chương trình con điều khiển Led, trở về chương trình chính. Phần IV: ứng dụng 33 R4 470R C4 1n R3 470R X2 4MHz D5 C5 1n SW1 1 2 D1 R2 470R D2 U1 PIC16F84 1 2 3 4 6 17 10 11 12 13 15 16 7 8 5 14 9 18 RA2 RA3 RA4/TOCKI MCLR RB0/INT RA0 RB4 RB5 RB6 RB7 OSC1/CLKIN OSC2/CLKOUT RB1 RB2 GROUND VDD RB3 RA1 R6 10k D4 VCC R1 470R D3 R5 470R SW2 1 2 IV.2. Điều khiển động cơ Servo IV.2.1. Hoạt động IV.2.1.1 Động cơ servo Động cơ Servol chính là một động cơ DC thông thường được lấp thêm bộ giải mã (Encoder) để nhận tín hiệu phản hồi về góc quay của động cơ. Encoder thường được cấu tạo từ 1 Led phát quang, 1 đến 2 diode quang đặt đối diện với Led phát quang qua 1 khe hở và bộ khuếch đại. Phần IV: ứng dụng 34 Tín hiệu ra sẽ ở mức cao (hoặc thấp) khi diode quang nhận được tín hiệu quang học từ Led phát. Vì thế, khi lắp đóa phân giải vào khe giữa Led phát và diode quang và đóa được động cơ quay thì tín hiệu ra là dạng xung. Số xung phát ra trên ngõ ra của Encoder chính là số răng trên đóa phân giải đã lướt qua khe hở giữa Led phát và diode quang. Công thức tính góc quay của động cơ như sau: nC360   Trong đó: n- số xung nhận được C- độ phân giải của đóa m C 1  M- số răng trên vòng Trên hình vẽ, encoder dùng 2 kênh, 2 diode quang đặt ở vò trí ngược nhau về tín hiệu (khi diode 1 thấy thì diode 2 không thấy và ngược lại). Dùng 2 tín hiệu này trong hệ vi sai để chống nhiễu. Ứng dụng trong đồ án này dùng encoder 1 kênh ngõ ra. Người điều khiển dùng tín hiệu xung này để điều khiển chính xác góc quay của động cơ. Phần IV: ứng dụng 35 IV.2.1.2 Mạch cầu H Mạch cầu H được thiết kế để điều khiển hoạt động của động cơ DC. Nó cho phép tín hiệu công suất thấp từ các chip vi điều khiển có thể điều khiển động cơ DC. Ngăn dòng ngược từ động cơ phát ra có thể làm hỏng chip. Cung cấp công suất cho động cơ bằng 1 nguồn tách biệt khỏi nguồn nuôi chip. Có khả năng đảo chiều và dừng động cơ đột ngột (thắng).  Sơ đồ mạch cầu H R3 10k C1 470uF Q5 PN2222 Q3 PN2222 TO MOTOR R2 474R E B C TIP120 1 23 J2-2 R1 47R J3-2 J2-1 E B C TIP120 1 23 R7 3k3 POWER IN R4 10k E B C TIP120 1 23 J3-1 E B C TIP120 1 23 Q4 PN2222 Q6 PN2222 IN A IN B GROUMD JP1 4 HEADER 1 2 3 R6 470R R8 10k R3 10k Phần IV: ứng dụng 36 IV.2.2. Mạch điều khiển C4 1n 0 R6 10k R7 92R C3 22P R5 4.7k TO MOTOR JP3 4 HEADER 1 2 3 C5 1n VCC VSS GROUND OUT JP2 ENCODER 1 2 3 4 VCC VCC X2 4MHz U2 PIC16F84 1 2 3 4 6 17 10 11 12 13 15 16 7 8 5 14 9 18 RA2 RA3 RA4/TOCKI MCLR RB0/INT RA0 RB4 RB5 RB6 RB7 OSC1/CLKIN OSC2/CLKOUT RB1 RB2 GROUND VDD RB3 RA1 IV.3. Điều khiển LCD IV.3.1. Giới thiệu về LCD LCD (liquid Crystal Display)_màn hình tinh thể lỏng, đây là phương pháp hiển thò tiết kiệm năng lượng. Có nhiều loại LCD, trong đó thông dụng là hiển thò 16x2 và 20x2 (hiển thò 2 hàng với 16 ký tự trên mỗi hàng và 2 hàng 20 ký tự). LCD được thiết lập chuẩn để cho phép ta có thể giao tiếp với các LCD bất chấp hãng sản xuất với điều kiện là các LCD dùng cùng IC điều khiển HD44780.  Hình dáng và kích thước LCD Các LCD được chế tạo từ các hãng như Densitron, Epson, Hewlett Packard, Optrex, Shasp… với các cấu hình thông dụng là 16, 20,24, 32, hay 40 ký tự trên 1 hàng với màn hình hiển thò 1, 2, hay 4 hàng. Hình IV-1: Mô hình màn hình LCD LCD dùng trong ứng dụng này là loại 16x2, dùng chip HD44780. Màn hình nền của LCD được chiếu sáng bằng đèn chiếu sáng đặt phía sau bộ hiển thò thay vì dùng phương pháp phản xạ.  Các chân ra của LCD Modul LCD tuân theo qui cách giao tiếp chuẩn. Gồm 14 chân, có 8 đường dữ liệu, 3 đường điều khiển và 3 đường cấp nguồn bố trí trên 1 hàng. Chức năng của các chân được liệt kê trong bảng sau: Phần IV: ứng dụng 37 Bảng IV-1: chức năng của các chân LCD Chân số Tên Chức năng 1 Vss Đất 2 VDD Cực+ của nguồn 3 VEE Tương phản (constrast) 4 RE Chọn thanh ghi (Register Select) 5 R/W Read/write 6 E Cho phép (Enable) 7 D0 Bít dữ liệu 0 8 D1 Bít dữ liệu 1 9 D2 Bít dữ liệu 2 10 D3 Bít dữ liệu 3 11 D4 Bít dữ liệu 4 12 D5 Bít dữ liệu 5 13 D6 Bít dữ liệu 6 14 D7 Bít dữ liệu 7 Nguồn cấp cho LCD là 5VDC, tuy nhiên LCD vẫn hoạt động tốt với nguồn 6VDC hay 4.5VDC. LCD tiêu thụ điện năng rất ít. Tuy nhiên đèn dùng để chiếu sáng cho LCD lại tiêu thụ điện năng khá lớn. Vì vậy mỗi khi có hiện tượng sụt áp trên nguồn thì ta thấy đèn nền LCD tối ngay. Chân 3 (VEE) dùng để thay đổi độ tương phản của màn hiển thò. Lý tưởng thì chân này nên nối với nguồn áp thay đổi được, người ta thực hiện bằng cách lắp mạch chia áp dùng biến trở có đầu ra thay đổi đưa vào chân này. Đơn giản nhất ta có thể nối chân này xuống mass để đạt được độ tương phản tốt nhất. Chân 4 (RS_Register Select) đây là 1 trong 3 ngõ vào điều khiển lệnh. Khi chân này được nối mass thì các dữ liệu truyền đến LCD được xử lý như các mệnh lệnh và các dữ liệu đọc ra chỉ trạng thái của nó. Bằng cách đưa chân này lên mức cao thì dữ liệu ký tự có thể xuất nhập trên modul này. Chân 5 (R/W_Read/Write), chân này cho phép lệnh hay dữ liệu ký tự được ghi vào modul khi nó được kéo xuống mức thấp. Khi được đưa lên cao, nó cho phép dữ liệu ký tự hay thông tin trạng thái được đọc từ các thanh ghi của modul. Chân 6 (E_ Enable), ngõ vào này dùng để khởi động việc chuyển các dữ liệu ký tự hay các lệnh giữa modul và các đường dữ liệu. Khi ghi ra màn hình LCD, dữ Phần IV: ứng dụng 38 liệu chỉ được chuyển khi có cạnh xuống của tín hiệu E này. Tuy nhiên khi đọc ra từ LCD, thì dữ liệu khả dụng sau khi có chuyển tiếp từ thấp lên cao và duy trì dữ liệu khả dụng đến khi tín hiệu E này xuống thấp 1 lần nữa. Các chân từ 7 đến 14 là 8 đường dữ liệu (D0  D7). Dữ liệu có thể được chuyển đến và lấy ra khỏi bộ hiển thò LCD theo dạng một byte hay dạng nửa byte 4 bit (nibble). Trong trường dùng trong ứng dụng này là dùng 4 bit vì chế độ này cần ít đường tín hiệu hơn. Sơ đồ kết nối được thể hiện như hình dưới đây: Hình IV-2: Sơ đồ kết nối LCD 8 bit Hình IV-3: Sơ đồ kết nối LCD 4 bit Phần IV: ứng dụng 39 IV.3.2. Hoạt động của LCD trong ứng dụng Trong ứng dụng này, LCD hoạt động ở 3 tình huống khác nhau. Mỗi tình huống LCD làm nhiệm vụ hiển thò lời giới thiệu hay trạng thái hoạt động của mô hình. Các trạng thái hoạt động của LCD được liệt kê trong bảng sau:  Tình huống 1: vừa khởi động hệ thống, các dòng text sẽ hiển thò lần lượt trên màn hình và lập lại liên tục Bảng IV-2: Các màn hình hiển thò trong tình huống 1  Tình huống 2: Mô hình đang hoạt động ở chế độ Led nhấp nháy, màn hình chỉ gồm 2 dòng hiển thò cố đònh. Bảng IV-3: Các màn hình hiển thò ở chế độ 2 Màn hình Line Text hiển thò 1 1 Che do hoat dong 2 Led nhap nhay  Tình huống 3: Mô hình đang hoạt động ở chế độ điều khiển động cơ, màn hình chỉ gồm 2 dòng hiển thò cố đònh. Màn hình Line Text hiển thò 1 1 DO AN DKHT 2 DE TAI: pIC16F84 2 1 Gvhd 2 Ks. Vo tuong quan 3 1 Nhom thuc hien 2 (None) 4 1 Dinh Phuong Tan 2 Mssv: 20102326 5 1 Nguyen chinh phuc 2 Mssv: 2010 6 1 VUONG QUOC VIET 2 MSSV: 2010 7 1 TIEU BAO TRAN 2 MSSV: 2010 Phần IV: ứng dụng 40 Bảng IV-4: : Các màn hình hiển thò ở chế độ 3 Màn hình Line Text hiển thò 1 1 Che do hoat dong 2 Dong co servo Hình IV-4: Màn hình LCD trong ứng dụng IV.3.3. Sơ đồ mạch điều khiển LCD Hình IV-5: Sơ đồ mạch điều khiển LCD Trong sơ đồ trên, SW1 có vai trò như nút Start, SW2 có vai trò như nút Stop, SW1 là nút gạt chọn chế độ điều khiển Led hay điều khiển động cơ. IV.4. Mô hình tích hợp: Các modul trên được kết hợp với nhau trên 1 mạch tích hợp. Ở đây vì các ngõ điều khiển nhiều hơn khả năng của 1 chip vi điều khiển PIC16F84, do đó chip vi điều khiển thứ 2 được dùng đến. Hai chip này được phân nhiệm vụ điều khiển các 0 X1 4MHz 0 SW1 1 2 TO LCD JP1 HEADER 6 1 2 3 4 5 6 D4 D5 D6 D7 RS E SW3 2 1 3 C2 22P C1 22P R2 10k U1 PIC16F84 1 2 3 4 6 17 10 11 12 13 15 16 7 8 5 14 9 RA2 RA3 RA4/TOCKI MCLR RB0/INT RA0 RB4 RB5 RB6 RB7 OSC1/CLKIN OSC2/CLKOUT RB1 RB2 GROUND VDD RB3 VCC R2 4.7k R2 4.7k SW2 1 2 Phần IV: ứng dụng 41 modul khác nhau. Tuy nhiên, để đồng bộ các modul với nhau thì các ngắt ngoài và các chân kiểm tra điều kiện của 2 chip được nối với nhau. Sơ đồ mạch được trình bày trong hình sau: Hình IV-6: Sơ đồ mạch tích hợp Trong mạch trên, IC1 (U1) điều khiển LCD; IC2 (U2) điều khiển LED và động cơ. Mạch điện thực tế được mô tả trong hình sau: TO LCD JP1 HEADER 6 1 2 3 4 5 6 U2 PIC16F84 1 2 3 4 6 17 10 11 12 13 15 16 7 8 5 14 9 18 RA2 RA3 RA4/TOCKI MCLR RB0/INT RA0 RB4 RB5 RB6 RB7 OSC1/CLKIN OSC2/CLKOUT RB1 RB2 GROUND VDD RB3 RA1 R3 4.7k U1 PIC16F84 1 2 3 4 6 9 17 10 11 12 13 15 16 7 8 5 14 9 RA2 RA3 RA4/TOCKI MCLR RB0/INT RB3 RA0 RB4 RB5 RB6 RB7 OSC1/CLKIN OSC2/CLKOUT RB1 RB2 GROUND VDD RB3 SW1 1 2 R5 4.7k R1 R9 4.7k D1 Left LED C1 22P R4 D2 right LED R12 470R D3 LED X2 4MHz C3 22P C5 1n VCC VSS GROUND OUT JP2 ENCODER 1 2 3 4 C2 22P R6 10k D3 LED R11 470R TO MOTOR JP3 4 HEADER 1 2 3 R7 92R R13 1k D3 LED SW2 1 2 SW6 2 1 3 R8 4.7k + J1 POWER 1 2 R2 10k C4 1n R14 1k D3 LED X1 4MHz R10 1k D3 LED [...].. .Phần IV: ứng dụng Hình IV-7: Mạch điện thực tế IV.5 Mã chương trình: 42 Phần IV: ứng dụng  Chương trình cho IC1 i4list P = 16F84 Include "P16f84.Inc" Simulating = 1 ; -; Đònh nghóa biến ; -CBLOCK 0x20 DelayL DelayM DelayH StrPtr MessAddH MessAddL MessNum Temp PBtemp Flag1 ENDC LcdRS equ 1h LcdE equ 2h LCDmd equ 0h ; ; Khởi tạo chương trình chính ; -. .. Btfss PORTB ,3 Call LED Btfsc PORTB ,3 Call SERVO Retfie LED Movlw 9h Call MessLine1 Movlw 0ah Call MessLine2 Btfss PORTA,0 Goto main call BigDel Loop1 btfss PORTA,0 Goto main goto loop1 SERVO Movlw 9h Call MessLine1 Movlw 0bh Call MessLine2 Btfss PORTA,0 Goto main call BigDel Loop2 btfss PORTA,0 Goto main goto loop2 ; -4 4 Phần IV: ứng dụng ; Truyền dữ liệu đến LCD ; -; MessLine1... 50 Phần IV: ứng dụng movwf TMR0 loop2 btfsc TMR0,7 goto Cont2 lp2 bsf PORTA ,3 bsf PORTA,1 btfss PORTA,0 goto main goto loop2 Cont2 btfss TMR0,6 goto lp2 goto Ctr2 Ctr2 decfsz CNT,1 goto TR1 goto PHAI blink movwf PORTB call DEL return DEL MOVLW 0x02 ;2 DEC MOVWF TMP2 MOVLW 0x0E5 ;229 DEC MOVWF TMP1 MOVLW 0x0D9 ;217 DEC MOVWF TMP0 DECFSZ TMP0,F GOTO $-1 DECFSZ TMP1,F GOTO $-5 DECFSZ TMP2,F GOTO $-9 return... goto ContMess ; ; ; MESSAGE 1 ; ; Mess3 movlw High(Message3) ; get ROM page if Simulating == 1 addlw 8h endif movwf MessAddH ; temp store it movlw Low(Message3) Mess4 movlw High(Message4) if Simulating == 1 addlw 8h endif movwf MessAddH movlw Low(Message4) goto ContMess ; ; ; MESSAGE 1 ; ; Mess5 movlw High(Message5) if Simulating == 1 45 Phần IV: ứng dụng addlw 8h endif movwf MessAddH... ", 0h Message1 DT "DE TAI: PIC16F84" , 0h Message2 DT " GVHD ",0h Message3 DT "KS VO TUONG QUAN" ,0h Message4 DT " NHOM THUC HIEN ",0H Message5 DT " DINH PHUONG TAN",0H Message6 ",0H Message7 VIET",0H Message8 ",0H Message9 Message10 ",0H Message11 ",0H End DT " NG CHINH PHUC DT " VUONG QUOC DT " TIEU BAO TRAN DT " DIEU KHIEN ",0H DT " LED NHAP NHAY DT " DONG CO SERVO 48 Phần IV: ứng dụng  Chương trình... increment - no display shift call LCDins Movlw b'00001100' ; display on, cursor off, blink off 43 Phần IV: ứng dụng call LCDins ; ; ; Chương trình chính ; ; Loop Movlw 0h hiển thò mess ra màn hình Number 0 Call MessLine1 ; line 1 Movlw 1h Number 1 Call MessLine2 ; line 2 Call BigDel ; chờ 1/2 s movlw 1h ; xoá màn hình Call LCDins Call BigDel ; wait 1/2 second movlw 2h Call MessLine1 Movlw 3h... Write "data" call Clock bsf PORTB,lcdE ; (5) enable instruction 47 Phần IV: ứng dụng call Clock bcf PORTB,lcdE ; (5) return ; ; ; Đònh nghóa tần số dao động ; ; Clock movlw 40h movwf DelayL kdloop decfsz DelayL,F goto kdloop return ; ; -; khởi tạo thời gian nhấp nháy ~ 0.5s ; -; BigDel clrf DelayL clrf DelayM movlw 5h movwf DelayH BDloop decfsz... offset ContMess movwf MessAddL ; temp store it ; ; -; Nhận dữ liệu và hiển thò trên LCD ; -; clrf StrPtr ; zero the character offset MessLoop call Messages ; get the character movwf temp ; temp store the character movlw High($) ; restore PCLATH for this ROM page if Simulating == 1 addlw 8h endif 46 Phần IV: ứng dụng movwf PCLATH movf temp,W xorlw 0h ; test if zero... 0x04 goto ISR main banksel TRISA movlw b'00010001' ; RA0,RA4 is input movwf TRISA movlw b'00001001'; RB0,RB3 = INPUT movwf TRISB banksel PORTA clrf PORTA clrf PORTB movlw b'10110010' movwf OPTION_REG bsf INTCON,INTE bsf INTCON,GIE goto main ISR bcf INTCON,INTF btfss PORTB ,3 goto LED btfsc PORTB ,3 goto SERVO LED banksel PORTB movlw b'00000010' call blink btfss PORTA,0 goto main movlw b'00000100' call... character ; ; -; CHARACTER ADDRESS CALCULATOR ; -; Messages movf MessAddH,W ; high address byte to PCLATH movwf PCLATH movf MessAddL,W ; get low address byte addwf StrPtr,W ; add character offset btfsc STATUS,C ; test carry incf PCLATH,F ; overflow increment PCLATH movwf PCL ; low byte to PCL ; ; ; OUTPUT 1 INSTRUCTION BYTE TO DISPLAY - 4 BIT MODE ; . Phần IV: ứng dụng 32 Phần IV: ỨNG DỤNG Bảng ứng dụng chip vi điều khiển PIC16F84 gồm 3 modul: điều khiển LED; điều khiển LCD và điều khiển động cơ Servol. IV.1. Điều khiển LED. cầu H R3 10k C1 470uF Q5 PN2222 Q3 PN2222 TO MOTOR R2 474R E B C TIP120 1 23 J 2-2 R1 47R J 3- 2 J 2-1 E B C TIP120 1 23 R7 3k3 POWER IN R4 10k E B C TIP120 1 23 J 3- 1 E B C TIP120 1 23 Q4 PN2222 Q6 PN2222 IN. hợp. Ở đây vì các ngõ điều khiển nhiều hơn khả năng của 1 chip vi điều khiển PIC16F84, do đó chip vi điều khiển thứ 2 được dùng đến. Hai chip này được phân nhiệm vụ điều khiển các 0 X1 4MHz 0 SW1 1

Ngày đăng: 31/07/2014, 17:20

Từ khóa liên quan

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

Tài liệu liên quan