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 2PHẦ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 3Lờ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 4PHAN 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 5PHAN 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 6PHẦ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 9PHẦ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 10PHẦ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 12PHẦ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 14PHAN 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 16PHẦ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 24PHAN 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 25PHẦ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 31PHẦ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 36CHƯƠ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 37CHƯƠ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 40CHƯƠ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