Luận Văn Tốt Nghiệp: Thiết Kế Kit Vi Điều Khiển 8952 Giao Tiếp Với PC

Tài liệu nghiên cứu Thiết kế kit vi điều khiển 8952 giao tiếp với máy tính, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên sâu về .

Trường đại học

Trường Đại Học Kỹ Thuật

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2023

140
2
0

Phí lưu trữ

35 Point

Mục lục chi tiết

PHẦN MỞ ĐẦU

1. CHƯƠNG 1: KHẢO SÁT VI ĐIỀU KHIỂN AT89C52

1.1. Giới thiệu vi điều khiển AT89C52

1.2. Sơ đồ khối của AT89C52

1.3. Sơ đồ chân AT89C52 và chức năng các chân

1.4. Bộ nhớ dữ liệu (Data memory)

2. PHẦN THIẾT KẾ PHẦN CỨNG

2.1. Thiết kế phần cứng và tính toán lựa chọn linh kiện

2.2. Bộ xử lý trung tâm và mạch chốt

2.3. Thiết kế bộ nhớ và giải mã bộ nhớ

2.4. Giao tiếp với máy tính qua cổng #5232

3. PHẦN XÂY DỰNG PHẦN MỀM

3.1. Chương trình chính điều khiển KIT

3.2. Các chương trình con

3.2.1. Chương trình hiển thị

3.2.2. Chương trình dò tìm mã phím

3.2.3. Chương trình dò tìm phím ẩn

3.2.4. Chương trình con chuyển dữ liệu sang ô nhớ

3.2.5. Chương trình con chuyển 4 ô nhớ sang 8 ô nhớ

3.3. Các chương trình phím chức năng

3.3.1. Chương trình phím “$”

3.3.2. Chương trình phím “1”

3.3.3. Chương trình phím “}”

3.3.4. Chương trình phím “P”

3.3.5. Chương trình phím “G”

3.4. Các chương trình giao tiếp

3.4.1. Chương trình Pascal truyền dữ liệu sang KIT

3.4.2. Chương trình Assembler nhận dữ liệu từ PC

3.4.3. Chương trình Assembler truyền dữ liệu từ KIT

3.4.4. Chương trình Pascal nhận dữ liệu từ KIT

3.5. Hướng dẫn sử dụng KIT 8952

PHỤ LỤC

Phụ lục A: Giới thiệu vi mạch số 1S

Phụ lục B: Giới thiệu vi mạch 8279

LỜI GIỚI THIỆU

Tóm tắt

I. Khám Phá Nền Tảng Thiết Kế Kit Vi Điều Khiển 8952

Việc thiết kế kit vi điều khiển 8952 giao tiếp với PC là một đề tài nền tảng trong lĩnh vực điện tử và hệ thống nhúng, mở ra khả năng điều khiển và giám sát thiết bị từ xa. Trọng tâm của hệ thống là vi điều khiển AT89S52 hoặc AT89C52, những thành viên ưu tú của họ 8051, nổi tiếng với sự ổn định, tập lệnh mạnh mẽ và chi phí hợp lý. Các vi điều khiển này cung cấp đủ tài nguyên phần cứng, bao gồm các cổng I/O, bộ định thời và đặc biệt là bộ truyền nhận dữ liệu nối tiếp không đồng bộ (UART), để xây dựng các ứng dụng phức tạp. Giao tiếp với máy tính cá nhân (PC) thường được thực hiện thông qua chuẩn giao tiếp nối tiếp RS232, một phương thức truyền dữ liệu tin cậy qua cổng COM. Sự kết hợp giữa sức mạnh xử lý của lập trình 8051 và khả năng tương tác của PC tạo nên một hệ thống linh hoạt, có thể ứng dụng trong các đồ án vi điều khiển từ đơn giản đến phức tạp, như hệ thống thu thập dữ liệu, điều khiển tự động, hoặc các thiết bị đo lường. Để hiện thực hóa hệ thống, cần có kiến thức vững chắc về cả phần cứng lẫn phần mềm, từ việc thiết kế sơ đồ nguyên lý, lựa chọn linh kiện, đến lập trình firmware cho vi điều khiển và xây dựng ứng dụng giao diện trên máy tính.

1.1. Tổng quan về vi điều khiển AT89S52 và họ 8051

Vi điều khiển AT89S52 là một vi mạch tích hợp 8-bit công nghệ CMOS, sở hữu 8KB bộ nhớ Flash có thể lập trình lại trong hệ thống. Đây là một phiên bản cải tiến thuộc họ MCS-51 kinh điển của Intel. Theo luận văn của Bùi Thế Vinh (2000), các đặc điểm nổi bật của AT89C52 bao gồm 256 byte RAM nội, 32 đường I/O, ba bộ định thời/đếm 16-bit, và một cổng nối tiếp song công toàn phần. Những tài nguyên này là đủ để thực hiện các tác vụ điều khiển thiết bị qua máy tính. Sự tương thích hoàn toàn về tập lệnh và sơ đồ chân với chuẩn 8051 giúp các nhà phát triển dễ dàng tiếp cận và sử dụng các công cụ lập trình phổ biến như lập trình Keil C.

1.2. Vai trò của giao tiếp UART và chuẩn nối tiếp RS232

Giao tiếp UART (Universal Asynchronous Receiver-Transmitter) là thành phần cốt lõi cho phép gửi nhận dữ liệu với PC. Đây là một khối phần cứng tích hợp trong AT89S52, chịu trách nhiệm chuyển đổi dữ liệu song song 8-bit thành dòng bit nối tiếp để truyền đi và ngược lại. Để kết nối với cổng COM của máy tính, tín hiệu mức TTL (0-5V) từ UART của vi điều khiển cần được chuyển đổi sang mức điện áp của chuẩn giao tiếp nối tiếp RS232 (thường là ±12V). Quá trình này đảm bảo tính toàn vẹn của tín hiệu trên khoảng cách xa hơn và chống nhiễu tốt hơn, là yếu tố then chốt cho một hệ thống giao tiếp ổn định.

II. Thách Thức Kỹ Thuật Khi Giao Tiếp VĐK 8952 Với PC

Quá trình hiện thực hóa việc thiết kế kit vi điều khiển 8952 giao tiếp với PC không tránh khỏi những thách thức kỹ thuật. Trở ngại lớn nhất nằm ở sự khác biệt về mức điện áp logic giữa vi điều khiển và máy tính. Vi điều khiển AT89S52 hoạt động với mức logic TTL (Transistor-Transistor Logic), trong đó mức 0 tương ứng 0V và mức 1 tương ứng +5V. Ngược lại, cổng COM trên PC tuân theo chuẩn RS232, sử dụng mức điện áp âm cho logic 1 (từ -3V đến -15V) và mức dương cho logic 0 (từ +3V đến +15V). Kết nối trực tiếp hai hệ thống này không chỉ gây ra lỗi giao tiếp mà còn có nguy cơ làm hỏng các linh kiện. Một thách thức khác là việc đồng bộ hóa tốc độ truyền (baud rate) giữa hai thiết bị. Bất kỳ sự sai lệch nào cũng dẫn đến việc dữ liệu nhận được bị sai lệch hoặc mất mát hoàn toàn. Ngoài ra, việc xây dựng một trình điều khiển (driver) hoặc phần mềm trên PC có khả năng mở đúng cổng COM ảo, thiết lập tham số và xử lý luồng dữ liệu một cách chính xác cũng đòi hỏi kỹ năng lập trình chuyên sâu, đặc biệt với các ngôn ngữ như Visual Studio C# hoặc Visual Basic.

2.1. Vấn đề tương thích mức điện áp giữa VĐK và cổng COM

Đây là rào cản phần cứng cơ bản nhất. Việc kết nối trực tiếp chân TXD của 8952 vào chân RXD của cổng COM (và ngược lại) sẽ thất bại. Để giải quyết vấn đề này, các nhà thiết kế phải sử dụng một mạch chuyển đổi mức điện áp. Giải pháp phổ biến và hiệu quả nhất là sử dụng một IC chuyên dụng như IC MAX232. Vi mạch này tích hợp các bộ đệm và bộ chuyển đổi điện áp cần thiết để làm cầu nối an toàn và đáng tin cậy giữa hai chuẩn tín hiệu khác biệt.

2.2. Sự phức tạp trong việc đồng bộ hóa gửi nhận dữ liệu

Trong giao tiếp không đồng bộ, việc cài đặt chính xác các tham số là tối quan trọng. Cả vi điều khiển và phần mềm trên PC phải được cấu hình với cùng tốc độ baud, số bit dữ liệu, bit chẵn lẻ (parity) và bit dừng (stop bit). Trong lập trình C cho vi điều khiển, thanh ghi TMOD và TH1 thường được sử dụng để tạo ra tốc độ baud mong muốn cho giao tiếp UART. Bất kỳ tính toán sai lầm nào ở bước này sẽ khiến toàn bộ quá trình gửi nhận dữ liệu với PC trở nên vô nghĩa, gây khó khăn trong việc gỡ lỗi.

III. Hướng Dẫn Thiết Kế Phần Cứng Kit 8952 Giao Tiếp PC

Nền tảng của một hệ thống hoạt động ổn định là một thiết kế phần cứng được tính toán kỹ lưỡng. Quá trình thiết kế kit vi điều khiển 8952 giao tiếp với PC bắt đầu từ việc xây dựng sơ đồ nguyên lý mạch 8952 một cách chi tiết. Sơ đồ này phải bao gồm các khối chức năng chính: khối vi xử lý trung tâm với AT89S52, mạch dao động thạch anh, mạch reset, và quan trọng nhất là khối giao tiếp với PC. Luận văn của Bùi Thế Vinh (2000) đã chỉ rõ, khối giao tiếp cần một IC chuyên dụng để chuyển đổi mức điện áp. IC MAX232 là lựa chọn tiêu chuẩn cho nhiệm vụ này, nó chỉ yêu cầu một vài tụ điện bên ngoài để tạo ra các mức điện áp ±12V cần thiết cho chuẩn RS232. Các chân TXD và RXD của vi điều khiển (tương ứng P3.1 và P3.0) được kết nối tới các chân vào/ra mức TTL của MAX232. Các chân ra/vào mức RS232 của IC sau đó được nối tới một cổng DB9 để kết nối với máy tính. Sau khi hoàn thiện sơ đồ nguyên lý, bước tiếp theo là thiết kế mạch in PCB. Một layout mạch tốt sẽ giúp giảm nhiễu, đảm bảo tín hiệu ổn định và làm cho kit có tính thẩm mỹ và chuyên nghiệp hơn.

3.1. Phân tích sơ đồ nguyên lý mạch 8952 và khối giao tiếp

Sơ đồ nguyên lý là bản vẽ kỹ thuật mô tả sự kết nối giữa các linh kiện. Một sơ đồ nguyên lý mạch 8952 hoàn chỉnh bao gồm: Vi điều khiển AT89S52 làm trung tâm. Mạch dao động thạch anh 12MHz cung cấp xung nhịp. Mạch Reset đảm bảo vi điều khiển khởi động đúng trạng thái. Khối giao tiếp sử dụng IC MAX232 để chuyển đổi tín hiệu giữa TTL và RS232. Các kết nối phải tuân thủ datasheet của linh kiện để đảm bảo hoạt động chính xác.

3.2. Vai trò của IC MAX232 trong chuyển đổi tín hiệu TTL RS232

IC MAX232 là trái tim của khối giao tiếp. Nó giải quyết triệt để vấn đề không tương thích điện áp. Bên trong IC chứa hai bộ phát (driver) để chuyển đổi tín hiệu TTL từ AT89S52 thành tín hiệu RS232 để gửi đến PC, và hai bộ nhận (receiver) để thực hiện quá trình ngược lại. Nhờ có MAX232, việc thiết kế phần cứng trở nên đơn giản và đáng tin cậy hơn rất nhiều so với việc xây dựng mạch chuyển đổi từ các linh kiện rời.

IV. Phương Pháp Lập Trình Hệ Thống Gửi Nhận Dữ Liệu Với PC

Phần mềm là linh hồn của hệ thống, quyết định cách thức hoạt động của việc thiết kế kit vi điều khiển 8952 giao tiếp với PC. Quá trình lập trình được chia thành hai phần riêng biệt: firmware cho vi điều khiển và ứng dụng giao diện trên PC. Đối với vi điều khiển AT89S52, ngôn ngữ lập trình phổ biến là C, sử dụng trình biên dịch Keil C. Lập trình viên cần cấu hình các thanh ghi chức năng đặc biệt (SFR) liên quan đến giao tiếp UART như SCON, TMOD và TH1. Thanh ghi SCON dùng để chọn chế độ hoạt động của cổng nối tiếp, trong khi TMOD và TH1 được dùng để cài đặt Timer 1 hoạt động ở chế độ tạo tốc độ baud. Phía máy tính, các ngôn ngữ hiện đại như Visual Studio C# hoặc Python cung cấp các thư viện mạnh mẽ để làm việc với cổng COM. Lập trình viên có thể dễ dàng tạo ra một ứng dụng có giao diện đồ họa (GUI) cho phép người dùng chọn cổng COM, thiết lập tốc độ baud, và có các nút để gửi nhận dữ liệu với PC. Trước khi triển khai trên phần cứng thực, việc sử dụng phần mềm mô phỏng Proteus là một bước không thể thiếu để kiểm tra tính đúng đắn của cả mạch điện và mã nguồn.

4.1. Lập trình C cho vi điều khiển 8952 với Keil C

Môi trường Keil C là công cụ tiêu chuẩn cho lập trình 8051. Đoạn mã nguồn sẽ bao gồm hàm khởi tạo UART để thiết lập tốc độ baud (ví dụ: 9600 bps), các hàm để gửi một ký tự và gửi một chuỗi ký tự qua chân TXD. Việc xử lý ngắt nối tiếp (Serial Interrupt) cũng rất quan trọng để nhận dữ liệu một cách hiệu quả mà không làm gián đoạn các tác vụ khác. Ví dụ, khi một byte được nhận đầy đủ, cờ RI trong thanh ghi SCON sẽ được bật, kích hoạt một trình phục vụ ngắt để đọc dữ liệu từ bộ đệm SBUF.

4.2. Xây dựng giao diện trên PC bằng Visual Studio C

Trong Visual Studio C#, lớp SerialPort cung cấp tất cả các phương thức cần thiết để giao tiếp qua cổng COM. Lập trình viên có thể tạo một giao diện cho phép người dùng chọn cổng COM có sẵn trên hệ thống (ví dụ: COM1, COM3). Các sự kiện như DataReceived cho phép ứng dụng tự động xử lý khi có dữ liệu được gửi từ AT89S52. Giao diện có thể hiển thị dữ liệu nhận được trong một textbox và cho phép người dùng nhập lệnh vào một textbox khác để gửi đi, hiện thực hóa việc điều khiển thiết bị qua máy tính.

4.3. Kỹ thuật mô phỏng Proteus cho toàn bộ hệ thống

Mô phỏng Proteus là một công cụ cực kỳ hữu ích. Nó cho phép người thiết kế vẽ lại toàn bộ sơ đồ nguyên lý mạch 8952 và kết nối nó với một công cụ gọi là 'COMPIM' (Component Object Model Physical Interface Model). COMPIM đóng vai trò là một cổng COM ảo, cho phép mã nguồn mô phỏng trên Proteus giao tiếp trực tiếp với một ứng dụng thực thi trên PC. Điều này giúp gỡ lỗi cả phần cứng và phần mềm một cách nhanh chóng trước khi tiến hành làm mạch in PCB.

V. Ứng Dụng Thực Tiễn Điều Khiển Thiết Bị Qua Máy Tính

Lý thuyết về thiết kế kit vi điều khiển 8952 giao tiếp với PC chỉ thực sự có giá trị khi được áp dụng vào các bài toán thực tế. Năng lực của hệ thống này cho phép triển khai vô số các ứng dụng trong học tập, nghiên cứu và cả sản xuất. Một trong những ứng dụng phổ biến nhất là xây dựng các hệ thống thu thập dữ liệu. Ví dụ, một đồ án vi điều khiển có thể kết nối AT89S52 với cảm biến nhiệt độ LM35. Vi điều khiển sẽ đọc giá trị analog từ cảm biến, chuyển đổi thành giá trị số, và sau đó gửi nhận dữ liệu với PC qua giao tiếp UART. Phần mềm trên máy tính, viết bằng Visual Studio C#, sẽ nhận dữ liệu này, hiển thị nhiệt độ theo thời gian thực và có thể vẽ đồ thị hoặc lưu vào file log. Một hướng ứng dụng khác là điều khiển thiết bị qua máy tính. Bằng cách gửi các lệnh đơn giản từ PC, vi điều khiển có thể điều khiển bật/tắt các relay, điều khiển độ sáng của đèn LED thông qua PWM, hoặc điều khiển động cơ bước. Những ứng dụng này biến máy tính thành một trung tâm điều khiển mạnh mẽ cho các thiết bị ngoại vi.

5.1. Xây dựng đồ án vi điều khiển đo và hiển thị nhiệt độ

Trong đồ án vi điều khiển này, AT89S52 đóng vai trò là bộ não xử lý tín hiệu. Tín hiệu từ cảm biến nhiệt được đọc và xử lý. Sau đó, dữ liệu nhiệt độ được định dạng thành một chuỗi ký tự và gửi đi thông qua cổng nối tiếp. Phần mềm trên PC sẽ phân tích chuỗi này và hiển thị giá trị nhiệt độ một cách trực quan. Hệ thống này có thể được mở rộng để giám sát nhiệt độ trong phòng máy chủ, nhà kính hoặc các quy trình công nghiệp nhỏ.

5.2. Điều khiển relay và thiết bị gia dụng từ giao diện PC

Hệ thống có thể được sử dụng để tạo ra một ngôi nhà thông minh đơn giản. Giao diện trên PC sẽ có các nút bấm ảo tương ứng với các thiết bị (đèn, quạt). Khi người dùng nhấn một nút, một mã lệnh sẽ được gửi tới vi điều khiển AT89S52. Vi điều khiển nhận lệnh, giải mã và xuất tín hiệu ra một cổng I/O để kích hoạt hoặc ngắt một module relay, từ đó điều khiển bật/tắt các thiết bị điện 220V một cách an toàn.

VI. Kết Luận Kit 8952 và Tương Lai Giao Tiếp VĐK PC

Việc thiết kế kit vi điều khiển 8952 giao tiếp với PC sử dụng chuẩn RS232 là một bài học kinh điển và vô cùng giá trị. Nó cung cấp một cái nhìn sâu sắc về các nguyên tắc cơ bản của truyền thông nối tiếp, xử lý tín hiệu và tích hợp hệ thống phần cứng-phần mềm. Giải pháp sử dụng AT89S52IC MAX232 tuy đã cũ so với các công nghệ hiện đại nhưng vẫn là một phương pháp hiệu quả về chi phí, ổn định và dễ triển khai cho các ứng dụng không yêu cầu tốc độ cao. Tuy nhiên, công nghệ không ngừng phát triển. Ngày nay, cổng COM (RS232) đã dần trở nên hiếm hoi trên các máy tính xách tay và máy tính để bàn hiện đại. Xu hướng tất yếu là chuyển sang giao tiếp qua cổng USB, vốn phổ biến và tiện lợi hơn rất nhiều. Các module USB to UART sử dụng chip như CH340 hoặc FT232 đã trở thành giải pháp thay thế hoàn hảo. Các module này không chỉ giải quyết vấn đề kết nối vật lý mà còn tích hợp sẵn mạch chuyển đổi mức logic, giúp đơn giản hóa đáng kể việc thiết kế phần cứng và tạo ra các cổng COM ảo tương thích với các phần mềm cũ.

6.1. Đánh giá ưu nhược điểm của giải pháp AT89S52

Ưu điểm của giải pháp dùng AT89S52 là chi phí thấp, linh kiện dễ tìm, cộng đồng hỗ trợ lớn và là nền tảng tuyệt vời để học về kiến trúc lập trình 8051. Tuy nhiên, nhược điểm là tốc độ xử lý hạn chế, tài nguyên phần cứng ít ỏi so với các dòng vi điều khiển ARM hiện đại và việc giao tiếp qua chuẩn RS232 vật lý đang dần lỗi thời.

6.2. Xu hướng thay thế bằng module USB to UART CH340

Sử dụng module CH340 là bước tiến tự nhiên. Module này kết nối trực tiếp với cổng USB của máy tính và cung cấp các chân TXD, RXD ở mức logic TTL để kết nối thẳng vào vi điều khiển AT89S52 mà không cần IC MAX232. Điều này giúp giảm kích thước mạch, giảm chi phí linh kiện và tăng tính tiện dụng. Hầu hết các hệ điều hành hiện nay đều tự động nhận diện và cài đặt driver cho các module này, tạo ra một cổng COM ảo để các ứng dụng có thể giao tiếp một cách liền mạch.

10/07/2025
Thiết kế kit vi điều khiển 8952 giao tiếp với máy tính

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

CHƯƠNG I: KHẢO SÁT VI ĐIỀU KHIỂN AT89C52 Trang 23 LUẬN VĂN TỐT NGHIỆP SVTH: BÙI THẾ VINH OSC +12 | a Lo-fo- TH2 | TL2 [CONTROL OVERFLOW — TR2 C/T2=1 T2 PIN RELOAD HT TIMER2 - RCAP2H 7 INTERRUP TR ANSITION -~ |-f ore DETECTOR ] $ - _ = D> rxri O-4 n _ | J i aL, CONTROL 1,XI:N2 Hink 1-6: Auto Reload Mode (DCEN = 0) Tim2er TOGGLE OFFH |] OFFH + ¬—¬4 = —* xe | loverrLow] | osc fo} +12 = A Te | TỊ2 TF2 TT eas [CONTROL] | TIMER 2 oO fom INTERRUPT ˆ T2 PIN COUNT RCAP2H|RCAP2H PIRECTION (UP COUNTING RELOAD VALUE) | 0=DOWN Hinh I-7 : Timer 2 Auto Reload Mode (DCEN = 1) CHƯƠNG I: KHAO SAT VI DIEU KHIEN AT89C52 ‘Trang 24 LUẬN VĂN TỐT NGHIỆP. : : SVTH: BÙI THẾ VINH e) Chế độ phát tốc độ baund. Người ta chọn bộ Timer 2 như là bộ phát tốc độ baund bằng cách đặt bit | TCLK và RCLK trong T2CON (xem bảng 2). Chú ý là tốc độ phát và thu có thể khác nhau nếu bộ Timer 2 được dùng cho bộ thu hoặc phát và người ta sử dụng | bộ Timer 1 cho các chức năng khác, việc đặt RCLK hoặc TCLK đặt bộ Timer 2 trong chế độ phát tốc độ baund.

TIMER | OVERFLOW | NOTE OSC FREQ ISDIMIDED BAY 2, NOT 12 ) CSC cet l=) TCONTROL) hogs TR | | p—tem | C/T2= A <—J TPN | RCAPF2H |RCAP2H| TRANSITION 7 DETECTOR L] —N oo EXF2 TIMER 2 2E, PIN T2EX T† GÓNTRoL, INTERRUPT 3 EXEN2 Hinh 1-8 : Timer 2 in Baud Rate Generator Mode. Chế độ phát tốc độ baund tương tự như chế độ tự động nap lại có nghĩa là cùng ấn TH2 làm thanh ghi Timer 2 nap lại với giá trị 16 bit trong thanh ghỉ RCAP2H và RCAP2L và ta cũng có thể đặt lại bằng phần mềm. Người ta xác định công thức tính tốc độ baund tốc độ tràn Timer2 tốc độ baund ở Mode 1 và 3= 16 CHƯƠNG I: KHẢO SAT VI DIEU KHIỂN ATB9C52 ‘Trang 25 LUẬN VĂN TỐT NGHIỆP. SVTH: BÙI THẾ VINH trong hầu hết các ứng dụng người ta đặt cấu hình hoạt động cho bộ Timer va counter là (CP/T2 = 0).

Hoạt động của bộ Timer khác bộ Timer2 khi sử dụng nó như là bộ phát tốc độ baud, bình thường là bộ Timer, nó tăng mỗi chu kỳ máy (1/12 tần số bộ dao động chíp). Tuy nhiên là bộ phát tốc độ baud, nó tăng theo mỗi trạng thái (bằng 1⁄2 tần số dao động trên chip). Công thức tính tốc độ baud như sau: mode] va3 _ số bộ dao động técdébaud 32x [6553 RCAP2H,RCAP2L)] Với (RCAP2H. RCAP2L) là giá trị của RCAP2H, RCAP2L là số nguyên.

Bồ Timer tướng tự như bó phát tốc độ baud, (xem hình 1-8), ở hình này chỉ đúng khi bịt RCL.K hoặc TCL,K bằng [ trong thanh phi T2CON. Chú ý: + Nếu cũng Ấn THỜ thì không đất TE2 và sẽ khóng phát ngắt. PNeu TXNEN2 được đạt chuyển tự } xuống 0 trong T2EX sẽ đặt EXF2. Những sẽ khang nàp bà từ (WCAP2H, RCAI2L) tới €E112, 11.2) mac dt nhu vay bo Timer 2 die diag ah là bộ phát tốc đó baud, 12/-X có thuế được dùng như là MOH NPAT PHU ngoài + Be Timer dang hoat động (TR2 = l) như bộ Timer ởchế độ phát tốc độ baud, TH TL3 sẽ không được đọc hoặc ghi, ở trang thái này, bộ Timer được Ung din, và kết quả đọc hoặc ghi sẽ không đúng, thanh ghi RC.AP2 sẽ đọc nhưng.

Không ghủ bởi vì mỗi lần ghi bị chồng lên, và đó la nguyén nhân tạo ra các lỗi, bộ ‘Timer sé bi ngdt (xóa TR2) lại trước khi truy xuất Timer 2 boặc các thanh ghi RCAP2. d) Chế độ phát xung có thể lập trình được: Xung clock có chu kỳ làm việc là 50% cổ thể lập trình được và đưa đến P1.0 (xem hình 1-9), ở chân này, bên cạnh chân I/O có 2 chức năng luân phiên nhau, nó có thể lập trình được từ nguồn xung clock bên ngoài đưa vào cho bộ tỉmer/counter2 hoặc đưa ra tần số bằng 50% tần số làm việc. Ở dãy tần 61Hz tới 4MHz ở tần số làm việc 16 MHz. Cấu hình bộ Timer/couter 2 giống như máy phát xung clock bit C/T2 (T2CON.1) phải bị xóa, và bit T20E (T2MODI) phải được đặt, bit TR2 (T2CON2) dùng khởi động hoặc dừng bộ Timer.

Tần số chế độ phát xung tùy © thuộc tần số bộ dao động và giá trị nạp lại của các thanh ghi thu nhận Timer 2. (RCAP2H, RCAP2L) công thức tính sau. CHUONG |: KHẢO SÁT VI ĐIỀU KHIỂN AT89C52 Trang 26 LUẬN VĂN TỐT NGHIỆP. : SVTH: BÙI THẾ VINH Tân số bộ dao động Tần số chế độ phát xung Z———————————————— 4x [65536 - (RCAP2H, RCAP2L)] Ở chế độ phát xung, Timer 2 sẽ không phát ngắt, ở chế độ này tương tự như Timer 2 dùng bộ phát tốc độ baud, có thể dùng bộ Timer 2 như bộ phát tốc độ baud và bộ phát xung cùng một lúc, tuy nhiên tốc độ baud và tần số phát xung không thể xác định theo một yếu tố nào khác chỉ khi nào dùng cả RCAP2H và RCAP2L.

¬ 1 TL2 | TH2 OSC + -—+-†⁄ƒ9 (8-BITS) |(8-BITS) | TR2 ị — | | | ˆ (a! | +| r KCAP2H| T RCAP2I. HIRCAmn | plo ¬ _a %1 a | CPN) 2 — 2 mc | Ñ TRANSITION T20E (T2MOD. EXE2 TIMER 2 (T2EX) | INTERRUPT EXEN2 Hình 1-9 : Timer 2 in Clock — Out — Mode I. Giới thiệu : Ngắt là sự xảy ra một diéu kiện - một sự kiện — mà nó gây ra sự treo tạm thời chương trình chính và rẽ nhánh đến một chương trình khác để phục vụ _ chương trình trên.

Chương trình này gọi là chương trình phục vụ ngắt (ISR: Interupt service routine). Khi ISR được thực thi xong chương trình chính được tiếp CHUONG |; KHAO SÁT Vi DIEU KHIỂN AT89C52 ‘Trang 27 LUẬN VĂN TỐT NGHIỆP” SVTH: BÙI THẾ VINH tục ở chỗ mà nó tạm dừng. Như vậy, ngắt có thể xảy ra bất cứ lúc nào và bất cứ nơi đâu trong chương trình chính. Hình ảnh khái quát của ngắt được mô tả dưới đây.

'Thỡi gian ———> Chương tình chính Thực thi chương trình không có ngắt ISR ISR ISR a fax | Y | f ——t Chương tình Chương tình |Chương nh Chương trình chỉnh chính | “HH: ( chính * ngất * * trở về ngắt thực thủ chương trình có ngắt 3. Các ngắt của AT§9C52: AT§9C52 có tổng cộng 6 vectơ ngắt (INTO va INT1), 3 ngdt timer (timer 0, timerl va timer2) và một ngắt port nối tiếp, các ngất này được trình bày như hình 1-10 (xem hình 1-10). Một trong những chương trình ngắt được cho phép hoặc không cho phép lầm việc độc lập bằng cách đặt hoặc xóa bit trong thanh ghi chức năng đặc biệt TE, thanh ghi IE cũng chứa toàn bộ nội dung bit không cho phép thanh ghi EA không cho các ngắt xảy ra cùng một lúc. Trong bảng 1-22 (xem bảng 1-22) trình bày vị trí bit IE.6 thì không được cài đặt còn trong AT§9C5I bịt IE.5 thì không được cài, người sử dụng phần mềm không được viết giá trị 1 vào vị trí bit này.

Ngắt timer 2 được phát bởi cổng OR của các bit TF2, EXF2 trong thanh ghi T2CON. Không có cờ nào bị xóa bởi phần mềm bởi khi cung cấp một chương trình ngắt. Thực tế chương trình ngắt có thể được xác định khi TF2 hoặc EXF2 phát ra tín hiệu ngắt và bit này có thể xóa được bằng phần mềm. HƯƠNG I: KHẢO SÁT VỊ ĐIỀU KHIỂN AT89C52 Trang 28 LUẬN VĂN TỐT NGHIỆP SVTH: BÙI THẾ VINH Các cờ của Timer0 và Timer 1 là TF0 và TFI thì được đặt ở SSŠP2 của chu kỳ trong thời gian các bộ Timer bị tràn sau đó giá trị này được kiểm tra bởi chu kỳ kế tiếp, tuy nhiên cờ của Timer 2 tàTF2 thì được đặt trong S2P2 và cũng được kiểm tra ở chu kỳ kế tiếp.

, m——} I = 1E0 THỦ > oe NHI o Lowel gy Lease TRL TI RI TF2 EXF2 Hình 1-10: Interrupt Sources (MSB) (LSB) EA - | ET2 | ES | ETI | EXI | ET0 | EX0 Bit cho phép=1 cho phép ngắt Bịt cho phép=0 không cho phép ngắt CHƯƠNG I: KHẢO SÁT VI ĐIỀU KHIỂN AT89C52 ‘Trang 29 LUẬN VĂN TỐT NGHIỆP ệ SVTH: BÙI THẾ VINH Ký hiệu Vị trí Chức năng EA IE7 Nếu EA = 0 không cho phép các ngắt Nếu EA = 1 mỗi một nguồn ngắt được cho phép một cách riêng lể hoặc không cho phép đặt hoặc xóa các bit cho phép : IE.6 Không dùng ET2 IE.5 Cho phép bit ngắt Timer 2 Cho phép ngắt port nối tiếp H3 | Cho phép bit ngat Timer 1 t2 | Cho phép bit npat ngoai | Pro et | Cho phép bật ngất Timer0 xo tro | Cho phép bit ng4t ngoai 0 Hing 1-22 Thanh ghi cho phép ngat (IE) W.HOAT DONG PORT NOI TIẾP. Vị điểu khiển §952 có thêm Port nối tiếp hoat đóng ở nhiều chế độ và day Gin so rộng, Chức năng của Port nối tiếp là thực hiền chuyển đổi dữ liệu ra từ song song nối tiếp và từ nối tiếp sang song sonz cho đữ liệu vào. Phần cứng truy xuất Port nối tiếp thông qua các chân TXD và RXD. Các chần này có những chức năng khác nhau (chân tương ứng P3.

Port nối tiếp được đặc trưng bởi hoạt động theo chế độ song công (truyền ˆ và nhận đồng thời) và cách nhận đệm cho phép nhận một ký tự và giữ nó trong, bộ đệm trong kí tự thứ 2 được nhận. Nếu CPU đọc ký tự thứ nhất trước thì ký tự thứ hai được nhận đủ, dữ liệu không bị mất. Hai thanh ghi đặc biệt dùng truy xuất đến Port nối tiếp là SBUF và SCON. Thanh ghi SBUF (đệm Port nối tiếp) ở địa chỉ 99H thật sự là 2 thanh ghi.

Khi ghi vào SBUF là để nạp dữ liệu truyền đi và doc SBUF là truy xuất dữ liệu nhận. Đây là những thanh ghi riêng biệt, thanh ghi truyền là thanh ghi chỉ ghi còn thanh ghi nhận là thanh ghi chỉ đọc. Thanh ghi điều khiển Port nối tiếp SCON ở địa chỉ 98H thanh ghi truy xuất từng bit, chứa các bit trạng thái và các điều khiển. Các bit diéu khiển dùng thiết lập chế độ hoạt động cho Port nối tiếp và các bit trạng thái để sự chấm dứt CHUONG I: KHẢO SÁT VI ĐIỀU KHIỂN AT89C52 Trang 30 LUẬN VĂN TỐT NGHIỆP.

| SVTH: BUI THE VINH việc truyền hoặc nhận 1 ký tự. Các bit trạng thái được kiểm tra bằng phần mềm hoặc được lập trình tạo ngắt. Tân số hoạt động cửa Port nối tiếp tốc độ baud có thể được cố định (lấy từ bộ dao động (ON - CHIP) hay thay đổi được. Nếu sử dụng tốc độ baud thay đổi được thì Timer I cung cấp xung Clock tốc độ baud và phải được lập trình „ tương ứng.

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