1. Trang chủ
  2. » Thể loại khác

Quang báo giao tiếp máy tính tài liệu, ebook, giáo trình

53 189 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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 53
Dung lượng 5,35 MB

Nội dung

Trang 1

MỤC LỤC Trang Lời mở đầU s-.5 5< 5< << << «9 9 9 009 H9 9.968000800838008046900988508084008 01

PHẦN I: CƠ SỞ Lí THUYET -ô<cccccEâerrterrrr e 02

Chng I: Tổng quan về quang báo có giao tiếp máy tính 02

Chương II: Khảo sát vi điều khiển A'T§9C 51 5-5 -<<<<s<<e 04 I Giới thiệu về cấu trúc phần cứng của họ MCS-51

II Khao sat AT89C51

II Cấu trúc bên trong Vi điều khiển

IV Hoạt động Timer của 8951

V Ngắt trong 89C51

VI Hoạt động của port nối tiếp

Chương III: Giới thiệu các linh kiện sử dụng trong mạch ‹. 22

I RAM ILMAX 232

HI.Thanh ghi doch 4094

PHAN II: TÍNH TỐN THIẾT KẾ VÀ THI CÔNG MẠCH 28

Chương I: Sơ đô khối và chức năng từng khối ¬x".- I Khối mạch điều khiển trung tâm

H Khối mạch điều khiển hàng và cột

IH Khối hiển thị (ma trận led)

Chương II: Tính toán và thiết kế ` “ 31

Trang 2

PHẦN III: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 52

PHAN IV: TÀI LIỆU THAM KHẢO - 2 s#++E£EE++EE+2EEe2 xe e2 54 PHẦN V: PHỤ LỤC 6 sa sauessuvessuesssuvssnesesusesensecevscsnscens 55

Trang 3

Lời mở đầu

LỜI MỞ ĐẦU

Với sự phát triển không ngừng của khoa học kỹ thuật, đặc biệt là ngành Điện tử đã có rất nhiều ứng dụng trong cuộc sống hiện nay Trong lĩnh vực điều

khiển, từ khi công nghệ chế tạo ra loại vi mạch lập trình ra đời thì cũng là lúc các

thiết bị, các sản phẩm phục vụ cho nhu cầu sinh hoạt của con người như ti vi, tủ

lạnh, máy giặt, được sử dụng phổ biến

Với việc sử dụng những thiết bị vi mạch lập trình như vậy thì các dạng mạch thiết kế sẽ được rút gọn hơn, đơn giản hơn, tiêu thụ năng lượng thấp hơn, và nhất là có khả năng mở rộng và nâng cao nhiều tính năng lên bằng cách lập trình

mà không tốn kém nhiều linh kiện |

Đề tài “MẠCH QUANG BÁO GIAO TIẾP MÁY TÍNH” là một ứng dụng rất phổ biến hiện nay Đây là dịp giúp em có điều kiện làm việc thực tế với ứng dụng vi điều khiển và có cái nhìn rộng hơn, sâu hơn về khả năng lập trình Tuy nhiên kiến thức về ứng dụng này thì rất rộng, ngôn ngữ thì đa dạng và thời gian tìm hiểu thì có hạn, kinh nghiệm thực tiễn thì còn ít nên để tài sẽ không tránh khỏi

sai sót Rất mong nhận được những ý kiến đóng góp, giúp đỡ chân tình, quý báu

của quý thầy cô và các bạn sinh viên

Sinh viên thực hiện

Trang 4

PHAN I_CHUONGI - Tổng quan về quang báo có giao tiếp máy tính PHẦN I CƠ SỞ LÝ THUYẾT CHUONG I: TONG QUAN VE QUANG BAO CO GIAO TIEP MÁY TÍNH

Quang báo là sử dụng ánh sáng để hiển thị một mục đích của con người tạo ra nó

Ngày nay, khi ra đường chúng ta bắt gặp quang báo ở rất nhiều nơi, khi đi ngang qua các nhà sách ta thấy được những dòng chữ chạy giới thiệu về các loại sách, các sản phẩm có

trong nhà sách Khi tới bưu điện thì nó hiển thị cho ta biết được số thứ tự hiện tại, khi tới sân bay thì nó cho ta thấy được giờ giấc của các chuyến bay đi và đến Thực tế nhất là

khi tới các ngã tư, bảng đèn giao thông góp một phần quan trọng trong quá trình điều tiết giao thông

Bằng rất nhiều cách khác nhau mà chúng ta có thể thực hiện được các mạch hiển

thị khác nhau Có thể là các bóng đèn Ne-on đủ màu sắc được uốn cong thành các dòng

chữ để hiển thị, có thể là các bảng led (led ma trận) chẳng hạn, Trong đồ án này, mạch

quang báo được thiết kế và hiển thị bằng ma trận led

Với sự ra đời của kỹ thuật vi xử lý, vi điều khiển thì việc hiển thị sẽ đơn giản hơn

nhiễu khi thiết kế một mạch quang báo với các IC vi xử lý, vi điều khiển và ta cũng có

thể cho hiển thị theo cách của chúng ta tùy ý, ví dụ dịch trái, dịch phải, lên, xuống, chỉ bằng cách là lập trình cho các IC vi xử lý, vi điều khiển mà thôi

Để thiết kế một mạch quang báo thì chúng ta cũng có rất nhiều dạng mạch khác

nhau, tùy theo từng ứng dụng cụ thể mà ta sẽ thiết kế Với những yêu cầu chỉ hiển thị đơn

Trang 5

PHAN I_CHƯƠNG I Tổng quan về quang báo có giao tiếp máy tính

chế là khi ta muốn thay đổi dữ liệu cần hiển thị thì ta sẽ phải tháo chip ra và nạp vào di liệu mới, rồi gắn lại Để khắc phục nhược điểm này ta nhờ tới sự trợ giúp của máy tính, thông qua cổng truyễn nối tiếp Bằng việc tạo ra một giao diện và ta chỉ cần gõ nội dung cần hiển thị rồi truyền xuống chip vi điều khiển qua cổng COM của máy tính, khi đó dữ liệu sẽ hiển thị theo ý muốn của mình

Như vậy, quang báo ngày nay đã được đưa vào sử dụng ở rất nhiều lĩnh vực khác nhau như: giới thiệu sản phẩm, thông báo tin tức, Với những ứng dụng rộng rãi như vậy ta hãy thử tìm hiểu xem một mạch quang báo gồm có những gì, nguyên lý hoạt động ra

Trang 6

PHẦN I_CHƯƠNG II Khảo sát Vi điều khiển 89C51

CHƯƠNG II: KHẢO SÁT VI ĐIỀU KHIỂN AT89C51 I GIGI THIEU VE CAU TRUC PHAN CUNG CUA HO MCS - 51:

MCS-51 là một họ IC vi điều khiển do Intel phát triển và sản xuất Đặc điểm va

chức năng hoạt động của các IC họ MCS-51 hoàn toàn tương tự nhau Một số nhà sản

xuất được phép cung cấp các IC tương thích với các sản phẩm MCS-51 của Intel là:

Siemens, Atmel, Philips, Semiconductor, Dallas

Các đặc trưng chung của họ MCS-51 như sau:

® Có 4Kbyte bộ nhớ EPROM bên trong để lưu chương trình

® Có 128 byte RAM nội

® Có 4port xuất nhập 8 bit

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

©_ Có thể giao tiếp với 64Kbyte bộ nhớ EPROM bên ngoài để lưu chương trình

Trang 7

PHAN L_CHUONG II Khảo sát Vi điều khiển 89C51

89C51 gồm có 40 chân, trong đó có :

e© 32 chân dành cho bốn cổng PO, P1, P2, P3, mỗi cổng có 8 chân e© 2 chân nguồn (Vcc và Gnd)

® 2 chân dao động thạch anh e chân khởi động lại Reset e chân truy cập địa chỉ ngoài EA e chân cho phép chốt địa chỉ ALE ©_ chân cho phép cất chương trình PSEN 2 Chức năng các chân:

Cổng P0 :

Cổng P0 có 8 chân (từ chân 32 đến 39) có 2 công dụng Khi thiết kế các chương trình ứng dụng nhỏ thì P0 là port xuất/ nhập Khi thiết kế chương trình lớn hơn có sử dụng bộ nhớ ngoài thì PO có thêm chức năng là bus địa chỉ và bus dữ liệu (AD7 - ADO)

Cổng PI :

Port 1 chỉ có chức năng là dùng để xuất/ nhập (chân 1 đến chân 8) Cổng P2:

Port2 vừa có chức năng xuất/nhập, vừa là bus địa chỉ cao (A8 - A15) khi sử dụng thêm bộ nhớ ngoài (chân 21 đến 28)

Cổng P3:

Port 3 có hai chức năng (chân 10 - chân 17) Khi không hoạt động xuất nhập thì mỗi chân của P3 có các chức năng khác nhau Bit P3.0 P3.1 Tên RxD TxD Chức năng

Trang 8

PHAN L_CHUONG II Khảo sát Vi điều khiển 89C51

P3.4 TO _„ Ngõ vào của Timer/Counter 0

P3.5 Tl Ngo vao cua Timer/Counter 1

P3.6 WR Ghi đữ liệu lên bộ nhớ ngoài

P3.7 RD Đọc di liệu từ bộ nhớ ngoài

Chân số 9 : Là chân khởi động lại (Reset) tích cực mức cao, bình thường thì ở mức thấp

Chân 18 & 19 : 89C51 có một bộ dao động trên chip nhưng vẫn cần có một

bộ đồng hồ bên ngoài để kích hoạt Bộ dao động thạch anh ngoài thường được nối tới hai chân này

Chân Z4 : Truy cập bộ nhớ ngoài (External Access) là chân vào Khi

không sử dụng bộ nhớ ngoài thì chân E4 được nối lên nguồn Khi sử dụng

bộ nhớ ngoài thì chân Z4 được nối mass

Chân P$EN : Là chân ra có chức năng cho phép cất chương trình (Program

Store Enable)

Chân ALE : Cho phép chốt địa chỉ, là chân ra tích cức mức cao

II CẤU TRÚC BÊN TRONG VI ĐIỀU KHIỂN:

1 Tổ chức bộ nhớ:

Vi điều khiển 89C51 có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu Cả chương trình và dữ liệu đều có thể ở bên trong, dù vậy chúng có thể mở rộng bằng các thành phần ngoài lên đến tối đa 64Kbyte bộ nhớ chương trình và 64Kbyte bộ nhớ dữ liệu

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

® RAM:

- Dung lượng: 128 byte (0 ->127)

Trang 9

PHẦN L CHƯƠNG II Khảo sát Vi điểu khiển 89C51 2 - Địa chỉ 08 — 127: được dùng làm ngăn xếp và biến của chương trình

® Flash ROM: ROM nạp và xóa bằng điện Dung lượng 4 Kbyte (0000h — 0FFFEh): chứa mã lệnh của chương trình

Bộ nhớ ngoài:

- 89C51 có khả năng mở rộng bộ nhớ lên đến 64Kbyte bộ nhớ chương trình và 64Kbyte bộ nhớ dữ liệu ngoài.Do đó có thể dùng thêm RAM và ROM nếu cần - Khi dùng bộ nhớ ngồi thì Port0 khơng còn chức năng ƯO nữa Nó được kết hợp giữa bus địa chỉ (A0-A7) và bus đữ liệu (D0-D?7) với tín hiệu ALE để chốt byte của bus địa chỉ khi bắt đầu mỗi chu kỳ bộ nhớ Port2 khi đó là byte cao của bus địa chỉ

a Truy xuất bộ nhớ mã ngoài:

Bộ nhớ chương trình ngoài là một IC ROM được cho phép bởi tín hiệu PSEN Khi sử dụng ROM ngoài thì cả 2 cổng P0 và P2 không được sử dụng như các cổng LO được Port0 [Ế »| DO-D7 ID Q "` A0-A7 EA E1 74HC373 89C51 = Eprom ALE G Port 2 » A8-A15 PSEN OE

