Giáo trình Vi điều khiển: Tự động hóa Công nghiệp - Trường TCN KTCN Hùng Vương

Giáo trình Vi điều khiển nghề Tự động hóa công nghiệp Trường TCN Hùng Vương. Tài liệu học tập chi tiết, đầy đủ cho sinh viên ngành kỹ thuật.

Trường đại học

Trường Tcn Kỹ Thuật Công Nghệ Hùng Vương

Người đăng

Ẩn danh

Thể loại

Giáo trình

2018

168
2
0

Phí lưu trữ

45 Point

Tóm tắt

I. Tổng quan giáo trình vi điều khiển tự động hóa công nghiệp

Giáo trình Vi điều khiển là nền tảng cốt lõi trong ngành Tự động hóa Công nghiệp và cơ điện tử. Nội dung của giáo trình này không chỉ cung cấp kiến thức lý thuyết mà còn trang bị các kỹ năng thực hành thiết yếu. Mục tiêu chính là giúp người học có khả năng lắp ráp, vận hành, và khắc phục sự cố trên các hệ thống nhúng sử dụng vi điều khiển. Theo tài liệu của Trường TCN Kỹ thuật Công nghệ Hùng Vương, một giáo trình vi điều khiển chuẩn cần bao quát từ kiến trúc phần cứng, tập lệnh, đến phương pháp lập trình. Đặc biệt, các dòng vi điều khiển 8051, vi điều khiển PIC, và vi điều khiển AVR là những kiến thức cơ bản mà bất kỳ kỹ sư tự động hóa nào cũng cần nắm vững. Việc hiểu rõ cấu trúc và nguyên lý hoạt động của vi điều khiển là bước đệm quan trọng để tiếp cận các công nghệ phức tạp hơn như PLC và vi điều khiển hay các hệ thống điều khiển thời gian thực. Các tài liệu vi điều khiển thường bắt đầu với các khái niệm về hệ thống số, đại số Boole, sau đó đi sâu vào kiến trúc của một dòng vi điều khiển cụ thể, ví dụ như P89V51RD2. Tài liệu này nhấn mạnh P89V51RD2 là một vi điều khiển 80C51 với 64kB Flash và 1024 bytes RAM, hoạt động ở 5VDC, tích hợp các giao thức như SPI, và có nhiều tính năng tối ưu cho điều khiển tự động. Việc biên soạn một đề cương môn học vi điều khiển chất lượng đòi hỏi sự kết hợp giữa lý thuyết từ các nhà giáo dục và phản hồi thực tiễn từ doanh nghiệp, đảm bảo kiến thức cung cấp vừa hàn lâm vừa có tính ứng dụng cao, đáp ứng nhu cầu của ngành công nghiệp hiện đại.

1.1. Tầm quan trọng của vi điều khiển trong ngành tự động hóa

Vi điều khiển (microcontroller) là bộ não của hầu hết các thiết bị thông minh và hệ thống tự động. Trong điều khiển tự động công nghiệp, chúng đóng vai trò trung tâm trong việc xử lý tín hiệu từ cảm biến, thực thi các thuật toán điều khiển và ra lệnh cho cơ cấu chấp hành như động cơ, van, relay. Sự phát triển của lập trình nhúng đã cho phép tạo ra các sản phẩm nhỏ gọn, tiêu thụ ít năng lượng nhưng có hiệu suất cao. Kiến thức về vi điều khiển giúp kỹ sư thiết kế và xây dựng các mạch ứng dụng vi điều khiển chuyên biệt, từ các hệ thống cảnh báo đơn giản đến các dây chuyền sản xuất phức tạp, là kỹ năng không thể thiếu trong lĩnh vực cơ điện tử.

1.2. Mục tiêu cốt lõi của đề cương môn học vi điều khiển

Một đề cương môn học vi điều khiển hiệu quả phải đặt ra các mục tiêu rõ ràng. Thứ nhất, cung cấp kiến thức nền tảng về kiến trúc vi điều khiển, bao gồm CPU, bộ nhớ, các cổng I/O và các ngoại vi tích hợp. Thứ hai, trang bị kỹ năng lập trình C cho vi điều khiểnngôn ngữ Assembly, hai ngôn ngữ phổ biến nhất trong thế giới nhúng. Thứ ba, hướng dẫn sử dụng các công cụ phần cứng và phần mềm như mạch nạp, phần mềm Keil C để biên dịch và gỡ lỗi, cùng phần mềm mô phỏng Proteus để kiểm tra chương trình. Cuối cùng, thúc đẩy khả năng giải quyết vấn đề thông qua các bài tập và dự án thực tế.

