1. Trang chủ
  2. » Luận Văn - Báo Cáo

thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051

89 562 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 89
Dung lượng 1,6 MB

Nội dung

Tín hiệu PSEN ở mức Logic 0 trong suất thời gian tìm nạp lệnh, các mã nhị phân của chương trình hay mã thao tác Opcode được đọc từ EPROM qua BUS dữ liệu và được chốt vào thanh ghi IR của

Trang 1

Luận văn tốt nghiệp

cáo trong vi điều khiển họ

8051”

Trang 2

Đề tài thiết kế Hệ Thống Quảng Cáo

CHƯƠNG I TỔNG QUAN VỀ HỌ VI XỬ LÝ 8051

I NHỮNG ĐẶC ĐIỂM CƠ BẢN HỌ VI XỬ LÝ 8051

1.Tóm tắt về lịch sử của 8051

Vào năm 1981, hãng Intel giới thiệu một số bộ vi điều khiển được gọi là

8051 Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM, hai bộ định thời, một cổng nối tiếp và 4 cổng 8 bit Tất cả đều được tích hợp trên một

chíp Lúc bấy giờ, bộ vi điều khiển như vậy được coi là một “hệ thống trên chíp” 8051 là một bộ xử lý 8 bit, tức là CPU chỉ có thể làm việc với 8 bit

dữ liệu Dữ liệu lớn hơn 8 bit được chia ra thành các dữ liệu 8 bit để xử lý

8051 có tất cả 4 cổng I/O mỗi cổng rộng 8 bit, có thể có một ROM trên chíp cực đại là 64 K byte Tuy nhiên, lúc đó các nhà sản xuất đã cho xuất xưởng chỉ với 4K byte ROM trên chíp 8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sản xuất khác sản xuất và bán bất kỳ dạng biến thể nào của 8051 mà họ thích với điều kiện họ phải để mã chương trình tương thích với 8051 Từ đó dẫn đến sự ra đời nhiều phiên bản của 8051 với các tốc độ khác nhau Tuy nhiên, điều quan trọng là mặc dù có nhiều biến thể của 8051, như khác nhau về tốc độ và dung lượng nhớ ROM trên chíp, nhưng tất cả các lệnh đều tương thích với 8051 ban đầu Điều này có nghĩa

Trang 3

là nếu ta viết chương trình của mình cho một phiên bản nào đó thì nó cũng

sẽ chạy với mọi phiên bản bất kỳ khác mà không phân biệt nó từ hãng sản xuất nào

2 Bộ ví điều khiển 8051

Bộ vi điều khiển 8051 là thành viên đầu tiên của họ 8051 Hãng Intel

ký hiệu nó như là MCS51

Bảng 1.1 Các đặc tính của 8051 đầu tiên

3 Sơ đồ khối chung của họ vi điều khiển 8051

Interrupt control : Điều khiển ngắt

Other registers : Các thanh ghi khác

128 Byte RAM : RAM 128 Byte

Trang 4

I/O ports: Các ports vào/ ra

Serial port: port nối tiếp

Address/data : địa chỉ/ dữ liệu

Hình 1.1 Bố trí bên trong của sơ đồ khối 8051

INT 1 INT 0

CPU

Oscillator Bus control

EA RST

ALE PSEN

RXD TXD

P 0 P 1 P 2 P 3 Address/Data

Other registers 128 ByteRAM

128 Byte RAM (8032/8052) ROM

0K - 8031/8032 4K - 8051 8K - 8052

Timer 0 Timer 1

Timer 2 (8032/8052)

T 0

T 1

T 2

T 2 EX

Trang 5

Bộ vi điều khiển 8052 là một thành viên khác của họ 8051, 8052 có

tất cả các đặc tính chuẩn của 8051 ngoài ra nó có thêm 128 byte RAM và

một bộ định thời nữa Hay nói cách khác là 8052 có 256 byte RAM 3 bộ

định thời và có 8K byte ROM trên chíp thay vì 4K byte như 8051

ROM trên chíp 4K byte 8K byte

RAM 128 byte 256 byte 128 byte

Như nhìn thấy từ bảng 1.2 thì 8051 là tập con của 8052, do vậy tất cả

mọi chương trình viết cho 8051 đều chạy trên 8052 nhưng điều ngược lại là

không đúng

2 Bộ vi điều khiển 8031:

Một thành viên khác nữa của 8051 là chíp 8031 Chíp này thường

được coi như là 8051 không có ROM trên chíp vì nó có OK byte ROM trên

chíp Để sử dụng chíp này ta phải bổ xung ROM ngoài cho nó ROM ngoài

phải chứa chương trình mà 8031 sẽ nạp và thực hiện So với 8051 mà

chương trình được chứa trong ROM trên chíp bị giới hạn bởi 4K byte, còn

ROM ngoài chứa chương trinh được gắn vào 8031 thì có thể lớn đến 64K

byte Khi bổ xung cổng, như vậy chỉ còn lại 2 cổng để thao tác Để giải

Trang 6

với bộ nhớ và cổng vào - ra chẳng hạn với chíp 8255 Ngoài ra còn có các phiên bản khác nhau về tốc độ của 8031 từ các hãng sản xuất khác nhau

3 Các bộ vi điều khiển 8051 từ các hãng khác nhau

Mặc dù 8051 là thành viên phổi biến nhất của họ 8051 nhưng chúng

ta sẽ thấy nó trong kho linh kiện Đó là do 8051 có dưới nhiều dạng kiểu

bộ nhớ khác nhau như UV - PROM, Flash và NV - RAM mà chúng đều có

số đăng ký linh kiện khác nhau Phiên bản UV-PROM của 8051 là 8751 Phiên bản Flash ROM được bán bởi nhiều hãng khác nhau chẳng hạn của Atmel corp với tên gọi là AT89C51 còn phiên bản NV-RAM của 8051 do Dalas Semi Conductor cung cấp thì được gọi là DS5000 Ngoài ra còn có phiên bản OTP (khả trình một lần) của 8051 được sản xuất bởi rất nhiều hãng

3.1 Bộ vi điều khiển 8751

Chíp 8751 chỉ có 4K byte bộ nhớ UV-EPROM trên chíp Để sử dụng chíp này để phát triển yêu cầu truy cập đến một bộ đốt PROM cũng như bộ xoá UV- EPROM để xoá nội dung của bộ nhớ UV-EPROM bên trong 8751 trước khi ta có thể lập trình lại nó Do một thực tế là ROM trên chíp đối với

8751 là UV-EPROM nên cần phải mất 20 phút để xoá 8751 trước khi nó có thể được lập trình trở lại Điều này đã dẫn đến nhiều nhà sản xuất giới thiệu các phiên bản FLASH ROM và UV-RAM của 8051 Ngoài ra còn có nhiều phiên bản với các tốc độ khác nhau của 8751 từ nhiều hãng khác nhau

3.2 Bộ vi điều khiển AT8951 từ Atmel Corporation

Chíp 8051 phổ biến này có ROM trên chíp ở dạng bộ nhớ Flash Điều này là lý tưởng đối với những phát triển nhanh vì bộ nhớ Flash có thể được xoá trong vài giây trong tương quan so với 20 phút hoặc hơn mà 8751 yêu cầu Vì lý do này mà AT89C51 để phát triển một hệ thống dựa trên bộ

Trang 7

vi điều khiển yêu cầu một bộ đốt ROM mà có hỗ trợ bộ nhớ Flash Tuy nhiên lại không yêu cầu bộ xoá ROM Lưu ý rằng trong bộ nhớ Flash ta phải xoá toàn bộ nội dung của ROM nhằm để lập trình lại cho nó Việc xoá

bộ nhớ Flash được thực hiện bởi chính bộ đốt PROM và đây chính là lý do tại sao lại không cần đến bộ xoá Để loại trừ nhu cầu đối với một bộ đốt PROM hãng Atmel đang nghiên cứu một phiên bản của AT 89C51 có thể được lập trình qua cổng truyền thông COM của máy tính IBM PC

Số linh kiện ROM RAM Chân I/O Timer Ngắt Vcc Đóng vỏ

AT89C1051 1K 64 15 1 3 3V 20 AT89C2051 2K 128 15 2 6 3V 20

Bảng 1.3: Các phiên bản của 8051 từ Atmel (Flash ROM)

Chữ C trong ký hiệu AT89C51 là CMOS

Cũng có những phiên bản đóng vỏ và tốc độ khác nhau của những sản phẩm trên đây xem bảng 1.4 Ví dụ để ý rằng chữ “C” đứng trước số 51 trong AT 89C51 -12PC là ký hiệu cho CMOS “12” ký hiệu cho 12 MHZ và

“P” là kiểu đóng vỏ DIP và chữ “C” cuối cùng là ký hiệu cho thương mại (ngược với chữ “M” là quân sự ) Thông thường AT89C51 - 12PC rất lý tưởng cho các dự án của học sinh, sinh viên

Mã linh kiện Tốc độ Số chân Đóng vỏ Mục đích

AT89C51-12PC 42MHZ 40 DTP Thương mại

Bảng 1.4: Các phiên bản 8051 với tốc độ khác nhau của Atmel

Trang 8

Một phiên bản phổ biến khác nữa của 8051 là DS5000 của hãng Dallas Semiconductor Bộ nhớ ROM trên chíp của DS5000 ở dưới dạng NV-RAM Khả năng đọc/ ghi của nó cho phép chương trình được nạp vào ROM trên chíp trong khi nó vẫn ở trong hệ thống (không cần phải lấy ra) Điều này còn có thể được thực hiện thông qua cổng nối tiếp của máy tính IBM PC Việc nạp chương trình trong hệ thống (in-system) của DS5000 thông qua cổng nối tiếp của PC làm cho nó trở thành một hệ thống phát triển tại chỗ lý tưởng Một ưu việt của NV-RAM là khả năng thay đổi nội dung của ROM theo từng byte tại một thời điểm Điều này tương phản với

bộ nhớ Flash và EPROM mà bộ nhớ của chúng phải được xoá sạch trước khi lập trình lại cho chúng

40

40

40

40

Bảng 1.5: Các phiên bản 8051 từ hãng Dallas Semiconductor

Chữ “T” đứng sau 5000 là có đồng hồ thời gian thực

Lưu ý rằng đồng hồ thời gian thực RTC là khác với bộ định thời Timer RTC tạo và giữ thời gian l phút giờ, ngày, tháng - năm kể cả khi tắt nguồn

Còn có nhiều phiên bản DS5000 với những tốc độ và kiểu đóng gói khác nhau Ví dụ DS5000-8-8 có 8K NV-RAM và tốc độ 8MHZ Thông thường DS5000-8-12 hoặc DS5000T-8-12 là lý tưởng đối với các dự án của sinh viên

Trang 9

12MHz 8MHz 8MHz (with RTC) 12MHz

12MHz (with RTC)

Bảng 1.6: Một số thành viên của họ 8051

3.4 Phiên bản OTP của 8051

Các phiên bản OTP của 8051 là các chíp 8051 có thể lập trình được

một lần và được cung cấp từ nhiều hãng sản xuất khác nhau Các phiên bản

Flash và NV-RAM thường được dùng để phát triển sản phẩm mẫu Khi một

sản phẩm được thiết kế và được hoàn thiện tuyệt đối thì phiên bản OTP

của 8051 được dùng để sản hàng loạt vì giá thành một đơn vị sản phẩm sẽ

rẻ hơn

3.5 Họ 8051 từ Hãng Philips

Một nhà sản xuất chính của họ 8051 khác nữa là Philips Corporation

Thật vậy, hãng này có một dải lựa chọn rộng lớn cho các bộ vi điều khiển

họ 8051 Nhiều sản phẩm của hãng đã có kèm theo các đặc tính như các bộ

chuyển đổi ADC, DAC, cổng I/0 mở rộng và cả các phiên bản OTP và

Flash

Trang 10

CHƯƠNG II GIỚI THIỆU VI ĐIỀU KHIỂN AT89C51

1 Sơ Đồ Khối Của Vi Điều Khiển AT89C51

P1.0 - P1.7

PORT 1 LATCH ALU

PORT 1 DRIVE

P0.0 - P0.7

PORT 0 DRIVE

RAM ADD REGISTER

OSC

TIMING AND CONTROL

PSW

B REGISTER

TMP2 ACC

RAM GND

Vcc

P3.0 - P3.7

PORT 2 LATCH PORT 0

LATCH

INTERRUPT SERIAL PORT AND TIMER BLOCKS

PORT 3 LATCH

PORT 3 DRIVE

TMP1

STACK POINTER FLASH

DPTR

PROGRAM COUNTER

PC INCREMENTER BUFFER

PROGRAM ADDRESS REGISTER

P2.0 - P2.7

PORT 0 DRIVE

Trang 11

Hình 2.1: Sơ Đồ Khối Của Vi Điều Khiển AT89C51

2 Đặc Tính Của AT89C51

Chíp AT89C51 chứa trên 60000 Transistor bao gồm 4Kbyte ROM, 128Byte RAM, 32 đường xuất nhập, 1 Port nối tiếp và 2 bộ định thời 16 bit Một số lượng mạch đáng chú ý trong IC đơn Các thành viên mới được thêm vào cho họ MCS-51 và các biến thể này gần như có gấp đôi các đặc trưng này Tập đoàn Seimens, nguồn sản xuất thứ hai các bộ vi điều khiển thuộc họ MCS-50 cung cấp Chíp SAB80515, một cải tiến của 8051 chứa trong một vỏ 68 chân, có 6 Port xuất nhập 8-bit, 13 nguồn tạo ra ngắt và một bộ biến đổi A/D 8-bit với 8 kênh ngõ vào Họ 8051 là một trong những

bộ vi điều khiển 8-bit mạnh và linh hoạt nhất, đã trở thành bộ vi điều khiển hàng đầu trong những năm gần đây

- Cụ thể vi điều khiển AT89C51 là 1 IC có tích hợp trên đó hệ vi xử lí

- Có thể lập trình được qua cổng nối tiếp

- 210 bit được địa chỉ hoá

- Giao tiếp nối tiếp

Trang 12

3 Sơ đồ chân và chức năng các chân của Chíp AT89C51

Hình 2.2: Sơ đồ chân và chức năng các chân của Chíp AT89C51

12345678910111213141516171819

222324

272625

2829

34

3031

3332

35363738

4039

Trang 13

- PORT 0 : Nằm trên các chân từ 32 đến 39 có 2 công dụng Trong

các thiết kế có tối thiểu thành phần thì Port 0 được sử dụng làm nhiệm vụ xuất/nhập Trong các thiết kế lớn hơn có bộ nhớ ngoài, Port 0 trở thành Bus địa chỉ và Bus dữ liệu đa hợp

- PORT 1 : Nằm trên các chân 1 đến 8, chỉ có một cộng dụng là để

gao tiếp với thiết bị ngoài khi có yêu cầu

- PORT 2 : Nằm trên các chân 21 đến 28 có 2 công dụng hoặc làm

nhiệm vụ xuất/nhập hoặc là Byte địa chỉ cao của BUS địa chỉ 16 bit cho các thiết kế có nhiều hơn 256Byte bộ nhớ dữ liệu ngoài

- PORT 3 : Nằm trên các chân 10 đến 17 có 2 công dụng một là

chức năng xuất/nhập bình thường còn khi không hoạt động xuất nhập các chân của PORT 3 có nhiều chức năng riêng Cụ thể các chức năng của các chân ở PORT 3 như sau :

Bảng 2.1: Các chức năng của PORT 3

Trang 14

- Chân cho phép bộ nhớ chương trình PSEN

8051 Cung cấp cho ta 4 tín hiệu điều khiển BUS Tín hiệu cho phép

bộ nhớ chương trình PSEN (Program Store Enable) là tín hiệu xuất trên chân 29 Đây là tín hiệu điều khiển cho phép ta truy xuất bộ nhớ chương trình ngoài Chân này thường được nối với chân cho phép xuất OE ( Output Enable) của EPROM hoặc ROM để cho phép đọc các Byte lệnh

Tín hiệu PSEN ở mức Logic 0 trong suất thời gian tìm nạp lệnh, các

mã nhị phân của chương trình hay mã thao tác (Opcode) được đọc từ EPROM qua BUS dữ liệu và được chốt vào thanh ghi IR của 8051 để được giải mã

Khi thực thi một chương trình chứa ở ROM nội PSEN được duy trì

ở mức Logic tích cực 1

- Chân cho phép chốt địa chỉ ALE

Chân này nằm trên chân 30 của 8051 là chân xuất tín hiệu cho phép chốt địa chỉ ALE (Address Latch Enable) để giải đa hợp Bus dữ liệu và Bus địa chỉ Khi Port 0 được sử dụng làm Bus địa chỉ/dữ liệu đa hợp chân ALE xuất tín hiệu để chôt địa chỉ ( Byte thấp của địa chỉ 16bit) vào một thanh ghi ngoài trong suốt 1/2 đầu chu kỳ bộ nhớ Sau khi điều này đã được thực hiện các chân của Port 0 sẽ xuất nhập dữ liệu hợp lệ trong suốt 1/2 thứ

2 của chu kỳ bộ nhớ

Tín hiệu ALE có tần số bằng 1/6 tần số của mạch dao động bên trong

vi điều khiển và có thể được dùng làm xung Clock cho phần còn lại của hệ thống Nếu mạch dao động có tần số 12MHz, tín hiệu ALE có tần số 2MHz Ngoại lệ duy nhất là trong thời gian thực thi lệnh MOVX, một xung ALE sẽ bị bỏ qua Chân ALE còn được dùng để nhận xung ngõ vào lập

Trang 15

trình cho EPROM trên CHIP đối với các phiên bản của 8051 có EPROM này

- Chân truy xuất ngoài EA

Ngõ vào này ở chân 31 có thể được nối với nguồn +5V (Logic 1) hoặc GND (Logic 0) Nếu chân này nối lên 5V , 8051/8052 thực thi chương trình trong ROM nội( chương trình nhỏ hơn 4K/8K) Nếu chân này nối với GND( và chân PSEN cũng ở mức Logic 0), chương trình cần thực thi chứa ở bộ nhớ ngoài Đối với 8031/8032 chân EA phải ở mức Logic 0

vì chúng không có bộ nhớ chương trình trên CHIP Nếu chân EA ở mức Logic 0 đối với 8051/8052, ROM nội bên trong CHIP được vô hiệu hoá và chương trình cần thực thi chứa ở EPROM bên ngoài

Các phiên bản EPROM của 8051 còn sử dụng chân EA làm chân nhận điện áp cấp nguồn 21VPP cho việc lập trình EPROM nội ( Nạp EPROM)

- Chân RESET ( RST)

Ngõ vào RST ở chân 9 là ngõ vào xoá chính (Master reset) của 8051 dùng để thiết lập lại trạng thái ban đầu cho hệ thống hay còn gọi tắt là Reset hệ thống Khi ngõ vào này được treo ở mức Logic 1 tối thiểu hai chu

kỳ máy , các thanh ghi bên trong của 8051 được nạp các giá trị thích hợp cho việc khởi động lại hệ thống

- Các chân thạch anh XTAL 1 và XTAL 2

Nằm trên chân 18 và 19 của CHIP, 2 chân này được dùng để nối với thạch anh ngoài nhằm tái tạo dao động và xác định tần số làm việc cho mạch dao động ở bên trong CHIP Kết hợp với thạch anh có thêm 2 tụ gốm

Trang 16

để ổn định tần số dao động Tần số danh định của thạch anh là 12MHz cho hầu hết các CHIP của họ MCS - 51

Hình 2.3: Mạch dao động Thạch Anh XTAL 1 và XTAL 2

Hoặc ta cũng có thể dùng một nguồn xung CLOCK TTL để tạo dao động cho 8051 như mạch sau :

IC 1 8051

IC 1 8051

Trang 17

- Sơ đồ cấu trúc bên trong của chân PORT xuất/nhập như sau :

Hình 2.5: Cấu trúc của PORT In/Out

Việc ghi đến 1 chân của Port sẽ nạp dư liệu vào bộ chốt của Port, ngõ ra Q của bộ chốt điều khiển một Transistor trường và Transistor này nối với chân của Port Khả năng phân chia đầu ra (Fan - out) của các Port

1, 2 và 3 là 4 tải vi mạch TTL loại Schottky công suất thấp (LS) còn của Port 0 là 8 tải loại LS

Lưu ý là điện trở kéo lên (Pull Up) không có ở Port 0 ( trừ khi port này làm nhiệm vụ của Port địa chỉ dữ liệu đa hợp) Do vậy phải nối thêm một điện trở kéo lên bên ngoài cho Port 0

Giá trị điện trở này phụ thuộc vào đặc tính ngõ vào của thành phần ghép nối với chân của Port

Ở đây ta thấy có 2 khả năng " Đọc bộ chốt" và "Đọc chân port" Các lệnh yêu cầu thao tác đọc - sửa - ghi, đọc bộ chốt để tránh nhầm mức điện áp do

sự hiểu nhầm điện áp do sự kiện dòng tải tăng Các lệnh nhập một Bit của Port, đọc chân port Trong trường hợp này bộ chốt của port phải chứa 1 nếu không FET sẽ được kích bão hoà và điều này kéo ngõ ra xuống mức thấp Việc Reset hệ thống sẽ set tất cả các bộ chốt port Do vậy các chân port có thể được dùng làm các ngõ nhập mà không cần phải SET các bộ chốt port

V DD

Q D

Write

to Latch

Read latch

Read pin

Interrnal Pull-up

Port Latch

Porrt pin

8051 Internal bus

Trang 18

P1.5) Chõn Port khụng thể làm nhiệm vụ tiếp theo là ngừ nhập trừ khi trước tiờn ta phải SET bộ chốt ( như SETB P1.5)

5 Tổ chức bộ nhớ

7F 77 6F 67 5F 56 4F 47 3F 37 2F 27 1F 17 0F 07

7E 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E 16 0E 06

7D 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D 15 0D 05

7C 74 6C 64 5C 54 4C 44 3C 34 2C 24 1C 14 0C 04

7B 73 6B 63 5B 53 4B 43 3B 33 2B 23 1B 13 0B 03

7A 72 6A 62 5A 52 4A 42 3A 32 2A 22 1A 12 0A 02

79 71 69 61 59 51 49 41 39 31 29 21 19 11 09 01

78 70 68 60 58 50 48 40 38 30 28 20 18 10 08 00

Not bit addressable Not bit addressable Not bit addressable Not bit addressable Not bit addressable

8F 8E 8D 8C 8B 8A 89 88

97 96 95 94 83 92 91 90 9F 9E 9D 9C 9B 9A 99 98 Not bit addressable

Thanh ghi chức năng đặc biệ t

A7 A6 A5 A4 A3 A2 A1 A0

AF AE AD AC AB AA A9 A8 B7 B6 B5 B4 B3 B2 B1 B0

BF BE BD BC BB BA B9 B8 D7 D6 D5 D4 D3 D2 D1 D0 E7 E6 E5 E4 E3 E2 E1 E0

EF EE ED EC EB EA E9 E8

Not bit addressable

80 81 82 83 87 88 89 8A 8B 8C 8D 90 98 99 A0 A8 B0 B8 D0 E0 F0 FF

P0 SP DPL DPH PCON TCON TMOD TL0 TL1 TH0 TH1 P1 SCON SBUF P2 IE P3 IP PSW ACC B

Địa

chỉ

Byte

Địa chỉ Bit( Bit Address )

Địa chỉ Byte

Địa chỉ Bit( Bit Address )

Trang 19

Hình 2.6: Tổ chức bộ nhớ RAM

Bộ nhớ bên trong 89C51 bao gồm ROM và RAM

RAM bao gồm nhiều thành phần : Phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các thanh ghi (BANK) và các thanh ghi chức năng đặc biệt ( Special Funtion Registers)

AT89C50 có bộ nhớ theo cấu trúc : Có những vùng nhớ riêng biệt cho chương trình và dữ liệu Chương trình và dữ liệu có thể chứa bên trong AT89C51 nhưng AT89C51 vẫn có thể kết nối với 64K Byte bộ nhớ chương trình và 64KByte bộ nhớ dữ liệu mở rộng

RAM bên trong AT89C51 được phân chia như sau :

- Các thanh ghi có địa chỉ từ 00H đến 1FH

- RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH

- RAM đa dụng từ 30H đến 7FH

- Các thanh ghi chức năng đặc biệt từ 80H đến FFH

- RAM đa dụng

Mọi địa chỉ trong vùng RAM đa dụng đều có thể được truy xuất tự

do dùng kiểu địa chỉ trực tiếp hay gián tiếp

Hoặc truy xuất dùng cách địa chỉ gián tiếp qua R0 hay R1

- RAM có thể truy xuất từng bit

AT89C51 chứa 210 bit được địa chỉ hoá từng bit, trong đó 128 bit chứa ở các địa chỉ từ 20H đến 2FH, các bit còn lại chứa trong nhóm thanh ghi chức năng đặc biệt

Trang 20

Ý tưởng truy xuất từng bit bằng phần mềm là một đặc tính mạnh của

vi điều khiển nói chung Các bit có thể được đặt, xoá, nhân, cộng với 1 lệnh đơn Ngoài ra các Port cũng có thể truy xuất được từng bit làm đơn giản phần mềm xuất nhập từng bit

- Các thanh ghi (BANK)

Bộ lệnh AT89C51 hỗ trợ 8 thanh ghi có tên là từ R0 đến R7 và theo mặc định ( sau khi RESET hệ thống ), các thanh ghi này ở các địa chỉ 00H đến 07F Lệnh sau đây sẽ đọc nội dung ở địa chỉ 05H vào thanh ghi tích luỹ

- Các thanh ghi có chức năng đặc biệt

AT89C51 có 21 thanh ghi chức năng đặc biệt ( SFR : Special Function Register) ở vùng trên của RAM nội từ địa chỉ 80H đến FFH

Tất cả 128 địa chỉ từ 80H đến FFH không được định nghĩa, chỉ có 21 thanh ghi chức năng năng đặc biệt được định nghĩa sẵn các địa chỉ

Trang 21

- Thanh ghi trạng thái chương trình

Thanh ghi trạng thái chương trình PSW (Program Status Word) ở địa chỉ D0H chứa các bit trạng thái như bảng sau :

Bảng 2.2: Bảng Thanh ghi trạng thái chương trình

+ Cờ nhớ : C = 1 Nếu phép toán cộng có tràn hoặc phép toán trừ có mượn

Trang 22

+ Cờ nhớ phụ : Khi cộng các số BCD, cờ nhớ phụ AC = 1 Nếu kết quả 4 bit thấp trong khoảng 0AH đến 0FH, ngược lại AC = 0

+ Cờ 0 : Cờ 0 là cờ đa dụng dành cho các ứng dụng của người dùng

+ Các bit chọn Bank thanh ghi truy xuất :

Các bit chọn Bank thanh ghi (RS0 và RS1) xác định Bank thanh ghi được truy xuất Chúng được xoá sau khi RESET hệ thống và được thay đổi bằng phần mềm nếu cần

Lệnh sau cho phép Bank thanh ghi 3 và di chuyển nội dung của thanh ghi R7 (địa chỉ byte 1Fh) vào thanh ghi A :

dư trong B Thanh ghi cũng có thể xem như thanh ghi đệm đa dụng

- Con trỏ ngăn xếp

Con trỏ ngăn xếp SP là một thanh ghi 8 bit ở địa chỉ 18H Nó chứa địa chỉ của Byte dữ liệu hiện hành trên đỉnh của ngăn xếp Các lệnh trên ngăn xếp bao gồm các lệnh cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu và lệnh lấy dữ liệu ra khỏi ngăn xếp Lệnh cất dữ liệu vào ngăn xếp sẽ làm giảm SP Ngăn xếp của 89C51 được cất giữ trong RAM nội và giới hạn các

Trang 23

địa chỉ có thể truy xuất bằng các địa chỉ gián tiếp, chúng là 128Byte đầu của AT89C51

Để khởi động SP với ngăn xếp bắt đầu tại địa chỉ 60H, ta dùng lệnh sau :

MOV SP,#5FH

Nếu không dùng lệnh khởi động SP hoặc khi RESET lại AT89C51 thì SP sẽ bắt đầu tại địa chỉ mặc định là 07H và dữ liệu đầu tiên sẽ được cất vào ô nhớ ngăn xếp có địa chỉ là 08H Ngăn xếp được truy xuất trực tiếp bằng các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu hoặc truy xuất ngầm bằng lệnh gọi chương trình con ACALL, LCALL và các lệnh trở về RET, RETI để lưu trữ giá trị của bộ đếm chương trình khi bắt đầu thực hiện chương trình con và lấy lại khi kết thúc chương trình con

- Con trỏ dữ liệu DPRT ( Data Pointer)

Con trỏ DPTR được dùng để truy xuất bộ nhớ ngoài, DPTR là một thanh ghi 16bit ở địa chỉ 28H (DPL , Byte thấp) và 83H ( DPH , Byte cao)

Ba lệnh sau sẽ ghi 55H vào RAM ngoài ở địa chỉ 1000H

sử dụng kiểu định địa chỉ gián tiếp di chuyển giá trị 55H chứa trong A đến RAM ngoài tại địc chỉ chứa trong DPTR (1000H)

- Các thanh ghi PORT

Trang 24

Các Port xuất nhập của 89C51 bao gồm Port 0 tại địa chỉ 80H, Port 1 tại địa chỉ 90H, Port 2 tại địa chỉ A0H và Port 3 tại địa chỉ B0H các Port 0,2,3 không được dùng để xuất nhập nếu sử dụng thêm bộ nhớ ngoài hoặc nếu có một số đặc tính đặc biệt của 89C51 được sử dụng ( như là ngắt, Port nối tiếp ).P1.2 đến P1.7, ngược lại, luôn luôn là các đường xuất nhập đa mục đích hợp lệ

Tất cả các Port đều được định địa chỉ từng bit nhằm cung cấp các khả năng giao tiếp mạnh

Thí dụ ta có một động cơ một cuộn dây và một mạch kích dùng Transistor nối tới bit 7 của Port 1, động cơ có thể ngưng hay chạy chỉ nhờ vào

Hinh 2.7: Một lệnh đơn của 8051

SETB P1.7 sẽ làm động cơ chạy và lệnh CLR P1.7 làm động cơ ngưng

Interrnal Pull-up

Port

Latch

Porrt pin 1.7

c¬ +B +5V

Trang 25

Các lệnh trên sử dụng toán tử (dot) để định chỉ 1 bit trong 1Byte cho phép định địa chỉ từng bit

Trình dịch hợp ngữ thực hiện biến đổi dạng ký hiệu thành địa chỉ thực tế nghĩa là 2 lệnh sau sẽ tương đương

CLR P.17 tương đương với lệnh CLR 97H.

- Các thanh ghi định thời (Timer)

AT89C51 chưa 2 bộ định thời 2 bộ định thời/ đếm 16bit được dùng cho việc định thời hoặc đếm sự kiện Timer 0 ở địa chỉ 8AH (TL0 : Byte thấp)

và 8CH (TH0 : Byte cao) Timer 1 ở địa chỉ 8BH (TL0 : Byte thấp) và 8DH ( TH1 : Byte cao) Việc khởi động Timer được SET bởi TIMER Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiển

Timer (TCON) ở địa chỉ 88H, chỉ có TCON được địa chỉ hoá từng bit

- Các thanh ghi nối tiếp

AT89C51 chứa một Port nối tiếp dành cho việc trao đổi thông tin với các thiết bị nối tiếp như máy tính, Modem hoặc giao tiếp nối tiếp với các IC khác Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả 2 dữ liệu truyền và dữ liệu nhận Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF Các mode vận hành khác nhau được lập trình ghi điều khiển port nối tiếp SCON ở địa chỉ 98H

- Các thanh ghi ngắt

Thực tế ở 8051 chỉ có 5 ngắt dành cho người dùng, song nhiều tài liệu kỹ thuật của các nhà sản xuất vẫn nói rằng có 6 ngắt vì họ tính cả lệnh reset bố trí sáu ngắt của 8051 như sau:

-Reset: khi chân reset được kích hoạt thì 8051 nhảy về địa chỉ 0000

Trang 26

-Hai ngắt dành cho bộ định thời time 0 và time 1, đia chỉ ở bảng vector

ngắt của hai ngắt này tương ứng với time 0 và time 1 là 000B4 và 001B4

Hai ngắt phần cứng dành cho các thiết bị bên ngoài nối tới chân 12 (P3.2)

và 13 (P3.2) của cổng P3 là INTO và INT1 tương ứng Các ngắt ngoài cũng

còn được gọi là EX1 và EX2 Vị trí nhớ trong bảng vector ngắt của hai ngắt

INT0 và INT1 này là 0003H và 0013H

Truyền thông nối tiếp có một ngắt cho cả thu lẫn phát, địa chỉ nủa

ngắt này trong bảng vector ngắt 0023H

ORG 0 ; Địa chỉ bắt đầu của ROM khi khơi động lại

LJMP MAIN ;bỏ qua bảng vector ngắt

;……… Chương trình khởi động lại

Trang 27

Khi reset thì tất cả mọi ngắt bị cấm, có nghĩa là không có ngắt nào được bộ

vi điều khiển đáp ứng nếu chúng được kích hoạt các ngắt phải được cho phép bằng phần mềm để bộ vi điều khiển có thể đáp ứng được Có một thanh ghi được gọi là cho phép ngắt IE (Interrup Enable), chịu trách nhiệm

về việc cho phép ngắt và cấm các ngắt IE là thanh ghi có thể định địa chỉ bit

Thanh ghi cho phét ngắt IE

Bảng 2.4: Thanh ghi cho phét ngắt IE

- Các bước thực hiện khi cho phép một ngắt

• Để cho phép 1 ngắt, trình tự thực hiện các bước như sau

• bit D7 của thanh ghi IE là EA phải được bật lên cao cho phép các bit còn lại của thanh ghi có hiệu lực

D7 D0

EA ET2 ES ET1 EX1 ET0 EX0

EA IE.7 Nếu EA=0 thì không ngắt nào được báo nhận

Nếu EA=1 thì từng nguồn ngắt sẽ được mở hoặc cấm bằng cách bật hoặc xóa bit cho phét tương ứng

IE.6 Dự phòng cho tương lại

ET2 IE.5 Cho phép hoặc cấm ngắt chàn hoặc thu của timer 2 (89C52)

ES IE.4 Cho phép hoặc cấm cổng nối tiếp

ET1 IE.3 Cho phép hoặc cấm ngắt tràn của time 1

EX1 IE.2 Cho phép hoặc cấm ngắt ngoài 1

ET0 IE.1 Cho phép hoặc cấm ngắt tràn của time 0

EX0 IE.0 Cho phép hoặc cấm ngắt ngoài 0

* Các bit này có thể dùng ở các bộ vi điều khiển có đặc tính mới trong tương lai

Trang 28

• Nếu EA=1 thì tất cả mọi ngắt đều được phép và sẽ được đáp ứng nếu các bit tương ứng của các ngắt này trong IE có mức cao

• Nếu EA=0 thì không có ngắt nào được đáp ứng cho dù bit tương ứng trong IE có giá trị cao

- Thanh ghi điều khiển công suất

Thanh ghi điều khiển công suất (PCON) ở địa chỉ 87H chứa các bit điều khiển

Hình 2.8: Mạch RESET

INTEL 89C51

R1 10KΩ

R2

100Ω

C1 10/16 + 5V

RESET

Trang 29

Bảng giá trị của các thanh ghi sau khi RESET hệ thống :

0xx00000B Các thanh ghi định

00H SCON 00H SBUF 00H

Bảng 2.5: Bảng giá trị của các thanh ghi sau khi RESET hệ thống

6 Hoạt Động Của Thanh Ghi TIME

AT89C51 có hai timer 16 bit, mỗi timer có bốn cách làm việc Người ta sử dụng các timer để:

• Định khoảng thời gian

Trang 30

• Tạo tốc độ baud port nối tiếp trong 89C51

Trong các ứng dụng định khoảng time, người ta lập trình timer ở những khoảng đều đặn và đặt cờ tràn timer Cờ được dùng để đồng bộ hóa chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện ra các ngõ ra Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (Vi dụ đo độ rộng xung)

Truy xuất các timer của AT89C51 dùng sáu thanh ghi chức năng đặc biệt cho trong bảng sau:

bit

Các Thanh nghi chức năng của timer trong 8031

Bảng 2.6: Các Thanh nghi chức năng của timer trong 8031

Thanh Ghi Chế Độ Timer (TMOD):

Cả hai bộ định thời timer 0 và timer 1 đều dùng chung một thanh nghi được gọi là TMOD để thiết lập các chế độ làm việc khác nhau của bộ định thời Thanh ghi TMOD là thanh nghi 8 bít gồm có 4 bít dành cho bộ timer0 và 4 bít dành cho timer 1 Trong đó hai bít thấp của chúng dung để

Trang 31

thiết lập chế độ của bộ định thời, còn 2 bít cao dùng để xác định phép toán Dưới đây chung ta sẽ tìm hiểu về các phét toán

Trang 32

Thanh Ghi Điều Khiển Timer (TCON)

Thanh nghi TCON chứa các bít trạng thái và các bít điều khiển cho timer 1, timer 0

Bít Ký

hiệu

TCON 7 TF1 8FH Cơ bản tràn timer 1 Đặt bởi phần cứng khi

được xóa bở phần mềm, hoặc phần cứng khi

ử lý chỉ đến chương trình phục vụ ngắt TCON 6 TR1 8EH Bít điều khiển timer 1 chạy đặt xóa bằng

mềm để cho timể chạy ngừng

khi phát hiện một cạnh xuống ở INT1 xóa phần mềm hoạc phần cứng khi CPU chỉ đến

ng trình phục vụ ngắt

mềm để ngắt ngoài tich cực cạnh xuống thấp

Trang 33

TCON 1 IE0 89H Cờ cạnh ngắt 0 bên ngoài

Bảng 2.8: Các thanh nghi chức năng của timer trong 8031

Chúng ta đã biết công dụng của các cờ TR0 và TR1 để bật/tắt các bộ định thời Các bít này thuộc thanh ghi điều khiển bộ định thời TCON (Time Control) Đây là thanh ghi 8 bít như bảng trên giời thiệu, bốn bít cao dùng

để lưu các TF, TR cho cả timer 0 và time 1 Còn bốn bít thấp được thiết lập dành cho điều khiển bít ngắt Cũng cần lưu ý rằng thanh ghi TCON là thanh nghi có thể định địa chỉ bít được lên hoàn toàn có thể thay các lệnh như “SETB TR1” và “CLR TR1” bằng các lệnh tương ứng như “SET TCON.6” và CLR TCON.6”, xem bảng sau

Đôi vơi timer 0

SETB TR0 = SETB TCON.4 SETB TR0 = CLR TCON.4 SETB TF0 = SETB TCON.5 CLR TF0 = CLR TCON.5

Đôi với Timer 1

SETB TR1 = SETB TCON.6 CLR TR1 = CLR TCON.6 SETB TF1 = SETB TCON.7 CLR TF1 = CLR TCON.7

Bảng 2.9: Các lệnh tương ứng đối với thanh ghi điều khiển bộ định thời

Khởi Động Và Truy Xuất Thanh Ghi Timer

Thông thường các thanh ghi được khởi động một lần đầu ở chương trinh để đặt ở chế độ làm việc đúng Sau đó trong thân chương trình, các thanh ghi

Trang 34

timer được cho chạy, dừng các bít được kiểm tra và xóa, các thanh ghi timer được đọc và cập nhật… theo dõi hỏi các ứng dụng

TMOD là thanh ghi thứ nhất được khởi động vì nó đặt chế độ hoạt động

Ví dụ, các lệnh sau khởi động timer 1 như timer 16 bít (Chế độ 1) có xung nhịp từ bộ dao động trên chíp cho việc định khoảng thời gian

MOV TMOD, #1B

Lệnh này sẽ đặt M1 = 1 và M0 = 0 cho chế độ 1, C/T=0 và Gate = 0 cho xung nhịp nội và xóa các bít chế độ Timer 0 Dĩ nhiên, timer không thật sự bắt đầu định thời cho đến khi bít điều khiển chạy TR1 được đặt lên 1

Nếu cần số đếm ban đầu, các thanh ghi TL1/TH1 cũng phải được khởi động, một khoảng 100µm có thể được khởi động bằng các khơi động giá trị cho TH1/TL1 là FF9CH

MOV TL1 , #9CH MOV TH1 , #0FFH Rồi timer được cho chạy bằng cách đặt bít điều khiển chạy như sau:

Cờ báo tràn được tự động đặt lên một sau 100µm Phần mềm có thể đời trong 100µm bằng cách dùng lệnh rẽ nhánh có điều kiện nhẩy đến chính nó trong khi cờ bào tràn chưa được lên 1:

WAIT: JNB TF1, WAIT Khi timer tràn, cần dừng timer và xóa cờ báo tràn trong phần mềm

CLR TR1 CLR TF1

7 Bộ Đếm Chương Trình Và Không Gian ROM Của 8051

Trang 35

Một thanh ghi quan trọng khác của 8051 là bộ đếm chương trình Bộ đếm chương trình có nhiệm vụ trỏ đến địa chỉ của lệnh kế tiếp cần được thực hiện mỗi khi CPU nhận mã lệnh từ bộ nhớ ROM, thì bộ đếm chương trình tăng lên để trỏ đến lệnh kế tiếp Bộ đếm chương trình 8051 rộng 16bít, điều đó có nghĩa là, 8051 có thể truy cập được địa chỉ chương trình

từ 0000 đến FFFFH, tổng cộng là 64Kb Tuy nhiên không phải thành viên nào của 8051 cũng có đủ 64Kb ROM/Chíp Vấn đề tiếp theo là, khi 8051 được bật nguồn thì địa chỉ khởi đầu được bắt đầu từ đâu?

Địa chỉ bắt đầu khi 8051 được bật nguồn

Mỗi họ vi điều khiển khi được bật nguồn đều được bắt đầu từ những địa chỉ khác nhau Đối với 8051 địa chỉ bắt đầu từ 0000 Bật nguồn

có nghĩa là cấp điện áp Vcc đến chân reset, nói cách khác khi 8051 được cấp nguồn, thì bộ đếm chương trình có giá trị 0000 điều naỳ có nghĩa nó sẽ thực hiện mã lệnh đầu tiên được lưu ở ROM 0000 Tại sao lại ở vị trí này của bộ nhớ ROM? Đó là nhờ chỉ dẫn ORG ở chương trình nguồn Dưới đây

là toàn bộ trình tự hoạt động của bộ đếm chương trình trong quá trình nhận

và thực thi một chương trình mẫu

Mã Chương trinh Ở ROM

Để hiểu rõ hơn về bộ đếm chương trình, ta sẽ xem xét hoạt động của

bộ đếm chương trình mỗi khi nhận và thực hiện lệnh Ta khảo sát một tệp liệt kê của chương trình mẫu được lưu ở ROM Như có thể thấy mã lệnh và toán hạng của từng lệnh được liệt kể ở bên trái của tệp liệt kê

Trang 36

Bảng 2.11: Nội dung ROM

Sau khi chương trình được nạp vào ROM của họ 8051, như AT89C51 thì mã lệnh và toán hạng được đặt luôn bắt đầu từ địa chỉ 0000

Nội dung ROM của chương trinh trên

được giới thiệu ở bảng sau Tại địa chỉ 0000 có

mã 7D là mà lệnh chuyển một giá trị vào thanh

ghi R5, còn địa chỉ 0001, chứa toán hạng (Giá trị

250000) Cần được chuyển vào R5 Do vậy lệnh

“MOV R5 #25H” có mã lệnh là “7D25” trong

đó 7D là mã lệnh còn 25 là toán hạng Tương tự

mã máy “7F 34” được ghi ở địa chỉ 0002 và 0003

biêu diễn mà lệnh và toán hạng của lệnh “MOV

R7, #34H” cũng như vậy, mã máy “74 00” tại địa

chỉ 0004 và 0005 là biểu diễn lệnh “MOV A, #0”

Trang 37

Trình Tự Thực Hiện Chương Trình

Giả sử chương trình trên đã được ghi vào ROM của 8051 thì trình tự

các bước hoạt động khi được cấp nguồn như sau:

• Khi 8051 được bật nguồn bộ đếm chương trình PC có nội dung 0000

và bắt đầu

• Nạp mã lệnh đầu tiên từ vị trí nhớ đầu tiên 0000 của ROM chương

trình Đối với chương trình nêu trên đó là mã 7D(Chuyển một toán

hạng vào R5) Khi thực hiện

• Mã lệnh CPU nhận giá trị 25 và chuyển vào R5 Đến đây việc thực

hiện một lệnh được kết thúc Sau đó bộ đếm chương trình được tăng

lên để trỏ tới ô nhớ 0002 (PC = 0002), tại đây có chứa mã 7Flà mã của

lệnh chuyển một toán hạng vào R7 “MOV R7” ,…

Khi thực hiện mã lệnh 7F thì giá trị 34H được chuyển vào R7 sau đó

PC được tăng lên 0004

• Ô nhớ 0004 chứa mã lệnh của lệnh “MOV A, #0”, lệnh này được

thựchiện và sau đó PC được tăng lên 2 đơn vi: PC = 0006, lưy ý tất cả

các lệnh nêu trên đều là các lệnh 2byte

• Với PC= 0006, bộ đếm chương trình trỏ tới vị trí kế kiếplà : “ADD A,

R5” Đây là lệnh 1 byte, sau khi thực hiện lệnh PC = 0007

• Ngăn nhớ 0007 chứa mã 2F là mã lệnh của “ADD A,R7” Đây là lệnh

1Byte sau khi thực hiện PC được tăng lên 0008 quá trình này cứ tiếp

tục cho đến khi tất cả mọi lệnh đều được nhận và thực hiện Do bộ

đếm chương trình có ý nghĩa và có cách thức làm việc như vậy lên ở

một số bộ vi xử lý, đặc biệt là dòng Intel X86, bộ đếm chương trình

còn được gọi là con trỏ lệnh IP

Trang 38

Điểm cần chú ý là không có thành viên nào của họ 8051 có thể truy cập được trên 64kb mã lệnh, vì bộ đếm chương trình của 8051 là 16bit (Dải địa chỉ từ 0000 đến FFFFH)

Điểm lưu ý số 2 là lệnh đâu tiên của Rom chương trình đều đặt ở

0000, còn lệnh cuối cùng phục thuộc vào dung lượng của ROM/Chíp của mỗi thành viên của họ 8051 Như vậy 8751 và AT98C51 với 4 kb ROM thì dải địa chỉ sẽ từ 0000 đến 0FFFH do đó, ngăn nhớ đầu tiên có địa chỉ 0000

và ngăn nhớ cuối cùng có địa chi 0FFFH

Với 4k byte không gian nhớ ROM trên Chíp ta có 4096 byte bằng 1000H ở dạng Hexa (4*1024 = 4096D = 1000H) Bộ nhớ này được sắp xếp trong các ngăn nhớ từ 0000 đến 0FFFH Lưy ý không luôn là ngăn nhớ đầu tiên

Với 32K byte nhớ ta có 32768 byte (32*1024 ) Chuyển 32768 về số hexa ta nhận được 8000H

0FFF

1FFF

7FFF

Trang 39

Hình 2.9: Dải địa chỉ của ROM trên Chip của một số thành viên họ 8051

Trang 40

CHƯƠNG III CÁC CHẾ ĐỘ ĐỊNH ĐỊA CHỈ CỦA 8051

CPU có thể truy cập dữ liệu theo nhiều cách khác nhau Dữ liệu có thể ở trong một thanh ghi hoặc trong bộ nhớ hoặc được cho như một giá trị tức thời các cách truy cập dữ liệu khác nhau được gọi là các chế độ đánh địa chỉ Phần này chúng ta bàn luận về các chế độ đánh địa chỉ của 8051

Các chế độ đánh địa chỉ khác nhau của bộ vi xử lý được xác định như nó được thiết kế và do vậy khi lập trình không thể đánh địa chỉ khác nhau là:

1 tức thời 2 Theo thanh ghi 3 Trực tiếp

4 gián tiếp qua thanh ghi 5 Theo chỉ số

I CÁC CHẾ ĐỘ ĐỊNH ĐỊA CHỈ TỨC THỜI VÀ THEO THANH GHI

1 Chế độ đánh địa chỉ tức thời

Trong chế độ đánh địa chỉ này, toán hạng nguồn là một hằng số và như tên gọi, của nó thì khi một lệnh được hợp dịch toán hạng đi tức thi ngay sau mã lệnh Lưu ý rằng trước dữ liệu tức thời phải được đặt dấu

‘’(#)’’ chế độ đánh địa chỉ này có thể được dùng để nạp thông tin vào bất

kỳ thanh ghi nào kể cả thanh ghi con trỏ dữ liệu DPTR

DPTR là 16 bit nó cũng có thể được truy cập như 2 thanh ghi 8 bit DPH và DPL trong đó DPH là byte cao và DPL là byte thấp

2 chế độ đánh địa chỉ theo thanh ghi:

Chế độ đánh địa chỉ theo thanh ghi là sử dụng các thanh ghi để dữ liệu cần được thao tác các ví dụ về đánh địa chỉ theo thanh ghi như sau:

Ngày đăng: 18/02/2014, 15:40

HÌNH ẢNH LIÊN QUAN

Bảng 1.1. Các đặc tính của 8051 đầu tiên - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Bảng 1.1. Các đặc tính của 8051 đầu tiên (Trang 3)
Hình 1.1.  Bố trí bên trong của sơ đồ khối 8051 - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 1.1. Bố trí bên trong của sơ đồ khối 8051 (Trang 4)
Bảng 1.2. So sánh các đặc tính của các thành viên  họ 8051. - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Bảng 1.2. So sánh các đặc tính của các thành viên họ 8051 (Trang 5)
Bảng 1.3: Các phiên bản của 8051 từ Atmel (Flash ROM). - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Bảng 1.3 Các phiên bản của 8051 từ Atmel (Flash ROM) (Trang 7)
Bảng 1.6: Một số thành viên của họ 8051 - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Bảng 1.6 Một số thành viên của họ 8051 (Trang 9)
1. Sơ Đồ Khối Của Vi Điều Khiển AT89C51 - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
1. Sơ Đồ Khối Của Vi Điều Khiển AT89C51 (Trang 10)
3. Sơ đồ chân và chức năng các chân của Chíp AT89C51 - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
3. Sơ đồ chân và chức năng các chân của Chíp AT89C51 (Trang 12)
Hình 2.3: Mạch dao động Thạch Anh XTAL 1 và XTAL 2 - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 2.3 Mạch dao động Thạch Anh XTAL 1 và XTAL 2 (Trang 16)
Hình 2.4: Mạch dao động - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 2.4 Mạch dao động (Trang 16)
Hình 2.5: Cấu trúc của PORT In/Out - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 2.5 Cấu trúc của PORT In/Out (Trang 17)
Bảng vector ngắt của 8051 - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Bảng vector ngắt của 8051 (Trang 26)
Bảng 2.4: Thanh ghi cho phét ngắt IE - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Bảng 2.4 Thanh ghi cho phét ngắt IE (Trang 27)
Hình 2.8: Mạch RESET - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 2.8 Mạch RESET (Trang 28)
Bảng 2.5: Bảng giá trị của các thanh ghi sau khi RESET hệ thống - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Bảng 2.5 Bảng giá trị của các thanh ghi sau khi RESET hệ thống (Trang 29)
Bảng 2.6: Các Thanh nghi chức năng của timer trong 8031 - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Bảng 2.6 Các Thanh nghi chức năng của timer trong 8031 (Trang 30)
Bảng 3.1 Các địa chỉ của thanh ghi chức năng đặc biệt SFR - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Bảng 3.1 Các địa chỉ của thanh ghi chức năng đặc biệt SFR (Trang 44)
8  Bảng xắp xếp và sử dụng chế độ đánh địa chỉ theo chỉ số. - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
8 Bảng xắp xếp và sử dụng chế độ đánh địa chỉ theo chỉ số (Trang 47)
Hình 4.4: Thiết kế khối đệm hàng - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 4.4 Thiết kế khối đệm hàng (Trang 51)
Hình 4.5: Thiết kế khối giải mã cột  chi tiết - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 4.5 Thiết kế khối giải mã cột chi tiết (Trang 52)
Hình 4.7: Sơ đồ hoạt động của IC 74HC595 - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 4.7 Sơ đồ hoạt động của IC 74HC595 (Trang 54)
Hình 4.10: Sơ đồ cấu tạo và hoạt động của IC ULN2803 - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 4.10 Sơ đồ cấu tạo và hoạt động của IC ULN2803 (Trang 58)
Hình 4.11: Mô tả ma trận LED - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 4.11 Mô tả ma trận LED (Trang 59)
Hình 4.12: Khối hiển thị - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 4.12 Khối hiển thị (Trang 60)
7.2. Sơ đồ nguyên lý toàn mạch và công cụ thiết kế mạch in - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
7.2. Sơ đồ nguyên lý toàn mạch và công cụ thiết kế mạch in (Trang 64)
Hình 4.15: Giao diện ORCAD 9.2 LAYOUT PLUS - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 4.15 Giao diện ORCAD 9.2 LAYOUT PLUS (Trang 65)
Hình 4.16: Sơ đồ nguyên lý toàn mạch  7.3.Board điều khiển (mạch đồng 2 lớp). - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 4.16 Sơ đồ nguyên lý toàn mạch 7.3.Board điều khiển (mạch đồng 2 lớp) (Trang 68)
Hình 4.18:  Board mạch sơ đồ chân  7.4. Board hiển thị (mạch đồng khối hiển thị) - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 4.18 Board mạch sơ đồ chân 7.4. Board hiển thị (mạch đồng khối hiển thị) (Trang 69)
Hình 4.20:  Giao diện phần KEIL - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 4.20 Giao diện phần KEIL (Trang 74)
Hình 4.21:  Giao diện hỗ trợ mạch nạp chương trình - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 4.21 Giao diện hỗ trợ mạch nạp chương trình (Trang 75)
Hình 4.22:  Kết quả sản phẩm - thiết kế hệ thống quảng cáo trong vi điều khiển họ 8051
Hình 4.22 Kết quả sản phẩm (Trang 84)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w