Trong một chu kỳ máy có 2 xung ALE và 2 byte được đọc từ bộ nhớ chương

Trang 10

PHẦN I_CHƯƠNG II Khảo sát Vi điều khiển 89C51

được đọc từ bộ nhớ chương trình Nếu lệnh đang hiện hành là lệnh 1 byte thi

CPU chỉ đọc mã lệnh còn byte 2 bỏ đi

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

- Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được đọc hoặc ghi khi được cho

phép của tín hiệu RD và WR Để truy xuất bộ nhớ dữ liệu ngoài ta dùng lệnh

MOVX

- Các RAM có thể giao tiếp với 8951 tương tự như EPROM ngoại trừ chân RD

và WR của 8951 nối tới chân OE và WE của RAM Sự nối các bus địa chỉ và

dữ liệu tương tự như cách nối của EPROM Port 0 [* >! DO-D7 ,| D Q —*| A0-A7 EA ƑTỊ_ 74HC373 89C51 ~ RAM ALE G Port 2 » A8-Al5 RD OE WR WE

3 Cac thanh ghi cé chifc năng đặc biệt:

Cũng như các bộ vi xử lý khác, 89C51 có một thanh ghi cờ để báo các điều

kiện số học Thanh ghi cờ trong 8951 được gọi là thanh ghi từ trạng thái chương

trình PSW

a Thanh ghỉ từ trạng thái chương trình:

Thanh ghi từ trạng thái chương trình PSW (Program Status Word), hay còn gọi là thanh ghi cờ, là thanh ghi 8 bit Bốn trong số các cờ là cờ điều kiện, nghĩa là chúng báo một số điều kiện được thiết lập do kết quả thực hiện một lệnh Bốn cờ này là: cờ nhớ CY(carry), cờ phụ AC (auxiliary carry), cờ chấn lẻ P (parity)

Trang 11

PHAN L_CHUONG II Khảo sát Vi điều khiển 89C51

* Cờ nhớ CY:

Cờ này được thiết lập mỗi khi có nhớ từ bit D7 và là kết quả của lệnh cộng hoặc trừ 8 bit Có thể thiết lập trực tiếp cờ CY lên 1 hoặc xóa về 0 bằng

lệnh “SETB C7” và “CLR C”, hay nói cách khác là “thiết lập cờ nhớ” và “xóa cờ nhớ”

* Cờ nhớ phụ ÁC:

Cờ này báo có nhớ ở phép cộng ADD hoặc trừ SUB * Cờ chan lé P:

Cờ chắn lẻ phản ánh số bit 1 trong thanh ghi A là chắn hay lẻ Nếu thanh phỉ A chứa một số chấn các bit 1 thì P=0, còn chứa một số lẻ bit 1 thi P=1 * Cé tran OV:

Cờ được thiết lập mỗi khi kết quả của phép tính số có dấu quá lớn làm cho

bit cao bị trần vào bit dấu b Thanh phi B:

Thanh ghi B được dùng cùng với thanh ghi tích lũy A cho các phép toán

nhân và chia Lệnh MUL AB sẽ nhân các giá trị không dấu 8 bit trong À và B rồi trả về kết quả 16 bit trong A (byte thấp) và B (byte cao) Lệnh DIV AB

sẽ chia A cho B rồi trả về kết quả nguyên trong A và phần dư trong B c Con trỏ ngăn xếp:

- Con trỏ ngăn xếp (SP) là một thanh ghi 8 bit, 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 thao tác cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp

Trang 12

PHẦNI_CHƯƠNG II Khảo sát Vi điều khiển 89C51 đ Con trỏ dữ liệu: Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài, là một thanh ghi 16 bit

e Các thanh ghi port xuất nhập:

89C51 bao gồm 4 port: Port0, Portl, Port2, Port3 Tất cả các port đều được địa chỉ hóa từng bit Ví dụ ta có thể cho xuống 0 hoặc lên 1 của bịt thứ 2 của Port 0 bang cách là: CLR P0.2 ; xuống O0 SETB PO.2 ;lénl IV HOAT DONG TIMER CUA 89C51: 1 Giới thiệu:

Timer là một chuỗi các Flip-Flop chia đôi tần số mắc nối tiếp với nhau,

chúng nhận tín hiệu vào làm nguồn xung nhịp Xung nhịp được đưa vào Flip-Flop thứ nhất để chia đôi tần số xung nhịp Ngõ ra của Flip-Flop thứ nhất làm xung nhịp cho Flip-Flop thứ hai (cũng làm việc chia đôi tân số), và v.v Ngõ ra của tầng cuối

cùng làm xung nhịp cho Flip-Flop báo tràn của Timer (còn gọi là cờ Timer TE ) Timer được dùng để: định khoảng thời gian, đếm sự kiện hoặc tạo tốc độ

baud cho cổng nối tiếp có sẵn trong 8951 Mỗi Timer 16 bit có 16 tầng hay tầng

cuối cùng chia tân số xung nhịp cho 2!“= 65536 Nguồn xung nhịp cho các Timer là xung vuông có tần số bằng 1/12 tần số dao động thạch anh gắn ở mạch dao động

hay tần số đưa vào chân XTAL 2 Các thanh ghi điều khiển Timer:

8§9C51 chứa 2 bộ định thời/ đếm 16 bit 14 Timer 0 va Timer 1 dude dùng cho

việc định thời hoặc đếm sự kiện Việc vận hành Timer được set bởi thanh ghi

Trang 13

PHAN L CHUONG II Khao sat Vi diéu khién 89C51

A

2.1 Thanh ghi ché độ của bộ định thời TMOD:

Cả hai bộ định thời Timer 0 và Timer 1 đều dùng chung một thanh ghi đượ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 ghỉ TMOD là thanh ghi 8 bit gồm có 4 bit thấp dành cho bộ Timer 0 và 4 bít cao dành cho Timer 1 Trong đó, hai bit thấp của chúng dùng để thiết lập chế độ của

bộ định thời, còn hai bit cao dùng để xác định phép toán (MSB) (LSB) GATE| c/r | M1 | MO |GATE| C/T | MI MO Timer l TimerO Vv A Vv

Điều khiển cổng khi được thiết lập Bộ định thời/bộ đếm

được mở chỉ khi chân INTx cao và chân diéu khiển TRx GATE , được lập Nếu GATTE được xóa, bộ định thời được mở khi TRx được lập C/T Bộ định thời hoặc bộ đếm bị xóa khi hoạt động MI Chế độ bit 1 MO Chế độ bit 0

1.1 Thanh ghi điều khiển Timer TCON:

Thanh ghi điều khiển bộ định thời TCON (Timer Control), đây là thanh ghi 8

Trang 14

PHAN L_CHUONG II Khao sat Vi diéu khién 89C51 D7 | DO TF1 | TR1 | TFO | TRO | IEl IT1 IEO | ITO

| Cờ tràn của Timer1, được thiết lập bởi phần cứng khi

| TFL | TCON.7 | bộ đếm/bộ định thời 1 trần và được xóa bởi phân cứng | khi bộ xử lý nhảy đến trình phục vụ ngắt

| Bit điều khiển hoạt động của Timer 1, được thiết lập

| TR1 | TCON.6 | và xóa bởi phần mềm để bậttắt bộ đếm/bộ định thời 1 TFO | TCON.5 | Tương tự như TF1 nhưng là cho Timer 0 TRO | TCON.4 | Tương tự như TR1 nhưng là cho Timer 0

Cờ ngắt ngoài 1 kích phát sườn, được CPU thiết lập khi

IEI | TCON.3 | phát hiện có sườn xuống ngắt ngoài và được CPU xóa

khi ngắt được xử lý

Trang 15

PHẦN I_CHƯƠNG II Khảo sát Vi điều khiển 89C51

Mode 0 là mode Timer 13 bit, trong đó byte cao cua Timer (THX) nối tiếp với 5

bit thấp của byte thấp của Timer (TLx) dé tao thanh Timer 13 bit Ba bit cao của TLx không được sử dụng b Chế độ Timer 16 bit (chế độ 1): Xung nhịp Timer TLx THx ` TFx — » (8bit) (8bit) Cờ báo tràn

Chế độ 1 là chế độ Timer 16 bit giống như chế độ 0, ngoại trừ lúc này timer hoạt động như timer 16 bit đầy đủ Xung nhịp được đưa vào thanh ghi l6 bít được

kết hợp bởi THx và TLx Khi nhận được các xung nhịp thì timer đếm lên: 0000H,

0001H, 0002H, v.v Tràn xảy ra khi có chuyển tiếp từ FFFFh sang 0000h trong số đếm và nó đặt cờ báo tràn timer lên 1 |

c Chế độ Timer 8 bit tự nạp lại trị đầu (chế độ 2): Xung nhịp Timer ` g3 TLE (8bit) Vv Nap lai Cờ báo tràn | << THx | (8bit)

Chế độ 2 là chế độ tự động nạp giá trị đầu Byte thấp của Timer TLx lam

Trang 16

PHẦN I_CHƯƠNG II Khảo sát Vi điều khiển 89C51 d Chế độ tách Timer (chế độ 3): Xung nhip Timer ——— TL! TH > Xung nhip Timer _ " TLO "| TFO Cờ báo tràn 1/ 12 Fosc _ mi » "| THO TFl Cờ báo tràn

Chế độ 3 là chế độ tách timer thì khác nhau với mỗi timer Timer 0 ở chế độ

3 được tách thành 2 timer § bit TLO và TH0 làm việc như 2 timer độc lập với các

báo tràn đặt các cờ TRO và TF1 tương ứng

Chế độ 3 chủ yếu cho thêm 1 timer 8 bit Khi timer 0 ở chế độ 3, ta có thể

bật hay tắt timer 1 bằng cách chuyển nó ra khỏi hay đi vào chính chế độ 3 của nó

Thông thường ta khởi tạo trị cho các Tìimer ở đầu chương trình để đặt chế độ hoạt động cho đúng TMOD là thanh ghi thứ nhất được khởi tạo trị, vì nó đặt chế độ

hoạt động -

4 Các nguồn tạo xung nhịp:

Có 2 nguồn xung nhịp có thể có, mà ta có thể chọn bằng cách ghi vào bit

chọn bộ đếm/timer C/T trong TMOD khi tạo các trị khởi động timer Một nguồn

Trang 17

PHAN L_CHUONG II Khảo sát Vi điều khiển 89C51

* Định thì khoảng thời gian:

Néu C/T =0, hoạt động timer liên tục được chọn và timer được cấp xung

nhịp từ mạch dao động trên chip Một tâng chia 12 được thêm vào để giảm tần số

xung nhịp xuống giá trị thích hợp cho phần lớn các ứng dụng trong điều khiển Khi chọn hoạt động timer liên tục thì timer được sử dụng để định thì khoảng thời gian Các thanh ghi timer (TLx/THx) tăng nội dung thêm Í cứ theo tần số là

1/12 tần số dao động trên chịp * Đếm sự kiện:

Nếu C/T = 1, timer dudc cấp xung nhịp từ nguồn bên ngoài Nguồn xung

nhịp bên ngoài được cung cấp bằng cách đưa vào các chân có chức năng thay thế ở

Port 3 Chân P3.4 làm việc như ngõ vào xung nhịp cho timer 0 và lúc này nó có tên la TO Chan P3.5 hay T1 là ngõ vào xung nhịp cho timer1

Trong các ứng dụng bộ đếm, các thanh ghi timer được tăng thêm 1 khi có

chuyển tiếp từ 1 sang 0 ở ngõ vào bên ngoài Tx Như vậy, khi ngõ vào ở mức Ì

trong 1 chu kỳ và mức 0 trong chu kỳ kế thì số đếm được tăng thêm 1 + Cho chạy, dừng và điều khiển các timer:

Tùy theo ứng dụng mà xung nhịp cho timer có thể lấy từ xung nhịp bên trong hoặc bên ngoài Phương pháp đơn giản nhất để cho chạy và dừng timer là sử dụng bit điều khiển chay TRx (timer run) trong TCON TRx=0 sau khi reset hệ

Trang 18

PHẦN I_CHƯƠNG II Khảo sát Vi điều khiển 89C51

Vì TRx ở trong thanh ghi TCON có địa chỉ bit, do đó ta dễ dàng cho chạy va

dừng các timer trong chương trình Ví dụ, Timer Ô0 được cho chạy bằng lệnh sau:

SETB TRO, và làm nó dừng bằng CLR TRO

V.NGẮT` TRONG 89C51:

Ngắt là sự đáp ứng các sự kiện bên trong hoặc bên ngồi nhằm thơng báo cho bộ vi điều khiển biết thiết bị đang cần được phục vụ

1 Ngắt của 89C5I:

Mỗi khi có một thiết bị cần được phục vụ thì thiết bị sẽ báo cho bộ vi diéu khiển bằng cách gửi một tín hiệu ngắt Khi nhận được tín hiệu này, bộ vi điều

khiển đừng mọi công việc đang thực hiện để chuyển sang phục vụ thiết bị Chương

trình đi cùng với ngắt được gọi là trình phục vụ ngắt ISR (Interrupt Service Routine)

Trình phục vụ ngắt:

Mỗi ngắt luôn có một trình phục vụ ngắt Khi một ngắt được kích hoạt thì bộ

vi điều khiển chạy trình phục vụ ngắt Trình phục vụ ngắt của mỗi ngắt có một vị trí cố định trong bộ nhớ để giữ địa chỉ ISR

Các sự kiện ngắt xảy ra trong 8951:

Có 6 sự kiện ngắt xảy ra trong 89C51: + Khi xảy ra hiện tượng tràn Timer 0 + Khi xảy ra hiện tượng tràn Timer l

+ Khi mức logic tại INT0 chuyển từ 1 về 0 thì ngắt ngoài 0 xảy ra

+ Khi mức logic tại INT1 chuyển từ 1 về 0 thì ngắt ngoài I xây ra

+ Khi thực hiện việc truyền xong 1 byte dữ liệu trong SBUF

+ Khi nhận xong 1 byte đữ liệu từ nơi khác truyền tới và lưu trữ trong SBUF

Trang 19

PHAN L_CHUONG II Khảo sát Vi điều khiển 89C51 Trình tự thực hiện ngắt: Khi một ngắt được kích hoạt, trình tự thực hiện của bộ vi điều khiển như sau: + Kết thúc lệnh hiện tại và lưu địa chỉ của lệnh kế tiếp (PC) vào ngăn xếp

+ Lưu lại trạng thái hiện hành của tất cả các ngắt vào bên trong (nghĩa là không lưu vào ngăn xếp)

+ Nhảy đến một vị trí cố định trong bộ nhớ được gọi là bảng vector ngắt, nơi lưu giữ địa chỉ của trình phục vụ ngắt

_+ Nhận địa chỉ ISR từ bảng vector ngắt rỗi nhảy tới địa chỉ đó và bắt

đầu thực hiện trình phục vụ ngắt cho đến lệnh cuối cùng của ISR là

RETI

+ Kết thúc trình phục vụ ngắt, bộ vi điều khiển gặp lệnh RETI và trở

về nơi nó đã bị ngắt

2 Cho phép ngắt và cấm ngắt:

Khi Reset thì tất cả mọi ngắt đều 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 (Interrupt Enable) chịu trách nhiệm về việc cho phép và không cho phép các ngắt

Thứ tự ưu tiên ngắt:

Mỗi nguồn ngắt được lập trình riêng vào một trong hai cấp ưu tiên qua thanh ghi chức năng đặc biệt có các địa chỉ bit IP (interrupt priority = wu tiên ngắt)

Trang 20

PHAN L_CHUONG II Khảo sát Vi điều khiển 89C5I

cao hơn không thể bị ngắt Nếu hai ngắt có độ ưu tiên khác nhau xảy ra đồng thời thì ngắt có cấp ưu tiên cao hơn sẽ được phục vụ trước

3 Ngắt bên ngoài:

Các ngắt ngoài xảy ra khi có cạnh 4m 6 chan INTO hay INT1 trên 8951 Đây là các chức năng chuyển đổi của các bit ở Port 3 : P3.2 (chân 12) và P3.3

(chân 13)

Các cờ tạo các ngắt này là các bit IE0 và IE1 trong TCON Khi quyền điều khiển đã chuyển tới trình phục vụ ngắt, cờ tạo ra ngắt chỉ được xóa nếu ngắt được tích cực bằng cạnh xuống Nếu ngắt được tích cực theo mức thì nguồn yêu cầu ngắt

bên ngoài sẽ điều khiển mức của cờ thay cho phần cứng trên chip

Sự lựa chọn ngắt tích cực mức thấp hay tích cực cạnh xuống được lập trình qua cdc bit ITO va IT1 trong TCON

Vì các chân ngắt ngoài được lấy mẫu một lần ở mỗi chu kỳ máy, ngõ vào nên được giữ trong tối thiểu 12 chu kỳ dao động để đảm bảo lấy mẫu đúng

* Ngắt kích phát mức:

Ở chế độ ngắt theo mức, các chân INTO (P3.2) và INTI (P3.3) bình thường ở mức cao,giống như tất cả các chân của cổng LO Nếu có tín hiệu mức thấp cấp tới thì tín hiệu này kích hoạt ngắt Khi đó, bộ vi điều khiển dừng tất cả mọi công

việc đang thực hiện và nhảy đến bảng vector ngắt để phục vụ ngắt Ngắt kích hoạt theo phương pháp này được gọi là kích phát mức Trước khi thực hiện lệnh cuối cùng của trình phục vụ ngắt RETIL, thì mức thấp tại chân INT phải chuyển sang

cao, nếu không sẽ tạo ra một ngắt khác * Ngắt kích phát sườn:

Khi reset thì 8951 đặt ngắt INT0 và INT1 ở chế độ kích phát mức thấp ĐỂ

đổi các ngắt thành kích phát sườn thì cần phải viết chương trình cho các bit của

thanh ghi TCON Thanh ghi TCON có các bit cờ IT0 và ITI xác định chế độ kích

phát sườn hay mức của các ngắt phần cứng IT0 và IT1 là các bít D0 và D2 tương

Trang 21

PHẦN I_CHƯƠNG II Khảo sát Vi điều khiển 89C51

ứng của thanh ghi TCON Các bịt này có thể viết dưới dang TCON.0 va TCON.2 vi

thanh ghi TCON cé thé định địa chi bit Khi Reset, TCON.0 (ITO) va TCON.2 (IT1) đều ở mức thấp, nghĩa là các ngắt phần cứng ngoài của các chan INTO va INTI la

ngắt theo mức thấp Nếu chuyển các bit TCON.0 và TCON.2 lên cao nhờ lệnh

SETB thi các ngắt phần cứng ngoài INTO và INTI trở thành các ngắt theo sườn Khi đó, nếu có một tín hiệu chuyển từ cao xuống thấp cấp cho chân P3.2 hay P3.3

thì bộ vi điều khiển sẽ bị ngắt và buộc nhảy tới bảng vector ngắt tại địa chỉ 0013H để thực hiện trình phục vụ ngắt

VI HOAT DONG CUA PORT NOI TIEP

a Giới thiệu:

89C51 có một cổng nối tiếp trên chip mà có thể hoạt động theo nhiều chế độ trên một giải rộng tần số Chức năng chính của cổng nối tiếp là thực hiện

chuyển đổi song song sang nối tiếp cho đữ liệu xuất, và chuyển đổi nối tiếp sang

song song cho dữ liệu nhập

Port nối tiếp cho hoạt động song công (thu và phát đồng thời) và đệm lúc thu cho phép một ký tự sẽ được thu và được giữ trong khi ký tự thứ hai được nhận Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ hai được thu đầy đủ thì dữ liệu sẽ không bị mất

Hai thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất đến port nối

tiếp là SBUF và SCON

b Hoạt động của các thanh ghi:

* Thanh ghi SBUF:

Trang 22

PHẦN I_CHƯƠNG II Khảo sát Vi điều khiển 89C51

các bit được nhận nối tiếp từ RxD thì 8951 mở khung, tức loại trừ các bít Start và Stop để lấy ra một byte từ đữ liệu nhận được và đặt vào thanh ghi SBUE

* Thanh ghi điều khiển nối tiếp SCON:

Thanh ghi điều khiển port nối tiếp SCON là thanh ghi có địa chỉ bit chứa các bit trạng thái và các bit điều khiển Các bit điều khiển đặt chế độ hoạt động cho port nối tiếp, và các bít trạng thái báo kết thúc việc phát hoặc thu ký tự SMO SMI SM2 TB8 RB8 TI RI SMO | SM1 | SM2 | REN | TB8 | RB8 TI RI

SCON.7 Xác định chế độ làm việc cổng nối tiếp SCON.6 Xác định chế độ làm việc cổng nối tiếp

SCON.5 Dùng cho truyền thông giữa các bộ vi xử lý SCON.4 BậƯxóa bằng phần mềm SCON.3 Không sử dụng SCON.2 Không sử dụng SCON.1 Cờ ngắt truyền SCON.0 Cờ ngắt thu * Các chế độ hoạt động:

Port nối tiếp có 4 chế độ hoạt động, có thể chọn được bằng cách đặt các bịt

Trang 23

PHAN L_CHUONG II Khao sat Vi diéu khién 89C51

Trang 24

PHAN I_CHUONG III Giới thiệu các linh kiện sử dụng trong mạch CHƯƠNG II: GIỚI THIỆU CÁC LINH KIỆN SỬ DỤNG TRONG MACH I RAM: 1 Cơ sở về bộ nhớ:

Các bộ nhớ có thể chia thành hai loại tổng quát, ROM và RAM RƠM là

Read Only Memory (bộ nhớ chỉ đọc), và RAM là Random Áccess Memory (bộ nhớ truy xuất ngẫu nhiên) Nói chung ROM chứa các dữ liệu một cách cố định và không thể thay đổi ROM luôn luôn có mặt trong các máy tính và không bị mất đi khi tắt nguồn nuôi Vì vậy nó được coi là bộ nhớ không thay đổi (nonvolatile) Còn RAM thì lại khác, nó có thể đọc ra và cũng có thể ghi vào Nhờ vậy mà dữ liệu có thể cất giữa tạm các dữ liệu rồi sau đó lại lấy các dữ liệu đó ra Dữ liệu này cũng

có thể thay đổi bất kỳ lúc nào RAM là bộ nhớ thay đổi (volatile), nghĩa là nó bị

mất hoặc bị xóa khi mất nguồn nuôi |

Khái niệm truy xuất ngẫu nhiên có nghĩa là bất kỳ một vị trí nhớ nào cũng | có thể được mở ra hoặc được gọi ra ở bất ky lúc nào, các thông tin không cần đọc

ra hay ghỉ vào một cách tuần tự Về thực chất, cả ROM lẫn RAM đều truy xuất |

ngẫu nhiên Chỉ có điểu khác nhau cơ bản RAM là bộ nhớ vừa có thể đọc ra vừa

Trang 25

PHẦNI_CHƯƠNG III — alolo >> 30 > ¬ = > œ 32 |[b2 l2 > n]â2 |ằ |@x[è@ơl > >ằ +2 ie) N > _ ° cao Bảng trạng thái: =| In &j-|o >» > —_— wa đi hò GND vec I/©1 O2 I/O3 O4 VO5 06 J/O7 J/O8 cs WE OE M œ QWik}i— mm (ư|f|^j®|n ND oS NR ¬ NR bw 620256

Giới thiệu các linh kiện sử dụng trong mạch

A0 -— A14: Là các chân địa chỉ ngõ vào

OE: Chin ngõ vào, tích cực mức thấp MODE CS OE WE | ƯOOPERATION Read L L H Dour Write L X L Dw 3 EEPROM 24C64: 64 Kbit

ghi đữ liệu lên Ram

CS: Chân ngõ vào cho phép lựa chọn chip Tích cực mức thấp, chân CS này cần phải được tích cực để đọc từ thiết bị hay ghi lên thiết bị Nếu nó không tích cực thì thiết bị sẽ không được tìm thấy Khi đó các chân data sẽ ở trạng thái tổng trở

WE: Chân ngõ vào, tích cực mức thấp và nó điểu khiển chức năng đọc và ghi Với việc lựa chọn chip, khi WE ở mức cao và G ở mức thấp, data ngõ ra sé 6

trên các chân I/O Khi WE ở mức thấp, thì data đã được ghi vào vị trí bộ nhớ

10, — IO;: Chân ngõ vào và ra được sử dụng để đọc dữ liệu từ Ram hoặc là

24C64 là một PROM có thể nạp xóa bằng điện, có dung lượng chip nhớ là

Trang 26

PHAN I_CHƯƠNG III Giới thiệu các linh kiện sử dụng trong mạch A0 SDA A1 SCL A2 WP 24C64

Các chân A0, A1, A2: là các chân định địa chỉ ngõ vào, cho phép lựa chọn

các ROM Ở đây do chỉ có sử dụng một ROM nên các chân này được nối xuống

mass Chúng ta có thể nối tới tám ROM 24C64, nếu như dữ liệu lớn

Chân SDA (Serial Data): là chân hai hướng được sử dụng để chuyển những địa chỉ và dữ liệu vào và ra một thiết bị

Chan SCL (Serial Clock): là chân ngõ vào, được sử dụng để đồng bộ dữ liệu chuyển đi tới thiết bị và từ thiết bị |

Chân WP (Write Protec£): chân này có thể kết nối xuống Mass, hoặc Vcc hoặc thả nỗi Nếu kết nối xuống mass hoặc thả nỗi thì sẽ cho phép hoạt động bộ nhớ bình thường Nếu kết nối tới Vcc thì hoạt động ghi sẽ bị cấm

Trạng thái START: trạng thái Start được xác định là khi đường SDA chuyển tiếp từ mức cao sang mức thấp, trong khi đó thì clock SCL 6 mifc cao

Trạng thái STOP: trạng thái Stop được xác định là khi đường SDA chuyển tiếp từ mức thấp sang mức cao, trong khi đó thì clock SCL ở mức cao

Quá trình ghi dữ liệu: cm Ệ

BUSAC TIVITY T conTROL Ñ BWE T HGHBVTE = LOWBYTE ADDRESS ADDRESS he para whe Ỹ P

SDA LINE {| 1I0BIBIn Kix A

A A A ^

BUS ACTIVITY C Ệ K K

X = don† care bit

Quá trình ghi bắt đầu bằng bit Start, tiếp theo là byte điều khiển bao gồm 4

bit mã điều khiển, 3 bit lựa chọn chip và bit cuối ở mức thấp chỉ trạng thái ghi dữ liệu Sau khi gửi xong một byte thì 24C64 sẽ gởi trả lời bằng ACK Tiếp theo sẽ là

Trang 27

PHẦN I_CHƯƠNG III Giới thiệu các linh kiện sử dụng trong mạch

địa chỉ byte cao và byte thấp, và cuối cùng là byte dữ liệu IC sẽ tự động tăng vùng

nhớ để nhận dữ liệu tiếp theo và kết thúc quá trình ghi bằng bit STOP Quá trình đọc dữ liệu: BUS ACTIVITY $ % MASTER ADDRESS ADDRESS & CONTROL DA T HIGH BYTE LOWBYTE R BYTE BYTE a SOA LNE 5 5 5 1ì) kh | S 1 ‡ Ý 4 % * N BUS ACTNTTY © c c oO K K K A X * Dov'tCare 84 §

Quá trình đọc bắt đầu bằng cách gửi địa chỉ giống như quá trình ghi, nhưng không gửi tiếp byte nội dung mà lại gửi lại bang bit Start và bit cuối cùng của byte

điều khiển là bằng 1 Sau khi nhận được byte dữ liệu thì sẽ trả lời bằng ACK để

báo cho 24C64 biết là đã nhận được rồi và nó sẽ gửi byte tiếp theo và tự tăng vùng nhớ Nếu trả lời bằng NOACK thì IC sẽ kết thúc gửi dữ liệu

IL MAX232

1 Chuẩn RS232:

Để bảo đảm sự tương thích giữa các thiết bị truyền dữ liệu nối tiếp do các hãng khác nhau sản xuất, ta sử dụng một chuẩn giao diện được gọi là RS232 Ngày

nay, RS232 là chuẩn giao diện IO được sử dụng rộng rãi nhất Tuy nhiên, do

chuẩn này ra đời đã khá lâu, trước khi có họ vi mạch điện tử TTL, vì vậy các mức

điện áp vào/ra của nó không tương thích với TTL Do đó, để nối RS232 với máy

tính đều phải qua bộ biến đổi điện áp như MAX232 để chuyển mức logic TT sang mức điện áp của RS232 và ngược lại -

2 Bộ điều khiển đường truyền MAX232:

Vì RS232 không tương thích với các bộ vi xử lý và vi điều khiển hiện nay nên ta cân một bộ điều khiển đường truyền (bộ chuyển đổi điện áp) để chuyển đổi

các tín hiệu RS232 về các mức điện áp TTL được các chân TxD và RxD của

Trang 28

PHẦN I_CHƯƠNG III Giới thiệu các linh kiện sử dụng trong mạch

89C51 chấp nhận Một điểm mạnh của chip MAX232 đó là dùng điện áp nguồn

+5V, cùng với điện áp nguồn của 8951 Vee 46 ¿1+ C2+ Wee t1sV Vg- C2- 1á TAN T10UT T31N T2QUT R1OUT ~ RUN R2OUT R2 GND Phía TL Phía RS232

MAX232 có hai bộ điều khiển đường truyền là nhận và truyền dữ liệu Các bộ

điều khiển đường truyễển dùng cho TxD được gọi là T1 và T2 Trong nhiễu ứng dụng thì

Trang 29

PHAN I_CHUONG III Giới thiệu các linh kiện sử dụng trong mạch

- Chân Rlạ (chân 13) là ở phía RS232 được nối tới chân TxD của đầu nối DB

của RS232

- Chan R1,,, (chan 12) là ở phía TTL và được nối tới chân RxD của bộ vi điều

a

Trang 30

PHAN I_CHUONG III Giới thiệu các linh kiện sử dụng trong mach

II THANH GHI DỊCH 4094:

4094 là một thanh ghi dịch và chốt 8 bit họ CMOS U2 tH str vec - Q1 ed 2 Q2 Pe t+ D Q3 zt 3 Q4 Fay I pok Q5 15 Q6 F473 2 o& Q7 a as Hs 8 QS1 9 H E——] GND Qs2 FT 4094

- Dữ liêu được dịch chuyển nối tiếp qua thanh ghi dich chuyển bằng sự chuyển

tiếp của xung dương của tín hiệu ngõ vào CK

- _ Ngõ ra của trang thái cuối QS2 có thể được sử dụng để kết nối thêm nhiều IC 4094 khác và nối vào chân Data (chân 2)

- _ Dữ liệu trên ngõ ra QS1 được truyền tới ngõ ra thứ 2 là QS2 bằng sự chuyển tiếp của xung âm của tín hiệu ngõ vào CK

- _ Dữ liệu ở mỗi trạng thái của thanh ghi dịch chuyển là được cung cấp tới một bộ chốt bằng sự chuyển tiếp xung âm của tín hiệu ngõ vào chốt STR Khi chân STR (chân 1) ở mức cao thì dữ liệu sẽ được chốt lại

Trang 31

PHẦN II_CHƯƠNG I Sơ đồ khối và chức năng từng khối

PHẦN II

TÍNH TOÁN THIẾT KẾ VA THI CONG MACH

Trong quang báo, việc thiết kế ra một mạch quang báo thì có nhiều cách rất khác nhau, và tùy theo từng ứng dụng cụ thể mà ta sẽ thiết kế, ví dụ chỉ sử dụng ROM trên chip vi điều khiển, hoặc sử dụng thêm RAM nếu đữ liệu lớn hơn với ROM của vi điều

khiển, hoặc sử đụng ROM ngoài trong trường hợp mất điện đột xuất

Để hiển thị được các dữ liệu ra ma trận led thì tùy theo mạch quang báo nhỏ hay lớn mà ta sẽ có cách quét khác nhau Trong mạch thiết kế của em, do có rất nhiều cột nên việc quét theo cột sẽ rất khó khăn và rất lâu trong việc xuất ra led nên em đã chọn quét

led theo hang Ưu điểm của việc quét theo hàng là sẽ quét được rất nhiều dữ liệu ra ma

trận led và cũng sẽ dễ hơn trong quá trình mình lập trình

CHƯƠNG I: SƠ ĐỒ KHỐI VÀ CHỨC NĂNG TỪNG KHỐT KHỐI MẠCH ĐIÊU KHIỂN HÀNG A ` KHỐI MẠCH KHỐI MẠCH

DIEU KHIEN HIEN THI

Trang 32

PHẦN II_CHƯƠNG I Sơ đổ khối và chức năng từng khối

IL Khối mạch điều khiển trung tâm: Sơ đồ mạch điều khiển trung tâm: C———}j XOM MÁY TÍNH AT89C51 C———Ầ RAM MẠCH GIAO TIẾP

