ỨNG DỤNG VI ĐIỀU KHIỂN PIC

75 74 0
  • Loading ...
1/75 trang

Thông tin tài liệu

Ngày đăng: 26/04/2018, 08:52

Cùng với sự phát triển của khoa học và công nghệ, các họ vi điều khiển ngày càng phát triển với các tính năng mới .Nhằm đáp ứng các yêu cầu ngày càng cao trong các ứng dụng, đặc biệt là trong các hệ thống điều khiển tự động. Hiện nay trên thị trường có rất nhiều các loại vi điều khiển mạnh để bạn lựa chọn như Motorola 68HC , PIC, Atmel AVR, ARM, , SHARC Chương 3: Giới thiệu vi điều khiển PIC 16F84A Chương 1: GIỚI THIỆU VI ĐIỀU KHIỂN PIC16F84A 1.1 Mở đầu - Cùng với phát triển khoa học công nghệ, họ vi điều khiển ngày phát triển với tính Nhằm đáp ứng yêu cầu ngày cao ứng dụng, đặc biệt hệ thống điều khiển tự động Hiện thị trường có nhiều loại vi điều khiển mạnh để bạn lựa chọn Motorola 68HC , PIC, Atmel AVR, ARM, , SHARC Tuy em nêu tiêu chí mà dựa vào em chọn họ vi điều khiển PIC :  Có bán thị trường  Giá thành  Dễ sử dụng (bao gồm thiết kế mạch nạp, mạch chạy, nhớ flash, tập lệnh, chương trình hỗ trợ nhà sản xuất)  Số lượng giá cơng cụ lập trình, mạch thiết kế mở, số lượng nhà phân phối…  Số lượng người dùng, mà từ có tài liệu dẫn, ghi bổ ích, có trao đổi dễ dàng  Tính vi điều khiển riêng lẻ - Quay trở lại vấn đề so sánh Motorola thường dùng cho thiết kế phức tạp lại khó mua giá cao AVR giống PIC, SVTH: Nguyễn Hữu Tiến Trang Chương 3: Giới thiệu vi điều khiển PIC 16F84A nhiều người so sánh với PIC Nhưng xét ứng dụng thiết kế AVR hạn chế Số lượng dòng vi điều khiển AVR khơng nhiều, khơng có vi điều khiển cho ứng dụng cụ thể 8051 sở trường sinh viên, hạn chế tính - Trong đồ án em trình bày PIC16F84A, vi điều khiển mà người học PIC thường lựa chọn 1.2 PIC gì? - PIC tên viết tắt “bộ điều khiển thiết bị ngoại vi” (Peripheral Interface Controller), hãng General Instrument đặt tên con vi điều khiển họ: PIC1650 Đây vi điều khiển đầu tiên, mẹ đẻ tất vi điều khiển họ PIC sau Đến ngày nay, PIC1650 phát triển biết tên gọi PIC16C54 Nó thiết kế để dùng cho thiết bị ngoại vi vi xử lý CP1600 Tóm lược dòng PIC: -Mã số bắt đầu 12xxxx có nghĩa opcode 12 bit, bắt đầu với 16xxxx PIC 14 bit 18xxxx PIC 16 bit - Mã số C PIC có nhớ EPROM, có 16C84 EEPROM, F Flash, LF PIC Flash hoạt động điện áp thấp, cũ LV Ngoài ra, số xxFxxx EEPROM, để phân biệt với Flash bạn thấy chữ A tận Vd: 16F877 16F877A,16F84 16F84A,v.v - Các SX PIC dùng nhiều cung cấp nhiều cơng cụ tính tốn Microchip PIC, vậy, VN phổ biến với PIC Microchip Ngơn ngữ lập trình: -Ngơn ngữ lập trình đa dạng MPASM, C, Basic, Pascal… Mọi người thích dùng ngơn ngữ cấp cao đơn giản hơn, em sử dụng trình biên dịch mikropascal Ngồi có trình biên dịch khác như: MPLAB, CCS C, BASCOM, C17, C18, C30… C18 1.3 Tóm tắt phần cứng PIC16F84A 1.3.1Cấu trúc bên đặc trưng ♦Kiến trúc PIC SVTH: Nguyễn Hữu Tiến Trang Chương 3: Giới thiệu vi điều khiển PIC 16F84A -PIC tổ chức phần cứng theo kiến trúc Harvard, tập lệnh RISC Sự khác biệt kiến trúc Harvard kiến trúc Von Neumann chỗ nhớ liệu nhớ chương trình nằm riêng biệt, hay nằm chung -Chúng ta thấy rằng, với kiến trúc von-Neumann, nhớ liệu nhớ chương trình nằm chung, CPU tương tác với nhớ, làm việc với nhớ liệu, nhớ chương trình nên tốc độ xử lý chậm Trong đó, kiến trúc Harvard cho phép CPU tương tác với hai nhớ liệu nhớ chương trình lúc, giúp tốc độ xử lý nhanh Kiến trúc von-Neumann ngược lại, cho phép ta cân đối nhớ liệu nhớ chương trình cách linh động Tuy nhiên, điều thực hữu ích cho CPU xử lý tốc độ cực cao, dung lượng nhớ cực lớn Còn với CPU tốc độ chậm vi điều khiển, nhớ hạn chế, kiến trúc von-Neumann dường không đem lại hiệu tốc độ xử lý dung lượng quản lý nhớ kiến trúc Harvard Hình 1.1: Kiến trúc Harvard kiến trúc Von-Neumann -Một điểm ý nữa, với kiến trúc Harvard, nhớ chương trình nhớ liệu tách riêng, đó, tập lệnh kiến trúc Harvard tối ưu tùy theo yêu cầu kiến trúc vi điều khiển Bằng chứng, độ dài lệnh dòng PIC16 ln ln 14 bit Trong đó, độ dài lệnh vi điều khiển kiến trúc von-Neumann bội số byte (8 bit) -Điều dẫn đến hệ quả, nhớ chương trình PIC 4Kword, vị trí nhớ sử dụng triệt để, viết 4x1024 dòng lệnh chương trình Trong đó, kiến trúc von-Neumann với nhớ SVTH: Nguyễn Hữu Tiến Trang Chương 3: Giới thiệu vi điều khiển PIC 16F84A 4KB trung bình cho ta viết 2x1024 dòng lệnh, tức tương đương với 2K dòng lệnh Tỉ lệ tùy thuộc vào ứng dụng, nhiên, số trung bình phản ánh rằng, kiến trúc Harvard phần thể lợi điểm so với kiến trúc vonNeumann vi điều khiển ♦Sơ đồ khối PIC16F84A Hình 1.2: Sơ đồ khối PIC16F84A SVTH: Nguyễn Hữu Tiến Trang Chương 3: Giới thiệu vi điều khiển PIC 16F84A 1.4 Sơ đồ chân PIC16F84A Hình 1.3: Sơ đồ chân PIC16F84A OSC1/CLKIN : Chân nối với dao động thạch anh (Oscillator crystal input) OSC2/CLKOUT :Chân nối với dao động thạch anh (Oscillator crystal input) MCLR(inv) : Chân reset mức thấp (Master clear input) Ngõ vào điện áp lập trình chế độ lập trình (Programming voltage input) RA0 – RA3 : Cổng giao tiếp hai chiều (Bi-directional I/O port) RA4/T0CKI : Cổng giao tiếp hai chiều (Bi-directional I/O port) Giữ vai trò định thời dựa vào xung ( Clock input to the TMR0 timer/counter) RB0/INT : Cổng giao tiếp hai chiều (Bi-directional I/O port) Chân ngắt (External interrupt pin) RB1 – RB7 :Cổng giao tiếp hai chiều (Bi-directional I/O port) VSS : Chân mass VDD :Chân nguồn (+2.0V to +5.5V) SVTH: Nguyễn Hữu Tiến Trang Chương 3: Giới thiệu vi điều khiển PIC 16F84A 1.5 Tổ chức nhớ SVTH: Nguyễn Hữu Tiến Trang Chương 3: Giới thiệu vi điều khiển PIC 16F84A SVTH: Nguyễn Hữu Tiến Trang Chương 3: Giới thiệu vi điều khiển PIC 16F84A Hinh 1.4: Tổ chức nhớ PIC16F84A ♦ Bộ nhớ chương trình(Flash Program Memory) Bộ nhớ chương trình loại nhớ kiểu FLASH dùng để chứa chương trình Kích thước nhớ chương trình 1024 vị trí nhớ, vị trí nhớ có độ lớn 14 bit (word).Mỗi nguồn nội dung nhớ khơng bị Có khả lập trình nhiều lần,số lần ghi giới hạn 1000 lần Vị trí 0000h vị trí 0004h dành cho reset vector ngắt ♦ Reset Vector ( 0000h ) Khi xảy reset, cách bật nguồn nguyên nhân khác chương trình bắt đầu vị trí PIC16F84A có cách reset sau : -Reset bật nguồn, POR (Power-On Reset) -Reset có mức logic chân MCRL -Reset chế độ ngủ (Sleep) -Reset watchdog bị tràn (WDT) Trong cách reset bật nguồn (POR) có mức logic chân MCRL thường sử dụng ♦ Peripheral Interrupt Vector ( 0004h ) Khi cho phép ngắt, chương trình ngắt bắt đầu vị trí ♦ Bộ nhớ liệu(Data memory) Bộ nhớ liệu bao gồm nhớ EEPROM RAM Bộ nhớ EEPROM gồm 64 vị trí bit nội dung chúng không bị mất nguồn Bộ nhớ EEPROM truy cập trực tiếp, truy cập gián tiếp thông qua ghi EEADR EEDATA ♦ RAM(Random Access Memory) File Registers Bộ nhớ RAM dòng PIC chia làm nhiều bank,để truy cập đến vùng nhớ ta phải làm công việc chọn bank PIC16F84A nhớ RAM chia làm bank, bank có độ lớn 80 byte chiếm vị trí từ 0x00h tới 0x4Fh, 12 vị trí bank ghi chức đặc biệt SFR (Special Function Registers) Các vị trí từ 0x0Ch tới 0x4Fh vùng RAM đa mục đích, SVTH: Nguyễn Hữu Tiến Trang Chương 3: Giới thiệu vi điều khiển PIC 16F84A vị trí vùng RAM đa mục đích truy cập bất chấp bank chọn ♦ Bộ đếm chương trình (Program Counter) Bộ đếm chương trình (PC) ghi có độ dài 13 bit chứa địa lệnh kích hoạt Về mặt vật lí, kết hợp bit ghi PCLATH bit ghi PCL ♦ Stack Stack chứa địa trở lệnh nhảy kích hoạt PIC16F84 có ngăn chứa 13 bit với mức, nói cách khác nhóm vị trí nhớ, có độ rộng 13 bít.Vai trò lưu giữ giá trị đếm chương trình sau thực lệnh nhảy từ chương trình tới địa chương trình con, nhằm mục đích chương trình biết xác điểm trở sau thực hiên chương trình Lệnh RETURN đánh dấu điểm kết thúc chương trình Lệnh CALL lệnh nhảy tới chương trình Khi gặp lệnh CALL, địa trở (địa câu lệnh theo sau lệnh con) chứa vào đỉnh stack, lệnh RETURN bắt gặp địa đỉnh stack đặt vào PC chương trình tiếp tục bình thường Do PIC16F84 có ghi stack nên chương trình gọi lồng liên tiếp lần ,vì sau lần gọi thứ lệnh gọi làm nội dung ngăn stack thứ tám Do gặp lệnh return PC gửi tới chương trình địa trở sai, điều làm cho chương trình hoạt động sai SVTH: Nguyễn Hữu Tiến Trang Chương 3: Giới thiệu vi điều khiển PIC 16F84A Hình 1.5: Hoạt động stack 1.6 Các ghi chức đặc biệt (SFR) hoạt động chúng 12 vị trí nhớ bank dành cho ghi chức đặc biệt (FSR), ghi quan trọng hoạt động họ vi điều khiển PIC ♦ Thanh ghi STATUS (địa nhớ 03h 83h) Hình 1.6: Thanh ghi STATUS -Bit IRP, RP1, RP0: bit dung để chon bank ,ở PIC16F84A bit IRP không sử dụng,việc chọn bank phụ thuộc vào hai bit RP1 RP0 00: chọn bank 0; 01: chọn bank1 -Bit TO ( time out bit) :cờ báo tràn WDT 1: không xảy tràn 0: tràn xảy -Bit PD (Power-down) 1: sau bật nguồn 0: kích hoạt lệnh SLEEP SVTH: Nguyễn Hữu Tiến Trang 10 Chương 3: Giới thiệu vi điều khiển PIC 16F84A Điện trở phân cực R1 là: V  VBE  0.8 U R1  R1  CC  4.2 K IB IB Ta chọn R1=3.3K để thỏa mãn điều kiện I C  I B  MIN Vậy dòng thực tế IB là: IB   0.8 1.3mA 3.3 10 R2:R8 điện trở hạn dòng cho led Khi transistor dẫn bão hòa điện áp VCES=0.2V điện áp rơi led 2V VR2=VCC- VCES- VLED=5-0.2-2=2.8V R2  VR 2  215 I CMAX 1.3 70 10  7 Ta chọn R2=330  Ta có : I LEDtt    0.2 8.5mA 330 10  4.6 Thiết kế mạch đóng cắt động ♦ Nguyên lý hoạt động: Khi cực G FET mức FET khơng dẫn, khơng có dòng qua động Khi cực G FET mức FET dẫn, có dòng qua động FET dẫn mạnh áp cực G lớn, ta chọn R1=330  R2=10K  Có thể điều khiển tốc độ động cách dùng vi điều khiển điều chế xung, điều khiển cách dùng mạch ngồi điều khiển áp đặt lên mơ tơ SVTH: Nguyễn Hữu Tiến Trang 61 Chương 3: Giới thiệu vi điều khiển PIC 16F84A VC C VC C + D D IO D E M G M O TO R SER VO A - R D R R Q IR F D IO D E R C R Hình 4.8: Sơ đồ mạch điều khiển động 4.7 Thiết kế mạch thu phát hồng ngoại  Tính tốn mạch phát hồng ngoại: Mạch tạo dao động tạo dao động với tần số f tùy thuộc vào việc lập trình cho vi điều khiển Tín hiệu phát thông qua Led phát hồng ngoại D1 dòng dao động bé nên ta khuêch đại qua transistor Q1 C828, chọn hệ số khuếch đại 50 Khi Led hồng ngọai dẫn VLed=2V Ta chọn dòng qua Led hồng ngoại khoảng 30mA để phát tín hiệu mạnh để bên thu nhận nhanh R1  VCC  VLED  VCES   0.2  93.33 I CS 30mA Vậy ta chọn R1=100  Như dòng thực tế qua Led R1=100  : I CES    28mA 100 Dựa vào điều kiện Q3 dẫn bão hòa IB  ICES/  Chọn IB=1mA IB  5V  V BES  0.8  R2  4.2 K R2 1mA SVTH: Nguyễn Hữu Tiến Trang 62 Chương 3: Giới thiệu vi điều khiển PIC 16F84A Chọn điện trở R2=3.3K V C C LE D R R C H A N _V D K Q Hình 4.9: Sơ đồ mạch phát tín hiệu hồng ngoại ♦ Tính tốn mạch thu hồng ngoại: +5V R10 330 R13 330 D4 C3 PH OT OD IO DE C5 D2 2.2uF 1uF U3A + - LM324 11 R7 OFIL LFIL IN V+ OUT GND CT RT 4.7K LED R11 P3.2 4.7K Q3 2SC828 U4 NE567 R14 R8 D3 LED 10K 1K R6 1K C4 102 Hình 4.10: Sơ đồ mạch thu tín hiệu hồng ngoại Khi cấp nguồn cho Led D4, Led D4 nhận tín hiệu từ Led phát Nó đưa qua so sánh Op_Ampl đưa tín hiệu đến NE567 Ta điều chỉnh tần số phát SVTH: Nguyễn Hữu Tiến Trang 63 Chương 3: Giới thiệu vi điều khiển PIC 16F84A cho với tần số f0 NE567 điện áp chân chuyển từ mức cao sang mức thấp.Chọn f0 =10Khz Tần số dao động f0 = 1 =R14C4 = = =0.9x10-4 1.1.R14 C 1.1 f 1.1x10 Ta chọn C4=104pF Ta có: R14= 1.1x10 x10 x10  12 =9.09K Ta chọn R14=10K 4.8 Kết luận chương Trong chương sâu vào phân tích tính tốn hệ thống hoạt động mạch bao gồm mạch thu phát hồng ngoại mạch hiển thi để có sản phẩm qua che tín hiệu phát nên bên thu khơng thu tín hiệu phát Nên bên thu tạo xung để đưa đếm vi điều khiển xử lý Rồi mạch giao tiếp Kit vi điều khiển với máy tính để trao đổi liệu Việc thiết kế theo modul giúp viêc dễ dàng việc kiểm tra cố Để từ Start dựa phần cứng viết phần mềm điều khiển hệ thống hoạt động Chương 5: Khởi động ghi option_reg:=0 TMR0:=0 intcon:=$A0 THIẾT KẾ VÀ THI CÔNG PHẦN MỀM Nạp giá trị cho biến đầu vào 5.1.Thuật tốn chương trình chính: i=0 i=i+1 i>12 S EEprom_Write(i,0 ) Đ EnterProduct SVTH: Nguyễn Hữu Tiến CountProduct End Trang 64 Chương 3: Giới thiệu vi điều khiển PIC 16F84A Start port[9]:=1 i:=2 5.2 Thuật toán chương trình EnterProduct: i:=i+1 S i>8 port[i]:=EEPROM_Read(i+2) Đ new:=0 S new15 Đ EnterNumber task SVTH: Nguyễn Hữu Tiến Trang 65 End Chương 3: Giới thiệu vi điều khiển PIC 16F84A Start new:=16 S 5.3 Thuật tốn chương new=16trình EnterNumber: Đ thu:=50 RC4=0 S Đ thu:=thu-1 S old_portbportb S S Đ USART_Data_Ready=1 thu =0 Đ remote SVTH: Nguyễn Hữu Tiến End Keyboard Đ rs232 Trang 66 Chương 3: Giới thiệu vi điều khiển PIC 16F84A Start new =15 Đ S Đ new =12 l:=l+1 blink:=shift shift:=shift shr S Đ l:=l-1 shift:=blink blink:=blink shl S new =13 S blink0 l =0 Đ l =9 Đ S i:=8 l:=1 shift:=128 blink:=0 5.4.Thuật tốn Đ chương trình task: Đ l:=8 i>2 blink:=2 S port[2]:=new EEprom_Write(4, new) End End End port[i]:=port[i-1] EEprom_Write(i+2, port[i-1]) i:=i-1 port[l]:=new EEprom_Write(l+2, new) SVTH: Nguyễn Hữu Tiến Trang 67 End S Chương 3: Giới thiệu vi điều khiển PIC 16F84A Start j:= i:= new :=0 intcon:=0 Đ RC4=0 S S i>5 Đ 5.5 Thuật tốn chương trình remote: new:=coderemote(new) RC4=1 S checkr:=9000 RC4=0 Đ RC4=0 S Đ Đ S S Delay_us(700) j:=j+1 checkr0 Đ checkr:=checkr-1 j8 S data1[i]:=port[i] port[i] :=0 Đ Đ Đủ số sản phẩm S RC2:=1 5.7.Thuật tốn chương trình Đ CountProduct: Đủ số hộp S RC1=0 Đ S RC2:=0 RC3:=1 RC0=0 Đ S RC2:=0 RC3:=0 dsp:= dsp+1 Hiển thị số sản phẩm led End RC0=1 SVTH: Nguyễn Hữu Tiến S Đ Trang 71 Chương 3: Giới thiệu vi điều khiển PIC 16F84A Đủ số sản phẩm S Đ dsh:= dsh+1 RC2:=1 RC3:=0 Hiển thị số hộp led RC1=1 Đ S SVTH: Nguyễn Hữu Tiến Trang 72 Chương 3: Giới thiệu vi điều khiển PIC 16F84A Start portd:=0 S blink=zz Đ k:=k-1 S k=0 5.8 Thuật tốn chương trình Interrupt: Đ k:=20 porta:= port[v] portd:= zz v:= v+1 zz:= zz shr S zz=0 Đ zz:= 128 v:= SVTH: Nguyễn Hữu Tiến Trang 73 End Chương 3: Giới thiệu vi điều khiển PIC 16F84A 5.9 Thuật tốn chương trình Rs232: Start Received_bytet := USART_Read new:=coders232(Received_bytet) USART_Write(Received_bytet) End SVTH: Nguyễn Hữu Tiến Trang 74 Chương 3: Giới thiệu vi điều khiển PIC 16F84A SVTH: Nguyễn Hữu Tiến Trang 75 ... Giới thiệu vi điều khiển PIC 16F84A nhiều người so sánh với PIC Nhưng xét ứng dụng thiết kế AVR hạn chế Số lượng dòng vi điều khiển AVR khơng nhiều, khơng có vi điều khiển cho ứng dụng cụ thể... con vi điều khiển họ: PIC1 650 Đây vi điều khiển đầu tiên, mẹ đẻ tất vi điều khiển họ PIC sau Đến ngày nay, PIC1 650 phát triển biết tên gọi PIC1 6C54 Nó thiết kế để dùng cho thiết bị ngoại vi vi... vi điều khiển cho phép đáp ứng lại vài kiện lúc xảy ra,bất chấp vi điều khiển thực thời điểm Đây chế quan trọng, làm tăng tính mềm dẻo ứng dụng sử dụng vi điều khiển Thanh ghi điều khiển ngắt PIC1 6F84
- Xem thêm -

