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

Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051

78 981 5

Đ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 78
Dung lượng 2,09 MB

Nội dung

Ngày nay kĩ thuật điều khiển tự động đã và đang là một phần không thể thiếu trong kĩ thuật cũng như dân dụng. Một trong những kĩ thuật điều khiển tự động đó là sử dụng chip nhớ vi điều khiển. Vi điều khiển quản lí và điều khiển hệ thống thông qua phần mềm, vì vậy mà ta có thể mở rộng và thay đổi hoạt động một cách dễ dàng thông qua thay đổi các thông số của chương trình. Vi điều khiển hoạt động theo chương trình đã đặt sẵn, đọc các tín hiêu từ bên ngoài đưa vào sau đó lưu trữ và xử lí trên cơ sở đó đưa ra các tín hiệu điều khiển các thiết bị bên ngoài hoạt động theo đúng thông số và yêu cầu của hệ thống. Người lập trình có thể sử dụng nhiều ngôn ngữ để lập trình cho vi điều khiển; Nhưng thường sử dụng hai ngôn ngữ chính để lập trình đó là : Ngôn ngữ lập trình C và ngôn ngữ lập trình Assembly (lập trình trên phần cứng của máy tính). Sau khi lập trình xong phần trình dịch được nạp vào IC và dùng IC này để điều khiển các hệ thống theo yêu cầu đề ra.Với mong muốn tìm hiểu kĩ và nghiên cứu sâu hơn về vi điều khiển, em đã thực hiện đề tài “ Thiết kế bộ KIT thực hành vi điều khiển 8051”. Đề tài này giúp chúng ta có thể hiểu được cơ bản những ứng dụng của vi điều khiển trong thực tế đời sống hiện tại. Có thể trong quá trình thiết kế và ứng dụng có nhiều vấn đề có thể chưa được như mong muốn, em mong được sự nhận xét chỉ bảo của các thầy cô.Đề tài của em gồm 2 phần :•Phần I: Cơ sở lí thuyết vi điều khiển 8051•Phần II: Thiết kế MODUL

Trang 1

MỤC LỤC

MỤC LỤC 1

LỜI NÓI ĐẦU 3

Phần I: CƠ SỞ LÍ THUYẾT VI ĐIỀU KHIỂN 8051 5

1 GIỚI THIỆU CHUNG VỀ HỌ 8051 5

1.1 Sơ lược về bộ vi điều khiển 8051(89S52): 5

1.2 Cấu trúc bên trong IC8051: 8

2 Tổ chức bộ nhớ 8051 10

2.1 Bộ nhớ chương trình 11

2.2 Bộ nhớ dữ liệu 13

3 Các thanh ghi trong VĐK 15

3.1 Các thanh ghi đặc biệt 15

3.2 Thanh ghi chính 16

3.3 Thanh ghi phụ 16

3.4 Thanh ghi trạng thái chương trình (PSW) 17

3.5 Thanh ghi ngăn xếp (Stack Pointer) 18

3.6 Con trỏ dữ liệu DPTR 19

3.7 Thanh ghi các cổng P0-P3 19

3.8 Thanh ghi bộ đệm truyền thông nối tiếp (Serial Data Buffer) 19

3.9 Thanh ghi của bộ định thời/bộ đếm 19

3.10 Các thanh ghi điều khiển 20

4 Truy xuất địa chỉ 20

5 Các Port của vi điều khiển 24

5.2 Port1 (P1.0-P1.7) 24

5.3 Port2 (P2.0-P2.7) 25

5.4 Port3 (P3.0-P3.7) 26

6 Các chế độ của vi điều khiển : 27

6.1 Hoạt động định thời : 27

6.2 Cổng nối tiếp 27

6.3 Ngắt và xử lý ngắt: 28

7 Các chân khác của vi điều khiển 32

7.1 Chân /PSEN( Program Store Enable) 32

7.2 Chân ALE ( Address Latch Enable) 33

7.3 Chân /EA( External Access) 33

7.4 RST( Reset) 33

7.5 XTAL1, XTAL2 33

7.6 Vcc,GND 33

PHẦN II:THIẾT KẾ KẾ MODUL 34

Chương I: GIỚI THIỆU CHUNG 34

1 KHỐI NGUỒN 34

2 KHỐI GHÉP NỐI VỚI MÁY TÍNH QUA CỔNG COM 34

2.1 Cổng nối tiếp (COM) 35

2.2 IC MAX232 36

3 KHỐI VI ĐIỀU KHIỂN 37

3.1 Mạch tạo dao động 38

3.2 Mạch reset 38

4 KHỐI QUÉT LED MA TRẬN 8x8 39

4.1 IC 74HC595 39

4.2 LED MATRIX 8X8 41

4.2.2 Cách quét LED ma trận 8x8 42

Trang 2

5 KHỐI GIAO TIẾP LCD 42

5.1 Ý nghĩa các chân của LCD hiển thị kí tự 43

5.2 Nguyên tắc hiển thị ký tự trên LCD 44

6 KHỐI ADC0804: 45

7 KHỐI HIỂN THỊ THỜI GIAN THỰC 49

8 KHỐI NGẮT HỒNG NGOẠI 51

8.1 OPTO 51

8.2 LM358 52

9 KHỐI QUÉT LED 7 ĐOẠN 53

10 KHỐI QUÉT LED ĐƠN 55

11 KHỐI GHÉP NỐI MA TRẬN PHÍM 4x4 56

12 KHỐI ĐIỀU KHIỂN ĐỘNG CƠ 1 CHIỀU 57

13 KHỐI NẠP CHƯƠNG TRÌNH THEO CHUẨN ISP 58

Chương 2: Nội dung thiết kế 59

Phần 1 THIẾT KẾ MÔ HÌNH BỘ KIT THỰC HÀNH VĐK 59

1 YÊU CẦU: 59

- Mạch điện tử được thiết kế trên máy tính bằng phần mềm chuyên dụng 59

- Mạch có thể kiểm tra khai thác được các tài nguyên của VĐK AT89S52 59

2 SƠ ĐỒ NGUYÊN LÝ 59

Chương 2: CÁC VÍ DỤ MINH HỌA CHO CÁC MODUL 60

1 LẬP TRÌNH GHÉP NỐI MODUL LED 7 ĐOẠN 60

a, Đếm sản phẩm hiển thị trên Led 7 đoạn 60

b, BỘ ĐẾM 0000 – 9999 HIỂN THỊ LED 7 ĐOẠN 63

2 LẬP TRÌNH GHÉP NỐI LED MA TRẬN 65

3 LẬP TRÌNH GHÉP NỐI MA TRẬN PHÍM 67

4 LẬP TRÌNH GHÉP NỐI KHỐI QUÉT LED ĐƠN 76

Trang 3

LỜI NÓI ĐẦU

Ngày nay kĩ thuật điều khiển tự động đã và đang là một phần khôngthể thiếu trong kĩ thuật cũng như dân dụng Một trong những kĩ thuật điềukhiển tự động đó là sử dụng chip nhớ vi điều khiển

Vi điều khiển quản lí và điều khiển hệ thống thông qua phần mềm, vìvậy mà ta có thể mở rộng và thay đổi hoạt động một cách dễ dàng thông quathay đổi các thông số của chương trình Vi điều khiển hoạt động theo chươngtrình đã đặt sẵn, đọc các tín hiêu từ bên ngoài đưa vào sau đó lưu trữ và xử lítrên cơ sở đó đưa ra các tín hiệu điều khiển các thiết bị bên ngoài hoạt độngtheo đúng thông số và yêu cầu của hệ thống

Người lập trình có thể sử dụng nhiều ngôn ngữ để lập trình cho viđiều khiển; Nhưng thường sử dụng hai ngôn ngữ chính để lập trình đó là :Ngôn ngữ lập trình C và ngôn ngữ lập trình Assembly (lập trình trên phầncứng của máy tính)

Sau khi lập trình xong phần trình dịch được nạp vào IC và dùng ICnày để điều khiển các hệ thống theo yêu cầu đề ra

Với mong muốn tìm hiểu kĩ và nghiên cứu sâu hơn về vi điều khiển, em

đã thực hiện đề tài “ Thiết kế bộ KIT thực hành vi điều khiển 8051” Đề tài

này giúp chúng ta có thể hiểu được cơ bản những ứng dụng của vi điều khiểntrong thực tế đời sống hiện tại Có thể trong quá trình thiết kế và ứng dụng cónhiều vấn đề có thể chưa được như mong muốn, em mong được sự nhận xétchỉ bảo của các thầy cô

Đề tài của em gồm 2 phần :

Phần I: Cơ sở lí thuyết vi điều khiển 8051

Phần II: Thiết kế MODUL

Trang 4

Em xin chân thành cảm ơn các thầy cô trong khoa Điện Tử đã giúp đỡ

em trong quá trình làm đồ án và cô Dương Thị Hằng đã trực tiếp giảng dạy vàhướng dẫn em là đồ án

Em xin chân thành cảm ơn!!!

Sinh viên: Nguyễn Việt Linh

Lớp: LT CĐ – ĐH Điện tử 1 – K4

Trang 5

Phần I: CƠ SỞ LÍ THUYẾT VI ĐIỀU KHIỂN

8051

1 GIỚI THIỆU CHUNG VỀ HỌ 8051.

Năm 1981 hãng Atmel giới thiệu bộ vi điều khiển 8051 Bộ vi điềukhiển (VĐK) này có 128 byte RAM, 4 byte ROM, hai bộ định thời, một cổngnối tiếp và bốn cổng vào/ra song song ( độ rộng 8 bit ) tất cả đều được đặt trên

1 chip 8051 là bộ xử lý 8 bit ( có nghĩa là CPU chỉ có thể làm việc với 8 bit

dữ liệu tại một thời điểm) Dữ liệu lớn hơn 8 bit sẽ được chia ra thành các dữliệu 8 bit để xử lý

8051 đã trở nên phổ biến khi Intel cho phép các nhà sản xuất khác sảnxuất và bán các dạng biến thể của 8051 Điều này dẫn đến sự ra đời nhiềuphiên bản của 8051 với tốc độ và dung lượng ROM trên chip khá nhau, nhưngtất cả các lệnh đều phải tương thích với 8051 ban đầu Như vậy nếu ta viếtchương trình cho một phiên bản của 8051 thì cũng chạy được với mọi phiênbản khác không phụ thuộc vào hãng sản xuất

Bốn bit thấp của TCON(TCON.0-TCON.3) không dùng để điều khiểncác bộ định thời, chúng được dùng để phát hiện và khởi động các ngắt ngoài

- Các thanh ghi chứa giá trị của các bộ định thời

Các Timer0 và Timer1 đều là các Timer 16bit, mỗi Timer có thanh ghi8bit dùng để chứa giá trị khởi tạo hoặc giá trị hiện thời của các Timer

1.1 Sơ lược về bộ vi điều khiển 8051(89S52):

* IC vi điều khiển thuộc họ MCS51 có các đặc điểm sau:

 4 kbyte ROM

 128 byte RAM

Trang 6

 4 port I/O 8 bit

Hình 1:Vi điều khiển 8051

* Bộ vi điều khiển AT89S52 gồm các khối chức năng sau đây:

+ CPU( Central Processing unit ) bao gồm:

Trang 7

- Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia.

- Đơn vị logic học ALU( Arithmetic Logical Unit)

- Thanh ghi từ trạng thái chương trình ( PSW: Program Sttatus Worl)

- Bốn băng thanh ghi

- Con trỏ ngăn xếp

+ Bộ nhớ chương trình( bộ nhớ ROM) gồm 8 Kb Flash.

+ Bộ nhớ dữ liệu ( Bộ nhớ RAM ) gồm 256 Bytes.

Bộ UART ( Universal Ansynchrous Receiver and Transmitter) có chứcnăng truyền nhận nối tiếp, AT89S52 có thể giao tiếp với cổng nối tiếp củamáy tính thông qua bộ UART