Mạch xử lý trung tâm có nhiệm vụ xử lý tất cả các hoạt động của chương trình: điều khiển dữ liệu hiển thị, điều khiển xuất nhập dữ liệu, điều khiển truy xuất và lưu giữ dữ liệu

Nếu mạch xử lý không kết nối với máy tính thì nhược điểm của nó là khi ta

muốn thay đổi dữ liệu (hay đoạn văn bản cần hiển thị) thì cần phải tháo 82C51 ra

để nạp lại chương trình Do vậy, để tránh nhược điểm này ta giao tiếp với máy tính thông qua port nối tiếp của 89C51, nghĩa là khi ta thay đổi dữ liệu hiển thị thì chỉ

cần thay đổi trên máy tính rồi truyền xuống cho 89C51 xử lý thông qua cổng COM II Khối mạch điều khiển hàng và cột:

Trong thiết kế này, em sử dụng thanh ghi dịch chuyển và chốt 8 bit 4094 cho cả mạch hàng và cột Việc sử dụng IC này tiện lợi và tiết kiệm được số port của 89C51, IC này chỉ cần có 3 đường điều khiển mà thôi (đường data, đường xung CK, đường chốt đata STR)

Để điểu khiển và cấp nguồn cho một hàng thì ta cần phải có dòng lớn để

