Giáo trình vi điều khiển 8051 căn bản và ứng dụng - Donal Heffernan

Tài liệu học vi xử lý 8051 của tác giả Donal Heffernan. Tổng hợp kiến trúc phần cứng, tập lệnh Assembly và các bài thực hành lập trình nhúng cơ bản.

Trường đại học

University of Limerick

Chuyên ngành

Kỹ thuật máy tính

Người đăng

Ẩn danh

Thể loại

Tài liệu hướng dẫn

2002

116
0
0

Phí lưu trữ

35 Point

Tóm tắt

I. Tổng quan giáo trình vi xử lý 8051 tutorial by Donal Heffernan

Giáo trình vi xử lý 8051 của tác giả Donal Heffernan thuộc Đại học Limerick là tài liệu kinh điển trong lĩnh vực điện tử nhúng. Bộ tài liệu hệ thống hóa toàn bộ kiến thức cơ bản về họ vi điều khiển MCS-51 huyền thoại. Cấu trúc bài giảng bao gồm sáu chương lý thuyết cốt lõi kèm theo ba phụ lục bài tập và công cụ Keil. Tác phẩm đặt trọng tâm vào việc phân tích vi kiến trúc phần cứng nội tại và cơ chế giao tiếp bus bên ngoài. Tác giả trình bày phương pháp tiếp cận từ trực quan sơ đồ khối đến mã lệnh điều khiển cụ thể. Nội dung phân biệt rõ sự khác biệt giữa vi điều khiển chuyên dụng cho hệ thống nhúng và vi xử lý máy tính như Pentium. Bộ tài liệu đóng vai trò nền tảng cho sinh viên kỹ thuật tiếp cận kiến trúc máy tính. Tác phẩm làm rõ các khái niệm về bộ nhớ RAM nội bộ, thanh ghi chức năng đặc biệt SFR và bus địa chỉ 16-bit. Các kỹ sư hệ thống thường xuyên sử dụng tài liệu này để tra cứu nguyên lý điều khiển ngoại vi và định thời.

1.1. Bối cảnh học thuật và nguồn gốc tài liệu Donal Heffernan

Tài liệu do Giáo sư Donal Heffernan biên soạn tại Đại học Limerick vào đầu những năm 2000 nhằm phục vụ chương trình đào tạo kỹ sư mạng máy tính và hệ thống nhúng. Giáo trình kết hợp các tài liệu kinh điển của Scott MacKenzie và Intel Corporation. Tác giả liên kết trực tiếp bài giảng với các họ vi điều khiển công nghiệp từ Intel, Philips, Infineon và Analog Devices ADuC812. Bộ giáo trình chuẩn hóa quy trình thực hành từ lý thuyết phần cứng đến mô phỏng hợp ngữ bằng phần mềm Keil C51. Tài liệu giữ giá trị tham khảo học thuật bền vững qua nhiều thế hệ sinh viên kỹ thuật.

1.2. Mục tiêu đào tạo và phương pháp tiếp cận vi điều khiển 8051

Mục tiêu trọng tâm của bài giảng là trang bị tư duy điều khiển mức thanh ghi cho người học. Giáo trình không dạy lập trình trừu tượng mà đi thẳng vào cấu trúc phần cứng vật lý. Từng khối chức năng như bộ giải mã lệnh, thanh ghi tạm thời và khối tính toán logic ALU đều được phân tích chi tiết. Người học nắm bắt chuẩn xác luồng dữ liệu di chuyển trên bus nội bộ 8-bit và bus ngoài 16-bit. Phương pháp này rèn luyện khả năng tối ưu hóa bộ nhớ và tốc độ thực thi cho các ứng dụng nhúng thời gian thực.

II. Phân tích kiến trúc vi xử lý 8051 qua bài giảng Donal Heffernan

Kiến trúc phần cứng của 8051 dựa trên cấu trúc Harvard biến thể với không gian nhớ mã lệnh ROM và bộ nhớ dữ liệu RAM tách biệt. Tài liệu của Donal Heffernan phân tích sâu cấu trúc bộ nhớ nội bộ 128 byte và khả năng mở rộng bộ nhớ ngoài lên đến 64KB. Vấn đề cốt lõi trong thiết kế vi điều khiển cổ điển là sự giới hạn tài nguyên tính toán và dung lượng bộ nhớ. Bộ nhớ RAM nội bộ được phân chia thành ba phân vùng riêng biệt. Phân vùng đáy chứa bốn băng thanh ghi R0 đến R7 phục vụ chuyển đổi ngữ cảnh nhanh chóng. Phân vùng tiếp theo là vùng nhớ định địa chỉ theo từng bit độc đáo từ địa chỉ 20H đến 2FH. Phân vùng đỉnh dành cho các thanh ghi chức năng đặc biệt SFR và ngăn xếp Stack. Thách thức lớn đối với kỹ sư nhúng là việc phân bổ con trỏ dữ liệu DPTR và quản lý bus P0, P2 khi giao tiếp bộ nhớ ngoài. Việc dồn kênh bus địa chỉ và dữ liệu trên cổng Port 0 đòi hỏi tín hiệu ALE điều khiển chốt ngoại vi chính xác.

2.1. Cấu trúc bộ nhớ nội bộ và thanh ghi chức năng đặc biệt

Tài liệu Heffernan làm rõ cấu trúc 128 byte RAM nội bộ cùng các thanh ghi chức năng đặc biệt SFR. Thanh ghi tích lũy ACC và thanh ghi phụ B đóng vai trò then chốt trong các phép toán số học. Từ trạng thái chương trình PSW lưu trữ các cờ nhớ C, cờ tràn OV và các bit chọn băng thanh ghi RS0, RS1. Vùng nhớ bit-addressable cho phép xử lý trực tiếp 128 bit logic mà không cần lệnh mặt nạ phức tạp. Cơ chế này giúp tối ưu hóa dung lượng mã lệnh và tăng tốc độ xử lý tác vụ điều khiển logic.

2.2. Giao tiếp bus ngoại vi và quản lý tín hiệu điều khiển

Giao tiếp bus ngoại vi là nội dung kỹ thuật phức tạp được phân tích cụ thể trong tài liệu. Cổng Port 0 hoạt động như bus đa hợp vừa truyền byte địa chỉ thấp vừa nhận byte dữ liệu. Tín hiệu ALE kích hoạt vi mạch chốt 74HC573 để giữ địa chỉ cố định trong chu kỳ đọc bộ nhớ. Các đường điều khiển RD, WR và PSEN định hướng chính xác thao tác truy xuất dữ liệu RAM ngoài hoặc đọc mã lệnh từ ROM. Sự phối hợp xung nhịp thạch anh 12MHz quy định chu kỳ máy 1 microgiây chuẩn xác cho toàn bộ hệ thống.

III. Phương pháp lập trình vi xử lý 8051 tutorial by Donal Heffernan

Donal Heffernan xây dựng phương pháp lập trình tập trung vào ngôn ngữ hợp ngữ Assembly với tính chuẩn xác cao. Tập lệnh 8051 được phân loại thành nhóm lệnh chuyển dữ liệu, tính toán số học, thao tác logic Boolean và điều khiển rẽ nhánh. Điểm đặc sắc nhất trong tài liệu là kỹ thuật xử lý bit đơn trực tiếp thông qua các lệnh SETB, CLR và CPL. Hệ thống ngắt được trình bày như một giải pháp cốt lõi cho các bài toán điều khiển thời gian thực. Bảng vectơ ngắt cố định tại các địa chỉ 0003H, 000BH, 0013H, 001BH và 0023H đảm bảo phản hồi tức thì với sự kiện phần cứng. Tác giả minh họa cơ chế hoạt động ngắt qua bài toán điều khiển lò sưởi nhiệt độ với hai ngắt ngoài INT0 và INT1. Ngoài ra, tài liệu hướng dẫn kỹ thuật tạo hàm trễ phần mềm và cấu hình hai bộ định thời Timer 0, Timer 1. Các chế độ định thời 13-bit, 16-bit và tự động nạp lại 8-bit cung cấp giải pháp tạo xung nhịp và tạo tốc độ baud cho cổng nối tiếp UART.

3.1. Kỹ thuật lập trình ngắt và chương trình phục vụ ngắt ISR

Tài liệu phân tích quy trình cấu hình thanh ghi cho phép ngắt IE và thanh ghi ưu tiên ngắt IP. Khi xảy ra tín hiệu ngắt phần cứng hợp lệ, con trỏ chương trình PC tự động lưu vào ngăn xếp Stack và nhảy đến địa chỉ vector tương ứng. Tác giả nhấn mạnh việc sử dụng lệnh RETI để kết thúc chương trình con phục vụ ngắt nhằm phục hồi trạng thái hệ thống. Ví dụ điều khiển lò sưởi trong tài liệu chứng minh tính hiệu quả của phương pháp ngắt cạnh kích hoạt âm so với phương pháp quét vòng lặp truyền thống.

3.2. Cấu hình bộ định thời Timer và cổng giao tiếp nối tiếp Serial

Bộ định thời trong 8051 vận hành thông qua việc thiết lập hai thanh ghi TMOD và TCON. Donal Heffernan hướng dẫn chi tiết cách tính toán giá trị nạp trước để tạo khoảng thời gian trễ chính xác. Chế độ 2 tự động nạp lại 8-bit được ứng dụng để tạo xung nhịp chuẩn cho cổng truyền thông nối tiếp UART. Thanh ghi SCON và bộ đệm SBUF quản lý truyền nhận dữ liệu theo chuẩn RS232 bất đồng bộ. Các ví dụ mẫu cung cấp mã lệnh hợp ngữ hoàn chỉnh cho việc truyền ký tự và thiết lập tốc độ truyền dữ liệu.

IV. Ứng dụng thực tiễn của vi xử lý 8051 tutorial by Donal Heffernan

Giáo trình của Donal Heffernan khẳng định vị thế bền vững của họ vi xử lý 8051 trong các hệ thống tự động hóa công nghiệp và thiết bị gia dụng. Kiến trúc 8051 vẫn được tích hợp rộng rãi trong các vi mạch SoC hiện đại nhờ kích thước nhỏ gọn và chi phí sản xuất thấp. Bài giảng cung cấp các ví dụ thực tiễn về ghép nối bàn phím ma trận, màn hình hiển thị và cảm biến công nghiệp. Việc làm chủ tài liệu 8051 tutorial by Donal Heffernan tạo nền tảng tư duy vững chắc cho các kỹ sư phát triển firmware nhúng. Kỹ năng làm việc trực tiếp với thanh ghi, quản lý ngăn xếp và ngắt phần cứng là kiến thức cốt lõi không thể thay thế. Các môi trường phát triển hiện đại như Keil IDE và bộ vi điều khiển tích hợp như ADuC812 tiếp tục kế thừa nguyên lý từ tài liệu này. Giá trị học thuật của bài giảng nằm ở sự kết nối liền mạch giữa lý thuyết phần cứng và kỹ thuật lập trình cấp thấp.

4.1. Ứng dụng trong thiết bị điều khiển công nghiệp và gia dụng

Vi điều khiển 8051 xuất hiện phổ biến trong các hệ thống điều khiển nhiệt độ, biến tần và thiết bị đo lường công nghiệp. Khả năng thao tác trực tiếp trên từng bit logic biến chip 8051 thành bộ điều khiển logic khả trình PLC thu nhỏ giá rẻ. Các thiết bị gia dụng như máy giặt, lò vi sóng và hệ thống báo trộm đều ứng dụng lõi vi xử lý này để thực thi tác vụ giám sát. Nhờ tính ổn định cao và khả năng chống nhiễu tốt, vi điều khiển 8051 đáp ứng trọn vẹn yêu cầu vận hành liên tục trong môi trường khắc nghiệt.

4.2. Giá trị đào tạo kỹ thuật nhúng và cầu nối công nghệ hiện đại

Trong giáo dục kỹ thuật, bài giảng của Donal Heffernan giữ vai trò giáo trình nền móng trước khi tiếp cận ARM Cortex hay RISC-V. Sinh viên hiểu rõ cơ chế biên dịch từ hợp ngữ sang mã máy nhị phân và cách phần cứng thực thi từng chu kỳ lệnh. Kiến thức về phân bổ bộ nhớ và giao tiếp ngoại vi từ 8051 giúp kỹ sư tối ưu mã nguồn C nhúng hiệu quả hơn. Tài liệu là tài sản học thuật quý giá, định hình phương pháp tư duy kỹ thuật chuẩn xác cho các nhà phát triển hệ thống nhúng toàn cầu.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

05/06/2026
Vi xử lý 8051 tutorail by donal heffernan

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

8051 TUTORIAL Donal Heffernan University of Limerick May-2002 8051 Tutorial D.Heffernan © 2000, 2001 1 Blank 8051 Tutorial D.Heffernan © 2000, 2001 2 Some reference material: Test books + MacKenzie Scott. The 8051 Microcontroller, Prentice Hall., 1999 + Yeralan and Ahluwalia. Programming and Interfacing the 8051 Microcontroller. Server (Shared folder) Go to ‘Network Neighborhood’, then ‘Entire Network’, then pick Domain ‘Intel_Data_Comm’ and choose the server ‘Intel_Comm’.

In the folder ‘ET4514’ you will find the required information Web Sites 8052 tutorial information by Vault Information Services: http://www.com Intel’s site for 8051 based products: http://developer.com/design/mcs51/ Philips’ site for 8051 based products: http://www-us.com/microcontrol/ Infineon (formerly Siemens) site for 8051 based products: http://www.com/products/micro/micro.htm Keil development tools: http://www.htm Information on Analog Devices ADuC812 (8051/8052 compatible processor): www.Heffernan © 2000, 2001 3 CONTENTS Chapter 1 8051 Microcomputer Overview 6 Chapter 2 A Simple Design Example 31 Chapter 3 Software Delay Routines 36 Chapter 4 Interrupts 45 Chapter 5 Timer/Counters 53 Chapter 6 The 8051 Serial Port 65 Appendix A Example Term Assignments A1 Appendix B Sample Exam Questions & Answers B1 Appendix C A Brief Introduction to Using Keil Tools C1 8051 Tutorial D.Heffernan © 2000, 2001 5 Chapter 1 8051 Microcomputer Overview 1.1 shows a functional block of the internal operation of an 8051 microcomputer. The internal components of the chip are shown within the broken line box. ADDRESS BUS (External) 16 bit Internal Memory Memory Address Register (Uses P0 and P2) I-RAM General Registers STACK DPTR Bit-addressable P. DATA BUS (External) 8 bit Internal data bus Instruction Acc Register B Accumulator Instruction Temporary Temporary decoder/ register register control logic PSW flags C AC F0 RS1 RS2 ALU OV 8-bit P Control Lines RD/ WR/ PSEN/ ALE/ etc.1 8051 functional block diagram.2 shows the external code memory and data memory connected to the 8051 chip.

Note – part of the external code memory can be located within the chip but we will ignore this feature for now. Also, variants of the chip will allow a lot more memory devices and I/O devices to be accommodate within the chip but such enhanced features will not be considered right now. ADDRESS BUS (16-bit) 12MHz External External 8051 DATA CODE Memory Memory (RAM) (ROM) control lines I-RAM DATA BUS (8-bit) I/O ports e.2 8051 chip with external memory 8051 Tutorial D.Heffernan © 2000, 2001 7 A quick comparison with the well known Pentium processor A modern PC is powered by a Pentium processor (or equivalent), which is really a very powerful microprocessor. Where the 8051 microcontroller represents the low end of the market in terms of processing power, the Pentium processor is one of the most complex processors in the world.3 shows a simplified block diagram of the Pentium processor and a simple comparison between the 8051 and the Pentium is given in the table below.

1,000MHz ADDRESS BUS (32-bit) (1 GHz.) PENTIUM The Pentium's Memory Chip Space multiple 32-bit ALUs control lines (Super- scalar) DATA BUS (64-bit) Figure 1.3 Simplified diagram of a Pentium processor Simple comparison: Pentium vs. 8051 FEATURE 8051 PENTIUM COMMENT Clock Speed 12Mhz.) 8051 internally divides clock but 60MHz. ICs by 12 so for 12MHz. clock available effective clock rate is just 1MHz.

Address bus 16 bits 32 bits 8051 can address 216, or 64Kbytes of memory. Pentium can address 232, or 4 GigaBytes of memory. Data bus 8 bits 64 bits Pentium’s wide bus allows very fast data transfers. ALU width 8 bits 32 bits But - Pentium has multiple 32 bit ALUs – along with floating-point units.

Applications Domestic appliances, Personal Computers Peripherals, automotive And other high etc. Power Small fraction of a watt Tens of watts Pentium runs hot as power consumption consumption increases with frequency. Cost of chip About 2 Euros. In About 200 Euros – volume Depending on spec.Heffernan © 2000, 2001 8 The basic 8051 chip includes a number of peripheral I/O devices including two t Timer/Counters, 8-bit I/O ports, and a UART.

The inclusion of such devices on the 8051 chip is shown in figure 1. These I/O devices will be described later. ADDRESS BUS (External) 16 bit Internal Memory Memory Address Register I-RAM (Uses P0 and P2) General Registers STACK DPTR Bit-addressable P. DATA BUS (External) 8 bit Internal data bus Instruction Acc Register B Accumulator Instruction Temporary Temporary decoder/ register register control logic PSW flags C AC F0 RS1 RS2 ALU OV 8-bit Control Lines P Port 1 Timer/ Timer/Couter etc.

Counter 0 1 UART RD/ WR/ PSEN/ ALE/ etc.4 8051 showing the on-chip I/O devices 8051 Tutorial D.2 MEMORY AND REGISTER ORGANISATION The 8051 has a separate memory space for code (programs) and data. We will refer here to on-chip memory and external memory as shown in figure 1. In an actual implementation the external memory may, in fact, be contained within the microcomputer chip. However, we will use the definitions of internal and external memory to be consistent with 8051 instructions which operate on memory.

Note, the separation of the code and data memory in the 8051 architecture is a little unusual. The separated memory architecture is referred to as Harvard architecture whereas Von Neumann architecture defines a system where code and data can share common memory. FFFFh External 8051 chip DATA Memory (up to 64KB) Internal RAM Memory 0000h Internal SFRs FFFFh External Internal CODE RAM Memory (up to 64KB) ROM 0000h Figure 1.5 8051 Memory representation External Code Memory The executable program code is stored in this code memory. The code memory size is limited to 64KBytes (in a standard 8051).

The code memory is read-only in normal operation and is programmed under special conditions e. it is a PROM or a Flash RAM type of memory. External RAM Data Memory This is read-write memory and is available for storage of data. Up to 64KBytes of external RAM data memory is supported (in a standard 8051).

Internal Memory The 8051’s on-chip memory consists of 256 memory bytes organised as follows: First 128 bytes: 00h to 1Fh Register Banks 20h to 2Fh Bit Addressable RAM 30 to 7Fh General Purpose RAM Next 128 bytes: 80h to FFh Special Function Registers The first 128 bytes of internal memory is organised as shown in figure 1.6, and is referred to as Internal RAM, or IRAM.Heffernan © 2000, 2001 10 Byte Address Bit address b7 b6 b5 b4 b3 b2 b1 b0 7Fh General purpose RAM area. 80 bytes 30h 2Fh 7F 78 2Eh 77 70 2Dh 6F 68 2Ch 67 60 Internal Memory 2Bh 5F 58 FFh 2Ah 57 50 29h 4F 48 SFRs 28h 47 40 27h 3F 38 80h 26h 37 30 7Fh 25h 2F 28 24h 27 20 Internal 23h 1F 18 RAM 22h 17 10 21h 0F 08 00h 20h 07 00 1Fh Regs 0 .7 (Bank 1) Register Bank 0 08h 07h Reg.6 Organisation of Internal RAM (IRAM) memory Register Banks: 00h to 1Fh The 8051 uses 8 general-purpose registers R0 through R7 (R0, R1, R2, R3, R4, R5, R6, and R7). These registers are used in instructions such as: ADD A, R2 ; adds the value contained in R2 to the accumulator Note since R2 happens to be memory location 02h in the Internal RAM the following instruction has the same effect as the above instruction.Heffernan © 2000, 2001 11 Now, things get more complicated when we see that there are four banks of these general-purpose registers defined within the Internal RAM. For the moment we will consider register bank 0 only.

Register banks 1 to 3 can be ignored when writing introductory level assembly language programs. Bit Addressable RAM: 20h to 2Fh The 8051 supports a special feature which allows access to bit variables. This is where individual memory bits in Internal RAM can be set or cleared. In all there are 128 bits numbered 00h to 7Fh.

Being bit variables any one variable can have a value 0 or 1. A bit variable can be set with a command such as SETB and cleared with a command such as CLR. Example instructions are: SETB 25h ; sets the bit 25h (becomes 1) CLR 25h ; clears bit 25h (becomes 0) Note, bit 25h is actually bit b5 of Internal RAM location 24h. The Bit Addressable area of the RAM is just 16 bytes of Internal RAM located between 20h and 2Fh.

So if a program writes a byte to location 20h, for example, it writes 8 bit variables, bits 00h to 07h at once. Note bit addressing can also be performed on some of the SFR registers, which will be discussed later on. General Purpose RAM: 30h to 7Fh These 80 bytes of Internal RAM memory are available for general-purpose data storage. Access to this area of memory is fast compared to access to the main memory and special instructions with single byte operands are used.

However, these 80 bytes are used by the system stack and in practice little space is left for general storage. The general purpose RAM can be accessed using direct or indirect addressing modes. Examples of direct addressing: MOV A, 6Ah ; reads contents of address 6Ah to accumulator Examples for indirect addressing (use registers R0 or R1): MOV R1, #6Ah ; move immediate 6Ah to R1 MOV A, @R1 ; move indirect: R1 contains address of Internal RAM which contains data that is moved to A. These two instructions have the same effect as the direct instruction above.

SFR Registers The SFR registers are located within the Internal Memory in the address range 80h to FFh, as shown in figure 1. Not all locations within this range are defined. Each SFR has a very specific function. Each SFR has an address (within the range 80h to FFh) and a name which reflects the purpose of the SFR.

Although 128 byes of the SFR 8051 Tutorial D.Heffernan © 2000, 2001 12 address space is defined only 21 SFR registers are defined in the standard 8051. Undefined SFR addresses should not be accessed as this might lead to some unpredictable results. Note some of the SFR registers are bit addressable. SFRs are accessed just like normal Internal RAM locations.

Byte Bit address address b7 b6 b5 b4 b3 b2 b1 b0 FFh F0h B * E0h A (accumulator) * D0h PSW * B8h IP * B0h Port 3 (P3) * Internal Memory FFh A8h IE * SFRs A0h Port 2 (P2) * 80h 99h SBUF 7Fh 98h SCON * Internal 90h Port 1 (P1) * RAM 8Dh TH1 00h 8Ch TH0 8Bh TL1 8Ah TL0 89h TMOD 88h TCON * 87h PCON 83h DPH 82h DPL 81h SP 80h Port 0 (P0) * * indicates the SFR registers which are bit addressable Figure 1.7 SFR register layout We will discuss a few specific SFR registers here to help explain the SFR concept. Other specific SFR will be explained later. Port Registers SFR The standard 8051 has four 8 bit I/O ports: P0, P1, P2 and P3.Heffernan © 2000, 2001 13 For example Port 0 is a physical 8 bit I/O port on the 8051. Read (input) and write (output) access to this port is done in software by accessing the SFR P0 register which is located at address 80h.

SFR P0 is also bit addressable. Each bit corresponds to a physical I/O pin on the 8051. Example access to port 0: SETB P0.7 ; sets the MSB bit of Port 0 CLR P0.7 ; clears the MSB bit of Port 0 The operand P0.7 uses the dot operator and refers to bit 7 of SFR P0. The same bit could be addressed by accessing bit location 87h.

Thus the following two instructions have the same meaning: CLR P0.7 CLR 87h PSW Program Status Word PSW, the Program Status Word is at address D0h and is a bit-addressable register. The status bits are listed in table 1. Program status word (PSW) flags Symbol Bit Address Description C (or CY) PSW.7 D7h Carry flag AC PSW.6 D6h Auxiliary carry flag F0 PSW.

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