II. Thách thức khi tiếp cận tài liệu vi điều khiển cho người mới

Việc tự học qua các tài liệu vi điều khiển hoặc ebook vi điều khiển pdf đặt ra nhiều thách thức không nhỏ. Thách thức lớn nhất đến từ sự phức tạp của cả phần cứng và phần mềm. Về phần cứng, người học phải hiểu rõ về sơ đồ chân, chức năng của từng port, và cách kết nối với các linh kiện ngoại vi. Tài liệu gốc đã chỉ ra sự phức tạp trong việc sử dụng các port của vi điều khiển 89V51, ví dụ Port 0 vừa là cổng I/O vừa ghép kênh địa chỉ và dữ liệu. Về phần mềm, lập trình nhúng đòi hỏi tư duy logic chặt chẽ và sự hiểu biết sâu sắc về cách phần cứng hoạt động. Không giống như lập trình ứng dụng trên máy tính, lập trình cho hệ thống nhúng phải quan tâm đến từng bit, từng byte, tối ưu hóa bộ nhớ và tốc độ xử lý. Một thách thức khác là sự đa dạng của các họ vi điều khiển. Mỗi họ như vi điều khiển 8051, vi điều khiển PIC, vi điều khiển AVR, hay vi điều khiển ARM lại có kiến trúc và tập lệnh riêng. Việc lựa chọn một nền tảng phù hợp để bắt đầu và tìm kiếm tài liệu đáng tin cậy là một rào cản lớn. Nhiều microcontroller tutorial trên mạng thường thiếu tính hệ thống hoặc chỉ tập trung vào các ứng dụng đơn lẻ, không cung cấp cái nhìn tổng quan cần thiết cho kỹ sư điều khiển tự động.

2.1. Rào cản về kiến trúc vi điều khiển và phần cứng phức tạp

Hiểu được kiến trúc vi điều khiển là yêu cầu tiên quyết. Người mới bắt đầu thường gặp khó khăn trong việc phân biệt giữa vi xử lý (microprocessor) và vi điều khiển (microcontroller). Họ phải làm quen với các khái niệm như không gian bộ nhớ chương trình, bộ nhớ dữ liệu, các thanh ghi chức năng đặc biệt (SFRs), và các bộ định thời/đếm (Timers/Counters). Việc đọc datasheet của một con chip dài hàng trăm trang để hiểu chức năng từng chân và cách cấu hình các ngoại vi như UART, SPI, I2C là một công việc đòi hỏi sự kiên nhẫn và kiến thức nền tảng về điện tử số.

2.2. Khó khăn trong việc lựa chọn ngôn ngữ lập trình phù hợp

Lựa chọn giữa ngôn ngữ Assemblylập trình C cho vi điều khiển cũng là một quyết định khó khăn. Assembly cho phép kiểm soát phần cứng ở mức độ thấp nhất, tối ưu hóa tốc độ và dung lượng mã nguồn, nhưng lại rất khó học và khó port sang các dòng chip khác. Ngược lại, ngôn ngữ C dễ đọc, dễ viết và có tính di động cao hơn, nhưng đòi hỏi trình biên dịch (compiler) hiệu quả và có thể tạo ra mã máy lớn hơn. Một giáo trình vi điều khiển tốt cần phải giới thiệu cả hai phương pháp, giúp người học hiểu được ưu nhược điểm của từng loại để áp dụng vào từng bài toán cụ thể.

III. Hướng dẫn nền tảng vi xử lý và hệ thống số cần nắm vững

Để xây dựng một giáo trình vi điều khiển hoàn chỉnh, việc bắt đầu từ các kiến thức nền tảng về hệ thống số và vi xử lý là bắt buộc. Đây là những viên gạch đầu tiên tạo nên nền móng vững chắc trước khi đi sâu vào lập trình và thiết kế mạch. Theo tài liệu tham khảo, Chương 1: “Hệ tối thiểu của máy tính” đã trình bày rất rõ các khái niệm này. Bất kỳ hệ thống số nào cũng hoạt động dựa trên logic nhị phân (0 và 1). Do đó, việc thành thạo các hệ đếm như nhị phân (binary), thập lục phân (hexadecimal) và mã BCD là kỹ năng cơ bản. Kỹ sư cần biết cách chuyển đổi qua lại giữa các hệ đếm này vì chúng được sử dụng liên tục trong lập trình và gỡ lỗi. Ví dụ, việc gán giá trị cho một port 8-bit thường được thực hiện bằng mã hex (ví dụ P2 = 0x80;) vì nó ngắn gọn hơn so với mã nhị phân. Bên cạnh đó, đại số Boole và các hàm logic cơ bản như AND, OR, NOT là công cụ toán học để phân tích và thiết kế các mạch logic số. Hiểu rõ các hàm này giúp xây dựng các phương trình điều khiển logic, là trái tim của nhiều ứng dụng điều khiển tự động. Các tài liệu vi điều khiển uy tín luôn dành một chương riêng để nói về các cổng logic và cách chúng được hiện thực hóa trong phần cứng cũng như trong các phép toán thao tác bit của ngôn ngữ lập trình.

3.1. Nắm vững các hệ đếm và mã hóa thông tin Binary Hex

Trong thế giới của vi điều khiển, mọi dữ liệu đều được biểu diễn dưới dạng nhị phân. Mã nhị phân (cơ số 2) sử dụng hai chữ số 0 và 1. Tuy nhiên, làm việc với chuỗi nhị phân dài rất dễ gây nhầm lẫn. Vì vậy, mã thập lục phân (Hex, cơ số 16) được sử dụng rộng rãi để biểu diễn các giá trị nhị phân một cách cô đọng. Mỗi ký tự Hex tương ứng với một nhóm 4 bit nhị phân (nibble). Việc thành thạo chuyển đổi giữa thập phân, nhị phân và Hex là kỹ năng không thể thiếu khi làm việc với các thanh ghi, địa chỉ bộ nhớ hay khi sử dụng các công cụ gỡ lỗi.

3.2. Tìm hiểu các hàm logic cơ bản và đại số Boole ứng dụng

Đại số Boole là nền tảng toán học của điện tử số và khoa học máy tính. Các phép toán logic cơ bản gồm AND (phép nhân logic), OR (phép cộng logic), và NOT (phép đảo) là cơ sở để xây dựng mọi mạch số phức tạp. Trong lập trình nhúng, các phép toán này được thể hiện qua các toán tử thao tác bit như & (AND), | (OR), và ~ (NOT). Chúng được dùng để kiểm tra, thiết lập hoặc xóa một bit cụ thể trong một thanh ghi điều khiển, một kỹ thuật cực kỳ phổ biến trong việc cấu hình và điều khiển các ngoại vi của vi điều khiển.

IV. Phương pháp lập trình C cho vi điều khiển 8051 hiệu quả

Ngôn ngữ C là lựa chọn hàng đầu cho lập trình nhúng và phát triển các ứng dụng trên vi điều khiển 8051. So với ngôn ngữ Assembly, C cung cấp một cấu trúc rõ ràng, dễ đọc, dễ bảo trì và tăng tốc độ phát triển sản phẩm. Một chương trình C điển hình cho vi điều khiển, như được minh họa trong tài liệu gốc, bao gồm bốn phần chính: khai báo thư viện (ví dụ #include<reg52.h>), khai báo I/O và biến, chương trình con (hàm), và hàm main(). Để lập trình C cho vi điều khiển hiệu quả, người học cần nắm vững các kiểu dữ liệu đặc thù như bit, sbit để truy cập trực tiếp đến từng bit của thanh ghi. Các phép toán thao tác bit (&, |, ^, ~, <<, >>) là công cụ mạnh mẽ để điều khiển phần cứng ở mức độ thấp. Ví dụ, để bật bit thứ 3 của Port 1, có thể dùng lệnh P1 = P1 | 0x08;. Bên cạnh đó, việc sử dụng các cấu trúc điều khiển như if-else, switch, for, while cho phép xây dựng các luồng chương trình phức tạp, từ việc đọc giá trị cảm biến đến điều khiển động cơ theo một chu trình định sẵn. Việc sử dụng các công cụ hỗ trợ như phần mềm Keil Cmô phỏng Proteus giúp quá trình viết mã, biên dịch và kiểm thử trở nên nhanh chóng và chính xác hơn, giảm thiểu thời gian gỡ lỗi trên phần cứng thật.

4.1. Cấu trúc chương trình C và các kiểu dữ liệu đặc thù

Cấu trúc một chương trình C cho hệ thống nhúng bắt đầu bằng việc khai báo thư viện định nghĩa các thanh ghi của chip (reg52.h cho 8051). Sau đó là các định nghĩa I/O, ví dụ sbit start = P1^0; để gán tên start cho bit 0 của Port 1. Việc hiểu rõ phạm vi của các biến (toàn cục, cục bộ) và các kiểu dữ liệu (từ char, int đến float) là rất quan trọng để quản lý bộ nhớ RAM vốn rất hạn hẹp của vi điều khiển. Kiểu bit là một kiểu dữ liệu đặc biệt trong C cho 8051, chỉ tốn 1 bit bộ nhớ, rất hiệu quả để lưu trữ các biến trạng thái.

4.2. Vận dụng các toán tử điều khiển và vòng lặp trong C

Các toán tử điều khiển như if, switch và các vòng lặp for, while là xương sống của mọi thuật toán. Trong giáo trình vi điều khiển, chúng được dùng để tạo ra logic hoạt động cho hệ thống. Ví dụ, một vòng lặp while(1) vô tận trong hàm main() đảm bảo chương trình vi điều khiển chạy liên tục. Bên trong vòng lặp đó, câu lệnh if được dùng để kiểm tra trạng thái nút nhấn hoặc cảm biến, từ đó quyết định hành động tiếp theo, chẳng hạn như bật/tắt đèn hoặc thay đổi tốc độ động cơ. Việc kết hợp khéo léo các cấu trúc này cho phép tạo ra các hệ thống điều khiển tự động thông minh và linh hoạt.

4.3. Sử dụng công cụ Keil C và Proteus để phát triển dự án

Bộ đôi phần mềm Keil Cmô phỏng Proteus là combo không thể thiếu cho người phát triển hệ thống dựa trên vi điều khiển 8051. Keil C là một Môi trường Phát triển Tích hợp (IDE) mạnh mẽ, cung cấp trình soạn thảo mã, trình biên dịch C51, và công cụ gỡ lỗi (debugger). Sau khi viết và biên dịch chương trình trong Keil C để tạo ra file .HEX, Proteus sẽ được sử dụng để mô phỏng. Proteus cho phép vẽ sơ đồ mạch nguyên lý, nạp file .HEX vào mô hình vi điều khiển, và chạy mô phỏng để quan sát hoạt động của toàn bộ mạch ứng dụng vi điều khiển ngay trên máy tính.

V. Top ứng dụng thực tiễn từ giáo trình vi điều khiển cơ bản

Kiến thức từ một giáo trình vi điều khiển không chỉ dừng lại ở lý thuyết mà phải được áp dụng để tạo ra các sản phẩm thực tế. Các bài tập trong tài liệu gốc của Trường TCN Kỹ thuật Công nghệ Hùng Vương là minh chứng rõ ràng cho tính ứng dụng cao của môn học. Các mạch ứng dụng vi điều khiển rất đa dạng, từ các thiết bị dân dụng đến các hệ thống công nghiệp phức tạp. Một trong những ứng dụng phổ biến nhất là hệ thống điều khiển tự động. Ví dụ, bài tập về hệ thống bơm nước tự động sử dụng các cảm biến mức cao (LSH) và mức thấp (LSL) để điều khiển van A và van B. Đây là mô hình kinh điển của một hệ thống điều khiển tự động theo chu trình. Một ứng dụng khác là các hệ thống cảnh báo, như hệ thống cảnh báo trên ô tô, nơi vi điều khiển đọc trạng thái của cửa, đèn pha, công tắc khởi động để kích hoạt đèn báo khi cần thiết. Trong công nghiệp, vi điều khiển được dùng để điều khiển máy móc như máy bào, máy ép ván, điều khiển robot, và giám sát các thông số quy trình. Các hệ thống nhúng này thường yêu cầu giao tiếp ngoại vi SPI I2C UART để kết nối với các module khác như màn hình LCD, cảm biến nhiệt độ, hoặc các vi điều khiển khác, tạo thành một mạng lưới điều khiển phân tán.

5.1. Xây dựng các hệ thống điều khiển tự động trong công nghiệp

Trong công nghiệp, vi điều khiển là giải pháp hiệu quả về chi phí cho các bài toán điều khiển chuyên dụng, là sự bổ sung hoặc thay thế cho PLC trong một số trường hợp. Các ứng dụng như điều khiển băng tải, máy CNC mini, hệ thống tưới tiêu tự động, lò sấy... đều có thể được xây dựng dựa trên các dòng vi điều khiển phổ thông như vi điều khiển 8051 hay vi điều khiển PIC. Khả năng lập trình linh hoạt cho phép kỹ sư tùy biến thuật toán điều khiển chính xác theo yêu cầu của từng hệ thống cụ thể.

5.2. Thiết kế mạch ứng dụng vi điều khiển trong đời sống

Vi điều khiển có mặt ở khắp mọi nơi trong các thiết bị điện tử tiêu dùng. Từ lò vi sóng, máy giặt, điều khiển TV, đến các thiết bị nhà thông minh (smart home) như công tắc cảm ứng, hệ thống chiếu sáng thông minh, khóa cửa điện tử. Việc học vi điều khiển mở ra cánh cửa để sinh viên và kỹ sư có thể tự tay thiết kế và chế tạo các sản phẩm điện tử hữu ích, biến những ý tưởng sáng tạo thành hiện thực. Đây chính là bản chất của ngành cơ điện tửlập trình nhúng.

VI. Xu hướng tương lai và sự phát triển của vi điều khiển ARM

Ngành công nghiệp vi điều khiển đang phát triển không ngừng, và việc cập nhật các xu hướng mới là điều cần thiết cho bất kỳ ai theo đuổi lĩnh vực lập trình nhúngđiều khiển tự động. Mặc dù các giáo trình vi điều khiển truyền thống thường tập trung vào các kiến trúc 8-bit như vi điều khiển 8051, vi điều khiển PICvi điều khiển AVR vì tính đơn giản và giá thành rẻ, xu hướng toàn cầu đang dịch chuyển mạnh mẽ sang các kiến trúc 32-bit, mà nổi bật nhất là vi điều khiển ARM. Vi điều khiển dựa trên kiến trúc ARM (ví dụ dòng STM32) mang lại hiệu năng xử lý vượt trội, bộ nhớ lớn hơn, và tích hợp nhiều ngoại vi phức tạp hơn. Chúng là nền tảng cho sự bùng nổ của các thiết bị Internet of Things (IoT), hệ thống xử lý tín hiệu số (DSP), và các ứng dụng đòi hỏi khả năng tính toán cao. Do đó, một giáo trình vi điều khiển hiện đại cần có lộ trình để chuyển tiếp kiến thức từ các dòng 8-bit cơ bản sang kiến trúc ARM. Các khái niệm cốt lõi về I/O, timer, giao tiếp ngoại vi học được từ 8051 vẫn hoàn toàn có giá trị, nhưng người học cần được trang bị thêm kiến thức về các công cụ lập trình mới, hệ điều hành thời gian thực (RTOS), và các giao thức mạng để làm chủ công nghệ mới.

6.1. So sánh kiến trúc 8 bit PIC AVR và 32 bit ARM

Vi điều khiển 8-bit như vi điều khiển PICvi điều khiển AVR rất mạnh trong các ứng dụng điều khiển đơn giản, tiết kiệm năng lượng và chi phí thấp. Tuy nhiên, chúng có tốc độ xử lý và dung lượng bộ nhớ hạn chế. Ngược lại, vi điều khiển ARM 32-bit cung cấp tốc độ xử lý cao hơn hàng chục đến hàng trăm lần, không gian địa chỉ lớn, và tập lệnh phong phú, phù hợp cho các tác vụ phức tạp như xử lý hình ảnh, giao tiếp mạng, hay chạy các thuật toán trí tuệ nhân tạo ở biên (Edge AI).

6.2. Vai trò của vi điều khiển trong cuộc cách mạng IoT và AI

Internet of Things (IoT) kết nối hàng tỷ thiết bị thông minh với nhau, và mỗi thiết bị đó đều chứa một hệ thống nhúng với trái tim là vi điều khiển. Vi điều khiển hiện đại không chỉ thu thập dữ liệu từ cảm biến mà còn có khả năng tiền xử lý dữ liệu và kết nối Internet qua Wi-Fi, Bluetooth, LoRa. Sự phát triển của vi điều khiển ARM với hiệu năng cao cũng đang thúc đẩy xu hướng Trí tuệ nhân tạo (AI) tại biên, cho phép các thiết bị thực hiện các tác vụ suy luận thông minh ngay tại chỗ mà không cần gửi dữ liệu lên đám mây.

03/10/2025

Trích đoạn nội dung tài liệu

Chương 1 : HỆ TỐI THIỂU CỦA MÁY TÍNH I- Đại số biến logic: 1- Biến và hàm: Hàm là một quy luật mà qua đó ta xác định được biến thứ hai y từ biến x thứ nhất. Nếu giá trị của x không nhiều thì có thể biểu diễn bởi một bảng sau: Thí dụ: Hàm y  5 x 2  4 , với x = 0, 1, 2, 3, 4 thì Khái niệm này được mở rộng cho các biến không phải là số. Thí dụ: Gọi x là 3 màu của một đèn giao thông, và y là đáp ứng của người lái xe, ta có: 2- Biến logic: Một biến logic thỏa hai tính chất sau: - Chỉ có thể nhận được 1 trong 2 giá trị có thế có. - Hai giá trị nhận được phải mang tính loại trừ nhau.

6 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ Thí dụ: Nếu chỉ xét đèn xanh và đó, thì ta có: 3- Biểu diễn giá trị của biến logic bằng mức điện áp: Trong điện tử người ta thường biểu diễn giá trị của biến logic bằng các mức điện áp như sau: + Mức logic cho họ TTL: + Mức logic cho họ CMOS: 7 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ II- Hệ thống số và mã: (Number system and codes) 1- Mã thập phân: (Decimal number system) Trong hệ thập phân dùng 10 chữ số(digit) từ 0 đền 9 để diễn tả số lượng từ 0 đến 9, nếu số lượng lớn hơn 9 ta phải dùng số có nhiều con số nhưng phải theo quy ước về giá trị hang. Thí dụ: Còn gọi là hệ có cơ số 10, trong đó số mũ sẽ giảm dần về 0. - MSD: Most significant digit : Là số cao nhất. - LSD: Least significant digit : Là số thấp nhất.

Nếu có N số thập phân thì có 10 N số khác nhau để diễn tả con số từ 0 -> 10 N - 1 - N=2 thì có 10 2  100 số khác nhau từ 0 đến 99. - N=3 thì có 10 3  1000 số khác nhau từ 0 đến 999. 2- Mã nhị phân: (Binary number system) Là mã có cơ số 2, chỉ dùng hai con số 0 và 1 để diễn tả. Nếu diễn tả con số lớn hơn 1 người ta phải dùng nhiều con số nhưng phải theo quy ước về giá trị hang.

Thí dụ: - MSB: Most significant bit: bit cao nhất. - LSB: least significant bit: bit thấp nhất. - Một con số trong số nhị phân được gọi là 1 bit. 8 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ - Số nhị phân 4 bit được gọi là 1 nipple (1001).

- Số nhị phân 8 bit được gọi là 1 byte (10011101). - Số nhị phân 16 bit (2 bytes) được gọi là 1 từ (word). Một số nhị phân n bit thì diễn tả được 2 n trạng thái từ (000…0) -> (111…1) - Số nhị phân 2 bit thì có 2 2  4 số khác nhau từ (00 ) 2 đến (11) 2 tương ứng từ 0 đến 3 thập phân. - Số nhị phân 4 bit thì có 2 4  16 số khác nhau từ (0000 ) 2 đến (1111 ) 2 tương ứng từ 0 đến 15 thập phân.

- Nếu muốn diễn tả số thập phân > 15 thì số nhị phân tương ứng phải có n>4 bit. + Đổi từ thập phân sang nhị phân: Bằng cách chia 2 liên tiếp và lấy phần dư: 3- Mã thập lục phân: (Hexadecimal number system) Còn gọi là mã Hex hay mã có cơ số 16, dùng 16 chữ số 0,1,2,…, 9, A, B, C, D, E, F để diễn tả. Thí dụ: 9 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ a- Đổi từ thập phân sang Hex: Chia 16 liên tiếp và lấy phần dư: b- Đổi từ Hex sang nhị phân: Dùng nhóm 4 bit để diễn tả: c- Đổi từ nhị phân sang Hex: Dùng nhóm 4 bit để diễn tả, nếu không đủ thì them 0 vào : d- Đếm trong hệ Hex: Sử dụng 16 chữ số từ 0 đến F và mỗi lần tăng 1: + 38, 39, 3A, 3B, 3C, 3D, 3E, 3F, 40, 41, 32. + 6F8, 6F9, 6FA, 6FB, 6FC, 6FD, 6FE, 6FF, 700.

4- Mã BCD: (Binary Coded Decimal) Là mã thập phân được mã hóa theo nhị phân, mã BCD dùng nhóm 4 bit để biểu diễn số thập phân từ 0 đến 9. + Đổi thập phân sang BCD: + Đổi BCD sang thập phân: 10 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ + Lưu ý: (01101100) không phải mã BCD do (1100) >9 BẢNG SO SÁNH CÁC MÃ III- Hệ tối thiểu máy tính: 1- Cấu trúc: Hệ tối thiểu máy tính gồm 4 phần chính sau : + Input Area: Các tín hiệu được nhận từ bên ngoài sẽ được lưu vào vùng này. + Output Area: Để lưu tạm các lệnh điều khiển ở đầu ra trước khi đưa đến các thiết bị ngoại vi. + CPU: Là đơn vị xử lý trung tâm, nơi sẽ xứ lý và thực thi chương trình.

+ memory: Là nơi lưu giữ chương trình điều khiển và các trạng thái nhớ trung gian trong quá trình thực thi chương trình. + Input Device: Là nút nhấn, công tắc, các loại cảm biến, Encoder,… + Output Device: Là Motor, Relay, Đèn… 11 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ + Các thiết bị là hệ tối thiểu như : uP, AVR, PIC, PLC, RTU, PC, IPC,DSP,PCI. 2- Cách định địa chỉ: Cấu trúc địa chỉ trong hệ tối thiểu: <Tiền tố><Địa chỉ Port>^<Địa chỉ bit> Đối với uP 8051 thì tiền tố luôn là chữ P, có 4 port thứ tự là P0 đến P1, mỗi port có 8 bit. Thí dụ : P0 = 0 ; Nghĩa là 8 bit của port 0 (từ 0 đến 7) đều bằng 0.

P1^3 = 0 ; Nghĩa là chỉ có bit 3 của port 1 bằng 0. IV- Các hàm logic cơ bản: 1- Hàm AND: + Phương trình điều khiển: y = AB + Ký hiệu: + Diển tả bằng mạch điện: Hai công tắc A và B nối tiếp nhau 12 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ + Diển tả bằng mạch điện tử: Hai diod và điện trở kéo lên R + Bảng sự thật: +Phát biểu: Hàm AND có ngỏ ra bằng 0 khi chỉ cần 1 ngỏ vào bằng 0 bất chấp ngỏ còn lại. Phát biểu này đúng cho trường hợp cổng AND có n ngỏ vào. +Công dụng : Hàm AND dùng để duy trì cho ngỏ ra bằng 0 bằng cách làm mất tác dụng ngỏ vào.

+ Chương trình C : y = (unsigned)A*(unsigned)B; hay y = A&B; 13 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ 2- Hàm OR: + Phương trình điều khiển: y = A+B + Ký hiệu: + Diển tả bằng mạch điện: Hai công tắc A và B song song nhau + Diển tả bằng mạch điện tử: Hai diod và điện trở kéo xuống R + Bảng sự thật: +Phát biểu: Hàm OR có ngỏ ra bằng 1 khi chỉ cần 1 ngỏ vào bằng 1 bất chấp ngỏ còn lại. Phát biểu này đúng cho trường hợp cổng OR có n ngỏ vào. 14 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ +Công dụng : Hàm OR dùng để duy trì cho ngỏ ra bằng 1 bằng cách làm mất tác dụng ngỏ vào. + Chương trình C : y = (unsigned)A+(unsigned)B; hay y = A|B; 3- Hàm NOT: + Phương trình điều khiển: y  A + Ký hiệu: + Diển tả bằng mạch điện: + Diển tả bằng mạch điện tử: + Bảng sự thật: 15 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ + Chương trình C : y = !A; V- Cấu trúc chương trình C: Cấu trúc chương trình C bao gồm 4 phần cơ bản: 1- Khai báo hàm thư viện.

2- Khai báo I/O, relay trung gian và các chân điều khiển. 3- Chương trình con (nếu cần). Thí dụ: Viết chương trình điều khiển một hệ thống có phương trình sau : Lamp = (start + Lamp)*(!stop) //Khai báo hàm thư viện.h> //Khai báo ngỏ vào. sbit start = P1^0; sbit stop = P1^1; //Khai báo ngỏ ra.

sbit Lamp = P2^0; //Khai báo ngỏ vào. sbit EN = P3^7; //Hàm main void main(void) { P2 = 0; //Gán trị đầu cho biến EN = 0; //Cho phép xuất ngỏ ra. while(1) { //Phương trình điều khiển Lamp = (start|Lamp)&(!stop); }} 16 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ VI- Các bài tập: + Sơ đồ phần cứng: - Port 1 có điện trở nối thấp để bình thường là 0 và tác động ở mức cao. - Port 2 được đệm qua 74LS245 và có chân cho phép OE.

+ Cách xây dựng phương trình điều khiển: - Xác định số ngỏ vào và ra của hệ thống, có bao nhiêu ngỏ ra thì có bấy nhiêu phương trình điều khiển cần tìm. - Liệt kê tất cả các điều kiện làm phương trình =1. - Liệt kê tất cả các điều kiện làm phương trình =0. - Xét các ngỏ ra cần duy trì nếu có.

Bài tập 1: Cho hệ thống bơm nước như hình vẽ, với nguyên tắc hoạt động như sau: - Bình thường van A đóng, van B mở. - Khi nhấn start van A = ON, van B = OFF. - Khi mực nước đầy (LSH = ON) thì hệ thống đảo trạng thái nghĩa là van A = OFF, van B = ON. - Khi mực nước thấp (LSL = ON) thì thì hệ thống trở về trạng thái ban đầu, nghĩa là van A = ON, van B = OFF.

- Quá trình cứ tuần tự tiếp diễn. 17 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ a- Xây dựng phương trình điều khiển. b- Viết chương trình C. + Giải: a-Phương trình điều khiển có dạng: den_do = (start + den_do)*(!stop); van_A = den_do*(!LSH * !Relay); // den_do là điều kiện van_A = ON van_B = (!van_A)*den_do; Relay = (LSH + Relay)*(!LSL); b-Chương trình C: #include<reg52.h> sbit start = P1^0; sbit stop = P1^1; sbit LSH = P1^2; sbit LSL = P1^3; sbit den_do = P2^0; sbit van_A = P2^1; sbit van_B = P2^2; sbit EN = P3^7; bit Relay ; 18 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ void main(void) { P2 = 0;P1 = 0; EN = 0; while(1) { den_do = (start | den_do)&(!stop); van_A = den_do&(!LSH & !Relay); van_B = (!van_A)&den_do; Relay = (LSH | Relay)&(!LSL); } } Bài tập 2: Cho hệ thống cảnh báo trong xe ô tô như hình vẽ.

Đèn báo sẽ sang khi: - Cửa ở vị trí ON trong khi công tắc khởi động ở vị trí ON. - Đèn pha ở vị trí ON trong khi công tắc khởi động ở vị trí OFF. a- Xây dựng phương trình điều khiển. b- Viết chương trình C.

19 TRƯỜNG TCN KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG KHOA CƠ ĐIỆN TỬ + Giải: a- Phương trình điều khiển có dạng: Lamp = CK + Đ(!K) b-Chương trình C: #include<reg52.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