làm cho led sáng, do vậy em chọn nâng dòng bằng các transistor PNP hoạt động Ở

Trang 33

PHẦN II_CHƯƠNG I Sơ dé khối và chức năng từng khối

chế độ bão hòa, ngõ ra được nối tới các chân nguồn của ma trận led Tại mỗi thời điểm chỉ có một hàng led được tích cực, tùy thuộc vào dữ liệu muốn hiển thị nên phải có sự đóng ngắt của các BJT để điều khiển sự quét hàng | MA Vv BJT TRAN LED 89C51 PNP 4094 Q8 - Q15

Sơ đồ khối của mạch hàng

Ngoài việc điểu khiển cấp nguồn quét hàng cho ma trận, ta còn phải điều

khiển cấp dữ liệu xuất ra ma trận led Dữ liệu xuất ra được đưa qua IC đệm dữ liệu là ULN2804 MA p 4094 Uln 2803 | | TRAN ortl LED \ 89C51 MA 4094 Uln 2803 TRAN | LED

Sơ đồ khối của mạch cột

II Khối hiển thị (ma trận led):

Sau khi ta điều khiển cấp nguôn cho từng hàng ứng với mỗi dữ liệu của từng cột thì nó sẽ hiển thị được dữ liệu mà mình mong muốn lên ma trận led