Xem thêm: ỨNG DỤNG VI ĐIỀU KHIỂN PIC, ỨNG DỤNG VI ĐIỀU KHIỂN PIC, GIỚI THIỆU VI ĐIỀU KHIỂN PIC16F84A, 3 Tóm tắt phần cứng PIC16F84A, 5 Tổ chức bộ nhớ, 6 Các thanh ghi chức năng đặc biệt (SFR) và hoạt động của chúng, Nó gồm có 5 chân :từ RA0 đến RA4, Nó gồm có 8 chân :từ RB0 đến RB7, 8 Hoạt động định thời, 10 Tập lệnh của họ PIC16FXX, TRUYỀN SỐ LIỆU, GIAO TIẾP VỚI MÁY TÍNH QUA CỔNG COM VÀ ỨNG DỤNG REMOTE ĐỂ ĐIỀU KHIỂN TỪ XA, 2 Chuẩn giao tiếp RS232, Nếu độ rộng khoảng không gian dài và độ rộng xung ngắn thì tương ứng với mức logic 0., 8 Cách mã hóa của các loại REMOTE thông dụng, THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG, ♦ Nguyên lý hoạt động, Hình 4.10: Sơ đồ mạch thu tín hiệu hồng ngoại, THIẾT KẾ VÀ THI CÔNG PHẦN MỀM

Từ khóa liên quan

Mục lục

Xem thêm

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay