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

thiết kế mạch quang báo giao tiếp máy tính

102 394 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Thiết kế mạch quang báo giao tiếp máy tính
Tác giả Lê Thanh HTiện
Người hướng dẫn TS. Hồ Văn Cừu
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Kỹ thuật Điện Tử
Thể loại Báo cáo thực tập
Năm xuất bản N/A
Thành phố Hà Nội
Định dạng
Số trang 102
Dung lượng 1,41 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chân 29 PSEN: là tín hiệu điều khiển cho phép chọn bộ nhớ chương trình mở rộng và được nối chung vớichân OE Output Enable của EPROM ngoài để cho phép đọc các byte mã lệnh.. Thí dụ ta có

Trang 1

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN:

Ngày tháng năm Giáo viên hướng dẫn

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN:

Ngày tháng năm

Giáo viên phản biện

Trang 3

LỜI CẢM ƠN

Trong thời gian làm luận văn em gặp rất nhiều khókhăn cũng như thuận lợi, nhưng với sự hướng dẫn tận tìnhcủa thầy Hồ Văn Cừu em đã hoàn thành những nội dung mà

đề tài đưa ra Em xin chân thành cảm ơn thầy Hồ Văn Cừu đãtận tình hướng dẫn em Và em cũng xin cảm ơn đến quý thầy

cô đã giảng dạy cho em trong 4 năm qua

TP.Hồ Chi Minh Ngày 10 tháng 1 năm 2008

Trang 4

MỤC LỤC

LỜI CẢM ƠN 3

MỤC LỤC 4

LỜI GIỚI THIỆU 5

Chương 1 Giới thiệu tổng quan 6

1.1 Giới thiệu chung 6

1.2 Giới thiệu đề tài 6

Chương 2 Tổng quan về giao tiếp máy tính và vi mạch 89C51 7

2.1 Tổng quan về giao tiếp máy tính 7

2.1.1 Phần cứng 7

2.1.2 Phần mềm 9

2.2 Vi mạch 89C51 14

2.2.1 Cấu trúc vi mạch 89C51 và chức năng của các chân 15

2.2.2 Cấu trúc bus 19

2.2.3 Bộ nhớ chương trình – Bộ nhớ ROM 20

2.2.4 Bộ nhớ dữ liệu-Bộ nhớ RAM 20

2.2.5 Các thanh ghi chức năng đặc biệt (SFR) 22

2.2.6 Bộ nhớ ngoài (external memory) 29

2.2.7 Hoạt động RESET 33

2.2.8 Họat động định thời 34

2.2.9 Họat động ngắt 39

2.2.10 Họat động port nối tiếp 43

2.3 Sơ lược về bộ nhớ 53

2.3.1 Khái niệm 53

2.3.2 Phân loại bộ nhớ: một số bộ nhớ thông dụng 53

2.4 Giới thiệu chương trình Asambler 54

Chương 3 Thiết kế modun quang báo 60

3.1 Các IC được dùng trong mạch 60

3.2 Sơ đồ khối và Hoạt động các khối 65

3.2.1 Mater: 65

3.2.2 Slave: 65

3.3 Thiết kế và thi công 66

3.3.1 Giới thiệu 66

3.3.2 Thiết kế 67

Chương 4 Thực nghiệm 76

4.1 Kết quả 76

4.2 Hướng phát triển 76

TÀI LIỆU THAM KHẢO: 76

PHỤ LỤC 77

Trang 6

Chương 1

LỜI GIỚI THIỆU

Ngày nay với sự phát triển của xã hội cùng với sự phát triển của khoa học kỹ thuậtcho nên nhu cầu về thông tin trở nên hết sức cần thiết trong cuộc sống cũng như tronghọat động sản xuất kinh doanh Để đáp ứng nhu cầu đó quang báo là một lựa chọn đầutiên, vì nó rất dễ bắt mắt chung ta với nhiều màu sắc Quang báo có thể hiển thị đuợc cảvăn bản lẫn hình ảnh, vì vậy nó rất tiện lợi cho quảng cáo và thông báo những thông tinngắn gọn

Trang 7

Chương 2 Giới thiệu tổng quan.

1.1 Giới thiệu chung.

Khoa học kỹ thuật (KHKT) là một phần của văn minh con người Sự phát triển củaKHKT đã đưa con người tiến lên một thời kì mới Thời kì của lao động trí óc thay cho laođộng chân tay Ngày nay KHKT phát triển như vũ bão, mà đặc biệt là ngành điện tử Tuy

ra đời sau nhưng hiện nay điện tử là ngành phát triển mạnh nhất của KHKT Việc pháthiện ra các chất bán dẫn đã góp phần rất lớn vào việc thu nhỏ kích thước của linh kiện rấtnhiều Cộng với sự ra đời của IC đã giúp cho các sản phẩm điện tử trở nên nhỏ gọn hơn

Nói đến điện tử ta không thể không nhắc đến vi điều khiển (VĐK) Đúng vậy,ngày nay dù bất cứ nơi đâu ở trong nhà hay ngoài đường ta đều có thể bắt gặp các sảnphẩm ứng dụng VĐK rất nhiều Từ đơn giản như cái remote điều khiển ti vi, máy lạnh,đầu hát đĩa,…đến cái phức tạp hơn như điều khiển các tín hiệu đèn giao thông, các bảngđèn thông báo có những dòng chữ, hình ảnh chạy qua, rơi từ trên xuống, hay trồi từ dướilên Và phức tạp hơn nữa là điều khiển các dây chuyền sản xuất qua hệ thống máy tính

1.2 Giới thiệu đề tài.

Xã hội phát triển dẫn theo đó là nhu cầu về trao đổi thông tin Thông tin rất cầnthiết với con người trong cuộc sống cũng như trong sản xuất kinh doanh Để đáp ứng nhucầu trên, quang báo là hình thức cung cấp thông tin hữu ích không thể thiếu trong cuộcsống hàng ngày Ở nước ngoài việc dùng quang báo để quảng cáo hay hiện những thôngbáo, tin tức đã có rất lâu Thế nhưng tại Việt Nam thì nó mới phổ biến rộng rãi trongnhưng năm gần đây Quang báo gồm nhiều ma trận LED có thể là:5x7, 5x8, 8x8, 8x12hoặc 8x14 để ghép lại với nhau, một ma trận hoặc hai ma trận cùng biểu diễn một kí tự

Bên cạnh đó, sự ra đời của máy vi tính, chúng có những tính năng ưu việt như khảnăng xử lý dữ liệu nhanh chóng, độ tin cậy cao, lưu trữ thông tin lớn và quan trọng hơn cả

Trang 8

là máy tính có thể kết hợp với nhiều thiết bị ngoại vi tùy theo mục đích ứng dụng cụ thể.Việc trao đổi và điều khiển trở nên đơn giản hơn nhờ vào phầm mềm điều khiển Nhờ tínhnăng đa dạng và mềm dẻo đó mà việc thiết kế quang báo giao tiếp máy tính trở nên ítphức tạp hơn Để thực hiện một bảng quang báo lớn thì phải cần nhiều thời gian Nhưng ởđây do thời gian ngắn và kiến thức còn hạn chế nên em chỉ thực hiện một modun nhỏ đểhiểu hơn về quang báo Từ những kiến thức cơ bản đó ta có thể mở rộng ra với modul lớnhơn, kinh tế hơn Có nhiều cách để làm một mạch quang báo như: dùng IC rời, dùng vi xử

lý, dùng VĐK,…ở đây em chọn cách dùng VĐK có giao tiếp máy tính qua cổng nối tiếp

để điều khiển

Chương 3 Tổng quan về giao tiếp máy tính và vi mạch 89C51.

2.1 Tổng quan về giao tiếp máy tính.

2.1.1 Phần cứng.

Giao tiếp giữa máy tính và thiết bị ngoại vi có thể dùng :

Cổng máy in LPT_cổng song song

Cổng COM_cổng nối tiếp

Cổng USB_Univeral Serial Bus

2.1.1.1 Cổng nối tiếp.

Cổng nối tiếp RS-232C là giao diện phổ biến rộng rãi nhất Người dùng máy tính

PC còn gọi các cổng này là COM1, COM2 Giống như cổng máy in, cổng nối tiếp 232C cũng được sử dụng một cách rất thuận tiện cho mục đích đo lường và điều khiển.Cổng RS-232C sử dụng điện áp -12V là mức logic [1] và +12V làm mức logic [0]

Trang 9

Theo chuẩn RS-232C, đầu nối phần cứng có 25 chân, có hình chữ “D” nên gọi làchân cắm D-shell hay DB-25 Nhưng không phải tất cả đều sử dụng đầu nối DB-25 màcòn có DB-9 chân.

Chân 1: Vcc (màu đỏ)

Chân 2: D- (màu trắng)

Chân 3: D+ (màu xanh lục)

Chân 4: GND (màu đen)

Trang 10

Chân 11: Busy, báo cho máy tính biết máy in bận, tác động mức 1.

Chân 12: PE, báo hết giấy

Chân 13: AF, tác động mức 0, máy tự động dịch một dòng sau khi in

Chân 15: Error, tác động mức 0, báo lỗi

Chân 16:INIT, tác động mức 0, đặt lại máy in

Chân 17: SLCTIN, tác động mức 0, báo máy in đưa dữ liệu vào

Chân 18-25: GND

2.1.2 Phần mềm.

2.1.1 Giao tiếp dùng dòng điện vòng 20 mA.

Dòng điện vòng đầu tiên được dùng để truyền tín hiệu nhị phân bất đồng bộ giữa máy tính

và máy viễn ấn (teleprinter, TTY) Trong cách truyền này, mức 1 được biểu thị bởi dòng

Hình 2.3

Trang 11

điện vòng 20 mA và mức 0 bởi dòng điện 0 mA Như vậy thông tin được truyền đi chính

là sự tắt mở của dòng điện Hệ thống là một vòng kín gồm một nguồn dòng tạo ra dòngđiện không đổi 20 mA, bộ phận đóng ngắt (current switch) được đặt ở máy phát và bộphận dò ra dòng điện này (current detect) ở máy thu Khi hệ thống không có tín hiệu đểtruyền, người ta giám sát sự liên tục của hệ thống nhờ sự hiện hữu của dòng điện 20 mAnày Đây chính là lý do tại sao trong các hệ thống sau này người ta đưa bit 1 lên đườngtruyền khi hệ thống nghỉ Hình 2.3 là một hệ thống dùng dòng điện vòng với đóng ngắt làcác relay Ở phần phát, giả sử dữ liệu đến từ ngã TxD của UART là bit 1, transistor dẫnlàm đóng relay phát, dòng điện 20 mA chạy qua phần thu và đóng relay thu, đưa ngã ralên cao (sau khi qua cổng đảo), tín hiệu này được truyền đến UART trên đường RxD Nếutín hiệu phát là bit 0 trên đường TxD, do không có dòng điện chạy qua, các relay phát vàthu đều hở , ta được bit 0 trên đường RxD

Điều kiện hoạt động hữu hiệu của hệ thống dùng dòng điện vòng là phải có một sựcách ly tốt giữa dòng điện vòng và mạch thu Ngoài ra để bảo đảm giá trị của nguồn dòngkhông bị ảnh hưởng bởi đường dây, trở kháng ra của máy phát phải rất lớn so với trởkháng đường dây Do đó ghép nối quang là một phương tiện cách ly rất tốt Sự tắt mở củadòng điện được biến thành sự tắt mở của chùm tia sáng được dò ra bởi transistor quang.Hình 2.4 mô tả một hệ thống dùng dòng điện vòng ghép nối quang

Hình 2.4

Trang 12

Ở phần phát, giả sử dữ liệu đến từ ngã TxD của UART là bit 1, các transistor dẫn,dòng điện 20 mA chạy qua phần thu làm led phát sáng, transistor ghép quang dẫn đưa ngã

ra lên cao (sau khi qua cổng đảo), tín hiệu này được truyền đến UART trên đường RxD.Nếu tín hiệu phát là bit 0 trên đường TxD, do không có dòng điện chạy qua, led khôngphát sáng, transistor ghép quang ngưng ta được bit 0 trên đường RxD Hệ thống dùngdòng điện vòng chỉ sử dụng cho khoảng cách nhỏ hơn 500m Để truyền khoảng cách xahơn 500m, người ta dùng modem

2.1.2 Chuẩn RS-232.

Chuẩn giao tiếp RS-232 của EIA được phát hành lần đầu tiên vào năm 1962, đếnnăm 1969 ra đời thế hệ thứ 3 là chuẩn RS-232C, hiện thời cũng còn được dùng rộng rãi vànăm 1987 RS-232D xuất hiện RS-232D có thể xem là cải tiến của RS-232C

Chuẩn RS-232C dùng với tốc độ truyền dữ liệu là 20 Kbps với khoảng cách truyềnlớn nhất gần 15 m Đây là một dạng giao tiếp dạng TTL và bộ kích đường dây không cânbằng Việc truyền dữ liệu qua cổng RS-232C được tiến hành theo cách nối tiếp, nghĩa làcác bit dữ liệu được gởi đi nối tiếp nhau trên một đường dẫn Chuẩn RS-232C sử dụngđiện áp -12V là mức logic [1] và +12V làm mức logic [0]

Các khái niệm về chuẩn RS-232:

Chu kỳ truyền dữ liệu: tốc độ truyền dữ liệu được tính bằng bit/giây, nhưng đểphân biệt với cách truyền đồng bộ, người ta sử dụng đơn vị baud (tương ứng với bit/giây)

Trạng thái đánh dấu: là khỏang thời gian không có dữ liệu truyền, trong suốt thờigian này thiết bị phát sẽ giữ đường truyền ở mức cao

Bit bắt đầu: một bit thấp cho biết việc truyền dữ liệu sẽ bắt đầu

Các bit ký tự: gồm 5,6,7 hay 8 bit mã hóa ký tự được truyền

Bit chẵn lẻ: là một bit tùy chọn (có thể có hay không) được phát đi sau các bit ký

tự dùng để kiểm tra các lỗi truyền dữ liệu Trong chế độ kiểm tra bit chẵn , thiết bị phát sẽbật lên 1 hoặc xóa về 0, bit chẵn để tính tổng các bit 1 của ký tự đựơc truyền và bit chẵn

Trang 13

lẻ là một số chẵn, còn trong chế độ kiểm tra lẻ bit kiểm tra phải là một số lẻ Bit kếtthúc:một hay nhiều bit cao được chèn vào đường truyền để báo việc kết thúc một ký tự.

và được kiểm tra để chắc chắn nó chính xác

Đẳng thời - Một thiết bị truyền dữ liệu theo chuỗi (lấy ví dụ như loa) sử dụng chế

độ đẳng thời Những dòng dữ liệu giữa thiết bị và máy trong thời gian thực, và không có

sự sửa lỗi ở đây

Máy chủ có thể gửi lệnh hay truy vấn tham số với điều khiển những gói tin

Khi những thiết bị được liệt kê, máy chủ sẽ giữ sự kiểm tra đối với tổng băngthông mà tất cả những thiết bị đẳng thời và ngắt yêu cầu Chúng có thể tiêu hao tới 90phần trăm của 480 Mbps băng thông cho phép Sau khi 90 phần trăm được sử dụng, máychủ sẽ từ chối mọi truy cập của những thiết bị đẳng thời và ngắt khác Điều khiển gói tin

và gói tin cho truyền tải hàng loạt sử dụng mọi băng thông còn lại (ít nhất 10 phần trăm)

USB chia băng thông cho phép thành những khung, và máy chủ điều khiển nhữngkhung đó Khung chứa 1.500 byte, và một khung mới bắt đầu mỗi mili giây Thông quamột khung, những thiết bị đẳng thời và ngắt có được một vị trí do đó chúng được đảm bảobăng thông mà chúng cần Truyền tải hàng loạt và điều khiển truyền tải sử dụng phần cònlại

USB có những đặc trưng sau đây:

Trang 14

Máy tính hoạt động như một host.

Có tới 127 thiết bị có thể kết nối vào máy tính, hoặc là trực tiếp hoặc bằngnhững hub USB

Những sợi cáp USB riêng lẻ có thể dài tới 5 mét; với những hub, có thể kéo dàitới 30 mét (6 sợi cáp) tính từ máy chủ

Với USB 2.0, đường truyền đạt tối đa lượng dữ liệu 480 Mbps

Cáp USB gồm hai sợi nguồn (+5V và nối đất) và một cặp gồm hai sợi dây xoắn

để mang dữ liệu

Trên sợi nguồn, máy tính có thể cấp nguồn lên tới 500mA với 5V

Những thiết bị nguồn thấp (như chuột) có thể lấy nguồn trực tiếp từ đườngtruyền Những thiết bị nguồn cao (như máy in) có nguồn riêng và dùng rất ít nguồn từđường truyền Hub có thể có nguồn cấp điện riêng để cấp điện cho những thiết bị kết nốivào hub

Những thiết bị USB thì chuyển đổi nóng, nghĩa là bạn có thể cắm chúng vàođường truyền và tháo chúng ra mọi lúc

USB 2.0

Chuẩn USB phiên bản 2.0 được đưa ra vào tháng tư năm 2000 và xem như bảnnâng cấp cho USB 1.1 USB 2.0 (USB tốc độ cao) mở rộng băng thông cho ứng dụng đatruyền thông và lưu trữ với tốc độ nhanh hơn 40 lần so với USB 1.1 USB 2.0 có đầy đủkhả năng tương thích lùi với những thiết bị USB ban đầu và cũng hoạt động tốt với nhữngsợi cáp và cổng kết nối dành cho cổng USB ban đầu

Hỗ trợ ba chế độ tốc độ (1.5, 1.2 và 480 mega bit trên giây), USB 2.0 hỗ trợ nhữngthiết bị băng thông nhỏ như bàn phím và chuột, cũng như thiết bị băng thông lớn nhưWebcam với độ phân giải cao, máy quét, máy in và những hệ thống lưu trữ lớn Tốc độtruyền tải của USB2.0 cũng tạo điều kiện cho sự phát triển của thế hệ PC kế tiếp và nhữngứng dụng USB 2.0 còn làm tăng năng suất của ứng dụng và cho phép người dùng có thểthực thi nhiều ứng dụng PC trong một lúc hay nhiều thiết bị ngoại vi đồng thời

Trang 15

2.2 Vi mạch 89C51.

Hiện nay có rất nhiều họ VĐK trên thị trường với nhiều ứng dụng khác nhau nhưMCS-51, AVR, PIC,… trong đó họ VĐK MCS-51 được sử dụng rất rộng rãi trên thế giới

và ở Việt nam

MCS-51là họ VĐK do Intel sản xuất các IC tiêu biểu cho họ là: 8031, 8051, 8951,

… Những đặc điểm chính và nguyên tắc họat động của các bộ VĐK này khác nhau khôngnhiều Khi đã sử dụng thành thạo một loại thì ta có thể nhanh chóng sử dụng những loạicòn lại Vì vậy để có thể sử dụng thành thạo chúng, ta cần nắm vững về cấu tạo cũng nhưnguyên lý họat động của chúng Đại diện tiêu biểu nhất cho họ MSC-51, có thể kể đến89C51

Các đặc điểm chung của vi mạch 89C51 là:

Có 4 Kbyte bộ nhớ FLASH ROM bên trong để lưu chương trình Nhờ vậy vi mạch cókhả năng nạp xoá chương trình bằng điện đến 10000 lần

128 byte RAM nội bên.4 port I/O (xuất/nhập) 8 bit

Có khả năng giao tiếp truyền dữ liệu nối tiếp

Có thể mở rộng không gian nhớ chương trình ngoài 64KB (bộ nhớ ROM ngoại): khichương trình do người lập trình viết ra có dung lượng lớn hơn dung lượng bộ nhớ ROMnội, để lưu được chương trình này cần bộ nhớ ROM lớn hơn, cách giải quyết là kết nối98C51 với bộ nhớ ROM từ bên ngoài (hay còn gọi là ROM ngoại) Dung lượng bộ nhớROM ngoại lớn nhất mà VĐK có thể kết nối là 64KB

Có thể mở rộng không gian nhớ dữ liệu ngoài 64KB (bộ nhớ RAM ngoại)

Bộ xử lý bit ( thao tác trên các bit riêng rẽ) 210 bit có thể truy xuất đến từng bit

2.2.1 Cấu trúc vi mạch 89C51 và chức năng của các chân.

Trang 16

Hình 2.5: sơ đồ chân họ VĐK 89C51.

Latch

Latch port 1

Latch port 1

Thanh ghi địa chỉ chương trình

Bộ đệm

PC INCREMENT ER

Bộ đếm chương trình

Con trỏ dữ liệu

Con trỏ ngăn xếp

Thanh ghi B

ACC

TMP 1 TMP 2

Bộ ghi lệnh

Tính toán

và điều khiển

ALU

P2.0÷P2.7 P0.0÷P0.7

Trang 17

Ta có thể tóm tắt chức năng họat động từng chân của vi mạch 89C51 như sau:

Port 0 (P0.0,P0.1,P0.2,…,P0.7) từ chân 32 đến chân 39 được dùng với 2 chức

năng: vừa làm byte thấp cho bus địa chỉ, vừa làm bus dữ liệu khi dùng bộ nhớ ngoài vàport I/O khi không dùng bộ nhớ ngoài

Port 1 (P1.0,P1.1,…,P1.7) từ chân 1 đến chân 8 dùng làm port I/O để giao tiếp bên

ngoài

Trang 18

Port 2 (P2.0,P2.1,…,P2.7) từ chân 21 đến chân 28 vừa được dùng làm byte cao

của bus địa chỉ, vừa làm port I/O

Port 3 (P3.0,P3.1,…,P3.7) từ chân 10 đến chân 17 được dùng với 2 mục đích, có

thể làm port I/O và cũng có thể dùng với chức năng riêng của từng chân:

P3.0 (RxD) :ngõ vào nhận dữ liệu từ port nối tiếp

P3.1 (TxD) :ngõ ra phát dữ liệu từ port nối tiếp

P3.2 (INT0) :ngõ vào ngắt ngoài 0

P3.3 (INT1) :ngõ vào ngắt ngoài 1

P3.4 (T0) :ngõ vào timer/counter 0

P3.5 (T1) :ngõ vào timer/counter 1

P3.6 (WR) :ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài

P3.7 (RD) :ngõ điều khiển đọc dữ liệu từ bộ nhớ ngoài

Trang 19

Hình 2.7: Sơ đồ chân port bên trong 89C51

Chân 9 (RST): là chân để Reset cho 89C51 Bình thường chân này ở mức thấp khi

ta đưa lên mức cao (tối thiểu 2 chu kỳ máy) thì những thanh ghi nội của 89C51 đượcLOAD những giá trị thích hợp để khởi động lại hệ thống

nhỏ hơn 32MHz để tạo dao động cho chip

Hình 2.8: cách tạo bộ dao động cho 89C51

Chân 20: nối đất.

Chân 29 (PSEN): là tín hiệu điều khiển cho phép

chọn bộ nhớ chương trình mở rộng và được nối chung vớichân OE (Output Enable) của EPROM ngoài để cho phép đọc các byte mã lệnh PSEN ởmức thấp trong thời gian lấy lệnh Các mã nhị phân của chương trình được đọc từEPROM qua bus dữ liệu và được chốt vào thanh ghi lệnh của 89C51 để giải mã lệnh Nếuthi hành lệnh trong ROM nội thì PSEN ở mức cao

Chân 30 (ALE): tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc

của các vi xử lí 8085, 8086, 8088 89C51 dùng ALE để giải kênh các bus địa chỉ và dữliệu khi P0 được dùng trong chế độ chuyển đổi vừa là bus dữ liệu vừa là byte thấp của busđịa chỉ ALE là tín hiệu để chốt byte thấp địa chỉ vào thanh ghi bên ngoài trong nửa đầuchu kỳ bộ nhớ, sau đó P0 sẽ xuất dũ liệu trong nửa sau của chu kỳ Các xung ALE có tốc

độ bằng 1/6 lần tần số dao động trên chip Có thể làm phần xung nhịp cho các phần kháccủa hệ thống Nếu xung nhịp trên 89C51 là 12MHz thì ALE có tần số 2MHz 89C51 sửdụng chân này làm ngõ vào xung lập trình cho EPROM trong chip

Chân 31 (EA):Chân EA dùng để xác định chương trình thực hiện được lấy từ

ROM nội hay ROM ngoại Khi EA nối với logic [1] (+5V) thì 89C51 thực hiện chương

Trang 20

trình lấy từ bộ nhớ nội, khi EA nối với logic [0] (0V) thì 89C51 thực hiện chương trìnhlấy từ bộ nhớ ngoại.

Chân 40 (Vcc):là chân nguồn (+5V).

bị mất khi địa chỉ lưu vượt qua vùng này Ví dụ: AT89C51 có 4KB bộ nhớ ROM nội, địachỉ lớn nhất là 0FFFH, nếu chương trình viết ra có dung lượng lớn hơn 4KB các bytetrong các địa chỉ lớn hơn 0FFFH sẽ bị mất Ngoài ra vi mạch còn có khả năng mở rộng

bộ nhớ ROM với việc giao tiếp với bộ nhớ ROM bên ngoài lên đến 64KB (địa chỉ từ0000H đến FFFFH)

Trang 21

2.2.4 Bộ nhớ dữ liệu-Bộ nhớ RAM.

Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu trữ các kết quả trung gian

và kết quả cuối cùng của các phép toán, xử lí thông tin Nó cũng dùng để tổ chức cácvùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu

RAM nội trong vi mach 89C51 được tổ chức như sau (bảng 2.2):

Các vị trí trên RAM được định địa chỉ theo từng Byte bằng các số thập lụcphân (số Hex)

Các bank thanh ghi có địa chỉ 00H÷1FH

210 vị trí được định địa chỉ bit

Đia chỉ

Trang 22

1F Bank 3 89 Không được địa chỉ hóa bit TMOD

10

80 byte

RAM

RAM

Các thanh ghi chức năng đặc

Bảng 2.2: Cấu trúc RAM bên trong 89C51

Trang 23

Mặc dù trên bảng cho thấy vùng RAM đa dụng chiếm vị trí từ 30H÷7FH, nhưng

32 byte dưới 00H÷1FH cũng có thể dùng với mục đích tương tự

Mọi địa chỉ trong vùng RAM đa dụng đều có thể truy xuất một cách tự do, dùngkiểu địa chỉ trực tiếp hay gián tiếp

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

89C51 chứa 210 bit được địa chỉ hóa, trong đó 128 bit có chứa các byte có chứađịa chỉ từ 20H÷2FH và các bit còn lại chứa trong nhóm thanh ghi có chức năng đặc biệt

Khả năng truy xuất từng bit bằng phần mềm là các đặc tính mạnh của vi mạch89C51 xử lí chung Các bit có thể được đặt, xóa, AND, OR,…với một lệnh đơn 89C51

xử lý đòi hỏi một chuỗi lệnh đọc-sửa-ghi để đạt được mục đích tương tự Ngoài ra cácport cũng có thể truy xuất từng bit

128 bit truy xuất từng bit này cũng có thể truy xuất như các byte hay như các bittùy theo lệnh được dùng

2.2.4.3 Các bank thanh ghi.

32 byte thấp của bộ nhớ nội được dành cho các bank thanh ghi Bộ lệnh 89C51 hổtrợ 8 thanh ghi là R0,R1,…,R7 và theo mặc định sau khi reset hệ thống, các thanh ghi này

có địa chỉ từ 00H÷07H

Các lệnh dùng cho thanh ghi sẽ ngắn hơn và nhanh hơn các lệnh có chức năngtương ứng dùng kiểu địa chỉ trực tiếp Các dữ liệu dùng thường xuyên nên dùng các thanhghi này

Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một thanh ghi được truy xuất,

để chuyển đổi việc truy xuất giữa các bank thanh ghi ta phải thay đổi các bit chọn trongbank thanh ghi trạng thái

2.2.5 Các thanh ghi chức năng đặc biệt (SFR).

2.2.5.1 Thanh ghi trạng thái chương trình (PSW-Program status Word).

Trang 24

Bit Ký hiệu Địa chỉ Mô tả bit

Cờ nhớ CY ( carry flag ) có hai công dụng: công dụng truyền thống trong các

phép toán số học là được set bằng 1 nếu có số nhớ từ phép cộng bit 7 hoặc có số mượnmang đến bit 7 Ví dụ thanh chứa A có nội dung là FFH, lệnh:

ADD A,#1

Sẽ làm cho thanh chứa A có nội dung là 00H còn cờ CY trong thanh ghi PSW được setbằng 1 Cờ nhớ CY còn là thanh chứa logic được dùng như một thanh ghi 1 bit đối vớicác lệnh logic thao tác trên các bit Lấy thí dụ lệnh sau đây sẽ AND bit 25H với cờ nhớ

CY và đặt kết quả trở về cờ nhớ:

ANL C,25H ;AND bit ở địa chỉ 25H với cờ nhớ

Cờ nhớ phụ: khi cộng các giá trị BCD, cờ nhớ phụ AC (auxiliary carry flag) được

set bằng 1 nếu có một số nhớ được tạo ra từ bit 3 chuyển sang bit 4 hoặc kết quả trongđề_cát thấp nằm trong tầm từ 0AH ÷0FH Nếu các giá trị được cộng là giá trị BCD, lệnhcộng phải được tiếp theo bởi lệnh DA A (hiệu chỉnh thập phân thanh chứa A) để đưa cáckết quả lớn hơn 9 về giá trị đúng

Cờ 0: đây là cờ có nhiều mục đích dành cho các ứng dụng của người lập trình.

Trang 25

Các bit chọn bank thanh ghi: các bit chọn dãy thanh ghi RS0, RS1 dùng để xác

định dãy thanh ghi tích cự Các bit này được xóa sau khi có thao tác reset hệ thống và đổimức logic bởi phần mềm khi cần Thí dụ sau cho phép dãy thanh ghi 3 (bank 3) tích cực,sau đó di chuyển nội dung R7 (địa chỉ byte 1FH) vào thanh chứa A:

Cờ tràn: OV (overflow flag) được set bằng 1 sau phép toán cộng hoặc trừ nếu có

xuất hiện một tràn số học Khi các số có dấu được cộng hoặc được trừ, phần mềm có thểkiểm tra bit tràn OV để xác định xem kết quả có nằm trong tầm hay không Với phépcộng các số không dấu, cờ tràn OV bỏ qua Kết quả lớn hơn +128 hoặc nhỏ hơn -127 sẽset cờ OV bằng 1 Thí dụ sau sẽ gây ra 1 tràn và set cờ OV trong PSW:

Cờ chẵn lẻ: bit chẵn lẻ P tự động được set bằng 1 hay xóa bằng 0 ở mỗi chu kỳ

máy để thiết lập kiểm tra chẵn cho thanh chứa A Số các bit 1 trong thanh chứa cộng vớibit P luôn luôn là số chẵn Thí dụ thanh chứa có nội dung 10101101B, bit P sẽ là 1 để có

số bit 1là 6 Bit chẵn lẻ được sử dụng nhiều để kết hợp với các chương trình xuất/nhập nốitiếp trước khi truyền dữ liệu hoặc để kiểm tra chẵn lẻ sau khi nhận dữ liệu

2.2.5.2 Thanh ghi B.

Thanh ghi B: ở địa chỉ F0H được dùng chung với thanh chứa A trong các phéptoán nhân, chia Lệnh MUL AB nhân hai số 8 bit không dấu chứa trong A và B và chứa

Trang 26

kết quả 16 bit vào cặp thanh ghi B:A (thanh chứa A cất byte thấp và thanh chứa B cấtbyte 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ấttrong thanh ghi B Thanh ghi B còn được xử lý như một thanh ghi nháp Các bit đựơcđịnh địa chỉ của thanh ghi B có địa chỉ từ F0H÷F7H

2.2.5.3 Con trỏ stack.

Con trỏ ngăm xếp SP (stack pointer) là một thanh ghi 8 bit, địa chỉ 81H SP chứađịa chỉ của dữ liệu hiện đang ở đỉnh của stack Các lệnh liên quan đến stack bao gồm lệnhcấ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 SPtrước khi ghi dữ liệu và việc lấy dữ liệu ra khỏi stack sẽ giảm SP Vùng stack của 89C51đượ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 Vùng RAM nội có 128 byte ; nếu ta khởi động SP để bắt đầu vùng stack

ở địa chỉ 60H bằng lệnh:

MOV SP,#5FH

Vùng stack được giới hạn là 32 byte và địa chỉ cao nhất của RAM trên chip là 7FH Giátrị 5FH được dùng ở đây vì SP tăng lên 60H trước khi thao tác cất vào stack đầu tiên đượcthực thi Các lệnh PUSH và POP sẽ cất dữ liệu vào stack và lấy dữ liệu ra từ stack cáclệnh gọi chương trình con (ACALL va 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 (program counter)

2.2.5.4 Con trỏ dữ liệu DPTR.

Con trỏ dữ liệu DPTR (data pointer) được dùng để truy xuất bộ nhớ chương trìnhngoài hoặc bộ nhớ dữ liệu ngoài DPTR là một thanh ghi 16 bit có địa chỉ là 82H (DPL,byte thấp) và 83H (DPH, byte cao) Ba lệnh sau đây ghi 55H vào RAM ngoài ở địa chỉ1000H:

MOV A,#55HMOV DPTR,#1000H

Trang 27

MOV @DPTR,ALệnh đầu tiên sử dụng kiểu định địa chỉ tức thời để nạp hằng dữ liệu 55H vào thanh chứa

A Lệnh thứ hai cũng sử dụng kiểu định địa chỉ tức thời, lần này nạp bằng địa chỉ 16 bit1000H cho con trỏ dữ liệu DPTR Lệnh thứ ba sử dụng kiểu định địa chỉ gián tiếp dichuyển giá trị 55H chứa trong thanh chứa A đến RAM ngoài tại địa chỉ chứa trong DPTR(1000H)

2.2.5.5 Các thanh ghi port.

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ỉ 0A0H, port 3 tại địa chỉ 0B0H Các port 0, 2 và 3 không được dùng

để xuất nhập nếu ta sử dụng thêm bộ nhớ ngoài hoặc nếu có một số đặc tính đặc biệt89C51 đượ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ả port đều được định địa chỉ từng bit nhằm cung cấp các khả năng giao tiếpmạnh Thí dụ ta có một động cơ nối qua một cuộn dây và một mạch kích dùng transistornối tới bit 7 của port 1, động cơ có thể ngưng hay chạy chỉ nhờ vào một lệnh đơn của89C51:

SETB P1.7 ;làm động cơ chạyCLR P1.7 ;làm động cơ ngừng Các lệnh trên sử dụng toán tử (dot) để định địa chỉ 1 bit trong 1 byte, cho phép định địachỉ 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àhai lệnh sau tương đương:

CLR P1.7CLR 97H

2.2.5.6 Các thanh ghi định thời.

89c51 có hai bộ đếm/định thời ( timer/counter) 16 bit để định các khỏang thời gianhoặc để đếm các sự kiện Bộ định thời 0 có địa chỉ 8AH (TL0, byte thấp), 8CH (TH0,byte cao); bộ định thời 1 có địa chỉ 8BH (TL1, byte thấp), 8DH (TH1, byte cao)

Trang 28

Họat động của bộ định thời được thiết lập bởi thanh ghi chế độ định thời TMOD( timer mode register) ở địa chỉ 89H và thanh ghi điều khiểu định thời TCON (timercontrol register) ở địa chỉ 88H Chỉ có TCON được định địa chỉ từng bit.

2.2.5.7 Các thanh ghi của port nối tiếp.

Bên trong 89C51 có port nối tiếp để truyền thông với các thiết bị bên ngoài nhưcác thiết bị đầu cuối hay modem, họăc để giao tiếp với các IC khác có mạch giao tiếp nốitiếp (như các thanh ghi dịch chẳng hạn) Một thanh ghi được gọi là bộ đệm dữ liệu nốitiếp SBUF (serial data buffer) ở địa chỉ 99H lưu giữ dữ liệu truyền đi và dữ liệu nhận về.Việc ghi lên SBUF sẽ nạp dữ liệu để truyền và việc đọc SBUF sẽ lấy dữ liệu đã nhậnđược

Các chế độ họat động khác nhau được lập trình thông qua thanh ghi điều khiển portnối tiếp SCON (serial port control register) ở địa chỉ 98H, thanh ghi này được định địa chỉtừng bit

2.2.5.8 Các thanh ghi ngắt.

89C51 có một cấu trúc ngắt với 2 mức ưu tiên và 5 nguyên nhân ngắt Các ngắt bị

vô hiệu hóa khi reset hệ thống và sau đó được cho phép bằng cách ghi vào thanh ghi chophép ngắt IE (interrup enable register) ở địa chỉ A8H Mức ưu tiên ngắt được thiết lập quathanh ghi ưu tiên ngắt IP (interrupt priority register) ở địa chỉ B8H cả hai thanh ghi nàyđều được định địa chỉ từng bit

2.2.5.9 Thanh ghi điều khiển nguồn.

Thanh ghi điều khiển nguồn PCON (power control register) có địa chỉ 87H chứacác bit điều khiển được tóm tắt trong bảng 2.4:

Trang 29

7 SMOD Bit tăng gấp đôi tốc độ baud, bit này khi set làm cho tốc độ baud

tăng 2 ở các chế độ 1, 2 và 3 của port nối tiếp

Bảng 2.4: Thanh ghi điều khiển nguồn PCON

bit SMOD tăng gấp đôi tốc độ baud của port nối tiếp khi port này hoạt động ở chế độ 1, 2

hoặc 3 Các bit 4, 5 và 6 của PCON không được định nghĩa Các bit 2 và 3 là các bit cờ

đa mục đích dành cho các ứng dụng của người sử dụng

Chế độ nguồn giảm:

Lệnh thiết lập bit PD bằng 1 sẽ làm lệnh sau cùng được thực thi trước khi vào chế

độ nguồn giảm Ở chế độ nguồn giảm:

Mạch dao động trên chip ngừng hoạt động

Mọi chức năng ngừng hoạt động

Nội dung của RAM trên chip được duy trì

Các chân port duy trì mức logic của chúng

ALE và PSEN được giữ ở mức thấp Chỉ ra khỏi chế độ này bằng cách reset hệthống

Trong suốt thời gian ở chế độ nguồn giảm, Vcc có điện áp là 2V Cần phải giữ choVcc không thấp hơn sau khi đạt được chế độ nguồn giảm và cần phục hồi Vcc=5V tốithiểu 10 chu kỳ dao động trước khi chân RST đạt mức thấp lần nữa

Chế độ nghỉ:

Trang 30

Lệnh thiết lập bit IDL bằng 1 sẽ làm lệnh sau cùng được thực thi trước khi đi vàochế độ nghỉ Ở chế độ nghỉ, tín hiệu clock nội được khóa không cho đến CPU nhưngkhông khóa đối với các chức năng ngắt, định thời và port nối tiếp Trạng thái của CPUđược duy trì và nội dung của tất cả các thanh ghi cũng được giữ không dổi.

Các chân port cũng được duy trì các mức logic của chúng ALE và PSEN được giữ

ở mức cao Chế độ nghỉ kết thúc bằng cách cho phép ngắt hoặc bằng cách reset hệ thống

Cả hai cách vừa nêu đều xóa bit IDL

2.2.6 Bộ nhớ ngoài (external memory).

89C51 có khả năng mở rộng không gian bộ nhớ chương trình lên đến 64K vàkhông gian bộ nhớ dữ liệu đến 64K ROM và RAM ngoài được thêm vào khi cần Khidụng bộ nhớ ngoài port 0 không còn chức năng xuất/nhập nữa; port này trở thành bus địachỉ (A0÷A7) và bus dữ liệu (D0÷D7) đa hợp Ngõ ra ALE chốt byte thấp của địa chỉ ởthời điểm bắt đầu mỗi chu kỳ bộ nhớ ngoài Port 2 thường được dùng làm byte cao củabus địa chỉ

2.2.6.1 Truy xuất bộ nhớ chương trình ngoài.

Bộ nhớ chương trình ngoài là bộ nhớ chỉ đọc, được cho phép bởi tín hiệu PSEN.Kết nối bộ nhớ ngoài EPROM được thực hiện như sau:

Hình 2.9: Truy xuất bộ nhớ chương trình ngoài

Port 0

ALEPort 2

PSEN

EA

D0-D7 A0-A7

A8-A15 OE

EPROM

D Q G 74HC573

89C51

Trang 31

Trong một chu kì máy tiêu biểu, tín hiệu ALE tích cực 2 lần, lần thứ nhất cho phép74HC573 mở cổng chốt địa chỉ byte thấp, khi ALE xuống 0 thì byte thấp và byte cao của

bộ đệm chương trình đều có nhưng EPROM chưa xuất vì PSEN chưa tích cực, khi tínhiệu lên 1 trở lại thì port 0 đã có dữ liệu là Opcode ALE tích cực lần thứ 2 được giảithích tương tự và byte được đọc từ bộ nhớ chương trình Nếu lệnh đang hiện hành là lệnh

1 byte thì CPU chỉ đọc Opcode còn byte thứ hai bỏ đi

2.2.6.2 Truy xuất bộ nhớ dữ liệu ngoài.

Bộ nhớ dữ liệu ngoài là bộ nhớ đọc/ghi được cho phép bởi các tín hiệu RD và WR

ở các chân P3.7 và P3.6 Lệnh dùng để truy xuất bộ nhớ ngoài là MOVX, sử dụng hoặccon trỏ dữ liệu 16 bit DPTR hoặc R0, R1 làm thanh ghi chứa địa chỉ

RAM có thể giao tiếp với 89C51 theo cùng cách như EPROM ngoại trừ đường RDnối đường cho phép xuất (OE) của RAM và WR nối với đường ghi (W) của RAM Cáckết nối với bus dữ liệu và bus địa chỉ giống như EPROM Bằng cách sử dụng các port 0

và port 2 như ở phần trên ta có 1 dung lượng RAM ngoài lên đến 64K được kết nối với89C51

D0-D7 A0-A7 RAM (1K)

A8 A9 OE W CS NC

74HC573

Trang 32

Hình 2.10:Truy xuất bộ nhớ dữ liệu ngoài.

RD OE

WR W

EPROM ( 8K bytes) A0-A12 CS CS CS

D0-D7 6264 RAM ( 8K bytes) A0-A12 CS CS CS

Trang 33

Hình2.11: Giải mã địa chỉ.

2.2.6.4 Sự đè lên bộ nhớ chương trình ngoài.

Vì bộ nhớ chương trình là ROM, nên nẩy sinh một vấn đề bất tiện khi phát triểnphần mềm cho vi mạch Một nhược điểm của 89C51 là các vùng nhớ dữ liệu ngoài nằm

đè lên nhau, vì tín hiệu PSEN được dùng để đọc bộ nhớ mã ngoài và tín hiệu RD đượcdùng để đọc bộ nhớ dữ liệu, nên bộ nhớ RAM có thể chứa cả chương trình và dữ liệubằng cách nối đường OE của RAM đến ngõ ra cổng AND có các ngõ vào là PSEN và RD

Sơ đồ sau cho phép bộ nhớ RAM có hai chức năng vừa là bộ nhớ chương trình vừa là bộnhớ dữ liệu:

Hình 2.12: Gối 2 không gian nhớ chương trình và dữ liệu

RDPSEN

RAM

W

OEWR

Trang 34

2.2.7 Hoạt động RESET.

89C51 được reset bằng cách giữ chân RST ở mức cao tối thiểu hai chu kỳ máy vàsau đó chuyển về mức thấp RST có thể tác động bằng tay hoặc được tác động khi cấpnguồn bằng cách dùng một mạch RC như hình Trạng thái của tất cả các thanh ghi saukhi reset hệ thống được tóm tắt trong bảng 2.5

Hình 2.13: Mạch reset cho 89C51

Quan trọng nhất trong các thanh ghi này có lẽ là thanh ghi PC ( bộ đếm chươngtrình), được nạp 0000H khi RST trở lại mức thấp, việc thực thi chương trình luôn luônbắt dầu ở vị trí đầu tiên trong bộ nhớ chương trình: địa chỉ 0000H Nội dung của RAMtrên chip không bị ảnh hưởng bởi họat động reset

(a) Reset bằng tay (b) Reset khi cấp nguồn

Trang 35

Các thanh ghi định thời 00H

Tạo tốc độ baud cho port nối tiếp

Các bộ định thời của 89C51 được truy xuất bằng cách sử dụng 6 thanh ghi chức năng đặcbiệt

Bảng 2.6: Các thanh ghi đặc biệt của bộ định thời

2.2.8.1 Thanh ghi chế độ định thời (TMOD).

Bit Tên Bô định thời Mô tả

Timer 0Timer 1

Trang 36

7 GATE 1 Bit điều khiển khi được set lên 1, bộ định thời chỉ họat

động trong khi INT1 ở mức cao

Bit chọn chức năng đếm hoặc định thời:

1= đếm sự kiện0= định thời trong một khoảng thời gian

3 GATE 0 Bit điều khiển cổng cho bộ định thời 0

2 C/T 0 Bit chọn chức năng đếm hoặc định thời cho bộ định thời 0

2.2.8.2 Thanh ghi điều khiển TCON.

Thanh ghi TCON chứa các bit điều khiển và trạng thái của bộ định thời 0 và bộđịnh thời 1 Bốn bit cao TCON.4÷TCON.7 được dùng để điều khiển các bộ định thời họatđộng hoặc ngưng (TR0, TR1) hoặc để báo các bộ định thời tràn (TF0, TF1)

Bốn bit thấp TCON.0÷TCON.3 dùng để phát hiện và khởi động các ngắt ngoài

Bit Ký hiệu Địa chỉ bit Mô tả

Cờ tràn của bộ định thời 1 Cờ này được set bởi phầncứng khi có tràn, được xóa bởi phần mềm, hoặc bởiphần cứng khi bộ vi xử lý trỏ đến trình phục vụ ngắt

Bit điều khiển họat động của bộ định thời 1.Bit nàyđược set hoặc được xóa bởi phần mềm để điều khiển

bộ định thời họat động hay ngưng họat động

TCON.5 TF0 8DH Cờ tràn của bộ định thời 0

TCON.4 TR0 8CH Bit điều khiển họat động của bộ định thời 0

Cờ ngắt bên ngoài 1 (kích khởi cạnh) Cờ này đượcset bởi phần cứng có cạnh âm (xuống) xuất hiện trênchân INT1, được xóa bởi phần mềm, hoặc phần cứng

Trang 37

khi CPU trỏ đến trình phục vụ ngắt.

Cờ ngắt bên ngoài 1(kích khởi cạnh hoặc mức) Cờnày được set hoặc xóa bởi phần mềm khi xảy ra cạnh

âm (xuống) hoặc mức thấp tại chân ngắt ngoài

TCON.1 IE0 89H Cờ ngắt bên ngoài 0 (kích khởi cạnh)

TCON.0 IT0 88H Cờ ngắt bên ngoài 0 (kích khởi cạnh hoặc mức)

Bảng 2.8:Thanh ghi điều khiển TCON

2.2.8.3 Các chế độ định thời và cờ tràn.

Chế độ định thời 13 bit (chế độ 0):

Chế độ 0 là chế độ định thời 13 bit Byte cao của bộ định thời THx được ghép nối tiếp với

5 bit thấp của bộ định thời TLx để tạo thành một bộ định thời 13 bit, ba bit cao của TLxkhông sử dụng

Chế độ định thời 16 bit (chế độ 1):

Chế độ 1 là chế độ định thời 16 bit và cấu hình giống chế độ định thời 13 bit Khi có xungclock đến, bộ định thời đếm lên: 000H, 0001H, 0002H,… một tràn sẽ xuất hiện khi có sựchuyển số đếm từ FFFFH xuống 0000H, và set cờ tràn TFx trong thanh ghi điều khiểnTCON bằng 1 bởi phần mềm, bộ định thời tiếp tục đếm

Chế độ tự nạp lại 8 bit (chế độ 2):

Chế độ 2 tự nạp lại 8 bit Byte thấp của bộ định thời (TLx) họat động định thời 8 bit trongkhi byte cao của bộ định thời lưu giữ giá trị nạp lại Khi số đếm tràn từ FFh xuống 00H,không chỉ cờ tràn của bộ định thời được set lên 1 mà giá trị trong THx còn được nạp vàoTLx; việc đếm sẽ tiếp tục từ giá trị này cho đếm khi xảy ra 1 tràn (FFH÷00H) kế tiếp

Chế độ định thời chia sẻ (chế độ 3):

Chế độ 3 là chế độ định thời chia sẻ và có hoạt động khác nhau cho từng bộ địnhthời Bộ định thới 0 ở chế độ 3 được chia thành 2 bộ định thời 8 bit họat động riêng rẽTL0 và TH0, mỗi bộ định thời sẽ set các cờ TF0 và TF1 khi xảy ra tràn Bộ định thời 1không họat động ở chế độ 3 nhưng có thể được khởi động bằng cách chuyển bộ định thờinày vào một trong các chế độ khác như được sử dụng cho port nối tiếp (tạo xung clock tốc

độ baud) hoặc sử dụng theo một cách nào đó nhưng không yêu cầu ngắt (vì bộ định thời

Trang 38

lúc này không còn nối với TF1) Cờ tràn TF1 của bộ định thời 1 không bị ảnh hưởng bởi

bộ định thời 1 khi bộ này xảy ra tràn vì TF1 được nối với bộ định thời 8 bit TH0

2.2.8.4 Khởi động, dừng và điều khiển các bộ định thời.

Cách đơn giản để khởi động và dừng các bộ định thời là sử dụng bit điều khiểnhọat động TRx trong thanh ghi TCON TRx được xóa khi thiết lập hệ thống

Do thanh ghi TCON là thanh ghi được định địa chỉ bit , ta dễ dàng khởi động vàdừng các bộ định thời bằng chương trình

Thí dụ bộ định thời 0 được khởi động bằng lệnh:

Hình 2.14: Họat động của bộ định thời;x = 0,1

INTx

12MHz

8051

Trang 39

2.2.8.5 Khởi động và truy xuất các thanh ghi định thời.

Các bộ định thời thường được khởi động một lần ở thời điểm bắt đầu chương trình

để thiết lập chế độ họat động theo yêu cầu Các bộ định thời được điều khiển họat động,dừng, kiểm tra các bit cờ và xóa, các thanh ghi định thời đựơc đọc hoặc câp nhật,… tùytheo yêu cầu của ứng dụng

TMOD là thanh ghi được khởi động trước tiên vì đây là thanh ghi thiết lập chế độhọat động Thí dụ khởi động bộ định thời 1 họat động ở chế độ 16 bit (chế độ 1):

MOV TMOD,#00010000B

Kết quả của lệnh này là thiết lập M1=0, M0=1 để ấn định chế độ 1, C/T=0 và GATE=0 để

sử dụng xung clock trên chip

2.2.9 Họat động ngắt.

Chương trình xử lý ngắt được gọi là trình phục vụ ngắt ISR (interrupt setviceroutine) hay quản lý ngắt (interrupt handler) Khi một ngắt xuất hiện chương trình chínhtạm thời bị dừng và CPU thực thi việc rẽ nhánh đến trình phục vụ ngắt ISR CPU thực thiISR để thực hiện một công việc và kết thúc việc thực thi này khi gặp lệnh “quay về từ mộttrình phục vụ ngắt”; chương trình chính được tiếp tục tại nơi bị tạm dừng

2.2.9.1 Tổ chức ngắt của 89C51.

Có 5 nguyên nhân tạo ra ngắt (gọi là nguyên nhân ngắt) đối với 89C51 hai ngắt dobên ngoài, hai ngắt do bộ định thời và một ngắt do port nối tiếp Khi reset hệ thống cácngắt bị vô hiệu hóa và chỉ cho phép ngắt bằng phần mềm

Cho phép và không cho phép ngắt:

Cho phép hoặc không cho phép ngắt thông qua thanh ghi chức năng đặc biệt IE (interruptenable) có địa chỉ byte là A8H Mỗi một bit của thanh ghi này cho phép hoặc không chophép từng nguyên nhân ngắt riêng rẽ

Trang 40

Bit Ký hiệu Địa chỉ

bit

Mô tả

(0: không cho phép; 1: cho phép)IE.7 EA AFH Cho phép/không cho phép toàn cục

IE.5 ET2 ADH Cho phép ngắt do bộ định thời 2

IE.4 ES ACH Cho phép ngắt do port nối tiếp

IE.3 ET1 ABH Cho phép ngắt do bộ định thời 1

IE.2 EX1 AAH Cho phép ngắt từ bên ngoài (ngắt ngoài

1)

IE.1 EX0 A9H Cho phép ngắt từ bên ngoài ( ngắt ngoài

0)

IE.0 ET0 A8H Cho phép ngắt do bộ định thời 0

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

Ưu tiên ngắt: mỗi một nguyên nhân ngắt được lập trình riêng rẽ để có một trong

hai mức ưu tiên thông qua chức năng đặc biệt (IP-inetrrup priority) được định địa chỉ bit,

IP.5 PT2 0BDH Ưu tiên cho ngắt do bộ định thời 2

IP.4 PS 0BCH Ưu tiên cho ngắt do port nối tiếp

IP.3 PT1 0BBH Ưu tiên cho ngắt do bộ định thời 1

IP.2 PX1 0BAH Ưu tiên cho ngắt do bên ngoài (ngắt ngoài 1)

IP.1 PT0 0B9H Ưu tiên cho ngắt do bộ định thời 0

IP.0 PX0 0B8H Ưu tiên cho ngắt do bên ngoài (ngắt ngoài 0)

Bảng 2.10: Thanh ghi ưu tiên ngắt IP

Ngày đăng: 02/07/2014, 16:30

HÌNH ẢNH LIÊN QUAN

Hình 2.2: Cổng USB (a). dạng B, (b). dạng A - thiết kế mạch quang báo giao tiếp máy tính
Hình 2.2 Cổng USB (a). dạng B, (b). dạng A (Trang 9)
Hình 2.5: sơ đồ chân họ VĐK 89C51. - thiết kế mạch quang báo giao tiếp máy tính
Hình 2.5 sơ đồ chân họ VĐK 89C51 (Trang 16)
Hình 2.6 : sơ đồ khối bên trong 89C51 - thiết kế mạch quang báo giao tiếp máy tính
Hình 2.6 sơ đồ khối bên trong 89C51 (Trang 17)
Hình 2.7: Sơ đồ chân port bên trong 89C51 - thiết kế mạch quang báo giao tiếp máy tính
Hình 2.7 Sơ đồ chân port bên trong 89C51 (Trang 19)
Bảng 2.2: Cấu trúc RAM bên trong 89C51 - thiết kế mạch quang báo giao tiếp máy tính
Bảng 2.2 Cấu trúc RAM bên trong 89C51 (Trang 23)
Bảng 2.3: Thanh ghi PSW - thiết kế mạch quang báo giao tiếp máy tính
Bảng 2.3 Thanh ghi PSW (Trang 25)
Bảng 2.4:  Thanh ghi điều khiển nguồn PCON. - thiết kế mạch quang báo giao tiếp máy tính
Bảng 2.4 Thanh ghi điều khiển nguồn PCON (Trang 30)
Hình 2.9: Truy xuất bộ nhớ chương trình ngoài. - thiết kế mạch quang báo giao tiếp máy tính
Hình 2.9 Truy xuất bộ nhớ chương trình ngoài (Trang 31)
Hình 2.10:Truy xuất bộ nhớ dữ liệu ngoài. - thiết kế mạch quang báo giao tiếp máy tính
Hình 2.10 Truy xuất bộ nhớ dữ liệu ngoài (Trang 32)
Hình 2.12: Gối 2 không gian nhớ chương trình và dữ liệu - thiết kế mạch quang báo giao tiếp máy tính
Hình 2.12 Gối 2 không gian nhớ chương trình và dữ liệu (Trang 34)
Hình 2.13: Mạch reset cho 89C51. - thiết kế mạch quang báo giao tiếp máy tính
Hình 2.13 Mạch reset cho 89C51 (Trang 35)
Bảng 2.5: Giá trị các thanh ghi sau khi reset hệ thống. - thiết kế mạch quang báo giao tiếp máy tính
Bảng 2.5 Giá trị các thanh ghi sau khi reset hệ thống (Trang 36)
Bảng 2.6: Các thanh ghi đặc biệt của bộ định thời. - thiết kế mạch quang báo giao tiếp máy tính
Bảng 2.6 Các thanh ghi đặc biệt của bộ định thời (Trang 36)
Bảng 2.7:Thanh ghi chọn chế độ định thời - thiết kế mạch quang báo giao tiếp máy tính
Bảng 2.7 Thanh ghi chọn chế độ định thời (Trang 37)
Hình 2.14: Họat động của bộ định thời;x = 0,1 - thiết kế mạch quang báo giao tiếp máy tính
Hình 2.14 Họat động của bộ định thời;x = 0,1 (Trang 39)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w