Ứng dụng vi điều khiển trần văn hùng 2016

56 264 0
Ứng dụng vi điều khiển  trần văn hùng 2016

Đ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

18/02/16 MƠN HỌC Ứng dụng Vi điều khiển (Microcontroller Applications) By Trần Văn Hùng Mechatronics Dept http://www.ntu.edu.vn/ Email: hungtv@ntu.edu.vn Tài liệu tham khảo Microprofessors and microcpmputers hardware and softwware, Ronaid J.Tocci, Frank J.Ambrosio, Prentice Hall, 2003 Interfacing Sensors To The Pc, Willis J.Tompkin, Jonh G.webster, Prentice Hall, 1998 Vi xử lý, Văn Thế Minh, NXB Giáo Dục Họ vi điều khiển 8051, 8051, Tống Văn On Kỹ thuật Vi điều khiển với AVR, Ngơ Diên Tập, NXB KH&KT, 2003 18/02/16 Nội dung chương trình Ch01 Ch01:: Các hệ đếm mã hố Ch02 Ch02:: Hệ thống vi xử lý Ch03 Ch03:: Bộ nhớ Ch04 Ch04:: Họ vi điều khiển AVR Ch05 Ch05:: Ngơn ngữ lập trình CodevisionAVR Ch06 Ch06:: Input/Output Chương 1: Các hệ đếm mã hố Các hệ đếm dùng máy tính Các phép tốn số học hệ hai Mã ASCII 18/02/16 1.1 Các hệ đếm dùng máy tính 1.1.1 Hệ mười hệ hai Con người quen dùng hệ số mười (hệ mười) 1234,56 = 1.103 + 2.102 + 3.101 + 4.100 + 5.10-1 + 6.10-2 Máy tính làm việc với hệ số hai (hệ hai) 1011,01 = 1.23 + 0.22 + 1.21 + 1.20 + 0.2-1 + 1.2-2 MSB LSB Nibble gồm bit Byte gồm bit Word gồm 16 bit 15 1.1.2 Chuyển đổi hệ mười hệ hai Đổi hệ hai sang hệ mười 1011,,012 = 1.23 + 0.22 + 1.21 + 1.20 + 0.2-1 + 1.2-2 = 11 1011 11,,2510 Đổi hệ mười sang hệ hai 4610 = 1011102 46 23 11 2 1 Hình Một cách đổi hệ mười sang hệ hai 18/02/16 1.1.2 Chuyển đổi hệ mười hệ hai (tiếp) Đổi số thập phân hệ mười sang hệ hai 0,12510 = 0,0012 0,125 x = ,250 0,250 x = ,500 0,500 x = ,000 Số BCD (số hệ mười mã hố hệ hai) Số BCD thích hợp cho thiế bị đo có hiển thị số đầu 123410 = 0001 0002 0003 0004BCD Hệ mười sáu 123410 = 0100 1101 00102 = 4D216 1.2 Các phép tốn số học hệ hai 1.2.1 Phép cộng ana(n (n 1) a2a1a0 + bmb(m(m-1) b2b1b0 = ckc(k (k 1) c2c1c0 (hệ số x) ci = (ai + bi + (ai-1 + bi-1)%x )/x Ví dụ cộng hệ hai + 1101 1001 0001 1011 1111 0100 1.2.2 Phép trừ số bù hai a Phép trừ ana(n (n 1) a2a1a0 - bmb(m(m-1) b2b1b0 = ckc(k (k 1) c2c1c0 (hệ số x) ci = (ai – Bi-1) – bi (nếu (ai – Bi-1) >= bi Bi = 0) ci = (ai – Bi-1 + x) – bi (nếu (ai – Bi-1) < bi Bi = 1) Ví dụ trừ hệ hai - 1101 1001 0001 1011 1011 1110 18/02/16 1.2.2 Phép trừ số bù hai (tiếp tiếp)) b Số bù hai Ta thay phép trừ phép cộng: cộng số bị trừ với đối số số trừ Để tìm số bù hai số A ta làm theo bước sau: + Biểu diễn số A số hệ hai + Tìm số bù ((bù bù logic) logic) số (đảo (đảo bít) bít) + Cộng vào số bù để nhận số bù hai A 1.2.3 Phép nhân Ví dụ nhân số hệ hai có độ dài bít a 0 1 b a.b 0 0 1 Bảng Quy tắc phép nhân 0 1 1 1 1 0 1 0 1 1 1.2.2 Phép chia b Chia trực tiếp Ví dụ: 35/5 = 0 1 0 0 1 1 1 1 1 1 1 1 b Chia gián tiếp Lấy số bị chia trừ số chia, kết số bị chia phép tốn tiếp theo, lặp lại đến số bị chia nhỏ số chia 18/02/16 Chương 2: Hệ thống vi xử lý Ưu nhược điểm hệ nhúng Vi xử lý, vi điều khiển Các họ vi điều khiển 2.1 Tại lại sử dụng hệ nhúng? 2.1.1 Ưu điểm Khả thích nghi cao Tính linh động Khả thay đổi dễ dàng Khả tái sử dụng tài ngun (thư viện,…) Giá thành rẻ 2.1.2 Nhược điểm Tốc độ phản ứng chậm Độ ổn định thấp Khơng xử lý gía trị liên tục 18/02/16 2.2 Vi điều khiển, vi xử lý Data bus CPU GeneralPurpose Microprocessor RAM ROM I/O PORT Timer, Wdg, ADC, DAC, … USB, UARST, I2C,… Address bus TERMINOLOGY Microcontroller vs Microprocessor vs Microcomputer A microprocessor is a central processing unit on a single chip A microprocessor combined with support circuitry , peripheral I/O components and memory (RAM & ROM) used to be called a “microcomputer “microcomputer.” ” A microprocessor where all the components mentioned above are combined on the same single chip that the microprocessor is on, is called a microcontroller microcontroller 18/02/16 2.3 Kiến trúc vi điều khiển Đơn vị xử lý số học (ALU) Bộ nhớ Input Output Đơn vị điều khiển 2.3.1 Đơn vị xử lý số học (ALU) Thực phép tốn phép logic liệu Dữ liệu lấy nhớ I/O Kết đưa ngồi vào nhớ (kết lưu lại) General Purpose Registrers ALU 18/02/16 2.3.2 Bộ nhớ Lưu trữ lệnh hay liệu Có thể để lưu trữ liệu tạm thời Có thể ghi/đọc điều khiển Program Memory $000 Program Flash (4K x 16) Data Memory 32 Gen Purpose $0000 Working Resisters $001F $0020 64 I/O Resisters $005F $0060 Data Memory $000 EEPROM (512 x 8) $1FF Internal SRAM (512 x 8) $025F $FFF 2.3.3 Input Thiết bị cho phép thơng tin liệu vào bên vi điều khiển Ví dụ: ADC, I2C, UART, … 2.3.4 Output Thiết bị chuyển đổi thơng tin liệu từ nhớ thiết bị ngoại vi Thiết bị ngoại vi: LED, LCD, máy in, … 18/02/16 2.3.5 Đơn vị điều khiển Cung cấp xung nhịp điều khiển tín hiệu Tìm nạp lệnh liệu Chuyển liệu tới/từ I/O Giải mã lệnh Thực phép tính số học/logic Đáp ứng tín hiệu ngồi (Reset/Ngắt) 2.3.6 Một số họ vi điều khiển Vi điều khiển 8051 8051, 89Cxx, 89Sxx, 89Dxx,… Vi điều khiển AVR AVR bít, AVR 16 bít,… Vi điều khiển PIC PIC bít, PIC 16 bít,… Vi điều khiển MCUs Philips P8xCxx,… … 10 18/02/16 4.2.5 USART (tiếp (tiếp)) Nhận liệu: (IDLE) St [5] [6] [7] [8] [P] Sp1 [Sp2] (St/IDLE) Đợi đến cờ RXC=1 (hoặc sử dụng ngắt) báo hiệu nhận byte liệu Kiểm tra cờ FE OR Đọc byte liệu từ UDR 4.2.5 USART (tiếp (tiếp)) LEDs LEDs Rx Rx Tx Tx GND PS MCU Keypad Keypad MCU GND PS 42 18/02/16 4.2.6 EEPROM EERIE (EEPROM Ready Intr En) EEMWE (EEPROM Master Write En) : cho phép ghi Bit tự động bị xố sau chu kỳ đồng hồ EEWE (EEPROM Write En) : bit thiết lập EEMWE=1 thao tác ghi thực EERE (EEPROM Read En): cho phép đọc EEPROM Khi đọc xong, bit tự động bị xố CPU dừng chu kỳ đồng hồ trước lệnh thực 4.2.6 EEPROM (tiếp) Quy trình ghi: Đợi đến EEWE=0 Ghi địa vào EEARL EEARH Ghi liệu vào EEDR Ghi mức logic vào bit EEMWE mức logic vào EEWE đồng thời Trong vòng chu kỳ đồng hồ sau ghi giá trị logic vào EEWE 43 18/02/16 4.2.7 SPI (Serial Peripheral Interface) 4.2.7 SPI (Serial Peripheral Interface – tiếp) Truyền song cơng Chọn chế độ chủ tớ Bit cao bit thấp truyền trước Bảy bít thiết lập tốc độ truyền Cờ ngắt truyền hết Cờ bảo vệ xung đột ghi Đánh thúc từ chế độ nghỉ Chế độ nhân đơi tốc độ 44 18/02/16 4.2.8 So sánh tín hiệu tương tự (Analog Comparator) Mạch so sánh tín hiệu tương tự: so sánh tín hiệu analog hai chân AIN1 AIN2 4.1 Giới thiệu chung (tiếp) J5 U1 +5V MOSI MISO SCK Reset MOSI MISO SCK Program 14 15 16 17 18 19 20 21 11 CON8 10 +5V PB0/XCK/T0 PB1/T1 PB2/INT2/AIN0 PB3/OC0/AIN1 PB4/SS PB5/MOSI PB6/MISO PB7/SCK PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP PD7/OC2 GND PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PC0/SCL PC1/SDA PC2/TCK PC3/TMS PC4/TDO PC5/TDI PC6/TOSC1 PC7/TOSC2 XTAL2 R1 10K Reset Reset + 22 23 24 25 26 27 28 29 C4 13 +5V AVCC RESET AGND C3 4.7u AREF 22p 12 Y1 8MHz VCC XTAL1 S1 40 39 38 37 36 35 34 33 30 31 C5 22p +5V 32 ATMEGA32 45 18/02/16 4.3 Tập lệnh ngơn ngữ lập trình 4.3.1 Tập lệnh 109 lệnh Tốn học logic (22) Lệnh rẽ nhánh (34) Lệnh chuyển đổi liệu (31) Lệnh bít kiểm tra bít (31) 4.3.1 Tập lệnh (tiếp) Các chế độ định địa Địa trực tiếp (Direct Addressing) Địa qua số (Indexed Addressing) Địa tức thời (Immediate Addressing) Địa tương đối (Relative Addressing) … 46 18/02/16 4.3.2 Một số ngơn ngữ lập trình AVR Assembler AVR Edit 3.5 (lập trình C) CodeVisionAVR (lập trình C) Chương 5: CodevisionAVR IDE (Integrated Development Environment) Trình dịch (Compiler) Hàm thư viện (Library Functions) Tự động sinh mã (Automatic Program Generator) 47 18/02/16 Hình Giao diện CodevisionAVR 5.1 IDE 5.1.1 File Tạo file Mở file Chỉnh sửa Lưu 48 18/02/16 5.1.2 Project Tạo project Mở Project Thêm thích/diễn giải Cấu hình cho Project Quan sát chương trrình dịch 5.1.3 Cơng cụ Gỡ rối (debugger) Lập trình (programmer) Terminal Cấu hình (Configuring) 49 18/02/16 5.1.4 Thiết lập mơi trường Tổng quan Soạn thảo Hiện lỗi Đường dẫn trình gỡ lỗi Cấu hình nạp 5.2 Trình dịch Tiền xử lý Chú thích Từ khố Dữ liệu chuẩn, liệu tự định nghĩa Hằng, biến Chuyển kiểu Phép tốn Hàm Con trỏ Thanh ghi I/O Truy cập EEPROM Ngắt Assembly 50 18/02/16 5.3 Hàm chuẩn Hàm IO chuẩn char getchar getchar(void) (void) Returns a character received by the UART, using polling void putchar putchar(char (char c) Transmits the character c using the UART, using polling … Hàm tốn học unsigned char cabs cabs(signed (signed char x) returns the absolute value of the byte x unsigned int abs abs(int (int x) returns the absolute value of the integer x … LCD void lcd_write_byte (unsigned char addr, unsigned char data) write a byte to the LCD character generator or display RAM unsigned char lcd_read_byte lcd_read_byte(unsigned (unsigned char addr); read a byte from the LCD character generator or display RAM void lcd_gotoxy lcd_gotoxy(unsigned (unsigned char x, unsigned char y); set the LCD display position x=0 39 y=0 I 2C void i2c_init i2c_init(void) (void) this function initializes the I2C bus unsigned char i2c_start (void) issues a START condition Returns if bus is free or if the I2C bus is busy void i2c_stop (void) issues a STOP condition 51 18/02/16 5.4 Tự động sinh mã Cài đặt thơng số Thiết lập RAM ngồi Thiết lập cổng vào Thiết lập ngắt Thiết lập đếm/định thời Thiết lập UART/USART Thiết lập so sánh tương tự Thiết lập ADC Thiết lập SPI Thiết lập USI Thiết lập I2C Thiết lập LCD Chương 6: Input/Output Tổng quan Một số ví dụ vào/ra Lập trình điều khiển thiết bị Thiết bị vào chuẩn 52 18/02/16 Tổng quan Vào số Vào nối tiếp Vào song song Vào tương tự ADC DAC Vào 8051 53 18/02/16 Vào AVR Bàn phím 4x4 S901 S902 K0 S903 K1 S904 K2 K3 K4 S911 S912 S913 S914 S921 S922 S923 S924 S931 S932 S933 S934 K5 K6 K7 54 18/02/16 Bàn phím 4x4 Đọc bàn phím Chống rung Key Board 55 18/02/16 Key Board AT keyboard gồm ma trận lớn phím, phím, tất giám sát xử lý on on board Bộ xử lý khác biệt từ bàn phím đến bàn phím khác( chip thông dụng gồm 8048, 8048, 8049, 8049, 6868 6805)) tất chúng làm giống việc : 6805 Giám sát phím nhấn / thả gởi liệu tương xứng tới máy chủ Bộ xử lý chăm sóc tất liệu đệm liệu vào đệm 16 16 byte cần Tất việc giao tiếp máy chủ bàn phím dùng PS/2 PS/2 protocol 56

Ngày đăng: 27/08/2016, 09:07

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