+ Ba bộ timer/count 16 bit: thực hiện các chức năng định thời và đếm

sự kiện

+ WDM ( Watch Dog Timer ) : được dùng để phục hồi lại hoạt động của

CPU khi nó bị treo bởi một nguyên nhân nào đó

+ Khối diều khiển ngắt : với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong + Bộ lập trình ( ghi chương trình lên flash ROM ): cho phép người sử

dụng có thể nạp chương trình cho chip mà không cần bộ nạp chuyên dụng

+ Bộ chia tần: với hệ số chia là 12.

+ Bốn cổng xuất nhập: với 32 chân.

Trang 8

1.2 Cấu trúc bên trong IC8051:

Phần chính của vi điều khiển 8051 là bộ vi xử lý trung tâm ( CPU:

central processing unit)

Đơn vị xử lý trung tâm nhận trực tiếp xung từ bộ dao động, ngoài ra còn

có khả năng đưa một tín hiệu giữ nhịp từ bên ngoài

Chương trình đang chạy có thể dừng lại nhờ một khối điều khiển ngắt ởbên trong Các nguồn ngắt có thể là : Các biến cố ở bên ngoài, sự tràn của bộđếm định thời hoặc cũng có thể là giao diện nối tiếp Ba bộ định thời 16bithoạt động như một bộ đếm

Các cổng Port0, Port1, Port2, Port3 Sử dụng vào mục đích điềukhiển và xuất nhập tín hiệu Ở cổng Port3 có thêm các đường dẫn điều khiểndùng để trao đổi với bộ nhớ bên ngoài, hoặc để đầu nối giao diện nối tiếp,cũng như các đường ngắt dẫn ở bên ngoài

Trang 9

Hình2 : Sơ đồ khối 89S52.

Trang 10

Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng

bộ, làm việc độc lập với nhau Tốc độ truyền qua cổng nối tiếp có thể đặttrong dải rộng và được ấn định bằng một bộ định thời

Trong vi điều khiển 8051 có hai thành phần quan trọng khác đó là bộnhớ và các thanh ghi:

Bộ nhớ gồm có bộ nhớ RAM và bộ nhớ ROM dùng để lưư trữ dữliệu và mã lệnh

Các thanh ghi sử dụng để lưư trữ thông tin trong quá trình xử lý KhiCPU làm việc nó thay đổi nội dung các thanh ghi

Bộ nhớ chương trình (ROM, EPROM) là bộ nhớ chỉ đọc, có thể mởrộng tối đa 64Kbyte Vói họ vi điều khiển 89xx, bộ nhớ chương trình đượctích hợp sẵn trong chip có kích thước nhỏ nhất là 4kByte Với các vi điềukhiển không tích hợp sẵn bộ nhớ chương trình trên chip, buộc phải thiết kế bộnhớ chương trình bên ngoài Ví dụ sử dụng EPROM: 2764 (64Kbyte), khi đóchân PSEN phải ở mức tích cực (5V)

Trang 11

Họ vi điều khiển 8051 có bộ nhớ dữ liệu tích hợp trên chip nhỏ nhất là128byte và có thể mở rộng với bộ nhớ dữ liệu ngoài lên tới 64kByte Vớinhững vi điều khiển không tích hợp ROM trên chip thì vẫn có RAM trên chip

là 128byte Khi sử dụng RAM ngoài, CPU đọc và ghi dữ liệu nhờ tín hiệutrên các chân RD và WR Khi sử dụng cả bộ nhớ chương trình và bộ nhớ dữliệu bên ngoài thì buộc phải kết hợp chân RD và PSEN bởi cổng logic AND

để phân biệt tín hiệu truy xuất dữ liệu trên ROM hay RAM ngoài

2.1 Bộ nhớ chương trình

Trang 12

Hình 3:Cấu trúc bộ nhớ chương trình

Hình 4: Địa chỉ các ngắt trên bộ nhớ chương trình

Hình 4 trên mô tả cấu trúc bộ nhớ chương trình Sau khi khởi động,CPU bắt đầu thực hiện chương trình ở vị trí 0000H Hình 1.1.3 mô tả địa chỉngắt mặc định trên bộ nhớ chương trình Mối khi xảy ra ngắt, con trỏ củaCPU sẽ nhảy đến đúng địa chỉ ngắt tương ứng và thực thi chương trình tại đó

Ví dụ ngắt ngoài 0 sẽ có địa chỉ là 0003H, khi xảy ra ngắt ngoài 0 thì con trỏchương trình sẽ nhảy đến đúng địa chỉ 0003H để thực thi chương trình tại đó.Nếu trong chương trình ứng dụng không xử dụng đến ngắt ngoài 0 thì địa chỉ0003H vẫn có thể dùng cho mục đích khác (sử dụng cho bộ nhớ chươngtrình) Bởi vậy khi lập trình bằng ngôn ngữ Assembly, phần đầu chương trìnhbao giờ cũng phải cho chương trình nhảy đến địa chỉ cao hơn địa chỉ chứa cácngắt và mã lệnh viết cho các ngắt thì phải viết đúng địa chỉ của các ngắt tươngứng

Trang 13

2.2 Bộ nhớ dữ liệu

Hình 5 :Cấu trúc bộ nhớ dữ liệu Hình 5 mô tả cấu trúc bộ nhớ dữ liệu trong và bộ nhớ dữ liệu ngoàicủa họ vi điều khiển 8051 CPU sẽ dùng đến các chân RD và WR khi truy cậpđến bộ nhớ dữ liệu ngoài

Hình 6 mô tả cấu trúc bộ nhớ dữ liệu trong chip, được chia thành 3khối là 128 byte thấp, 128 byte cao và 128 byte đặc biệt

Hình 6 : Cấu trúc bộ nhớ trong

Hình 7 mô tả cấu trúc 128 byte thấp của bộ nhớ dữ liệu của họ vi điềukhiển 8051 32 byte đầu tiên (00H-1FH) được sử dụng cho 4 bộ 8 thanh ghi

Trang 14

R0-R7 Hai bit của thanh ghi đặc biệt PSW sẽ lựa chọn 1 trong 4 bộ thanh ghi

mà vi điều khiển sẽ dùng trong khi thực thi chương trình

Hình 7 : Cấu trúc 128 byte thấp của bộ nhớ dữ liệu trong

8051 chứa 210 vị trí bit được định địa chỉ trong đó 128 bit chứa trong các byte ở địa chỉ từ 20H đến 2FH (16 byte x 8 bit = 128 bit) và phần còn lại chứa trong các thanh ghi đặc biệt Ngoài ra 8051 còn có các port xuất/nhập có thể định địa chỉ từng bit, điều này làm đơn giản việc giao tiếp bằng phần mềm với các thiết bị xuất/nhập đơn bit

Vùng RAM đa mục đích có 80 byte đặt ở địa chỉ từ 30H đến 7FH, bêndưới vùng này từ địa chỉ 00H đến 2FH là vùng nhớ có thể được sử dụngtương tự Bất kỳ vị trí nhớ nào trong vùng RAM đa mục đích đều có thể đượctruy xuất tự do bằng cách sử dụng các kiểu định địa chỉ trực tiếp hoặc giántiếp

Bất kỳ vị trí nhớ nào trong vùng RAM đa mục đích đều có thể đượctruy xuất tự do bằng cách sử dụng các kiểu định địa chỉ trực tiếp hoặc giántiếp

Cũng như các thanh ghi từ R0 đến R7, ta có 21 thanh ghi chức năngđặc biệt SFR chiếm phần trên của Ram nội từ địa chỉ 80H đến FFH Cần lưu ý

Trang 15

là không phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chỉ

có 21 địa chỉ được định nghĩa

Hình 8 128 byte cao của bộ nhớ dữ liệu

3 Các thanh ghi trong VĐK

3.1 Các thanh ghi đặc biệt

8051 có 21 thanh ghi chức năng đặc biệt SFR chiếm phần trên củaRam nội từ địa chỉ 80H đến FFH Cần lưu ý là không phải tất cả 128 địa chỉ

từ 80H đến FFH đều được định nghĩa mà chỉ có 21 địa chỉ được định nghĩa.Hình 1.2.1 mô tả các thanh ghi đặc biệt trong vùng nhớ dữ liệu 80H đến FFH

Trang 16

Hình 9 : Các thanh ghi đặc biệt

3.2 Thanh ghi chính

Thanh ghi tính toán chính của vi điều khiển 8051 ACC(Accumulator) Là thanh ghi đặc biệt của 8051 dùng để thực hiện các phéptoán của CPU, thường kí hiệu là A

3.3 Thanh ghi phụ

Thanh ghi tính toán phụ của vi điều khiển 8051 là B Thanh ghi B ởđịa chỉ F0H được dùng chung với thanh chứa A trong các phép toán nhân,chia Lệnh MUL AB nhân 2 số 8 bit không dấu chứa trong A và B và chứakết quả 16 bit vào cặp thanh ghi B, A (thanh chứa A cất byte thấp và thanhghi B cất byte cao)

Lệnh chia DIV AB chia A bởi B, thương số cất trong thanh chứa A

và dư số cất trong thanh ghi B Thanh ghi B còn được xử lý như một thanhghi nháp Các bit được định địa chỉ của thanh ghi B có địa chỉ từ F0H đến

F7H

Trang 17

3.4 Thanh ghi trạng thái chương trình (PSW)

Thanh ghi trạng thái chương trình PSW là thanh ghi mô tả toàn bộ trạngthái chương trình đang hoạt động của hệ thống Hình 10 và 11 sẽ mô tả thanhghi này

Hình 10: Thanh ghi trạng thái chương trình PSW

Trang 18

Hình 11: Chi tiết các bit trong thanh ghi PSW

3.5 Thanh ghi ngăn xếp (Stack Pointer)

Con trỏ stack SP (stack pointer) là 1 thanh ghi 8 bit ở địa chỉ 81H SPchứa địa chỉ của dữ liệu hiện đang ở đỉnh của stack Các lệnh liên quan đếnsatck bao gồm lệnh cất dữ liệu vào stack và lệnh lấy dữ liệu ra khỏi stack.Việc cất vào stack làm tăng SP trước khi ghi dữ liệu và việc lấy dữ liệu rakhỏi stack sẽ giảm SP Vùng stack của 8051 được giữ trong RAM nội vàđược giới hạn đến các địa chỉ truy xuất được bởi kiểu định địa chỉ gián tiếp.Các lệnh PUSH và POP sẽ cất dữ liệu vào stack và lấy dữ liệu từ stack, cáclệnh gọi chương trình con (ACALL, LCALL) và lệnh trở về (RET, RETI)cũng cất và phục hồi nội dung của bộ đếm chương trình PC (Programcounter)

Trang 19

3.8 Thanh ghi bộ đệm truyền thông nối tiếp (Serial Data Buffer)

Bộ đệm truyền thông được chia thành hai bộ đệm, bộ đệm truyền dữliệu và bộ đệm nhận dữ liệu Khi dữ liệu được chuyển vào thanh ghi SBUF,

dữ liệu sẽ được chuyển vào bộ đệm truyền dữ liệu và sẽ được lưu giữ ở đócho đến khi quá trình truyền dữ liệu qua truyền thông nối tiếp kết thúc Khithực hiện việc chuyển dữ liệu từ SBUF ra ngoài, dữ liệu sẽ được lấy từ bộđệm nhận dữ liệu của truyền thông nối tiếp

3.9 Thanh ghi của bộ định thời/bộ đếm

8051 có 2 bộ đếm/định thời (counter/timer) 16 bit để định các khoảngthời gian hoặc để đếm các sự kiện Các cặp thanh ghi (TH0, TL0) và (TH1,TL1) là các thanh ghi của bộ đếm thời gian Bộ định thời 0 có địa chỉ 8AH(TL0, byte thấp) và 8CH (TH0, byte cao) Bộ định thời 1 có địa chỉ 8BH(TL1, byte thấp) và 8DH (TH1, byte cao)

Hoạt động của bộ định thời được thiết lập bởi thanh ghi chế độ địnhthời TMOD (Timer Mode Register) ở địa chỉ 88H Chỉ có TCON được địnhđịa chỉ từng bit

Trang 20

3.10 Các thanh ghi điều khiển

Các thanh ghi điều khiển đặc biệt như IP, IE, TMOD, TCON, SCON

và PCON là các thanh ghi điều khiển và ghi nhận trạng thái của hệ thốngngắt, bộ đếm/định thời, truyền thông nối tiếp

4 Truy xuất địa chỉ

8051 có các kiểu truy xuất địa chỉ khác nhau:

 Thanh ghi (Register)

Trực tiếp (Direct)

Gián tiếp (Indirect)

Tức thời (Immediate)

Tương đối (Relative)

Tuyệt đối (Absolute)

Dài (Long)

Chỉ số (Indexed)

4.1 Truy xuất địa chỉ thanh ghi

8051 cho phép truy xuất 8 thanh ghi “làm việc”, được đánh số từ R0 →R7 Các lệnh sử dụng kiểu định địa chỉ thanh ghi được mã hóa bằng các dùng

3 bit thấp nhất của opcode( của lệnh) để chỉ ra 1 thanh ghi bên trong khônggian địa chỉ logic này Vậy : 1 mã chức năng + địa chỉ toán hạng → 1 lệnhngắn 1 byte

4.2 Truy xuất địa chỉ kiểu trực tiếp

Kiểu định địa chỉ trực tiếp được sử dụng để truy xuất các biến nhớhoặc các thanh ghi trên chip Một byte thêm vào tiếp theo opcode dùng để xác

Trang 21

định địa chỉ Trong 8051 có 128 byte bộ nhớ RAM Bộ nhớ RAM được gánđịa chỉ từ 00H đến FFH và được phân chia như sau:

Các ngăn nhớ từ 00H đến 1FH được gán cho các băng thanh ghi vàngăn xếp

Các ngăn nhớ từ 20H đến 2FH được dành cho không gian định địa chỉbít để lưu dữ liệu theo từng bit

Các ngăn nhớ từ 30H đến 7FH là không gian để lưu dữ liệu có kíchthước 1 byte

Chế độ định địa chỉ trực tiếp có thể truy cập toàn bộ không gian của

bộ nhớ RAM Tuy nhiên, chế độ này thường được dùng để truy cập các ngănnhớ RAM từ 30H đến 7FH, vì thực tế đối với không gian nhớ danh cho băngthanh ghi thì đã được truy cập bằng tên thanh ghi như R0- R7 ở chế độ địnhđịa chỉ trực tiếp , địa chỉ ngăn nhớ RAM chứa dữ liệu là toán hạng của lệnh

Ví dụ:

MOV R0, 40 ; sao nội dung ngăn nhớ 40H của RAM vào R0

MOV R4, 7FH ; chuyển nội dung ngăn nhớ 7FH vào R4

Một ứng dụng quan trọng của chế độ định địa chỉ trực tiếp là ngănxếp Trong họ 8051, chỉ có chế độ định địa chỉ trực tiếp là được phép cất vàlấy dữ liệu từ ngăn xếp

4.3 Truy xuất địa chỉ kiểu gián tiếp

Ở chế độ này, thanh ghi được dùng để trỏ đến dữ liệu có trong bộ nhớ Nếu dữ liệu có trên chip CPU thì chỉ các thanh ghi R0 và R1 mớiđược sử dụng, và như vậy cũng có nghĩa là không thể dùng các thanh ghi R2-R7 để trỏ đến địa chỉ của toán hạng ở chế độ định địa chỉ này Nếu R0 và R1được dùng làm con trỏ, nghĩa là chúng lưu địa chỉ của ngăn nhớ RAM thìtrước các thanh ghi cần đặt dấu " @" như các ví dụ sau:

Trang 22

MOV A, @R0 ; chuyển ngăn nhớ RAM có địa chỉ ở R0vào A

MOV @R1, B ; chuyển B vào ngăn nhớ RAM có địa chỉ ở R1

Chú ý: ở đây R0 cũng như R1 đều có dấu "@" đứng trước Nếu

không có dấu "@" đứng trước thì đó là lệnh chuyển nội dung thanh ghi R0 vàR1 chứ không phải dữ liệu ngăn nhớ có địa chỉ trong R0 và R1 Một trongnhững ưu diểm của chế độ định địa chỉ gián tiếp là cho phép truy cập dữ liệulinh hoạt hơn so với chế độ định địa chỉ trực tiếp Tuy nhiên R0 và R1 là cácthanh ghi 8 bit, nên chúng chỉ được phép truy cập đến các ngăn nhớ RAMtrong, từ địa chỉ 30H đến 7FH và các thanh ghi SFR Trong thực tế, có nhiềutrường hợp cần truy cập dữ liệu được cất ở RAM ngoài hoặc không gianROM trên chip Trong những trường hợp đó chúng ta cần sử dụng thanh ghi

16 bit DPTR

4.4 Truy xuất địa chỉ kiểu tức thời

Khi toán hạng là một hằng số thay vì là một biến, hằng số này có thểđưa vào lệnh và đây là byte dữ liệu tức thời

Trong hợp ngữ, các toàn hạng tức thời được nhận biết nhờ vào ký tự

‘# ‘ đặt trước chúng Toán hạng này có thể là một hằng số học, một biến hoặcmột biểu thức số học sử dụng các hằng số, các ký hiệu và các toán tử Trìnhdịch hợp ngữ tính giá trị và thay thế dữ liệu tức thời vào trong lệnh

Ví dụ lệnh : MOV A, #12 ;Nạp giá trị 12(OCH) vào thanh chứa A Tất cả các lệnh sử dụng kiểu định địa chỉ tức thời đều sử dụng hằng

dữ liệu 8 bit làm dữ liệu tức thời Có một ngoại lệ khi ta khởi động con trỏ dữliệu 16-bit DPTR, hằng địa chỉ 16 bit được cần đến

Trang 23

4.5 Truy xuất địa chỉ kiểu tương đối

Kiểu định địa chỉ tương đối chỉ được sử dụng cho các lệnh nhảy Mộtđịa chỉ tương đối là một giá trị 8 bit có dấu Giá trị này được cộng với một

bộ đếm chương trình để tạo ra địa chỉ của lệnh tiếp theo cần thực thi Định địachỉ tương đối có điểm lợi là cung cấp cho ta mã không phụ thuộc vào vị trí,nhưng lại có điểm bất lợi là các đích nhảy bị giới hạn trong tầm

4.6 Truy xuất địa chỉ kiểu tuyệt đối

Kiểu định địa chỉ này được sử dụng với các lệnh ACAll và AJMP.Đây là các lệnh 2 byte cho phép rẽ nhánh chương trình trong trang 2k hiệnhành của bộ nhớ chương trình bằng cách cung cấp 11 bit thấp của địa chỉđích Trong đó có 3 bit cao (A8-A10) và 8 bit thấp (A0-A7) thành lập bytethứ 2 của lệnh

4.7 Truy xuất địa chỉ kiểu dài

Kiểu định địa chỉ dài chỉ được dùng cho các lệnh LCALL và LJMP.Các lệnh 3 byte này chứa địa chỉ đích 16 bit Lợi ích của kiểu định địa chỉ này

là sử dụng hết toàn bộ không gian nhớ chương trình 64K, nhưng lại có điểmbất lợi là lệnh dài đến 3-byte và phụ thuộc vào vị trí

4.8 Truy xuất địa chỉ kiểu chỉ số

Chế độ định địa chỉ chỉ số được sử dụng rộng rãi khi truy cập cácphần tử dữ liệu của bảng trong không gian ROM chương trình của 8051 Lệnhđược dùng cho mục đích này là "MOVC A, @A+DPTR" Thanh ghi 16 bitDPTR và thanh ghi A được dùng để tạo ra địa chỉ của phần tử dữ liệu đượclưu trong

ROM trên chip ở lệnh này, nội dung của A được cộng với nội dungthanh ghi 16- bit DPTR để tạo ra địa chỉ 16 bit

Trang 24

5 Các Port của vi điều khiển

5.1 Port0 (P0.0-P0.7):

Port 0 gồm 8 chân, ngoài chức năng xuất nhập, Port 0 còn là bus đahợp dữ liệu và địa chỉ (AD0-AD7), chức năng này sẽ được sử dụng khi 8051giao tiếp với thíêt bị ngoài có các kiến trúc bus như mạch nhớ, mạch PIO…

Hình 12: Cấu trúc của các chân trên Port 0

5.2 Port1 (P1.0-P1.7)

Đối với 8051, chức năng duy nhất của Port 1 là chức năng xuất nhập,

cũng như các Port khác Port 1 có thể xuất nhập theo bit hoặc theo byte

Trang 25

Hình 13: Cấu trúc của các chân trên Port 1 và Port3.

5.3 Port2 (P2.0-P2.7)

Port 2 là một Port công dụng kép trên các chân 21-28 được dùng nhưcác đường xuất nhập hoặc là byte cao cua Bus địa chỉ với các thiết kế dùng bộnhớ mở rộng

Hình 14: Cấu trúc các chân trên Port 2

Trang 26

5.4 Port3 (P3.0-P3.7)

Hình 15: Cấu trúc các chân trên Port 3 Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năngriêng, cụ thể như sau :

Port Tên Chức năng chuyển đổi

P3.0 RXD Dữ liệu nhận cho Port nối tiếp

P3.1 TXD Dữ liệu phát cho Port nối tiếp

P3.6 WR\ Xung ghi bộ nhớ dữ liệu ngoài

P3.7 RD\ Xung đọc bộ nhớ dữ liệu ngoài

6 Các chế độ của vi điều khiển :

Trang 27

Nhìn tổng thể chúng ta có thể tìn hiểu về vi điều khiển trong 3 mảng vấn

đề chính là: Các bộ định thời Timer, Port nối tiếp và Ngắt

6.1 Hoạt động định thời :

Các thanh ghi:

Timer 0 và Timer 1 : Thanh ghi chế độ định thời (TMOD)

Thanh ghi điều khiển Timer ( TCON)

Các thanh ghi chứa giá trị của các bộ định thời.Timer 2 : Thanh ghi T2CON

Thanh ghi T2MOD

Thanh ghi TH2 và TL2,RCAP2H và RCAP2L

Các chế độ hoạt động của Timer:

Timer 0 và Timer 1: Chế độ 0 : Timer 13 bit

Chế độ 1: Timer 16 bit

Chế độ 2 : 8 bit tự động nạp lại

Chế độ 3 : Tách Timer

Timer 2 : Chế độ thu nhận (Captuer) : 16bit tự nạp lại

Chế độ tự nạp lại (Auto-Reload) : 16bit thu nhận

Chế độ cung cấp tốc độ Baud cho cổng nối tiếp

6.2 Cổng nối tiếp

Trang 28

Các thanh ghi cổng nối tiếp: Thanh ghi điều khiển cổng nối tiếp(SCON), thanh ghi đệm truyền nhận ở cổng nối tiếp (SBUF).

Các chế độ hoạt động: Chế độ 0 và chế độ 1, chế độ 2

Ứng dụng truyền nhận qua cổng nối tiếp và truyền thông đa xử lý

6.3 Ngắt và xử lý ngắt:

Thanh ghi cho phép ngắt IE ( Interrupt Enable)

Thanh ghi ưu tiên ngắt IP

Trang 29

Ngắt do bộ Timer 1.

Ngắt do bộ Timer 2

Ngắt do Port nối tiêp

Các ngắt ngoài sảy ra khi có mức thấp hoặc sườn xuống trên chân INT0hoặc INT1 của vi điều khiển Đây là chức năng chuyển đổi của các bit Port 3(P3.2 và P3.3)

Ngắt cổng nối tiếp xảy ra khi cờ phát (TI) hoặc cờ ngắt thu (RI) đượcđặt lên mức1 Ngắt phát xảy ra khi một ký tự đã nhận xong và đang đợi trongSBUF để được đọc

Các ngắt cổng nối tiếp khác với các ngắt Timer Cờ gây ra ngắt cổng nốitiếp không bị xáo bằng phấn cứng khi CPU chuyển tới ngắt, do có hai nguồnngắt cổng nối tiếp TI và RI Nguồn ngắt phải được xác định trong ISR và cờtạo ngắt sẽ được xoá bằng phần mềm Các ngắt Timer cờ ngắt được xoá bằngphần cứng khi CPU hướng tới ISR

* Thanh ghi cho phép ngắt IE(Interrupt Enable):

EA

T2

ES

ET1

EX1

ET0

EX0

Bit

IE.7

IE.6

Ký hiệu

EA-

Địa chỉ bit

AFHAEH

Mô tả(1: cho phép, 0: cấm)

Cho phép hoặc cấm toànbộ

Trang 30

Không được định ngĩa.Cho phép ngắt từ timer 2.Cho phép ngắt Port nốitiếp

Cho phép ngắt từ timer1.Cho phép ngắt ngoài 1.Cho phép ngắt từ timer 0.Cho phép ngắt ngoài 0

* Thanh ghi ưu tiên ngắt IP:

Mỗi nguồn ngắt được lập trình riêng để đặt vào một trong hai mức ưutiên qua thanh ghi chức năng đặc biệt được địa chỉ bit IP ở địa chỉ B8H

T2

PS

PT1

PX1

PT0

PX0

Trang 31

-Địa chỉ bit

BDHBCHBBHBAHB9HB8H

Mô tả(1: cho phép, 0: cấm)

Không được định nghia.Không được định nghĩa

Ưu tiên cho ngắt từtimer2

Ưu tiên cho ngắt từ portnối tiếp

Ưu tiên cho ngắt từtimer1

Ưu tiên cho ngắt ngoài 1

Ưu tiên cho ngắt từtimer0

Ưu tiên cho ngắt ngoài 0

Trang 32

* Xử lý ngắt.

- Khi có một ngắt xuất hiện và được CPU chấp nhận có các thao tácsau:

+ Hoàn tất lệnh thực thi hiện hành

+ PC được cất vào Stack

+ Trạng thái của ngắt hiện hành được lưu giữ lại

+ Các ngắt được chặn lại ở mức ngắt

+ PC nạp địa chỉ vector ngắt của ISR

+Thực thi ISR

- Các ngắt do Port nối tiếp.

+ Các ngắt này xuất hiện khi cờ ngắt phát TI hoặc cờ ngắt thu RI đượcset bằng 1

+ Cờ gây ra ngắt ở port nối tiếp không được xóa bởi phần cứng khi CPUtrỏ tới ISR

Trang 33

+ Các cờ gây ngắt IE0,IE1 tự động được xóa khi CPU trỏ tới ISR tươngứng.

7 Các chân khác của vi điều khiển

7.1 Chân /PSEN( Program Store Enable)

/PSEN là chân điều khiển đọc chương trình bộ nhớ ngoài, nó được nốivới chân /OE để cho phép đọc các byte mã lệnh trên ROM ngoài /PSEN sẽ ởmức thấp trong thời gian đọc mã lệnh Mã lệnh được đọc từ bộ nhớ ngoài quabus dữ liệu (Port 0) thanh ghi lệnh để được giải mã

Khi thực hiện chương trình trong ROM nội thi /PSEN ở mức cao

7.2 Chân ALE ( Address Latch Enable).

ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số daođộng của vi điều khiển Tín hiệu ALE được dùng để cho phép vi mạch chốtbên ngoài như 74373, 74573 chốt byte địa chỉ thấp ra khỏi bus đa hợp địachỉ /dữ liệu( Port0)

7.3 Chân /EA( External Access).

Tín hiệu /AE cho phép chọn bộ nhớ chương trình là bộ nhớ trong hayngoài vi điều khiển Nếu /AE ở mức cao( nối với Vcc) thì vi điều khiển thihành trong ROM nội Nếu /AE ở mức thấp( nối với GND ) thì vi điều khiểnthục hiện chương trình từ bộ nhớ ngoài

7.4 RST( Reset).

Ngõ vào RST trên chân 9 là ngõ reset của 8051 Khi tín hiệu này đượcđưa lên mức cao ( trong ít nhất 2 chu kì máy) , các thanh ghi trong bộ vi diềukhiển được tải những giá trị thích hợp để khởi động hệ thống

7.5 XTAL1, XTAL2.

Trang 34

AT89S52 có một bộ dao động trên chip, nó thường được nối với bộ daođộng thạch anh có tần số lớn nhất là 33MHz, thông thường là 12MHz.

Hình 1.2.1 : Sơ dồ khối nguồn.

Cung cấp nguồn nuôi 5V cho toàn mạch

2 KHỐI GHÉP NỐI VỚI MÁY TÍNH QUA CỔNG COM.

Trang 35

Hình 1.2.2 Sơ đồ khối ghép nối với máy tính qua cổng nối tiếp.

2.1 Cổng nối tiếp (COM).

Cổng nối tiếp là một giao diện rất phổ biến trên máy tính, cổng này cótên gọi khác là cổng COM Nó được sử dụng khá rộng rãi và thuận tiện choviệc ghép nối máy tính với thiết bị ngoài Khoảng cách truyền của cổng nốitiếp được cải thiện hơn so với cổng song song do mức chênh lệch điện áp làkhá lớn

Việc truyền dữ liệu qua cổng COM được tiến hành theo cách nối tiếp.Nghĩa là các bit dữ liệu được truyền đi nối tiếp nhau trên một đường dẫn Loạitruyền này có khả năng dùng cho những ứng dụng có yêu cầu truyền khoảngcách lớn hơn, bởi vì các khả năng gây nhiễu là nhỏ đáng kể hơn khi dùng mộtcổng song song (cổng máy in)

Cổng COM không phải là một hệ thống bus nó cho phép dễ dàng tạo raliên kết dưới hình thức điểm với điểm giữa hai máy cần trao đổi thông tin với

Trang 36

nhau, một thành viên thứ ba không thể tham gia vào cuộc trao đổi thông tinnày.

* Sơ đồ chân cổng COM.

Hình 1.2.3 Sơ đồchân của cổng COM.

* Ý nghĩa các chân tín hiệu:

- Chân 1 (DCD) : Tín hiệu phát hiện mang dữ liệu.

- Chân 2 (RxD) : Nhận dữ liệu

- Chân 3 (TxD) : Truyền dữ liệu

- Chân 4 ( DTR) : Dữ liệu cuối sãn sang

- Chân 5 ( GND) : Nối đất

- Chân 6 (DSR) : Dữ liệu sẵn sàng được gửi

- Chân 7 ( RTS) : Tín hiệu yêu cầu gửi

- Chân 8 ( CTS) : Tín hiệu yên cầu xóa để gửi tiếp

- Chân 9 ( RI) : Ring Indicator

2.2 IC MAX232.

Bộ vi điều khiển AT89S52 có khả năng giao tiếp với thế giới bên ngoàithông qua cổng nối tiếp Vấn đề trở ngại duy nhất khi giao tiếp với máy tính

Trang 37

là mức logic ở bộ vi điều khiển và ở cổng COM của máy tính khác nhau, cụthể như sau:

Bảng 1.2.1: So sánh điện áp của các mức logic giữa RS232 và TTL.

Hình 1.2 4 Sơ đồ chân và hình ảnh thực tế của MAX 232.

Trang 38

3 KHỐI VI ĐIỀU KHIỂN.

Hình 1.2.5 Sơ đồ khối vi điều khiển.

3.1 Mạch tạo dao động.

Hình 1.2.6: Sơ đồ mạch tạo dao động của 8051.

AT89S52 có một bộ chia tần bên trong chip, bộ này sẽ cấp xung clockcho các khối trên chip từ nguồn dao động bên ngoài qua 2 chân XTAL1 và

Trang 39

Bộ chia tần có thể hoạt động ở hai chế độ :

- Chế độ X1: ( chế độ mặc định): Ở chế độ này tần số thạch anh đượcchia 12 lần, nghĩa là một lệnh được thực hiện trong một chu kì máy và tần sốthạch anh là 12 MHz thì thời gian thực hiện lệnh đó sẽ là 12 (us)

- Chế độ X2: Ở chế độ này tần số thạch anh được chia 6 lần , chế độ nayđược dặt bằng cách đặt các bit ở thanh ghi CLKCON0 và thanh ghiCLKCON1

3.2 Mạch reset.

Hình 1.2.7: Sơ đồ mạch reset của 8051.

Có 4 cách để reset AT89S52 lần lượt là: reset khi cấp nguồn, reset bởiWDT, reset bằng phần mềm, reset bằng mạch ngoài qua chân RST

Trong một hệ thống gồm nhiều vi mạch khả trình thì một mạch reset tíchhợp cả 2 cách reset khi bật nguồn và reset bởi mạch ngoài thường được sửdụng

Ngày đăng: 22/11/2014, 14:01

HÌNH ẢNH LIÊN QUAN

Hình 3:Cấu trúc bộ nhớ chương trình - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 3 Cấu trúc bộ nhớ chương trình (Trang 11)
Hình 5 :Cấu trúc bộ nhớ dữ liệu - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 5 Cấu trúc bộ nhớ dữ liệu (Trang 12)
Hình 6 : Cấu trúc bộ nhớ trong - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 6 Cấu trúc bộ nhớ trong (Trang 12)
Hình 7 : Cấu trúc 128 byte thấp của bộ nhớ dữ liệu trong - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 7 Cấu trúc 128 byte thấp của bộ nhớ dữ liệu trong (Trang 13)
Hình 9 : Các thanh ghi đặc biệt - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 9 Các thanh ghi đặc biệt (Trang 15)
Hình 11: Chi tiết các bit trong thanh ghi PSW - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 11 Chi tiết các bit trong thanh ghi PSW (Trang 17)
Hình 12: Cấu trúc của các chân trên Port 0. - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 12 Cấu trúc của các chân trên Port 0 (Trang 23)
Hình 14: Cấu trúc các chân trên Port 2 - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 14 Cấu trúc các chân trên Port 2 (Trang 25)
Hình 13: Cấu trúc của các chân trên Port 1 và Port3. - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 13 Cấu trúc của các chân trên Port 1 và Port3 (Trang 25)
Hình 15: Cấu trúc các chân trên Port 3 - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 15 Cấu trúc các chân trên Port 3 (Trang 26)
Hình 1.2.2 Sơ đồ khối ghép nối với máy tính qua cổng nối tiếp. - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 1.2.2 Sơ đồ khối ghép nối với máy tính qua cổng nối tiếp (Trang 35)
Hình 1.2.3 Sơ đồchân của cổng COM. - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 1.2.3 Sơ đồchân của cổng COM (Trang 36)
Bảng 1.2.1: So sánh điện áp của các mức logic giữa RS232 và TTL. - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Bảng 1.2.1 So sánh điện áp của các mức logic giữa RS232 và TTL (Trang 37)
Hình 1.2.5 Sơ đồ khối vi điều khiển. - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 1.2.5 Sơ đồ khối vi điều khiển (Trang 39)
Hình 1.2.6: Sơ đồ mạch tạo dao động của 8051. - Đồ Án Tốt Ngiệp Thiết kế bộ KIT thực hành vi điều khiển 8051
Hình 1.2.6 Sơ đồ mạch tạo dao động của 8051 (Trang 39)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w