Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 198 trang
THÔNG TIN TÀI LIỆU
Nội dung
Trường Đại học Cơng nghiệp Tp Hồ Chí Minh Khoa Công nghệ Điện tử Bộ môn Điện tử Công nghiệp Bài giảng Vi xử lý Lưu hành nội CuuDuongThanCong.com https://fb.com/tailieudientucntt Mục lục Chương 1: Giới thiệu chung hệ vi xử lí Giới thiệu chung vi điều khiển PIC Chương 2: Giới thiệu phần cứng PIC 16F84 PIC 16F877A Chương 3: Tập lệnh PIC 16F877A Chương 4: Vào Hoạt động định thời Lập trình vi điều khiển PIC 16F84 PIC 16F877A Chương 5: Truyền thông nối tiếp USART Chương 6: Ngắt Chương 7: Bộ chuyển đổi tương tự sang số (ADC) Chương 8: Bộ nhớ liệu EEPROM, PWM, SPI/I2C Chương 9: Thiết kế hệ vi xử lí hệ phát triển vi điều khiển CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài giảng số 1: Giới thiệu chung hệ vi xử lí Giới thiệu chung vi điều khiển PIC ( Số tiết: 5) I Ổn định lớp: …………………… II Kiểm tra cũ: ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… III Tên giảng: Giới thiệu chung hệ vi xử lí Giới thiệu chung vi điều khiển PIC III.1 Mục tiêu: -Giới thiệu hệ đếm Lịch sử phát triển vi xử lí Cấu trúc chức hoạt động hệ vi xử lí Chức thành phần bên hệ vi xử lí Giới thiệu vi điều khiển Các họ vi xử lí thong dụng -Giới thiệu vi điều khiển PIC: nhớ chương trình, xung đồng hồ vi điều khiển, hệ thống vi điều khiển Đặc tính vi điều khiển Các loại vi điều khiển Sử dụng vi điều khiển: phần cứng vi điều khiển lập trình vi điều khiển III.2 Đồ dung phương tiện dạy học: -Phấn trắng, khăn, bảng, bút long, micro có dây(hay khơng dây), máy tính, đèn chiếu (hay máy chiếu) III.3 Giáo trình tài liệu tham khảo: Giáo trình Vi xử lí trường Đại học công nghiệp Tp HCM D.W Smith, PIC in practice: a project-based approach, Elsevier, 2nd edition, 2006 Trương Trác, Chip đơn 16C84 ứng dụng chúng Hồ Trung Mỹ, Vi xử lí, NXB ĐHQG Tp HCM, 2003 Tài liệu vi điều khiển PIC bọ môn Điện tử công nghiệp Website: http://www.microchip.com/ http://www.alldatasheet.com/ Myke Predko, Programming and customizing the PIC microcontroller, 3rd edition, Tab Electronics, McGrawHill, 2008(Ebook) Douglass V.Hall, Microprocessors and interfacing: Programming and Hardware, 2nd ed., Macmillan/McGraw-Hill, 1992 III.4.Nội dung giảng: Nội dung chi tiết : xem giảng chi tiết Phương pháp giảng dạy: thuyết trình, nêu vấn đề đàm thoại trao đổi với sinh viên Chương 1: Giới thiệu chung hệ vi xử lí Giới thiệu chung vi điều khiển PIC 1.1 Hệ nhị phân, hệ thập phân hệ thập lục phân Hệ nhị phân dung số 2, dung hai số để biểu diễn Thí dụ: 01001010=0x27+1x26+0x25+0x24+1x23+0x22+1x21+0x20=64+8+2=74 Hệ thập phân, số 10 dùng số 0, 1, 2, 3, 4, 5, 6, 7, 8, để biểu diễn Thí dụ: 125=1x102+2x101+5x100=100+20+5 Hệ thập lục phân, số 16 dùng số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Thí dụ: 32H=3x161+2x160=48+2=50 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bảng chuyển đổi số nhị phân, thập phân thập lục phân: Hệ nhị phân (8 chữ số) Hệ thập phân (3 chữ số) Hệ thập lục phân (2 chữ số) 00000000 000 00h 00000001 001 01h 00000010 002 02h 00000011 003 03h 00000100 004 04h 00000101 005 05h 00000110 006 06h 00000111 007 07h 00001000 008 08h 00001001 009 09h 00001010 010 0Ah 00001011 011 0Bh 00001100 012 0Ch 00001101 013 0Dh 00001110 014 0Eh 00001111 015 0Fh 1.2 Lịch sử phát triển kỹ thuật vi xử lí 1.2.1.Họ vi mạch số công nghệ : IC dựa theo số transistor cổng thường chia làm : -SSI : tích hợp cỡ nhỏ -MSI: tích hợp cỡ trung bình -LSI: tích hợp cỡ lớn -VLSI: tích hợp cỡ lớn -ULSI: tích hợp cỡ cực lớn Ví dụ : MSI counter, multiplexer,… LSI vi xử lý bit : 8085, Z80… VLSI vi xử lý 16 bit , 32 bit: 80386 Giới thiệu công nghệ sản xuất chip : Về công nghệ có công nghệ chế tạo vi maïch sau : MOS : - NMOS ⇒ HMOS - PMOS - CMOS⇒ HCMOS Với H : high-performance TTL, IIL (integrated injection logic) thuộc Bipolar Trong công nghệ MOS thường ưa chuộng tích hợp nhiều, tiết kiệm lượng… CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.2.2 TỪ MÁY TÍNH LỚN ĐẾN MÁY VI TÍNH: a.Máy tính lớn : Là loại máy tính thiết kế để giải toán lớn với tốc độ nhanh -Nó làm việc với số liệu có độ dài từ 64 bit trang bị nhớ lớn, kích thước lớn -Chúng thường dùng để điều khiển hệ thống thiết bị dùng quân hệ thống máy móc chương trình nghiên cứu vũ trụ, để xử lý thông tin ngành ngân hàng, vv… Ví dụ : IBM 4381, Honeywell DSP8 Loại mạnh máy tính lớn gọi siêu máy tính (supercomputer) Ví dụ : Y-MP/832 Gray b.Máy tính : Là dạng thu nhỏ kích thước tính máy tính lớn - Làm việc với liệu có độ dài liệu 32 bit với tốc độ chậm nhớ hạn chế - Máy tính thường dùng cho tính toán khoa học kỹ thuật, gia công liệu qui mô nhỏ hay để điều khiển trình công nghệ Ví dụ : Vax 6360 DEC, MV/8000II Data general c.Máy vi tính : Máy vi tính máy thông dụng Một máy vi tính vi điều khiển (micro controller) vỏ vi mạch (one-chip microcomputer) Ví dụ : vi điều khiển 68HC11 Motorola, MCS-8051 -Có khả làm việc với độ dài liệu 4, 8, 16, 32, 64 bit… -CPU máy chế tạo công nghệ mạch vi điện tử với mức độ tổ hợp lớn VLSI -Trên thị trường có họ vi xử lý bật : Intel dùng vi xử lý 80x86 : 8086 (16 bit) 8088( 8bit) 80286 (16bit) 80386(32 bit) 80486(32 bit) 80586(32 bit) Motorola dùng vi xử lý 680x0 Zilog : Z80 (8bit), Z8000 (16 bit) 1.2.3 Lịch sử phát triển vi xử lý : a.Thế hệ : (1971-1973) -Vi xử lý Intel 4004 (4 bit) dùng máy tính xách tay Sau xuất 4040 (4 bit) Ỉ 8008 (8bit) Đặc điểm : -Độ dài từ thường bit -Công nghệ chế tạo PMOS với đặc điểm mật độ phần tử nhỏ, tốc độ thấp, giá rẻ có khả đưa dòng tải nhỏ -Tốc độ thực lệnh 10-60 micro-sec/lệnh với tần số đồng hồ (xung clock)fclk= 0,1-0,8 Mhz -Tập lệnh đơn giản phải cần số mạch phụ trợ để tạo nên hệ vi xử lý hoàn chỉnh b.Thế hệ : (1974-1977) Z80 hãng Zilog (8 bit) CuuDuongThanCong.com https://fb.com/tailieudientucntt 6800 hãng Motorola (8bit) 6502 hãng Mos technology (8bit) 8080 8085 hãng Intel -Công nghệ chế tạo NMOS (mật độ tích hợp lớn CMOS (tiết kiệm điện tiêu thụ) -Tần số xung clock từ 1-5 Mhz tốc độ thực lệnh tứ 1-8 microsec/lệnh c.Thế hệ : (1978-1982) Vi xử lý Intel 8086, 8088, 80186, 80286, (16 bit), MP 68000/68010 Motorola (16 bit) Đây vi xử lý dùng máy tính IBM PC, PC/XT, PC/AT máy Macintosh hãng Apple -Tần số xung clock từ 5-10 Mhz, tốc độ thực lệnh 0,1-1 microsec/lệnh -Công nghệ chế tạo HMOS d.Thế hệ : (1983-?) -Các vi xử lý đại diện hệ vi xử ký 32 bit Intel 80386, 80486, 32 bit Pentium 80586, MP 32 bit 68020/68030/68040.68060 Motorola Đăc điểm : -Bus địa 32 bit (phân biệt 4GB nhớ) có khả làm việc nhớ ảo -p dụng chế xử lý xen kẻ liên tục dòng mã lệnh (pipe line), nhớ cache(bộ nhớ ẩn), nhớ ảo Các vi xử lý có quản lý nhớ (MMU) đồng xử lý toán học Bên cạnh vi xử lý dùng để xây dựng máy tính với tập lệnh đầu đủ (CISC-complete instruction set computer), người ta chế tạo vi xử lý cải tiến dùng cho máy tính với tập lệnh rút gọn (RISC- reduced instruction set computer) Xem bảng : vi xử lý 16/32 bit Intel, Motorola e Máy tính dùng vi xử lý Pentium II, PIII, PIV: -Độ dài liệu 32-64 bit - Tốc độ 1.8 Ghz-4.0 Ghz Các vi xử lý 16 bit Intel Các vi xử lý 32 bit Intel Các vi xử lý 16/32 bit Motorola Từ thập niên 1990 trở lại 1990 Microsoft WIndows 3.0 đời Motorola 68040 triển khai 1991 Apple IBM hợp tác để khảo sát RISC 1992 Microsoft WIndows 3.1 trở thành chuẩn cho PC 1993 Intel Pentium (80586) đời, công nghệ MMX cung cấp sau 1995 Microsoft Indows 95 1995 Intel Pentium pro (P6) 1997 Intel Pentium II 1998 Intel Pentium II Xeon 1999 Intel Pentium III 2001Intel Pentium IV CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.3 Cấu trúc hoạt động hệ vi xử lí 1.3.1 Sơ đồ khối SƠ ĐỒ KHỐI MỘT HỆ VI XỬ LÝ CƠ BẢN Address bus Data bus CPU Bộ nhớ T Vào I/O Thiếtbị vào Thiết bị Control bus Hình 1.1 :Sơ đồ khối hệ vi xử lý 1.3.2 Nguyên lý hoạt động: -CPU (central processing unit) đơn vị xử lý trung tâm MP (mocroprocessor) : Đây não máy tính, điều khiển toàn hoạt động hệ MP lấy lệnh, phân tích thi hành lệnh -Bộ nhớ : (memory) nơi lưu trữ liệu chương trình cần cho trình thực lệnh Bộ nhớ : rom, ram Bộ nhớ : băng từ, đóa từ -Vào (input/output) : mạch giao tiếp CPU với thiết bị vào (bàn phím, chuột), thiết bị ra(màn hình, máy in) -Ba phận liên lạc với thông qua bus hệ thống (system bus) Bus hệ thống gồm có : +Bus địa : (address bus) cho phép xác định địa ô nhớ ngoại vi cần truy xuất (đọc /ghi) Bus địa 16, 20, 24 bit… +Bus liệu (data bus) : cho phép trao đổi thông tin Cpu nhớ hay ngoại vi Bus liệu 8, 16, 32 bit… +Bus điều khiển (control bus) :là đường tín hiệu CPU đưa để điều khiển nhớ hay ngoại vi tín hiệu đưa vào CPU Ví dụ : RD (read-đọc ), WR (write-ghi) , INTR (interrupt-ngắt) Bus địa chỉ có chiều từ CPU đưa ra, bus liệu có tính chất chiều (vào/ra), bus điều khiển có chiều vào, chiều 1.4 Chức thành phần hệ vi xử lí 1.4.1 Bộ xử lí CPU 1.4.1.1.Nhiệm vụ CPU : -Điều hành hoạt động hệ thống theo ý định người sử dụng –Thi hành chương trình theo vòng kín gọi chu kì lấy lệnh CuuDuongThanCong.com https://fb.com/tailieudientucntt Thi hành lệnh Lấy lệnh Chu kỳ lệnh Hình 1.2: Nhiệm vụ CPU 1.4.1.2.Cấu trúc CPU : Các thành phần CPU gồm có : Các thành phần lưu trữ: ghi, cờ Các thành phần thực thi (xử lý) : ALU thực tính toán số học , logic, dịch/xoay (các) bit .Các thành phần chuyển [tín hiệu]: bus Các thành phần điều khiển : Đơn vị điều khiển CPU IR PC Bộ điều khiển CU Đơn vị số học logic ALU Các ghi Hình 1.3 Cấu trúc bên CPU CPU (central processing unit) : đơn vị xử lý trung tâm ALU (arithmetic logic unit) : đơn vị số học logic Register : ghi CU : control unit, đơn vị điều khiển +ALU : thực phép tính số học logic bao gồm +, -, *, /, tăng , giảm, and, or, not, xor, dịch , quay, vv… ALU có hai ngõ vào ngõ Hai ngõ vào lấy liệu từ bus nội cần thiết để thực phép toán ngõ trả kết thực phép toán bus nội Để tránh liệu chồng bus nội, hai ngõ vào ALU có hai ghi tạm, có chức cài liệu trước ALU thực phép toán CuuDuongThanCong.com https://fb.com/tailieudientucntt IN IN ALU OUT Hình 1.4 : ALU +Thanh ghi : ô nhớ có tên tốc độ cao nằm bên CPU Số ghi bên CPU Một số ghi định sẵn chức năng, số ghi khác ghi đa dụng -Thanh ghi PC -Thanh ghi tích lũy A -Thanh ghi cờ F -Thanh ghi lệnh IR -Thanh ghi địa nhớ MAR -Thanh ghi đa dụng -Thanh ghi trỏ stack SP +Bộ điều khiển : - Điều khiển hoạt động khối khác CPU đồng với - Xuất tín hiệu điều khiển đọc ghi nhớ bên theo trình tự định để đảm bảo cho việc đọc ghi nhớ thực 1.4.1.3 Thực lệnh : a.Lấy lệnh từ nhớ vào ghi lệnh IR (instruction register) b.Thay đổi ghi PC (program counter: đếm chương trình) để chuyển đến lệnh (thanh ghi PC giữ địa lệnh kế tiếp) c.Xác định kiểu lệnh vừa lấy d.Xác định kiểu liệu mà lệnh yêu cầu xác định vị trí liệu nhớ e.Nếu lệnh cần liệu nhớ, nạp vào ghi CPU f.Thực lệnh g.Lưu kết nơi thích hợp h.Trở bước để thực lệnh kế 1.4.1.4.Dạng lệnh : Các vùng lệnh : -Vùng mã lệnh : cho biết tác vụ thực - Vùng địa : địa nhớ ghi CPU - Vùng cách định địa : cách xác định toán hạng địa thật 1.4.1.5 Các cách định địa : -Cách định địa hiểu ngầm - Cách định địa tức thời CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 - Cách định địa ghi Cách định địa gián tiếp qua ghi Cách định địa trực tiếp Cách định địa gián tiếp Cách định địa tương đối 1.4.2 Bộ nhớ Địa 3A 0F ô nhớ n-1 Hình 1.5: Bộ nhớ a.Bit : 0/1 biểu diễn hai trạng thái , đơn vị nhớ b.Định vị nhớ : (memory addressing) Bộ nhớ sẻ đánh số n-1, với n số ô nhớ nhớ Tất ô nhớ có số lượng bit nhau, ô nhớ có k bit có từ 1Ỉ 2k tổ hợp bit khác Ví dụ : với nhớ 96 bit ta có kiểu tổ chức nhớ sau : 12x8 bit, 8x12 bit, 6x16 bit Thường ô nhớ có bit=1byte Nếu nhớ có m đường địa có 2m byte (ô nhớ) Ví dụ : nhớ có 10 bit địa Ỉ dung lượng nhớ 210 byte=1KB nhớ có 11 bit địa Ỉ dung lượng nhớ 211 byte=2KB nhớ có 12 bit địa Ỉ dung lượng nhớ 212 byte=4KB Ví duï : EPROM 2716 2732 2764 2KB 4KB 8KB SRAM 6116 6264 2KB 8KB c Bộ nhớ : ROM (read only memory): nhớ đọc RAM(random access memory) : nhớ đọc ghi Bộ nhớ : băng từ, đóa từ (đóa mềm, đóa cứng) *Chức nhớ : -Có nhiệm vụ lưu trữ thông tin gồm có : +Chương trình :- khởi động -giao tiếp BIOS -hệ điều hành (hệ thống) CuuDuongThanCong.com https://fb.com/tailieudientucntt 184 Bít RS R/W D7 D6 D5 D4 D3 D2 D2 D0 0 0 0 0 0 0 0 0 1 I/O S 0 0 0 D C B 0 0 S/C R/L 0 0 0 DL N F 0 0 Địa kí tự 0 1 Loại ký tự 1 Loại ký tự Hiển thị địa liệu Chức Xoá LCD bộnhớ, trỏ Chỉ xóa trỏ Tác động hiển thị ký tự viết I/O=1/0: trỏ R/L, hình L/R S=1/0: dịch hình/con trỏ D=1/0: hình on/off C=1/0: trỏ on/off B=1/0: trỏ nhấp nháy/không nhấp nháy S/C=1/0: hình/con trỏ R/L: dịch khoảng trống R/L DL=1/0: 8/4 bit kí tự N=1/0:2/1 dòng kí tự F=1/0: 5x10/5x7 chấm(dot)/ký tự Ghi tới địa chỉa Ram kí tự sau điều Ghi tới địa chỉa Ram hiển thị ï sau Ghi byte với RAM cuối chọn Đọc byte với RAM cuối chọn Mạch kết nối: RB1 nối với RS RB2 nối với R/W RB3 nối với EN RB4—RB7 nối với D4—D7 CuuDuongThanCong.com https://fb.com/tailieudientucntt 185 Hình : Kết nối LCD với vi điều khiển: Vi ết ch ơng tr ình hi ển th ị ch ữ HANOI tr ên LCD d ùng PIC 16F84 Vi ết ch ơng tr ình hi ển th ị ch ữ HANOI tr ên LCD d ùng PIC 16F877A 9.5.3 Điều khiển led đoạn: *Trường hợp led đoạn loại catốt chung: Thiết kế mạch mà đếm hiển thị led đoạn (loại catốt chung), số lần nút nhấn ấn tới 10 Mã nhị phân để lái led đoạn sau: Số PORTB B7 B6 B5 B4 B3 B2 B1 B0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 Xét mạch điện sau: Hình: Sơ đồ mạch điều khiển led đoạn Dp g f e d c b a B7 B3 B2 B4 B5 B6 B0 B1 0 1 1 1 số ( mã 77h) Mở rộng chương trình cho PIC 16F877A Xét mạch sau: CuuDuongThanCong.com https://fb.com/tailieudientucntt 186 Hình: Kết nối vi điều khiển với led đoạn chế độ multiplex Viết chương trình hiển thị số 30 hai led Mở rộng cho PIC 16F877A *Tr ờng h ợp led đo ạn lo ại anod chung: D ùng port B k ết n ối thanh, c òn port A ều ển ch ọn led (c ấp ện) N ếu RA0=0 th ì transistor d ẫn l àm Vc=VE=+5V v anod c led đ ợc c ấp ện, portB n ối v ới c ác a,b, ,g,dp RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 1 1 1 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dp g f e d c b a 1 0 0 0 FEh (ch ọn led 0) C0H (s ố 0) +5V RA0 Led b0 B1 B7 CuuDuongThanCong.com https://fb.com/tailieudientucntt 187 Vi ết ch ơng tr ình hi ển th ị s ố tr ên led Vi ết ch ơng tr ình hi ển th ị ch ữ HUI tr ên led ( led 0, led 1, led 2) 9.5.4 Điều khiển led ma trận: Sơ đồ nguyên lí: Phân tích sơ đồ điều khiển ma trận led Hình : Sơ đồ nguyên lý led ma trận (Hình vẽ trích dẫn từ sách “Thí nghiệm vi xử lí” tác giả Phạm Quang Trí, ĐHCN Tp HCM) Ma trận gồm hàng cột(red-col green col.) Dùng port C –hàng, port B/Port D-column red (cột đỏ) -Nguyên lý led sáng :PortB quét coat, PortC quét hàng; thí dụ led(1,1) sáng Va>Vk , nghóa PortC,0=’0’ PortB,0=’0’ Khi Vk=0,8v; TST PNP Q1 dẫn làm Va≈VE=5V Nếu muốn PortC,0=’0’ PortB,0=’1’ (cột tích cực mức logic ‘1’) led sáng ta dùng đệm đảo cột , hàng không đệm đảo -Nguyên lý dãy led sáng : Thí dụ chữ L Phương pháp quét cột (không có đệm đảo) (ACT=’0’) hiển thị hàng (ACT=’0’): cho cột tích cực mức xuất liệu hàng Thí dụ: chữ T, PortB quét cột, PortC quét hàng Quét cột 0: PortB,0=’0’ ;PortC,0ỈPortC,7=’0’ : mã hàng, cột (00h, Feh) Quét cột 1: PortB,1=’0’ ;PortC,0ỈPortC,7=’0’ : mã hàng, cột (00h, FDh) Quét cột 2: PortB,2=’0’ ;PortC,3=’0’ PortC,4=’0’ : mã hàng, cột (E7h, FBh) Quét cột 3: PortB,3=’0’ ;PortC,3=’0’ PortC,4=’0’ : mã hàng, cột ( E7h, F7h) Quét cột 4: PortB,4=’0’ ;PortC,3=’0’ PortC,4=’0’ : mã hàng, cột (E7h, EFh) Quét cột 5: PortB,5=’0’ ;PortC,3=’0’ PortC,4=’0’ : mã hàng, cột (E7h, DFh) Quét cột 6: PortB,6=’0’ ;PortC,3=’0’ PortC,4=’0’ : mã hàng, cột (E7h, BFh) Quét cột 7: PortB,7=’0’ ;PortC,3=’0’ PortC,4=’0’ : mã hàng, cột (E7h, 7Fh) Phương pháp quét cột (có đệm đảo) (ACT=’1’) hiển thị hàng (ACT=’0’): cho cột tích cực mức xuất liệu hàng THí dụ : Hiện chữ T, dùng PortB qt cột, portC qt hàng CuuDuongThanCong.com https://fb.com/tailieudientucntt 188 Chương trình led matrix: dùng để tạo chữ, số ký hiệu 9.5.5 Điều khiển nút nhấn, b àn ph ím: Điều khiển nút nhấn: Sơ đồ mạch nút nhấn vi điều khiển Viết chương trình điều khiển nút nhấn (dùng PIC 16F84) -Đợi cho nút nhấn SW1 đóng -Bật led -Đợi cho SW1 nhả -Tắt led -Lặp lại Bài tập: làm lại thí dụ sử dụng vi điều khiển PIC 16F877A -Qu ét b àn ph ím: CuuDuongThanCong.com https://fb.com/tailieudientucntt 189 K ết n ối b àn ph ím v ới vi ều ển Port B: RB0, RB1, RB2 n ối v ới c ột C1,C2,C3 v RB3, RB4, Rb5, RB6 n ối v ới h àng R1,R2,R3,R4 B àn ph ím g ồm h àng v c ột C ột 1, C1 C ột 2, C2 C ột 3, C3 H àng 1, R1 H àng 2, R2 H àng 3, R3 H àng 4, R4 * # Vi ết ch ơng tr ình (d ùng PIC 16F84) hi ển th ị ph ím nh ấn: ph ím đ ợc nh ấn hi ển th ị s ố nh ị ph ân tr ên port A., ph ím đ ợc nh ấn hi ển th ị s ố nh ị ph ân tr ên port A B ài t ập: l àm l ại th í d ụ tr ên d ùng PIC 16F877A Khối bàn phím, nut nhấn công tắc: Phân tích sơ đồ điều khiển : -Nút nhấn: CuuDuongThanCong.com https://fb.com/tailieudientucntt 190 Hình : Sơ đồ nguyên lý nut nhấn (Hình vẽ trích dẫn từ sách “Thí nghiệm vi xử lí” tác giả Phạm Quang Trí, ĐHCN Tp HCM) Gi ả s portB ều ển n út nh ấn SW0-SW7 Khi nh ấn n út SW0, bit nh ận đ ợc l logic : RB0=’0’ Khi nh ả nh út nh ấn SW0, bit nh ận đ ợc l logic 1, RB0=’1’ -Công tắc: Hình : Sơ đồ nguyên lý công tắc (Hình vẽ trích dẫn từ sách “Thí nghiệm vi xử lí” tác giả Phạm Quang Trí, ĐHCN Tp HCM) -Bàn phím: CuuDuongThanCong.com https://fb.com/tailieudientucntt 191 Hình : Sơ đồ nguyên lý bàn phím (Hình vẽ trích dẫn từ sách “Thí nghiệm vi xử lí” tác giả Phạm Quang Trí, ĐHCN Tp HCM) Bài tập : Chương trình điều khiển bàn phím hiển thị mã phím nhấn led đơn dạng số nhị phân dùng port B (RB0Ỉ RB3 : hàng, RB4Ỉ RB7: cột) xuất cho cột Sau kiểm tra mức logic ngõ nhập để xem có phím nhấn: có phím nhấn hàng cột chập nhau, ngõ nhập mức logic 0, từ ta tính mã quét phím Giải thuật điều khiển bàn phím: Quét phím i=0 Cột i=’0’ Đ Có phím nhấn? S Mã phím I=i+1 I=4 S Đ Cờ C=’0’ Thoát CuuDuongThanCong.com https://fb.com/tailieudientucntt 192 Mã phím Hàng Đ Mp+0 Đ Mp+4 S Hàng S Hàng Đ Mp+8 S Hàng Đ Mp+12 S Cờ C=’0’ Cờ C=’1’ End Chương trình: Dự án Dự án 1: điều khiển tốc độ motor DC loại nhỏ Viết chương trình điều khiển motor DC loại nhỏ: Sơ đồ khối cho điều khiển tốc độ động chiều loại nhỏ sử dụng vi điều khiển PIC 16F877A: (hình 1) Yêu cầu sử dụng vi điều khiển để điều khiển tốc độ động DC theo chiều thuận ngược thực hai tốc độ (nhanh chậm) Công tắc (nút nhấn) dung tạo hai tốc độ tác động quay ngược Sơ đồ khối minh họa hình 1, sử dụng vi điều khiển PIC 16F877A Phương pháp điều khiển tốc độ điều rộng xung (PWM) dung PIC 16F877A Đặt chân RC1=’0’ (logic 0) áp dụng PWM vào chân RC2 làm cho động quay thuận Việc điều khiển quay thuận hay nghịch đạt thiết kế cầu mạch điều khiển động Nếu nút nhấn khơng CuuDuongThanCong.com https://fb.com/tailieudientucntt 193 nhấn động ổn định Giả sử nút nhấn thiết lập PWM tỉ số 6:4 nút thiết lập PWm với tỉ số 9:1 PWM = Ton Ton = T Ton + Toff PIC 16F877A Động chạy Mạch lái động Động Ngược chiều Tốc độ Tốc độ Ngược chiều Nút nhấn Nút nhấn Nút nhấn Hình Nút nhấn dùng RA0, RA1, RA2 Tỉ số 6:4 có chu kì tổng T=6+4=10 chu kì mức cao (1), mức thấp (0) Tỉ số 9:1 có T=10, mức 1, mức CuuDuongThanCong.com https://fb.com/tailieudientucntt 194 Hình 2: Mạch điều khiển cầu sử dụng ngõ vào từ chân RC2 RC1 để điều khiển tốc độ động chiều thứ hướng quay Động ngừng (off) RC2 RC1 logic 0, cực C T1 T6 mức cao Vì T2 T4 dẫn (on) T3 T5 tắt (off)(không dẫn) khơng có dịng dẫn qua động 5V đất (GND, mass) Động quay(on): RC1=’0’, cực C T6 cao, T4 dẫn T5 tắt Nếu tín hiệu PWM áp dụng vào RC2 PWM logic 1, T1 dẫn, cực C T1 mức thấp; T2 tắt T3 dẫn Do dịng điện dẫn qua đất thong qua transistor T3, động Dc qua transistor T4 lên nguồn +5V Động quay ngược(reverse): Nếu RC2=’0’ (logic 0) T2 dẫn T3 tắt Nếu tín hiệu PWM áp dụng vào RC1 PWM logic cao (1), transistor T4 tắt T5 dẫn, tạo dòng điện dẫn ngược thong qua T5, động T2 2/Viết chương trình Điều khiển động bước Dự án 2: Điều khiển tốc độ động bước Yêu cầu dung vi điều khiển để lái động bước hai chiều quay thuận ngược để thực xếp hai tốc độ (nhanh chậm) Nút nhấn dùng tạo hai tốc độ đảo chiều quay Hình vẽ minh họa hình 3, sử dụng vi điều khiển PIC 16F877A PIC 16F877A Động chạy RB7 RB6 RB5 RB4 Tốc độ Mạch lái động Động Nút nhấn Tốc độ Nút nhấn Ngược chiều Nút nhấn Hình 3: Sơ đồ khối điều khiển động bước sử dụng vi điều khiển PIC 16F877A CuuDuongThanCong.com https://fb.com/tailieudientucntt 195 Mạch điều khiển cho động bước Hình 4: Sắp xếp mạch phù hợp để cung cấp mạch lái cho động bước Trình tự xung điều khiển: RB7 RB6 RB5 RB4 0 0 0 0 0 0 Nếu đầu A có RB7=logic transistor Q1 dẫn, có dịng điện Ic qua cuộn dây cuộn dây thành nam châm điện, tương tác với nam châm vĩnh cửu rotor làm động quay góc Tương tự cho đầu B, C, D (bit RB6, RB5, RB4 tương ứng) 3/Mạch báo trộm 4/ Hột súc sắc điện tử 5/Bộ timer mạch phản ứng IV.Tổng kết bài: -Tóm tắt ý -Chuẩn bị V Câu hỏi tập nhà: Chương 9: Thiết kế hệ vi xử lí hệ phát triển vi điều khiển Giải mã địa : 1.Thiết kế mạch giải mã địa cho nhớ CuuDuongThanCong.com https://fb.com/tailieudientucntt 196 12 KB = ROM 2KB + SRAM 4KB + 3x SRAM 2KB Địa : 0000h –2FFFh Thiết kế mạch giải mã địa cho hệ vi xử lý gồm : EPROM 2764, RAM 6264, PPI 8255 Vùng địa sau : EPROM : 0000h-1FFFh, RAM : 2000h-3FFFh 8255(1) : A000h-BFFFh (chỉ dùng A000h-A003h) 8255(2) : E000h-FFFFh (chỉ dùng E000h-E003h) 3.Thiết kế mạch giải mã địa : 8x KB (8 IC EPROM 1KB) Thiết kế mạch giải mã địa KB 2x ROM KB 4xSRAM 1KB Thiết kế mạch giải mã địa KB 1Rom 2Kb + 2xSRAM 1Kb + 1xSRAM 4KB Hãy giải mã địa sau cho EPROM 2764 có địa A000h-BFFFh dùng cổng logic hay IC 74LS138 Thiết kế mạch giải mã địa cho để sử dụng với thiết bị : 8000H9FFFH thiết bị : 0000H-1FFFH Giao tiếp với nhớ RAM HM6264 ROM 27C256, hai số đầu thiết bị RAM(62) ROM(27) Các số để dung lượng theo K bits, có nhớ 4, 8, 16, 32 64KB ( nghóa số theo sau 62/27 32, 64, 128, 256 512) 10 Thiết kế mạch giao tiếp nhớ 64KB (từ chip EPROM chip 8KB) với 8031/8051 11 Thiết kế mạch giải mã địa cho bảng nhớ sau : 0000H-BFFFH tầm địa 48 KB RAM (mỗi chip RAM 8KB) C000H-DFFFH tầm địa cổng xuất bit E000H-FFFFH tầm địa cổng nhập bit Thiết kế kit vi xử lý : 1.Thiết kế kit xử lý gồm CPU PIC 16F877A, RAM 8KB, EPROM 8KB, 2xIC8255 2.Thiết kế kit vi xử lý CPU PIC 16F877A, RAM 16KB, EPROM 16KB, 2xIC8255 3.Thiết kế kit vi xử lyù CPU PIC 16F877A, RAM 64KB, EPROM 64KB, 2xIC8255 Kit vi điều khiển tối thiểu kit mở rộng gì? Thiết kế ngoại vi: Trình bày cấu trúc sơ đồ khối vi mạch giao tiếp song song 8255 Lập trình 8255 cho port A, port B, port C xuất, mode So sánh giao tiếp ngoại vi song song giao tiếp ngoại vi nối tiếp Truyền liệu nối tiếp gì? Đồng bất đồng bộ? Song công đơn công? Chuẩn RS232 gì? Kết nối máy tính modem Kết nối PIC 16F877A RS232 Vẽ mạch truyền liệu máy tính vi điều khiển PIC 16F877A sử dụng MAX232/MAX233 CuuDuongThanCong.com https://fb.com/tailieudientucntt 197 Thiết kế mạch giao tiếp PIC 16F877A với led đoạn 10 Thiết kế bàn phím 16 key giao tiếp với PIC 16F877A sử dụng a)port B 16F877A b) port A 8255 Lập trình điều khiển : Điều khiển led đơn chạy đuổi, sáng dần, tắt dần hai bìa vào Điều khiển đóng nhả rờle Điều khiển hiển thị led đoạn Điều khiển ma trận led hiển thị chữ HANOI, DHCN Điều khiển bàn phím Dự án 1/Dự án 1: điều khiển tốc độ motor DC loại nhỏ Viết chương trình điều khiển motor DC loại nhỏ: 2/Dự án 2: Điều khiển tốc độ động bước Viết chương trình Điều khiển động bước 3/Mạch báo trộm 4/ Hột súc sắc điện tử 5/Bộ timer mạch phản ứng CuuDuongThanCong.com https://fb.com/tailieudientucntt 198 Tài liệu tham khảo: D.W Smith, PIC in Practice: A project-based approach, 2nd ed., Elsevier, 2006 Tài liệu PIC môn Điện tử Công nghiệp, trường ĐHCN Tp HCM Datasheet PIC 16F84A, 16F877A Website: http://www.alldatasheet.com/ Website : http://www.microchip.com/ Phần mềm MPLAB IDE v6.60 (lập trình hợp ngữ), Phần mềm CCS : PCW C Compiler IDE v3.227 (gồm PCB, PCM, PCH) (lập trình C) Phần mềm nạp WinPic800 Phần mềm PICC Lite, Hi-Tech C for PIC 10/12/16 MCUs: user’s guide MPLAB C18 C Compiler for PIC 18 MCUs Hồ Trung Mỹ, Vi xử lí, NXB ĐHQG Tp HCM, 2003 Trương Trác, Chip đơn PIC16C84 ứng dụng chúng, Tạp chí Điện tử (Electronic Fan) từ số 117 (tháng 7/2003) đến số 122 (tháng 12/2003) Myke Predko, Programming and customizing the PIC microcontroller, 3rd edition, Tab Electronics, McGrawHill, 2008(Ebook) Nebojsa, Dragan Andric, PIC microcontrollers Văn Thế Minh, Kỹ thuật vi xử lý, NXB GD, 1997 10 Douglass V.Hall, Microprocessors and interfacing: Programming and Hardware, 2nd ed., Macmillan/McGraw-Hill, 1992 11 John Morton, The PIC microcontroller: your personal introductory course, 3rd ed., Newnes, 2005 12 Nigel Gardner, PICmicro MCU C: An introduction to programming the microchip PIC in CCS C, Copyright Bluebird Electronics 2002 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... I/O 1.6.2 .Vi xử lý vi điều khiển: So sánh vi xử lý (MPU) vi điều khiển (MCU) MPU: -Được thiết kế để thực chức CPU hệ máy vi tính - Tập lệnh xếp phép mã lượng lớn liệu chuyển vi xử lý với nhớ... vi? ??c nhớ ảo -p dụng chế xử lý xen kẻ liên tục dòng mã lệnh (pipe line), nhớ cache(bộ nhớ ẩn), nhớ ảo Các vi xử lý có quản lý nhớ (MMU) đồng xử lý toán học Bên cạnh vi xử lý dùng để xây dựng máy... Các vi xử lý 16 bit Intel Các vi xử lý 32 bit Intel Các vi xử lý 16/32 bit Motorola Từ thập niên 1990 trở lại 1990 Microsoft WIndows 3.0 đời Motorola 68040 triển khai 1991 Apple IBM hợp tác để