0

Bài giảng lý thuyết vi xử lý kỹ thuật vi xử lý cd rom

156 3 0
  • Bài giảng lý thuyết vi xử lý   kỹ thuật vi xử lý   cd rom

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 25/11/2021, 17:11

BÀI GIẢNG VI XỬ LÝ/ KỸ THUẬT VI XỬ LÝ BỘ MƠN ĐIỆN TỬ MÁY TÍNH_ KHOA CƠNG NGHỆ ĐIỆN TỬ Bài giảng KỸ THUẬT VI XỬ LÝ CHƯƠNG 1: TỔNG QUAN VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN - Trình bày cấu trúc hoạt động thành phần hệ vi xử lý tập lệnh VĐK - Trình bày dạng liểu biểu diễn thông tin hệ vi xử lý - Nhận dạng thành phần hệ thống Nhắc lại Hệ thống số đếm: Hệ nhị phân, hệ thập phân hệ thập lục phân: + Hệ nhị phân, số 2, dùng hai số để biểu diễn Thí dụ: 0B01001010 = 0x2 +1x2 +0x2 +0x2 +1x2 +0x2 +1x2 +0x2 = 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=1x10 +2x10 +5x10 = 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ụ: 0x32 = 32H = 3x16 +2x16 = 48+2 = 50 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ố) 0B 00000000 0B 00000001 0B 00000010 0B 00000011 0B 00000100 0B 00000101 0B 00000110 0B 00000111 0B 00001000 0B 00001001 0B 00001010 0B 00001011 0B 00001100 0B 00001101 0B 00001110 0B 00001111 Hệ thập phân (2 chữ số) 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Hệ thập lục phân (2 chữ số) 00h; 0x00 01h; 0x01 02h; 0x02 03h; 0x03 04h; 0x04 05h; 0x05 06h; 0x06 07h; 0x07 08h; 0x08 09h; 0x09 0Ah; 0x0A 0Bh; 0x0B 0Ch; 0x0C 0Dh; 0x0D 0Eh; 0x0E 0Fh; 0x0F I TỔNG QUAN VỀ HỆ THỐNG VI XỬ LÝ Quá trình phát triển máy vi tính (tham khảo thêm Internet) Bài giảng KỸ THUẬT VI XỬ LÝ - Máy vi tính bao gồm máy tính dùng vi xử lý (họ Intel, Motorola, AMD…) làm cốt lõi, vi điều khiển (microcontroller) hay máy vi tính vi mạch (one-chip microcomputer) Ứng dụng vi xử lý (tham khảo thêm Internet) Sơ đồ khối hệ vi xử lý 3.1 Sơ đồ khối tiêu biểu hệ vi xử lý: (hệ thống vi xử lý có kiến trúc 3-bus) Address bus Data bus P Control bus (CPU) RAM ROM Memory I/O Interface Input Devices Output Devices Peripheral Devices Hình 1.1 P (Microprocessor): Vi xử lý CPU (Central Processing Unit): Đơn vị xử lý trung tâm Address bus: Bus địa Data bus: Bus liệu Control bus: Bus điều khiển RAM (Random Access Memory): Bộ nhớ truy xuất ngẫu nhiên ROM (Read-Only Memory): Bộ nhớ đọc I/O Interface: Khối giao tiếp nhập/xuất Peripheral Devices: Thiết bị ngoại vi 3.2 Một hệ vi xử lý gồm có thành phần sau: - P (microprocessor hay gọi CPU): đọc mã lệnh từ nhớ (được ghi dạng bit 1), sau giải mã thực thi lệnh - Bộ nhớ (Memory): chứa chương trình điều khiển hoạt động toàn hệ liệu, kết trung gian Có hai loại nhớ: RAM (Random Access Memory) loại nhớ truy xuất ngẫu nhiên ROM (Read-Only Memory) loại nhớ đọc - Khối giao tiếp nhập/xuất (Input/Output - I/O): tạo khả giao tiếp hệ vi xử lý với thiết bị ngoại vi bàn phím, chuột … (thiết bị nhập), hình, máy in, loa … (thiết bị xuất), ổ đĩa… (thiết bị xuất/nhập) Bài giảng KỸ THUẬT VI XỬ LÝ - Bus: ba khối chức liên hệ với thông qua tập đường dây để truyền thông tin gọi bus Trong hệ thống vi xử lý thường bao gồm loại bus: bus địa chỉ, bus liệu bus điều khiển 3.3 Tổng kết lại điểm quan trọng: Hệ vi xử lý có khối chính: o Bộ nhớ o CPU o Phối ghép (giao tiếp) vào/ra (I/O) CPU đọc thông tin từ nhớ ghi thông tin vào nhớ Các thiết bị đầu vào đưa thơng tin từ bên ngồi vào hệ vi xử lý Các thiết bị đầu đưa thông tin từ CPU đến đối tượng bên ngồi Thơng tin không chạy trực tiếp từ nhớ đến phối ghép vào/ra (I/O) ngược lại, trước tiên thông tin phải qua CPU Có thể thấy vi xử lý trao đổi thông tin với nhớ phối ghép vào/ra I/O Dù hệ thống sau phức tạp chương trình có dài đến đâu vi xử lý làm việc sau: Đọc từ nhớ Ghi vào nhớ Đọc từ đầu vào Ghi vào đầu Thực lệnh nội lệnh cộng (ADD), lệnh trừ (SUB) … II CÁC LOẠI BUS Bus địa - Có chức chuyển tải thông tin địa - Khi đọc/ghi nhớ hay thiết bị I/O, P đưa bit địa bus địa để chọn xác ngăn nhớ (word) hay thiết bị I/O cụ thể giao tiếp với - Số lượng địa mà P quản lý phụ thuộc vào số bit (số đường dây) bus địa (16, 20, 24, 32 … bit) Ví dụ: Một P có số đường dây bus địa N = 16  có khả quản lý: 2N = 216 = 26.210 = 64.210 = 64 K = 65356 địa - Bus địa loại bus chiều (xuất phát từ P)  Đệm bus địa Bài giảng KỸ THUẬT VI XỬ LÝ Do tất thiết bị ngoại vi nhớ nối với bus địa nên mặt điện vượt tính chịu tải (fan-out) vi xử lý Trong trường hợp mạch nối vào bus địa tiêu thụ dòng điện lớn khả chịu tải vi xử lý hệ thống khơng hoạt động hay hoạt động không ổn định Để giải vấn đề ta sử dụng đệm trung gian gọi đệm địa Ví dụ: Đệm địa cho CPU có bus địa 16-bit: Hình 1.2 Bus liệu - Có chức chuyển tải thông tin liệu đến/từ P - Số lượng đường dây bus định số bit liệu mà P có khả xử lý lúc (8, 16, 32, 64 … bit) - Bus liệu loại bus hai chiều Tuy nhiên thời điểm định liệu truyền theo hướng Hình 1.3 Dữ liệu di chuyển chiều truyền bus liệu Lưu ý: Hoạt động bus địa bus liệu hồn tồn độc lập với (hình 1.4) Bài giảng KỸ THUẬT VI XỬ LÝ Hình 1.4  Đệm bus liệu - Tương tự bus địa chỉ, bus liệu cần đệm để tăng fan-out cần thiết Lưu ý cần dùng kỹ thuật đệm chiều (hình 1.5) (IC 74LS245) Hình 1.5 Kỹ thuật đệm chiều sử dụng thêm tín hiệu điều khiển, tín hiệu quy định chiều liệu đệm Bus điều khiển - Gồm nhiều đường dây tín hiệu khác ( WR , RD …), tín hiệu điều khiển có chiều định Khi hoạt động, P đưa tín hiệu điều khiển đến khối khác hệ, đồng thời nhận tín hiệu từ khối khác để phối hợp hoạt động toàn hệ Lưu ý: Bus điều khiển khối I/O vẽ dạng chiều để tính chiều nhóm tín hiệu, khơng phải tín hiệu - Có loại truyền thơng tiêu biểu mà bus điều khiển phải xác đinh tín hiệu điện: (i) Đọc từ nhớ (ii) Ghi vo nhớ (iii) Đọc từ phối ghép đầu vào (Input) (iv) Ghi vào phối ghép đầu (Output) Bài giảng KỸ THUẬT VI XỬ LÝ (v) Nhận biết yêu cầu ngắt (Interrupt acknowledge) (vi) Nhận biết yêu cầu treo (Hold acknowledge, phục vụ DMA) Giải thích truyền thơng cấu trúc 3-bus dựa vào sơ đồ khối hình 1.1: đọc ghi III VI XỬ LÝ (P – MICROPROCESSOR) + Sơ đồ khối P cho hình 1.6 + Có ba khối chức chính: khối thực thi (Execution Unit), khối điều khiển (Sequencer) khối giao tiếp bus (Bus Interface) Execution Unit Sequencer Instruction Register Control Unit Instruction Decoder Registers ALU Program Counter (data, address) Internal bus Data bus Control bus Address bus driver driver driver Data bus Control bus Address bus Bus Interface Hình 1.6 Execution Unit: Khối thực thi Control Unit: Khối điều khiển Registers: Các ghi ALU (Arithmetic & Logic Unit): Khối logic - số học Sequencer: Bộ điều khiển Instruction Register: Thanh ghi lệnh Instruction Decoder: Bộ giải mã lệnh Program Counter: Bộ đếm chương trình Internal bus: Bus nội Bus interface: Giao tiếp bus Data bus driver: Bộ điều khiển bus liệu Control bus driver: Bộ điều khiển bus điều khiển Address bus driver: Bộ điều khiển bus địa - Bộ điều khiển (Sequencer): nhận lệnh từ nhớ, sau giải mã lệnh truyền lệnh giải mã đến khối thực thi Bài giảng KỸ THUẬT VI XỬ LÝ + Bộ đếm chương trình (Proram Counter): ghi lưu giữ địa lệnh thực thi Mỗi lệnh thực thi, đếm chương trình tăng lên để địa lệnh thực thi Nội dung đếm chương trình đặt lên bus địa để tìm nhận lệnh mong muốn Như vậy, P thực lệnh chương trình cách tuần tự, trừ gặp lệnh chuyển điều khiển (lệnh nhảy, gọi chương trình …) làm thay đổi nội dung PC Trong số vi xử lý, đếm chương trình cịn gọi trỏ lệnh IP (Instruction Pointer) + Bộ giải mã lệnh (Instruction Decoder): thông dịch (diễn dịch) lệnh nhận vào P Có thể xem giải mã lệnh từ điển lưu trữ nghĩa lệnh bước mà P cần thực lệnh nhận vào Giống từ điển có nhiều trang định nghĩa nhiều từ hơn, P hiểu nhiều lệnh có giải mã lệnh lớn + Thanh ghi lệnh (Instructin Register): lưu giữ mã nhị phân lệnh thực thi - Khối thực thi (Execution Unit): thực thi ghi kết câu lệnh Các tốn hạng (operand) liên quan có mặt ghi (registers) có từ bus nội (internal bus) + ALU (Arithmetic Logic Unit): mạch điện tử có khả thực phép tốn số học (+, -, *, / …) logic (AND, OR, NOT, XOR…) + Thanh ghi (Register): nhớ cực nhanh, có dung lượng hạn chế nằm bên P Các ghi thường dùng để lưu trữ thơng tin tạm thời Mỗi ghi có địa để truy xuất tới Các ghi nối với đến phần tử khác P hay nối với bus nhờ bus nội Độ rộng ghi 8-bit, 16-bit, 32-bit hay 64-bit tùy thuộc vào loại P Thơng tin giá trị cần xử lý hay địa chứa giá trị cần xử lý nhận từ nhớ (hay I/O) P có nhiều ghi độ rộng lớn tốt lúc chương trình khơng phải thực nhiều phép truyền thông tin P nhớ truy xuất trực tiếp từ ghi, từ làm giảm thời gian truy xuất độ dài lệnh + Khối điều khiển: tạo tín hiệu điều khiển hoạt động phận bên bên P (tùy theo mã lệnh) - Giao tiếp bus (Bus Interface): gồm ba điều khiển bus để giao tiếp với bus bên tương ứng: bus liệu, bus điều khiển bus địa Việc tìm nạp lệnh từ nhớ thao tác mà P thực hiện, gồm bước sau: - Nội dung PC đặt lên bus địa - Tín hiệu điều khiển READ xác lập (chuyển sang trạng thái tích cực) Bài giảng KỸ THUẬT VI XỬ LÝ - Mã lệnh đọc từ nhớ đưa lên bus liệu - Mã lệnh chốt vào ghi lệnh IR bên - PC tăng lên để chuẩn bị tìm nạp lệnh kế từ nhớ Hình 1.7 minh họa luồng thơng tin cho việc tìm nạp lệnh Hình 1.7 IV BỘ NHỚ (MEMORY)  Nhắc lại đơn vị bit, nibble, byte, word o nibble = bit o byte = bit o Word nhóm gồm nhiều byte Theo qui ước word = byte word dài = byte (theo hệ vi xử lý 16-bit, 32-bit …) Phân loại + Bộ nhớ thường chia làm hai loại: nhớ (hay nhớ – main memory) nhớ lưu trữ (storage memory) - Bộ nhớ chính: ROM RAM - Bộ nhớ lưu trữ: băng từ, đĩa mềm, đĩa cứng… + Thông thường nhớ lưu trữ xem thiết bị I/O a Bộ nhớ đọc – ROM (Read-Only Memory) - Là nhớ đọc, sửa đổi thông tin hoạt động thông thường - Thông tin ghi ROM không bị mất nguồn cung cấp - ROM ghi thiết bị chuyên dụng Bài giảng KỸ THUẬT VI XỬ LÝ - ROM thường dùng để chứa chương trình liệu cố định (chương trình khởi động, liệu tra bảng …) - Các loại ROM: o ROM: thông tin ghi lúc chế tạo o PROM (Programable ROM): ROM trắng, cho phép ghi thông tin lần o EPROM (Erasable ROM): ghi xóa thơng tin nhiều lần Loại xóa cách rọi tia cực tím vào cửa sổ thủy tinh bề mặt o EEPROM (Electrically EPROM): gọi ROM điện, ghi xóa thơng tin xung điện o Flash ROM: tương tự EEPROM b Bộ nhớ truy xuất ngẫu nhiên – RAM (Random Access Memory) - Cho phép đọc/ghi thông tin lúc trình làm việc mà khơng cần thiết bị đặc biệt - Thông tin RAM bị mất nguồn cung cấp - Có hai loại RAM chính: o RAM động – DRAM (Dynamic RAM): có cấu tạo từ transistor MOSFET tụ điện (1 phần tử nhớ), lưu trữ thơng tin điện tích tụ nên thơng tin (rị rĩ hết) khơng có biện pháp trì thích hợp Do cần có q trình làm tươi (refresh) định kì để phục hồi nội dung ô nhớ trước (rị rĩ hết) DRAM tích hợp với dung lượng lớn o RAM tĩnh – SRAM (Static RAM): cấu tạo từ Flipflop (FF) (1 phần tử nhớ), FF lưu trữ bit thông tin nên SRAM khơng cần q trình làm tươi để trì nội dung Tuy nhiên, khó tích hợp với dung lượng lớn Cấu trúc bên tiêu biểu nhớ - Bộ nhớ gồm phần tử nhớ hay ô nhớ (memory cell) tổ chức dạng ma trận Mỗi ô nhớ chứa bit thông tin - Mảng nhớ phân chia thành chuỗi ngăn nhớ hay từ nhớ (word) - Mỗi ngăn nhớ có địa - Một ngăn nhớ có 4-bit, 8-bit, 16-bit … - Ký hiệu: số ngăn nhớ x độ rộng ngăn nhớ Ví dụ: nhớ 1024 x bao gồm 210 ngăn nhớ, ngăn nhớ có 8-bit Bài giảng KỸ THUẬT VI XỬ LÝ 8.3.2 I2C a Giới thiệu + Viết tắt Inter-Intergrated Circuit – bus nối tiếp Philip phát triển Trước I2C chủ yếu dùng việc chế tạo hệ thống điện tử sử dụng chip Philip Ngày I2C sử dụng rộng rãi việc kết nối thiết bị ngoại vi tốc độ thấp vào mạch tích hợp b Tổng quan truyền liệu I2C + I2C sử dụng đường truyền tín hiệu chiều (một đường clock đường data), sử dụng hiệu điện 5V kéo lên cao (pull-ups) điện trở Hai chân dung cho truyền liệu:  Clock nối tiếp (SCL)-RC3/SCK/SCL  Dữ liệu nối tiếp (SDA)-RC4/SDI/SDA + I2C hoạt động theo nhiều mode: mode chuẩn (standard mode) hoạt động tốc độ 100kbit/s, mode tốc độ thấp (low-speed mode) hoạt động tốc độ 10kbit/s Tần số clock cho xuống + I2C có sử dụng bit để định địa chỉ, bus có 112 nút (16 địa sử dụng vào mục đích riêng) + Điểm mạnh I2C chỗ, vi điều khiển dùng để điều khiển mạng thiết bị mà tốn chân vi điều khiển Chính ngun nhân mà I2C SPI hai chuẩn giao tiếp sử dụng nhiều IC đặc biệt VĐK bít + Giao tiếp I2C hỗ trợ chế độ sau phần cứng:  Chế độ chủ (master mode)  Chế độ đa (nhiều) chủ (multi master mode)  Chế độ tớ (slave mode) c Quy trình truyền liệu I2C + Để truyền nhận I2C tạo thành khối, người ta dùng bít Stop, Start, Restart, ACK, NACK + Quá trình hoạt động bit giống đẻ bắt đầu phát đi: ta phải set bit tưong ứng ghi (VD: muốn gửi bít Stop ta cần PEN =1), tương tự với bit lại truyền xong bit tự động chuyển ( thông qua Hardware) + Lưu ý, q trình hoạt động có tác dụng mà I2C hoàn thành xong nhiệm vụ trước Như ta cần phải biết lúc chương trình hồn thành xong nhiệm vụ vai trị cờ SSPIF ghi PIR1, SSPIF báo cho vđk biết hoạt động kết thúc cách Set từ lên ta phải xoá cờ băng phần mềm cho hoạt động Do 141 Bài giảng KỸ THUẬT VI XỬ LÝ yêu cầu I2C là: hoạt động kết thúc, cho phép hoạt động bắt đầu yêu cầu đặt phải có chương trình báo hiệu kết thúc hoạt động + Quá trình truyền byte liệu từ Master qua slave ( transmit), để truyền byte liệu gồm có bước bản:  Gửi bít Start từ Master tới slave, đợi truyền xong  Gửi địa slave lên đường truyền Dùng để chọn Slave hoạt động Đợi truyền xong  Gửi địa cần lưu liệu tới, đợi cho đên truyền xong  Gửi liệu cần truyền tới Slave, đợi truyền xong  Tiếp tục gửi liệu  Khi muốn kết thúc gửi bít Stop lên đường truyền + Q trình nhận liệu từ slave phải tuân thủ theo bước sau:  Gửi bít Start từ Master tới slave Đợi truyền xong  Gửi địa slave (chú ý: bit = ) lên đường truyền Dùng để chọn Slave hoạt động, Đợi truyền xong  Gửi địa liệu cần nhận Đợi cho đên truyền xong  Gửi bit Restart, Đợi truyền xong  Gửi địa slave lên đường truyền ( ý, bit =1 báo hoạt động tới read) Đợi truyền xong  Đọc liệu từ Slave Đợi cho đên đọc xong  Phát bít ACK báo tiếp tục nhận liệu Đợi truyền xong  Đọc liệu từ Slave Đợi cho đên đọc xong  Phát bít ACK báo tiếp tục nhận liệu Đợi cho đên truyền xong  (Lập lại đến đủ liệu cần đọc)  Đọc liệu từ Slave Đợi cho đên đọc xong  Phát bít NACK báo qua trình nhận liệu kết thúc Đợi cho đên truyền xong  Phát bít Stop để kết thúc d Khảo sát dạng sóng truyền liệu I2C 142 Bài giảng KỸ THUẬT VI XỬ LÝ 143 Bài giảng KỸ THUẬT VI XỬ LÝ 144 Bài giảng KỸ THUẬT VI XỬ LÝ 145 Bài giảng KỸ THUẬT VI XỬ LÝ e Khảo sát ghi truyền liệu + Trong Pic 16F87x có ghi điều khiẻn q trình truyền nhận liệu: SSPSTAT ( 94h bank 1), SSPCON1 ( 14H bank 0) SSPCON2 ( 91H bank ) Trong thì:  SMP chọn Speed chuẩn (SMP =1: 100kHz, 1MHz; SMP =0: 400KHz)  R/W báo trình truyền diễn  BF báo SSPBUF đầy ( hai trường hợp Transmit, Receive )  WCOL: báo có xếp chơng liệu  SSPEN: enable chế độ I2C  SSPM3:SSPM0: chọn chế độ với chế độ I2C master: '1000'  ACKSTAT: Bít ACK nhận từ Slave ( =0, dùng Transmit )  ACKDT, ACKEN: dùng để phát bít ACK hay NACK từ Master ( chế độ Receive ACKDT =0 ACK, ACKDT =1 NACK )  RCEN : tín hiêu báo hiệu q trình nhân ( dùng Receive: RCEN = 1, Master nhận tín hiệu từ Slave )  PEN, RSEN, SEN: bit khởi tạo trình truyền Stop, Restart, Start + Để điều khiển tốc độ baud chế độ, người ta sử dụng ghi SSPADD I2C làm việc chế độ chuẩn ( tất nhiên tương đối ) : 100Kb, 400Kb, 1Mb Nếu ta dùng thạch anh 4M, cần sử dụng tốc độ 100Kb ta phải nạp giá trị vào ghi SSPADD là: 28H với tốc độ 400Kb ta cần giá trị 0AH Còn để lưu nhận liệu người ta dùng ghi SSPBUF + Như vây tổng cộng có ghi dùng đến : SSPSTAT, SSPCON1, SSPCON2 ( chọn chế độ đỉều khiển đường truyền ) SSPADD ( khởi tạo tốc độ Baud ) SSPBUF dùng để lưu liệu hai trình Receive, Transmister 146 Bài giảng KỸ THUẬT VI XỬ LÝ f Khảo sát thiết bị ngoại vi dùng chuẩn truyền I2C Ví dụ 4: Giao tiếp I2C PIC với EEROM 24c02 PIC thực Write ký tự lên ROM, sau Read ký tự vừa Write lên ROM 147 Bài giảng KỸ THUẬT VI XỬ LÝ #define _XTAL_FREQ 4000000 #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #include CONFIG(0x3FFA); void senddata_uart(uchar cdd); void sendstring_uart(const uchar *dd); void WaitMSSP(void); void STARTBit(void); void RESTARTBit(void); void STOPBit(void); void ACKBit(void); void NACKBit(void); 148 Bài giảng KỸ THUẬT VI XỬ LÝ uchar write_iic_24c02(uchar address,uchar ddt); uchar read_iic_24c02(uchar address); uchar LC01CTRLIN=0xA0 ; uchar LC01CTRLOUT=0xA1 ; uchar LC01ADDR=0x00 ; uchar LC01DATA=0x10 ; // I2C value for CONTROL BYTE when Writing 24c02 // I2C value for CONTROL BYTE when Reading 24c02 // Sample value for ADDRESS BYTE // Sample data to write to EEPROM uchar write_iic_return; uchar read_iic_return; //*************** main ******************** void main(void) { SYNC=0; // uart mode BRGH=1; // hi-speed mode SPBRG=25; // 9600 bps with 4Mhz crytal SPEN=1; // Enable serial port TRISC7=1; // Rx - Input TRISC6=0; // Tx - Output TXEN=1; // Enable Tx CREN=1; // Enable Continue Receive GIE=1; PEIE=1; RCIE=1; delay_ms(1000); sendstring_uart("Debug and Display results:\r\n"); sendstring_uart("\r\n"); // *** Setup Registers for I2C ***// // Configure MSSP module for Master Mode TRISC3=1; // RC3(SCL) TRISC4=1; // RC4(SDA) SSPCON=0B00101000; //I2C Master mode with bit_rate=Fosc/(4*(SSPADD+1)) // and I2C enable SMP=1; //slew rate control, using bit_rate at 100 kbps SSPADD=0x0A; while(1) { write_iic_return = write_iic_24c02(LC01ADDR,LC01DATA); if (write_iic_return == 0) sendstring_uart("Write IIC pass \r\n"); else if (write_iic_return == 1) sendstring_uart("Write IIC fail at Write_command \r\n"); else if (write_iic_return == 2) 149 Bài giảng KỸ THUẬT VI XỬ LÝ sendstring_uart("Write IIC fail at WORD_ADDR \r\n"); else if (write_iic_return == 3) sendstring_uart("Write IIC fail at DATA TX \r\n"); read_iic_return = read_iic_24c02(LC01ADDR); if (read_iic_return > 10) sendstring_uart("Read IIC pass \r\n"); else if (read_iic_return == 1) sendstring_uart("Read IIC fail at Write_command \r\n"); else if (read_iic_return == 2) sendstring_uart("Read IIC fail at WORD_ADDR \r\n"); else if (read_iic_return == 3) sendstring_uart("Read IIC fail at READ_command \r\n"); else if (read_iic_return == 4) sendstring_uart("Read IIC fail at DATA RX \r\n"); LC01ADDR ++; LC01DATA ++; if (LC01ADDR == 0xFF) { sendstring_uart("Write and Read all data to IIC \r\n"); while (1); } } } //********************* INTTERUPT ***************** void interrupt isr(void) { uchar cd; if(RCIE&&RCIF) { cd=RCREG; // map with Rx UART Int // read byte to cd while(!TRMT); // wait until reading complete TXREG= cd; // echo read byte back } } //****************** UART send Subroutin ******************* void senddata_uart(uchar cdd) { while(!TRMT); // wait until writing complete TXREG=cdd; } 150 Bài giảng KỸ THUẬT VI XỬ LÝ //************************UART send one string************** void sendstring_uart(const uchar *dd) { while((*dd)!=0) { senddata_uart(*dd); dd++; } } //**************I2C with 24C02 EEROM condition************** void WaitMSSP(void) { while (!SSPIF) ; SSPIF = ; } void STARTBit(void) { SEN = ; WaitMSSP (); } void RESTARTBit(void) { RSEN = ; WaitMSSP (); } void STOPBit(void) { PEN = ; WaitMSSP (); } void ACKBit(void) { ACKDT = ; ACKEN = ; WaitMSSP (); } void NACKBit(void) { ACKDT = 1; ACKEN = 1; WaitMSSP (); } 151 Bài giảng KỸ THUẬT VI XỬ LÝ //****************************I2C write to EEROM 24C02************************ uchar write_iic_24c02(uchar address,uchar ddt) { STARTBit (); // Always with Start condition SSPBUF=LC01CTRLIN; WaitMSSP (); if (ACKSTAT==1) return 1; SSPBUF=address; WaitMSSP (); if (ACKSTAT==1) return 2; SSPBUF=ddt; WaitMSSP (); if (ACKSTAT==1) return 3; STOPBit (); return 0; // WRITE command // ROM Address wanna to write to // Value wanna to write to // Always end with Stop condition } //***************************I2C read from EEROM24c02************************ uchar read_iic_24c02(uchar address) { uchar ddt; RESTARTBit (); // Always with Start or Restart condition SSPBUF=LC01CTRLIN; // WRITE command WaitMSSP (); if (ACKSTAT==1) return 1; SSPBUF=address; // ROM Address wanna to read from WaitMSSP (); if (ACKSTAT==1) return 2; RESTARTBit (); // Always with Restart condition SSPBUF=LC01CTRLOUT; WaitMSSP (); if (ACKSTAT==1) return 3; RCEN = 1; WaitMSSP (); if (ACKSTAT==1) return 4; // READ command NACKBit (); STOPBit (); // Always with NACK condition before STOP codition // Always end with Stop condition // Enable Reading and waiting to complete ddt = SSPBUF; return ddt; } 152 Bài giảng KỸ THUẬT VI XỬ LÝ Chương 9: Thiết kế hệ vi xử lý – VĐK cho ứng dụng - Trình bày qui trình phương pháp thiết kế hệ vi xử lý cho ứng dụng - Xây dựng mơ hình, phân tích thiết kế, vẽ lưu đồ lập trình giao tiếp lập trình điều khiển ngoại vi cho hệ vi xử lý theo ứng dụng - Sử dụng thành thạo phần mềm: soạn thảo, biên dịch, mơ lập trình cho VĐK - Tính tốn thiết kế hệ vi xử lý – VĐK PIC cho ứng dụng - Vẽ sơ đồ nguyên lý hệ vi xử lý – vi diều khiển - Thiết kế lưu đồ, viết chương trình điều khiển hoạt động cho hệ theo chức ứng dụng - Cải tiến, nâng cấp giải thuật điều khiển 9.1 Thiết kế kit VĐK a Ví dụ thiết kế VĐK dùng cho ĐAMH 1: 153 Bài giảng KỸ THUẬT VI XỬ LÝ b Ví dụ thiết kế KIT VĐK dùng cho thực hành lập trình: + Khối PIC16F887 + IC EEROM with SPI interface + IC temperature with I2C interface + 5V Power Supply + LCD1602 with 4bit mode interface + RS232 interface + IC Driver motor interface + Single button and single Led interface 9.2 Tiểu luận … 154 Bài giảng KỸ THUẬT VI XỬ LÝ 155 ... hiệu P VI VI XỬ LÝ VÀ VI ĐIỀU KHIỂN - Về cấu trúc phần cứng: + Vi xử lý: CPU đơn chip (như sơ đồ khối trên) 22 Bài giảng KỸ THUẬT VI XỬ LÝ + Vi điều khiển: gồm CPU số thành phần khác nhớ ROM, RAM,... xuất nhớ * Các quy ước giản đồ thời gian: Hình 1.9 10 Bài giảng KỸ THUẬT VI XỬ LÝ 11 Bài giảng KỸ THUẬT VI XỬ LÝ a Truy xuất ROM Giới thiệu EPROM 2764: Đây IC nhớ 28 chân 8K (8192 x 8) với 13 đường... THỐNG VI XỬ LÝ Quá trình phát triển máy vi tính (tham khảo thêm Internet) Bài giảng KỸ THUẬT VI XỬ LÝ - Máy vi tính bao gồm máy tính dùng vi xử lý (họ Intel, Motorola, AMD…) làm cốt lõi, vi điều
- Xem thêm -

Xem thêm: Bài giảng lý thuyết vi xử lý kỹ thuật vi xử lý cd rom , Bài giảng lý thuyết vi xử lý kỹ thuật vi xử lý cd rom