Trang 34

CHƯƠNG II Tính toán và thiết kế

CHƯƠNG II: TÍNH TỐN VÀ THIẾT KẾ

L SO DO NGUYEN LY

1 Sơ đô nguyên lý của mạch điều khiển trung tâm:

a Sơ đô kết nối của 89C5I : VCC U2 Na P0.0ADO P2.0/A8 | P0.1/AD1 P2.1/A9 | R Š P02/AD2 P2.2/A10 4 35 P0.3AD3 P23/A11 \À —Bš—— Sx | P04/AD4 P24/A12 P0.5/ADS P2.5/A13 TS |P09AD8 P26/A14 `———— “| po.7AD7 P27/A15 P1.0 ` r— P1.0 P3.0/RXD ri 8 Na | P11 P3.1/TXD [1z TxD PT 4 [F12 P3.2/INT0 [1Ã ar] Pts P3.3/INT1 [7g sit NYT 6 | P14 P3.4/T0 a5 INTO Pie 7 | P15 P3.5/T1 [46 À PT 8 P1.6 P3.6ANR [747 WR vec P17 P3.7/RD RD C5 | 10uF Lx Tt la EAVEP ALEIPROG peer 8 PSEN |“ —1 ALE rst & k AT89C51 Y1 40K 18.432MHz [| = C7 C6 33p 33p b Giải thích và tính toán: b.1 Giải thích:

Trong mạch này thì 89C51 điểu khiển mọi hoạt động của hệ thống:

nó điều khiển việc quét hàng và cột, điều khiển việc truy xuất và lưu dữ

liệu lên Ram và Rom, truyền và nhận dữ liệu từ máy tính

Port 1 của 89C51 dùng để điều khiển hàng và cột, Port 0 va Port 2

dùng để kết nối với Ram thông qua các đường địa chỉ và dữ liệu đã định sẵn

trên 89C51

Trang 35

CHƯƠNG II Tính toán và thiết kế

- Hai chân TxD và RxD dùng để kết nối với máy tính thực hiện việc truyền và nhận dữ liệu Ở đây chỉ thực hiện việc nhận dữ liệu từ máy tính

truyền xuống mà thôi

- Chân RD, WR dùng để đọc, ghi lên RAM - Chan INTO, INT1 dùng kết nối với ROM

- Chân ALE được sử dụng để phân kênh địa chỉ và dữ liệu

- Lý do mà chân EA của 89C51 được nối lên nguồn là vì đối với các

thành viên họ 8051 có ROM chương trình trên chip như 8751, 8951 thì chân

BA được nối tới nguồn Vcc Trường hợp không có ROM trên chip thì mã

chương trình được lưu cất ở bộ nhớ ROM ngoài, khi đó chân BÀ được nối tới

đất Như vậy trong mỗi thiết kế thì chân EA hoặc được nối tới nguồn Vcc hoặc với đất GND chứ không bao giờ để hở b.2 Tính toán: +> Mach Reset : AT89C51 được Reset bằng cách giữ chân RST ở mức cao trong ít nhất 2 chu kỳ máy - Mạch reset là mạch thông cao R — C: nsy ccxe— V, T => Var = tcc a> Pe pn => T=—G of ? RST IEn_ CC Vest Với z là thời hằng của mạch RC, z =RC RST

Để Reset AT89C51 thì chân reset phải ở ít nhất 2 chu kỳ máy (T> 2/ø ) và

Vest phai lớn hơn 2,5 V

Trang 36

CHƯƠNG II Tính toán và thiết kế Chon Vast = 3V, T= 40ms, R= 10K ~3 =>C= _ 40.107 =7,83 uF 10.10° xZn= 3 Chon C = 10 pF

+> Mach tao dao dong:

Thường trong các thiết kế thì mạch tạo dao động này người ta thường kết nối với thạch anh 12Mhz để khi qua bộ chia 12 thì nó sẽ tạo ra đúng một

chu kỳ máy là 1 micro giây Ban đầu em kết nối với thạch anh 12Mhz, nhưng vì lý do khi cho quét các hàng led thì thấy nó có hơi chớp, vì vậy em

Trang 37

CHƯƠNG II Tính toán và thiết kế Sơ đồ kết nối với bộ nhớ ngoài: AT24C64 A15 R§ HY62256

Các chân P0.0 — P0.7 vừa được dùng làm bus địa chỉ, vừa được dùng làm bus dữ liệu Chân ALE cho phép chúng ta biết được khi nào P0 làm bus dữ liệu và khi nào làm bus địa chỉ Chân ALE là một chân ra, cho phép chốt địa chỉ (Address

Latch Enable) Khi ALE = 0 thì P0 làm bus dữ liệu, còn khi ALE = 1 thi lam bus

địa chỉ, và để mở rộng địa chỉ thì nối các chân của PO tới mạch chốt địa chỉ 74LS373 va ding chan ALE dé chot dia chi Binh thường thì chân ALE =0 và cổng PO được dùng làm bus dữ liệu

Để tận dụng các đường địa chỉ và dữ liệu của 89C51, em thiết kế với RAM 62256, vì nó có 15 đướng ngõ vào địa chỉ có thể nối thẳng vào 8951 Ở 8951 còn dư 1 đường địa chỉ nên em thiết kế thêm 1 RAM 62256 nữa với mục đích phát triển

về sau để lưu những đữ liệu lớn hơn

Trang 38

CHUONG II Tính toán và thiết kế

Việc kết nối bus địa chỉ và bus dữ liệu như hình trên Chân RD nối tới chân

OE, chân WR nối tới chân WE của RAM Theo datashect của RAM thì để ghi hoặc đọc dữ liệu thì ta cần phải cho các chân OE và WE xuống 0 hoặc lên 1, nhưng do

hai chân này được kết nối với hai chân RD, WR của 89C51 nên trong lúc lập trình ta không cần phải CLR hay SETB các chân RD, WR của 8951 nữa, là vì cấu trúc phần cứng bên trong của 8951 đã tương thích với việc đọc, ghi thông qua các lệnh đọc hay ghi vào Ram của 8951

Ban đầu em chỉ thiết kế với RAM thôi nhưng vì khi mất điện thì dữ liệu

trước đó sẽ mất đi nên để khắc phục chuyện này, em thiết kế thêm với ROM d Mạch giao tiếp với máy tính:

d.1 Cơ sở của truyền tin nối tiếp:

Máy tính truyền dữ liệu theo hai phương pháp: song song và nối tiếp Truyền dữ liệu song song thường sử dụng 8 hoặc nhiều đường dây dẫn để truyền

dữ liệu đến thiết bị ở cách xa một vài mét Phương pháp này cho phép truyền dữ

liệu với tốc độ cao nhờ dùng nhiều dây dẫn để truyền dữ liệu đồng thời, nhưng

khoảng cách truyền thì bị hạn chế Do vậy, để truyền dữ liệu đi xa thì cần sử dụng

phương pháp truyền nối tiếp Phương pháp này truyền dữ liệu theo từng bit một Để truyền tin nối tiếp, người ta sử dụng một đường đữ liệu thay cho bus dữ

liệu 8 bit của truyền tin song song, nhờ vậy không chỉ làm cho giá thành hạ hơn nhiều mà còn mở ra một khả năng để hai máy tính ở cách rất xa nhau vẫn có thể

truyền thông với nhau qua đường điện thoại

Khi cự ly truyền ngắn thì tín hiệu số có thể được truyền bằng một dây dẫn và không cần điểu chế Tuy nhiên, để truyền dữ liệu đi xa qua các đường truyền,

chẳng hạn như đường điện thoại thì truyển dữ liệu nối tiếp yêu cầu một Modem

để điều chế (chuyển các số 0 và 1 về tín hiệu âm thanh) và sau đó giải điều chế (chuyển tín hiệu âm thanh về các số 0 và 1)

Trang 39

CHƯƠNG II Tính toán và thiết kế

d.2 Việc truyền dữ liệu:

Truyễển tin nối tiếp có hai phương pháp: đồng bộ và bất đồng bộ Phương pháp đồng bộ chuyển mỗi lần một khối dữ liệu (các ký tự), còn phương pháp bất đồng bộ chỉ truyền từng byte một

Truyền tin nối tiếp bất đồng bộ được sử dụng rộng rãi trong truyền ký tự, mỗi ký tự được bố trí vào giữa bit khởi động và bit dừng Bit khởi động luôn chỉ có một bit, còn bit dừng có thể có 1 hoặc 2 bit Bit khởi động luôn có giá trị 0, còn bịt dừng thì có giá trị 1 Và khi truyền thì bit có trọng số thấp LSB được truyền đi trước Ví dụ truyễn ký tự “A” ASCII có mã nhị phân là 01000001

Gửi đi cuối cùng Chiều dữ liệu Gửi đi đầu tiên Bit Bit Stop} 0 1 0 0 0 0 0 1 Start Tốc độ truyền tin nối tiếp được tính bằng biU/giây bps (Bit Per Second) Tốc

độ truyển dữ liệu của từng máy tính phụ thuộc vào cổng truyền tin của hệ máy đó d.3 Sơ đô nguyên lý mạch giao tiếp: tT 18 Rin BiĐULEg————<—— T1 R2IN R2OUT [F14 VCC 1 2 : ——> TxD Ø?—raN T7 JTIN QUT b> T20UTƑ——L C1 COM 1 xs 1c, "=.= | 10uF = | 10uF 3 4 v LÊ c2)|taur VCC H— = 4 16 Ta | C2+ VGC | 10uF 5 c2- GND 15 MAX232 =

Mach ding IC Max232 để kết nối cổng COM của máy tính bằng cách nối

lần lượt chân 14 (chân T1out) và chân 13 (chân Rlin) của Max232 vào chân RxD

và TxD của cổng COM máy tính

Theo nhà sản xuất thì các tụ có giá trị trong khoảng từ 1 đến 22 uF Trong mạch chọn 10 uE

Trang 40

CHƯƠNG II Tính toán và thiết kế e Sơ đồ dùng để cấp dữ liệu điều khiển cho hàng và cột: U2B IN COM U2C {N COM U2D IN U2E IN COM U2F iN COM U2G IN COM

Port 1 có chức năng điều khiển hàng và cột Việc kết nối thêm cổng đệm như vậy

nhằm để ổn định việc xuất các dữ liệu điều khiển qua hàng và cột

Ngày đăng: 17/05/2017, 09:43

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

TÀI LIỆU LIÊN QUAN

w