BÀI TIỂU LUẬN NGHIÊN CỨU VI ĐIỀU KHIỂN PIC 16F84A

24 315 1
BÀI TIỂU LUẬN NGHIÊN CỨU VI ĐIỀU KHIỂN PIC 16F84A

Đ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

Khi đọc qua tài liệu này, phát sai sót nội dung chất lượng xin thông báo để sửa chữa thay tài liệu chủ đề tác giả khác Bạn tham khảo nguồn tài liệu dịch từ tiếng Anh đây: http://mientayvn.com/Tai_lieu_da_dich.html Thông tin liên hệ: Yahoo mail: thanhlam1910_2006@yahoo.com Gmail: frbwrthes@gmail.com TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TPHCM KHOA CÔNG NGHỆ ĐIỆN TỬ  BÀI TIỂU LUẬN NGHIÊN CỨU VI ĐIỀU KHIỂN PIC 16F84A Giảng viên hƣớng dẫn : Huỳnh Minh Ngọc Sinh viên thực : Lê Tấn Anh(09286231) Hứa Thị Hằng(09286371) Lớp : ĐHĐT5TN ĐHCNTPHCM,30 tháng 03 năm 2012 PIC 16F84A I GIỚI THIỆU KHÁI QUÁT VỀ PIC 16F84A Các đặc tính 16F84A Chỉ dùng 35 câu lệnh để viết tất chƣơng trình nguồn cho PIC Tất lệnh dùng chu kì máy, câu lệnh nhảy dùng hai chu kì máy Tốc độ vận hành dùng xung nhịp 20MHz chu kì máy 200ns Bộ nhớ chƣơng trình (Flash Program Memory) 1024 word, với nhớ xóa ghi đƣợc 1000 lần, chiều rộng câu lệnh word 14 bit Xử lý liệu dạng bit tƣơng ứng với byte Bộ nhớ RAM 68 byte Bộ nhớ liệu EEPROM 64 byte Với nhớ liệu xóa ghi liệu đến 1000000 lần PIC 16F84A có 15 ghi chuyên dụng SFR (Specia Function Register) RAM, với ngăn xếp có chiều sâu lớp, gồm dạng ngăn, có 13 chân dùng xuất nhập liệu, port A có chân port có chân Dòng vào mức 25mA, với nguồn nuôi khoảng 2V đến 5.5V Có định thời Timer (TMR0) dùng đếm xung bit, nên tối đa đếm đƣợc 256 nhịp PIC lập trình nạp bo Có nhiều tùy chọn cho mạch dao động tạo xung nhịp Có mode truy cập theo dịa trực tiếp, gián tiếp địa tƣơng đối Có mode bảo vệ mã (Code Protection), mode sleep dùng tiết kiệm điện trạng thái chờ PIC có chức WDT- đếm xung thời gian Ý nghĩa chân PIC 16F84A Chân OSC1/CLKIN : chân ngõ vào mạch dao động thạch anh, dùng để định tần số xung nhịp, ngõ vào mạch tạo xung nhịp OSC2/CLKOUT : chân ngõ vào dao động thạch anh, đồng thời ngõ xung nhịp MCLR (Master Clear) : chân reset, tác dụng chân trả lệnh vị trí ban đầu xác lập lại vị trí ban đầu cho ghi có chức đặc biệt Với lệnh tác dụng mức thấp 3 Port A(RA0, RA1, RA2, RA3,RA4) : cổng xuất nhập, có bit RA4/TOCKI : chân đa nhiệm, vừa chân xuất nhập vừa chân lấy xung cho định thời timer Và chân có cực máng để hở Port B từ RB0 đến RB7 : cổng xuất nhập liệu, có bit RB0/INT : chân đa nhiệm, chân xuất nhập liệu chân phát động theo ngắt ngoài, đƣợc lập trình để có trở kháng lớn dùng làm ngõ vào, nhập trạng thái ngoiaf vào PIC RB4, RB5 : chân xuất nhập, đồng thời chân phát động ngắt theo thay đổi chân RB6 : chân xuất nhập, chân phát động ngắt theo thay đổi chân, lập trình để để phát xung nhịp cho truyền PIC dạng nối tiếp RB7 : chân xuất nhập, phát động ngắt theo thay đổi chân này, bên cạnh lập trình trao đổi liệu VSS : chân nối masse để lấy dòng VDD : chân nối với nguồn dƣơng từ 2V đến 5.5V 4 Các khối chức năng(Kết cấu bên trong) PIC 16F84A Sơ đồ khối PIC 16F84A đƣợc trình bày nhƣ hình bên dƣới, đƣợc sử dụng dây chung 14 hàng kết cấu phân ly dây chung số liệu bít làm cho tiến hành đồng thời viếc đọc nhận lệnh nhƣ chấp hành lệnh, nâng cao đƣợc tốc độ vận hành 5 SƠ ĐỒ KHỐI KẾT CẤU BÊN TRONG PIC 16F84 Bộ nhớ iê chƣơng trình EEPROM Bộ đếm số chƣơng trình EEPROM 1K×14 Kho chứa cấp RAM EEDATA Bộ nhớ văn kiện Data Memerg 64x8 13-bit 36x8 EEADR Bộ nhớ lệnh Bộ phục dụng địa TMR FSR 1eg STATUS 1eg Phục vụ cấp điện Lệnh dịch mã điều khiển Bộ phục dụng Làm trễ dao động Đầu I/O ALU Làm trễ cấp điện Bộ phát sinh gốc thời gian chuẩn Bộ nhớ W WDT Flash Program Memory: có dung lƣợng 1024 nhớ, loại rộng 14 bit (1Kx14) Ở ta cất giữ mã lệnh chƣợng trình nguồn, đƣợc truy cập theo mã địa có ghi PC (Program Counter) Mã lệnh xuất ghi Instruction Register Thanh ghi Program Counter: dùng ghi địa mã lệnh nhớ Flash ROM Trong hoạt động, dùng lệnh nhảy đến chƣơng trình con, địa đƣợc tạm thời cất giữ ghi ngăn xếp, chiều sâu ngăn xếp có lớp (8 Level Stack) Ngăn xếp (Level Stack): dùng lƣu giữ mã địa chƣơng trình chƣƣơng trình có dùng lệnh nhảy Cất vào địa ngăn xếp ta dùng lệnh Push lấy địa từ ngăn xếp dùng lệnh Pop Thanh ghi mã lệnh( Instruction Register ): ngõ ra, mã lệnh chuyển đến khối giải mã Instruction Decode & Control để tạo lệnh điều khiển Hay chuyển đến khối xử lý địa đa kênh Address Multiplex để truy cập nhớ nhớ RAM (File Register) Khối giải mã (Instruction Decode & Control): xác định tính điều khiển câu lệnh, tác dụng vào khối định trạng thái cho IC Khối gồm có chức năng: Power-up Timer, Oscillator Start-up Timer, Power-on Reset, Watchdog Timer Power-up Timer dùng kích hoạt IC theo đồng hồ Timer Oscillator Start-up Timer: để làm mạch dao động theo đồng hồ Timer Watchdog Timer: định thời dùng vào mode theo đồng hồ Timer, tính dùng tiết kiệm điện Timing Generation: khối tạo xung nhịp chính, tần số xung nhịp thƣờng định theo thạch anh PIC16F84A hoạt động với xung nhịp 20MHz Đồng hồ Timer (TMR0) dùng đếm bit để tạo chức điều khiển theo thời gian Nó đếm tối đa 256 xung nhịp, đếm đầy bit báo tràn chuyển lên mức I/O Port (gồm Port A có chân Port B có chân) dùng xuất nhập liệu Nhiều chân có tính đa nhiệm, nên chức xuất nhập liệu có chức khác, nhƣ nhập xung đếm chân RA4/TOCKI, ngắt chân RB0/INT… EEPROM Data Memory (bộ nhớ liệu): nhớ xóa ghi đƣợc triệu lần, EEPROM có 64 nhớ, với độ rộng bit (1 byte) Để truy cập liệu nhớ, mã địa chuyển vào ghi EEADR liệu xuất nhập ghi EEDATA Bộ nhớ RAM File Register: nhớ RAM có 68 nhớ, với độ rộng bit, có 12 nhớ chuyên dụng (SFR, Special Function Register), nhớ lại đƣợc dùng làm nhớ phổ dụng (GPR, General Purpose Register) Các nhớ chuyên dụng xác định hoạt động IC, nhớ phổ dụng dùng làm nhớ tạm Khi IC nguồn, liệu nhớ RAM bị xóa Ngƣời ta truy cập liệu nhớ RAM với bó nối mã địa RAM Addr (7 đƣờng) xuất nhập liệu bó nối Data Bus (8 đƣờng) Thanh ghi FSR (File Select Register) dùng truy tìm liệu theo mã địa gián tiếp (Indirect Address), dùng bó nối Indirect Addr (7 đƣờng) Thanh ghi STATUS (Status Register) dùng chọn định điều kiện cho IC MUX (Multiplex) khối xử lý đa nhiệm, cung cấp mã cho khối xử lý ALU ALU (Arithmetic & Logic Unit) khối thực phép toán số học logic Thanh ghi W (Work Register) ghi tích lũy, cất giữ kết khối toán ALU Bộ nhớ Flash Program Memory- EEPROM Đây loại nhớ ROM xóa ghi mức áp cao Vpp, nên nội dung ghi nhớ không bị xóa dù IC không đƣợc cấp điện Các nhớ cho xóa ghi lại nhiều lần, dung lƣơng nhớ 64 byte, số lần xóa ghi bị hạn chế nhớ EEPROM không đƣợc dùng làm nhớ tạm thời nhƣ RAM, nhớ EEPROM đƣợc dùng để ghi liệu phải thay đổi 8 Thanh nhớ có địa 0000h (Reset Vector) vị trí nhảy đến chức Reset Khi IC vừa đƣợc cấp điện, hay tác dụng định thời lý khác, tác dụng Reset cho chƣơng trình khởi đầu trở lại từ địa 0000h Thanh nhớ 0004h (Interrupt Vector) dùng cho chức ngắt Thanh ghi 2007h (Configuration word) dùng để xác định hoạt động PIC Bộ nhớ RAM 9 Bộ nhớ RAM PIC 16F84A chức chia thành loại nhớ thông dụng nhớ chuyên dùng Về không gian chia thành hai băng, băng băng Các ghi a Thanh ghi trạng thái STATUS Thanh ghi có địa 03h Bit 7: PIC 16F84A không dùng bít Bit 6-5: đƣợc dùng để chọn bank Thật bit để mức thay đổi bit 5, xác lập trị 00 chọn bank 0, xác lập trị 01 chọn băng Bit 4: Bit=’1’: sau cấp nguồn dùng lệnh CLRWDT hay SLEEP Bit=’0’: lệnh WDT diễn Bit 3: Bit=’1’: sau cấp nguồn hay sau lệnh CLRWDT Bit=’0’: thực lệnh SLEEP Bit 2: Bit=’1’: kết phép toán Bit=’0’: kết phép toán khác Bit 1: Bit=’1’: xuất tràn số bit thấp thứ Bit=’0’: bit tràn bit thấp thứ Bit 0: Bit=’1’: xuất tràn số ghi Bit=’0’: số tràn ghi b Thanh ghi OPTION Bit 7: Bit cho phép điện trở kéo lên portB Bit=’1’: không cho treo chân PortB Bit=’0’: cho treo chân PortB Bit 6: Bit chọn cạnh ngắt Bit=’1’: ngắt cạnh lên xung chân RB0/INT 10 Bit=’0’: ngắt cạnh xuống xung chân RB0/INT Bit 5: Bit nguồn tín hiệu TMR0 Bit=’1’: mạch làm việc với xung vào chân RA4/TOCKI Bit=’0’: mạch dùng xung nội Bit 4: Bit chọn cạnh tín hiệu TMR0 Bit=’1’: cạnh từ mức cao xuống mức thấp chân RA4/TOCKI Bit=’0’: cạnh từ mức thấp lên mức cao chân RA4/TOCKI Bit 3: Bit gán chia số tỉ lệ trƣớc Bit=’1’: cho xác lập trƣớc với mạch WDT Bit=’0’: cho xác lập trƣớc với mạch TMR0 Bit 2-0:Dùng để chọn tốc độ cho TMR0 WDT PS2_PS1_PS0 Tốc độ TMR0 Tốc độ WDT 000 1:2 1:1 001 1:4 1:2 010 1:8 1:4 011 1:16 1:8 100 1:32 1:16 101 1:64 1:32 110 1:128 1:64 111 1:256 1;128 c Thanh ghi INTCON Bit 7: Bit xác định điều kiện mở hay tắt tất ngắt Bit=’1’: cho dùng tất ngắt Bit=’0’: tắt tất ngắt Bit 6: Bit cho phép tắt mở dạng ngắt ghi xong vô EEPROM Bit=’1’:cho mở ngắt ghi xong vô EEPROM Bit=’0’:cho tắt ngắt 11 Bit 5: Bit cho phép ngắt TMR0 tràn Bit=’1’: cho phép ngăt Bit=’0’: cấm ngắt Bit 4: Bit cho phép ngắt RB0/INT Bit=’1’: cho phép ngắt Bit=’0’: cấm ngắt Bit 3: Bit cho phép ngắt thay đổi B4,B7 port B Bit=’1’: cho phép ngắt Bit=’0’: cấm ngắt Bit 2: Là bit cờ TMR0 bị tràn để tạo lệnh ngắt Bit đƣợc xóa phần mềm Bit=’1’: TMR0 tràn Bit=’0’: không tràn Bit 1: Là bít cờ ngắt RB0/INT mà thay đổi RB0 Bit=’1’: thay đổi diễn Bit=’0’: thay đổi diễn Bit 0: Là bit cờ ngắt thay đổi chân B4 chân B7 port B Bit=’1’: chân ngõ vào B4 đến B7 có thay đổi trạng thái Bit đƣợc xóa phần mềm Bit=’0’: thay đổi II.ỨNG DỤNG CỦA PIC 16F84A Các chip đơn thƣờng dùng mạch tích hợp số TTL,CMOS,nắm vững dễ dàng vấn đề hỗ chip đơn thông minh,không phải nắm vững phần cứng mà phải nắm vững phần mềm.Khi thiết kế phần mềm cần phải có nhiều sang tạo Do PIC 16F84 có EEPROM cóthể viết xóa để lƣu chƣơng trình đặc biệt thích hợp với số ứng dụng thƣờng phải thay đổi giá trị.PIC 16F84 thích hợp cho ngƣời học lập trình viết xóa dễ dàng.Ngoài nhớ EEPROM 64x8 chức bảo vệ số liệu điện mà có tính bảo mật cao Nhƣ trƣớc hết tìm hiểu tập lệnh 16F84A Một lệnh hợp ngữ đầy đủ gồm phần: +Nhãn(LABEL) 12 +Mã lệnh (CODE) +Toán hạng(OPERAND) +Ghi chú(COMMENT) dụ: LOOPA MOVF TMR0,W ;chuyển TMR0 vào ghi W Trong dụ trên: LOOPA (nhãn);MOVF(mã lệnh);TMR0,W (toán hạng với TMR0 nguồn,W đích);ghi phần giải thích sau dấu “;” 1.Tập lệnh PIC 16F84A a)Lệnh bit -BCF:xóa bit ô nhớ F -BSF:bật bit lên ô nhớ F Vd:BSF 6,4;bật bit ô nhớ -BTFSC:kiểm tra bit ô nhớ bỏ qua lệnh bit bị xóa Vd:BTFSC 3,2;kiểm tra bit 2(cờ Z) ghi STATUS ●Lệnh bỏ qua cờ Z=0 -BTFSS:kiểm tra bit ô nhớ nhảy qua lệnh kế bit đƣợc bật lên b)Lệnh byte -ADDWF:Cộng nội dung ghi W vào ô nhớ F Vd:ADDWF 7;cộng W với ô nhớ 7.Kết đặt vào ô nhớ Vd:ADDWF 7,W;nhƣ nhƣng kết đƣợ lƣu vào ghi W -ANDWF:Nội dung ghi W đƣợc logic AND với ô nhớ F.Lệnh ảnh hƣởng đến cờ DC cờ Z Vd:ANDWF 12h,W;W AND 12H Vd:ANDWF 12H;nhƣ nhƣng kết lƣu vào 12H -CLRF:Lệnh xóa bit ô nhớ F.Trạng thái ảnh hƣởng đến cờ Z Vd:CLRF 5;xóa ô nhớ 13 -CLRW:xóa nội dung ghi W -COMF:Lấy bù bit ô nhớ F Vd:COMF 6;đảo bit bù ô nhớ -DECF:Nội dung ô nhớ F giảm 1.Lệnh có tác dụng đếm Vd:DECF 12;giảm ô nhớ 12 1,kết lƣu ô nhớ 12 Vd:DECF 12,W;nhƣ nhƣng kết lƣu W -DECFSZ:Nội dung ô nhớ F đƣợc giảm lệnh kế đƣợc bỏ qua kq=0’ Vd:DECFSZ 12;Lệnh thƣờng dùng để tạo trễ -INCF:Cộng vào ô nhớ F.Giá trị sau đƣợc so sánh với khác để xem giá tri tổng đạt đƣợc chƣa -INCFSZ:Cộng vào ô nhớ F.Nếu kết bỏ qua lệnh -IORWF:Nội dung ghi tích lũy W đƣợc logic OR với ô nhớ F -MOVF:Nội dung ô nhớ F đƣợc di chuyển vào ghi tích lũy Ƣ.Từ liệu chuyển đến port ngõ ra.Lệnh ảnh hƣởng đến cờ Z -MOVWF:Nội dung ghi W chuyển đến ô nhớ F -NOP(No Operation):không làm nhƣng để tạo trễ chu kỳ máy.Lệnh có tác dụng cho trì hõan nhỏ -RLF:Nội dung ô nhớ F đƣợc quay trái bit thông qua cờ Z.Dịch bit nghĩa số nhân 2.Lệnh có ích lên xuống nhị phân Vd:RLF 12,W;dịch trái ô nhớ 12,kết lƣu ô ghi W -RRF:Nội dung ô nhớ F đƣợc quay phải bit thông qua cờ nhớ C -SUBWF:Trừ W từ F.Nghĩa lấy F-W Vd:SUBWF Lƣu ý: 14,W;ô nhớ 14-W,kết lƣu W Nếu W>F cờ C=0 nghĩa kết âm Nếu W

Ngày đăng: 09/10/2017, 12:39

Từ khóa liên quan

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

Tài liệu liên quan