Tải bản đầy đủ (.doc) (38 trang)

THIẾT kế MẠCH QUANG báo 8x24 sử DỤNG VXL AT89C51

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (720.97 KB, 38 trang )

ĐỒ ÁN 2 THIẾT KẾ MẠCH QUANG BÁO 8X24 SỬ DỤNG VXL AT89C51
MỤC LỤC
Lời nói đầu……………………………………………………… …… 02
Chương 1-GIỚI THIỆU MẠCH QUANG BÁO
I.Tổng quan 03
II.Chức năng từng khối 05
III. Công nghệ ứng dụng hiện nay 05
Chương 2 MẠCH QUANG BÁO DÙNG VI ĐIỀU KHIỂN 89C51
I.Nguyên lý làm việc của mạch quang báo
I.1Giới thiệu bảng đèn quang báo 07
I.2 Nguyên tắc làm sáng đèn LED 8x8 09
I.3 Nguyên tắc quét bảng ma trận LED 10
I.4 Phương pháp tạo hiệu ứng chử chạy 13
II. Sơ đồ nguyên lý 16
III. Lưu đồ giải thuật 17
IV. Mã nguồn chương trình 18
Chương 3 – LINH KIỆN CHO MẠCH QUANG BÁO
I. Vi điều khiển 89C51 21
II. IC 74HC595 33
III.Transistor A1015 36
Chương 4 –THI CÔNG MẠCH QUANG BÁO
I.Sơ đồ mạch in 37
II.Ưu điểm và khuyết điểm của mạch trên 38
III. HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
GVHD:TH.S NGUYỄN VĂN DŨNG SVTH:NGUYỄN NHẬT KHÁNH
1
ĐỒ ÁN 2 THIẾT KẾ MẠCH QUANG BÁO 8X24 SỬ DỤNG VXL AT89C51
LỜI NÓI ĐẦU
Ngày nay, cùng với sự phát triển của khoa học kỹ thuật, nhất là trong lĩnh vực
Điện tử - Tin học - Viễn thông, việc đưa thông tin quảng cáo đến với người tiêu dùng,
đến với xã hội trở nên dễ dàng và nhanh chóng. Thông qua nhiều hình thức quảng cáo


khác nhau mà các doanh nghiệp giới thiệu sản phẩm của mình đến mọi người.
Trong nhiều hình thức đa dạng của Thông tin quảng cáo như: báo, đài, tivi, tờ
rơi, áp phích. thì việc dùng Bảng thông tin điện tử là một cách đơn giản và hiệu quả để
quảng cáo. Chúng ta bắt gặp rất nhiều bảng thông tin như vậy trong thực tế. Khi đi vào
một hiệu sách, bạn có thể biết được hiệu sách đó bán loại sách gì, giá cả ra sao là nhờ
vào bảng đèn quang báo rất bắt mắt trước cửa hiệu. Hoặc khi vào sân bay, bạn biết
được giờ giấc các chuyến bay, các thông báo ngắn của phi trường, cũng là nhờ vào
quang báo. Và khi đi trên đường phố lúc về đêm, bạn sẽ bắt gặp cùng với ánh đèn màu
là rất nhiều các bảng quang báo lớn với các hình ảnh sinh động như ly bia Tiger đang
trào bọt, hay các hình ảnh, logo hiện lên với đủ kiểu (từ trên xuống, từ trái sang).
Qua đó ta thấy rằng, bảng thông tin điện tử đã được ứng dụng rộng rãi trong
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, làm biển hiệu
Với ứng dụng rộng rãi như vậy, việc tìm hiểu và thiết kế một bảng thông tin như vậy
đã thôi thúc em thực hiện đề tài “thiết kế mạch quang báo dùng Vi Điều Khiển”
Giới hạn đề tài
Như đã giới thiệu, bảng thông tin điên tử có thể hiển thị được các hình ảnh cử
động, chứ không chỉ gói gọn trong việc hiển thị chữ. Tuy nhiên, do điều kiện và thời
gian có hạn nên đề tài chỉ giới hạn ở việc hiển thị chữ chạy.
GVHD:TH.S NGUYỄN VĂN DŨNG SVTH:NGUYỄN NHẬT KHÁNH
2
ĐỒ ÁN 2 THIẾT KẾ MẠCH QUANG BÁO 8X24 SỬ DỤNG VXL AT89C51
CHƯƠNG 1
GIỚI THIỆU MẠCH QUANG BÁO
I.Tổng quan
-Giới thiệu sản
phẩm:

Mạch quang báo nhóm thực hiện là mạch có chức năng hiển thị
nội
dung trên ma

trận điểm. Nội dung này có thể dịch chuyển từ phải
sang
trái. Nội dung cần
hiển thị được nạp trước vào trong bộ nhớ của vi
điều
khiển trong quá trình nạp
chương trình cho vi điều khiển. Mỗi khi
cần
thay đổi nội dung hiển thị cần nạp
lại chương trình cho vi điều
khiển.
-Lựa chọn các linh
kiện:
Để thực hiện một sản phẩm như trên ở quy mô nhỏ ta có thể
sử
dụng các họ
vi điều khiển khác nhau như AVR, PIC, 8051 hay vi xử lý
đa
năng như 8086.
Tuy nhiên, để tiết kiệm chi phí cũng như xét trên
khả
năng mua các chip trên
trên thị trường, tài liệu nghiên cứu về chúng,
bộ
Kit phát triển,em đã lựa chọn
AT89C51 làm vi điều khiển
cho
mạch quang báo này. Ngoài ra, các linh kiện
khác hoàn toàn dễ kiếm
trên

thị trường hiện
nay.
GVHD:TH.S NGUYỄN VĂN DŨNG SVTH:NGUYỄN NHẬT KHÁNH
3
ĐỒ ÁN 2 THIẾT KẾ MẠCH QUANG BÁO 8X24 SỬ DỤNG VXL AT89C51
II.1. S

Ơ ĐỒ KHỐI

GVHD:TH.S NGUYỄN VĂN DŨNG SVTH:NGUYỄN NHẬT KHÁNH
4
Khối nguồn
220VAC-5VDC
Khối vi điều khiển
AT89C51
Điều khiển và khuếch đại
công suất hàng
Khối hiển thị Led ma
trận 8x24
Khuếch đại công
suất
cột(ULN2803)
Điều khiển hiển thị
(74HC595)
Khối nguồn
220VAC-5VDC
II.2.CHỨC NĂNG TỪNG KHỐI
Mạch điện sử dụng Vi Điều Khiển nên về phần cứng khá đơn giản.
Khối điều khiển trung tâm sử dụng Vi Điều Khiển 89C51.
Khối giải mã dữ liệu hàng sử dụng 8 con transistor cú chức năng giống như cổng

NOT.
Khối giải mã địa chỉ cột sử dụng IC 74HC595, đây là thanh ghi dịch 8-bit vào nối
tiếp ra song song. Ta sử dụng IC này nhằm mục đích tiết kiệm chân giao tiếp giữa
IC giải mã với Vi Điều Khiển. Chân DATA-IN (14) để đưa dữ liệu nối tiếpvào,
chân CLK (11) đưa xung đồng hồ dịch bit, chân LATCH(12) để chốt dữ liệu được
gửi ra. 8 đầu ra được nối đến 8 cột của bảng LED thông qua mạch đệm dòng.
Nguyên lý hoạt động: Chương trình phần mềm chứa trong Vi Điều Khiển làm
nhiệm vụ điều khiển chính mọi hoạt động của mạch. Chương trình phần mềm gồm

nhiều chương trình con: chương trình hiển thị, chương trình cập nhật.
III. CÔNG NGHỆ ỨNG DỤNG HIỆN NAY:
Nhu cầu trang bị bảng điện tử ở của hàng, tòa nhà, sân bay, nhà
ga,
công ty chứng
khoán hiện nay rất lớn. Đã có những doanh nghiệp
chuyên
sản xuất những sản
phẩm, tuy nhiên các
sản
phẩm đó mới chỉ được ứng dụng ở các cửa hàng, siêu thị
với yêu cầu
chất
lượng chưa cao và ít tính năng. Nội dung hiển thị được nạp vào
trong ROM nên nếu nội
dung
hiển thị mà lớn thì đòi hỏi tăng kích thước bộ nhớ
ROM bằng cách
ghép
nối thêm ROM. Kể cả như vậy thì bộ nhớ ghép nối chỉ
được phép tối

đa
64Kbyte (với IC AT89C51). Do vậy đây vẫn là một phương án
chưa
“tối
ưu”. Để khắc phục điều này, các ký hiệu hỉển thị cần được mã hóa và
lưu
trong bộ nhớ. Mỗi khi một ký hiệu nào được gọi tới hiển thị thì
chương
trình sẽ
tự động truy cập tới ô nhớ chứa mã điều khiển các LED
tương
ứng với ký hiệu
đó. Phương án này đòi hỏi lập trình phức tạp hơn và

ghép nối với máy tính
trong các ứng dụng cao cấp. Tuy nhiên với
mục
đích tìm hiểu ứng dụng của kỹ
thuật vi xử lý và yêu cầu bài toán đơn
giản
cũng như thời gian giới hạn, em mới
hoàn thành sản phẩm

mức độ hiện
nay.
Ngoài việc quảng cáo, thông báo chỉ số
trong các ngành tái chính,gần đây quang báo còn được ứng nhiều vào việc điều tiết
giao thông, dự báo thời tiết thông qua dự án Nghiên cứu ứng dụng biển quang báo
điện tử trong quản lý giao thông tại một số đô thị lớn như thành phố Hồ Chí Minh
và Hà nội.v.v.nhờ vào giao tiếp máy tính thông qua cổng nối tiếp RS232, khe cắm

máy tính (Slot-card) , cổng máy in (LPT) để nội dung có thể được thay đổi nhanh và
phong phú hơn.
QUANG BÁO ĐƯỢC ỨNG DỤNG TRONG ĐIỀU TIẾT GIAO THÔNG
CHƯƠNG 2
MẠCH QUANG BÁO DÙNG VI ĐIỀU KHIỂN 89C51
I. Nguyên lý làm việc mạch quang báo
I.1 Giới thiệu về bảng LED ma trận
Trước khi đi vào nguyên lý hoạt động của mạch ta tìm hiểu qua về bảng ma
trận LED được sử dụng trong đề tài.
Bảng hiển thị ma trận LED (dot-matrix display) có rất nhiều loại và đủ kích
cỡ to nhỏ khác nhau, mỗi bảng gồm có rất nhiều LED đơn được ghép lại với nhau
trong một khối. Trong khối đó các LED đơn được sắp sếp theo các hàng và các cột,
tại mỗi giao điểm của hàng với cột là một LED đơn, và người ta thường phân biệt
các loại bảng LED theo số hàng và cột. Một bảng LED 5x7 tức là có 5 cột dọc và 7
hàng ngang, tổng cộng sẽ có 5x7=35 LED đơn được ghép lại. Cũng như vậy một
bảng 8x8 là có 8 hàng và 8 cột, do 64 LED đơn ghép lại. Và nhiều loại cỡ to hơn
như 16x16 hay 32x32…
Trên thị trường ta thường thấy các bảng LED cỡ lớn, dài hàng mét với đủ
kích cỡ. Các bảng LED đó là do hàng nghìn LED đơn ghép lại. Khi thiết kế những
bảng LED to như vậy ta cần chú ý đến sự đồng đều về độ sáng của các LED để việc
hiển thị được đồng đều. Bên cạnh đó vấn đề cấp nguồn cho mạch cũng cần được
chú ý và thiết kế cho phù hợp. Trong đề tài này em sử dụng ba bảng LED 8x8 cho
việc hiển thị
Sau đây là sơ đồ ghép nối của hai loại bảng LED thông dụng 8x8.
Bảng ma trận LED có hai loại, loại có các cột là các chân Anode, còn hàng là
các chân Cathode và loại kia thì ngược lại các cột là Cathode, hàng là Anode. Khi
sử dụng LED ta cần chú ý điều này để điều khiển cho đúng. Khi đóng vỏ, sự phân
bố chân các hàng và cột là không theo thứ tự (do tính phức tạp trong ghép nối), do
đó ta cần tìm hiểu kỹ để mắc mạch cho đúng.
Dưới đây là sơ đồ chân của bảng LED 8x8 được dùng trong đề tài.

1. Các số gạch chân là hàng
2. Các số không gạch chân là cột
I.2.
Nguyên tắc làm sáng đèn trên bảng LED

Khi muốn làm sáng LED đơn, ta cần đưa điện áp dương vào chân Anode và
điện áp âm
vào chân Cathode với giá trị thích hợp, khi đó LED sáng. Giá trị điện
áp và dòng điện tuỳ
thuộc vào màu sắc từng loại LED. Dòng chảy qua các LED để
đảm bảo độ sáng bình thường là từ 10mA cho đến 25mA.
Khi ta muốn làm sáng một điểm trên bảng ma trận LED ta cũng làm tương
0tự. Xét với bảng LED 5x7 dưới đây (H1.3).
I.3 Nguyên tắc quét bảng ma trận LED
Trong đề tài này em sử dụng ba bảng LED 8x8 ghép lại thành một bảng cỡ 8x24 (8
hàng và 24 cột). Mỗi ký tự sẽ được hiển thị trong một khung cỡ 8x8. Dưới đây là
nguyên tắc quét và hiển thị một ký tự (giả thiết là chữ R) trên khung hình 7x5.
Để hiển thị ký tự lên bảng LED, ở đây ta dùng phương pháp quét cột và xuất
dữ liệu hàng. Quá trình quét cột là ta gửi tín hiệu cho phép đến từng cột trong từng
thời điểm. Cùng lúc đó ta gửi dữ liệu hàng đến 7 hàng. Trong đề tài này tín hiệu cho
phép cột là mức logic ‘1’, và dữ liệu hàng tương ứng là mức ‘0’ hay ‘1’ của từng
hàng, mức ‘0’ ứng với LED sáng (on) và mức ‘1’ là tắt (off).
• Đầu tiên ta đưa dữ liệu cần hiển thị đến 8 hàng, ví dụ 11100110
• Kích hoạt cột thứ nhất và các LED tương ứng sẽ sáng. Tạo một thời gian trễ,
sau đó tắt cột thứ nhất.
• Gửi tiếp giá trị dữ liệu 7 hàng của cột thứ 2, kích hoạt cột thứ 2, tạo trễ và lại
tắt cột thứ 2.
• Quá trình quét đó cứ tiếp diễn cho đến khi quét hết 16 cột của bảng LED.
Việc quét hiển thị này diễn ra trong thời gian rất ngắn, cỡ vài chục mili giây,
ta sẽ thấy hình ảnh hay chữ hiển thị trên bảng LED. Tuy rằng trong mỗi thời

điểm chỉ có một cột được sáng nhưng do thời gian quét rất nhanh và do hiện
tương lưu ảnh trong võng mạc của mắt nên ta thấy hình ảnh xuất hiện liên
tục. Tần số quét cần phải đảm bảo sao cho đủ hoặc lớn hơn 24hình/s.
Thường ta chọn tần số quét từ 40Hz đến 100Hz hoặc có thể lớn hơn.
• Dữ liệu hiển thị của hàng được lấy từ EEPROM hoặc từ Flash ROM của Vi
Điều Khiển hay từ ROM ngoài.
Trạng thái của một LED sẽ được quyết định bởi tín hiệu điện áp đi vào đồng
thời cả 2 chân. Ví dụ để LED sáng thì điện áp 5V phải đưa vào chân dương và chân
âm phải được nối đất, LED sẽ tắt khi không có điện áp đưa vào chân dương.Với đề
tài này, chúng em chọn loại ma trận LED 8x8 để hiển thị.Ta có sơ đồ nguyên lý của
Ma trận LED 8x8:
Để ma trận có thể sáng như hình vẽ (hiển thị một phần của chữ ADIDAS):

Đèn LED thứ nhất Đèn LED thứ hai Đèn Led thứ ba
Thực hiện quét dòng và cột:
- Chọn cột 1, đưa điện áp cột 1 về 0.
- Sau đó chọn và quét lần lượt các hàng 1,2,3,4,5,6,7,8 như sau:
+ Đèn 1 tắt  Điện áp đưa vào hàng 1 là 0V.
+ Đèn 2 tắt  Điện áp đưa vào hàng 2 là 0V.
+ Đèn 3 sáng  Điện áp đưa vào hàng 3 là 5V.
+ Đèn 4 sáng  Điện áp đưa vào hàng 4 là 5V.
+ Đèn 5 sáng  Điện áp đưa vào hàng 5 là 5V.
+ Đèn 6 sáng  Điện áp đưa vào hàng 6 là 5V.
+ Đèn 7 sáng  Điện áp đưa vào hàng 7 là 5V.
+ Đèn 8 sáng  Điện áp đưa vào hàng 8 là 5V.
Chọn cột 2, nối đất. Sau đó quét lần lượt các hàng 1,2,3,4,5,6,7,8.
+ Đèn 1 tắt  Điện áp đưa vào hàng 1 là 0V.
+ Đèn 2 sáng  Điện áp đưa vào hàng 2 là 5V
+ Đèn 3 tắt  Điện áp đưa vào hàng 3 là 0V
+ Đèn 4 sáng  Điện áp đưa vào hàng 4 là 5V

+ Đèn 5 tắt  Điện áp đưa vào hàng 5 là 0V
+ Đèn 6 tắt  Điện áp đưa vào hàng 6 là 0V
+ Đèn 7 tắt  Điện áp đưa vào hàng 7 là 0V
+ Đèn 8 tắt  Điện áp đưa vào hàng 8 là 0V
-Tiếp tục quét với các cột từ 3 đến 8 bằng cách như trên, sau đó chuyển sang quét đèn
LED thứ hai và thứ ba một cách tương tự.
-Để mắt người nhận biết được toàn bộ hình ảnh của ma trận ta phải tiến hành quét nhiều
lần. Do mắt người không phân biệt được sự thay đổi ảnh nếu ảnh đó được quét với tốc
độ 24 hình/s nên nếu ta quét ảnh với tốc độ lớn hơn hoặc bằng 24 hình/s thì ảnh sẽ chạy
liên tục và không bị giật
I.4. Phương pháp tạo hiệu ứng chữ chạy từ phải qua trái trên bảng LED
Sau khi đã hiển thị được hình ảnh lên bảng LED. Bây giờ ta sẽ tìm hiểu cách tạo hiệu
ứng chữ chạy trên bảng LED. Thủ thuật ở đây là quét và hiển thị một hình ảnh trong
một thời gian nhất định, sau đó ta dịch dữ liệu của các cột sang trái một vị trí, khi đó ta
sẽ tạo được hiệu ứng chữ chạy trên bảng LED.
Đề tài này ta sử dụng mạch mẫu là bảng LED 8x24, sử dụng 32 byte RAM làm bộ đệm
cho màn hình, lưu giá trị dữ liệu hàng của 24 cột. Bộ đệm được khai báo trong RAM
nội của chip 89C51 là một mảng gồm 33 phần tử.
Chương trình hiển thị làmnhiệm vụ đọc dữ liệu từ các vị trí 0 đến 32 của bộ đệm và đưa
ra màn hình hiển thị.
Hiệu ứng chữ chạy được tạo ra bằng cách dịch giá trị các phần tử đi một vị trí
(54, 43, 32,21,10 )
Sau mỗi lần dịch ta lại gọi chương trình hiển thị. Khi đó trên bảng LED ta sẽ quan sát
được hiệu ứng chữ chạy.
VD: Di chuyển ký tự trên ma trận Led
Di chuyển chuỗi “AB” trên ma trận Led từ trái sang phải:
- Tính toán dữ liệu hiển thị
Giả sử cần hiển thị chuỗi “AB”:
Chữ ‘A’: 7Eh, 09h, 09h, 09h,
7Eh

Chữ ‘B’: 7Fh, 49h,49h,49h,36h
Giữa chữ A và B có một cột trống để phân biệt.
Chuỗi “AB”: 7Eh, 09h, 09h, 09h, 7Eh, 00h, 7Fh, 49h,49h,49h, 36h
Có thể thêm khoảng trắng trước và sau chuỗi để chuỗi hiện ra từ từ
Chuỗi “ AB ”: 00h, 00h, 00h, 00h, 00h, 7Eh, 09h, 09h, 09h, 7Eh, 00h,
7Fh, 49h,49h,49h, 36h,00h, 00h, 00h, 00h
Khai báo biến:
pa DB 00h, 00h, 00h, 00h, 00h
DB 7Eh, 09h, 09h, 09h, 7Eh, 00h
DB 7Fh, 49h, 49h, 49h, 36h, 00h
DB 00h, 00h, 00h
Như vậy, một ký tự cần hiển thị trên ma trận Led cần 6 byte và 5 byte
00h đầu chuỗi, 3 byte 00h cuối chuỗi một chuỗi dài 50 ký tự sẽ cần số
byte lưu trữ cho mã Led là: 50*6 + 5 + 3 = 308 byte.
- Hiển thị ký tự:
Quá trình hiển thị và cho chữ chạy mô tả như hình vẽ:
Lần 1: hiển thị từ pa[0] ÷ pa[4]
Lần 2: hiển thị từ pa[1] ÷ pa[5]
Lần 16: hiển thị từ pa[15] ÷ pa[19]
lần j: hiển thị từ pa[j] ÷ pa[j+5]
Chuỗi “AB” gồm 2 ký tự cần lưu trữ 20 byte và quét tổng cộng 20 - 4 = 16lần .Chuỗi
50 ký tự cần lưu trữ 50*6 + 8 = 308 byte và quét 304 lần.
II.SƠ ĐỒ NGUYÊN LÝ:

KHÔNG

III:LƯU ĐỒ GIẢI THUẬT

Lưu đồ giải thuật

V.MÃ NGUỒN CHƯƠNG TRÌNH

Nạp các mã lệnh vào con
trỏ dử liệu DPTR
Gọi chương trình con
quét matrix
Kiểm tra xem xuất
hiển thò xong chưa
Khởi tạo các giá trò
ban đầu
Bắt đầu
CHUONG TRINH CHAY CHU TDT

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
HANG DATA P0
CLK BIT P2.0
DT BIT P2.1
RCK BIT P2.2
ORG 0000H
MAIN:
MOV A,#0 ; Nhập giá trị ban dầu
MOV DPTR,#MACHU ;Nạp mã chữ vào thanh ghi DPTR
LAP:
MOV R2,#10 ;Nạp giá trị 10 vào thanh ghi r2
LAP1:
LCALL HIENTHI ;Gọi chương trình hiển thị
DJNZ R2,LAP1 ;Giảm R2
INC DPTR ; Tăng DPTR lên 1
MOV A,DPL ;Xoay trái A
CJNE A,#LOW(MACHU+45),LAP;So sánh A nếu # Low và R2 thì nhảy

LJMP MAIN ; Nhảy về Main
HIENTHI:
MOV R0,#0 ; Nhập giá trị ban dầu
SETB DT ;Set 1 bit cho DT
CLR DT ;Chống lem
SCAN:
CLR CLK ; TICH CUC 1 COT
CLR RCK
SETB CLK ;Set 1 bit cho CLK
SETB RCK
MOV A,R0 ;Nạp R0 vào thanh ghi A
MOVC A,@A+DPTR ;Lấy giá trị trong DPTR cho vào thanh ghi A
MOV HANG,A ; Xuất dữ liệu ra hàng 1
INC R0 ;Tăng giá trị R0 lên 1
MOV A,R0 ;Nạp R0 vào thanh ghi a
LCALL DELAY ; Tạo trễ
MOV HANG,#0FFH ;Chống lem
;SETBDT ; Set 1 bit cho DT
CLR DT ;Chống lem
LCALL DELAY1 ;Tạo trễ
CJNE R0,#25,SCAN ; Kiểm tra dữ liệu quét 32 cột
RET
;
DELAY:
MOV TMOD,#02H
MOV TH0,#HIGH(-1500)
MOV TL0,#LOW(-1500)
SETBTR0
JNB TF0,$
CLR TR0

CLR TF0
RET
;
DELAY1:
PUSH 00H
PUSH 01H
MOV R1,#1
LOOP1:
MOV R0,#50 ;Nạp cho R0 giá trị 50
DJNZ R0,$
DJNZ R1,LOOP1
POP 01H
POP 00H
RET;
MACHU:
DB 0FFH,0FFH,0FFH,0FFH,0FFH ;SPACE
DB 0FFH,0FFH,0FFH,0FFH,0FFH ;SPACE
DB 0FFH,0FFH,0FFH,0FFH,0FFH ;SPACE
DB 0FFH,0FFH,0FFH,0FFH,0FFH ;SPACE
DB 0FFH,0FFH,0FFH,0FFH,0FFH ;SPACE
DB 0FEH,0FEH,00H,0FEH,0FEH ;//T
DB 0FFH,0FFH ;SPACE
DB 00H,7EH,7EH,7EH,81H ;//D
DB 0FFH,0FFH ;SPACE
DB 0FEH,0FEH,00H,0FEH,0FEH ;//T
END
Chương 3
VI ĐIỀU KHIỂN 8 BIT AT89C51
I. IC XỬ LÝ TRUNG TÂM 89C51:
1.Sơ đồ chân 89C51:

AT89C51 là IC vi điều khiển (Microcontroller) do hãng Atmel sản xuất.
IC 89C51 có đặc điểm như sau:
• 4k byte ROM,128 byte RAM nội.
• 4 Port I/O 8 bit.
• 2 bộ đếm/ định thời 16 bit.
• Giao tiếp truyền dữ liệu nối tiếp.
• 64k byte bộ nhớ bên ngoài dung để lưu chương trình điều khiển.
• 64k byte bộ nhớ bên ngoài dung để lưu dữ liệu.
• 210 bit có thể truy xuất từng bit
• Có các lệnh xử lý bit.
Sơ lược về các chân của 89C51:
Hình 2-1. Sơ đồ chân 89C51
Chức năng của các chân 89C51:
Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7). Port 0 có 2 chức năng: trong các
thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO, đối
với thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu.
Port 1: từ chân 1 đến chân 8 (P1.0 _ P1.7). Port 1 chỉ có chức năng dung làm
các đường điều khiển xuất nhập IO
Port 2: từ chân 21 đến chân 28 (P2.0 _P2.7). Nếu không dùng bộ nhớ mở rộng
bên ngoài thì port 2 dùng làm các đường điều khiển IO.Nếu dung bộ nhớ mở rộng
bên ngoài thì port 2 có chức năng là bus địa chỉ cao A0 – A15.
Port 3: từ chân 10 đến chân 17 (P3.0 _ P3.7). Port 3 là port có 2 chức
năng.Các chân port này có nhiều chức năng , các công dụng chuyển đổi có liên hệ
đặc biệt của 89C51 như ở bảng sau:
PSEN (Program store enable):
PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương
trình mở rộng thường được nối đến chân OE\ của Eprom cho phép đọc các byte mã
lệnh.
PSEN ở mức thấp trong thời gian 89C51 lấy lệnh. Các mã lệnh của chương
trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong

89C51 để giải mã lệnh. Khi 89C51 thi hành chương trình trong EPROM nội PSEN
ở mức logic 1.
ALE (Address Latch Enable):
Khi 89C51 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và
dữ liệu (AD7 – AD0) do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE
ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ
liệu khi kết nối chúng với IC chốt.
Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa
chỉ thấp nên chốt địa chỉ hoàn toàn tự động.
EA\ (External Access):
Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0.
Nếu ở mức 1 thì vi điều khiển thi hành chương trình từ bộ nhớ nội.
Nếu ở mức 0 thì vi điều khiển thi hành chương trình từ bộ nhớ ngoại.
RST (Reset):
Ngõ vào chân 9 là ngõ vào Reset.Khi cấp điện cho hệ thống hoặc nhấn nút
Reset thì mạch sẽ reset vi điều khiển.Khi reset thì tín hiệu reset phải ở mức cao ít
nhất 2 chu kì máy.
Các ngõ vào bộ dao động Xtal1, Xtal2:
Bộ tạo dao động được tích hợp bên trong 89C51. Khi sử dụng 89C51, người ta
chỉ cần nối thêm tụ thạch anh và các tụ. Tần số tụ thạch anh thường là 12 Mh – 24
Mh.

2. Cấu trúc bên trong của 89C51
B1. Sơ đồ khối bên trong 89C51:
Hình 2-3. Cấu trúc bên trong của vi điều khiển

B2. Tổ chức bộ nhớ.
Hình 2-4. Bảng tóm tắt các vùng nhớ 89C51
RAM bên trong 89C51 được phân chia như sau:
Các bank thanh ghi có địa chỉ từ 00H đến 1FH.

 RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH
 RAM đa dụng từ 30H đến 7FH.
 Các thanh ghi chức năng từ 80H đến FFH.
Hình 2-5. Cấu trúc bộ nhớ Ram bên trong vi điều khiển
- Bộ nhớ trong 89C51 bao gồm ROM và RAM. RAM trong 89C51 bao gồm
nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank
thanh ghi và các thanh ghi chức năng đặc biệt.
- 89C51 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho
7F 7E
7D 7C 7B 7A
79
78
2F
77
76 75 74 73 72 71 70
2E
6F
6E
6D 6C 6B 6A
69
68
2D
67 66 65 64 63 62 61 60
2C
5F
5E
5D 5C 5B 5A
59
58
2B

57
56 55 54 53 52 51 50
2A
4F 4E
4D 4C 4B 4A
49
48
29
47
46 45 44 43 42 41 40
28
3F 3E
3D 3C 3B 3A
39
38
27
37
36 35 34 33 32 31 30
26
2F 2E
2D 2C 2B 2A
29
28
25
27
26 25 24 23 22 21 20
24
1F 1E
1D 1C 1B 1A
19 18

23
17
16 15 14 13 12 11 10
22
0F
0E
0D 0C 0B 0A
09
08
21
07 06 05 04 03 02 07
1
00
20
Bank 3
1F
18
Bank 217
10
Bank 10F
08
Bank thanh ghi 0
(mặc đònh cho R0-R7)
07
00
RAM đa dụng
7F
30
RAM
Đòa chỉ bit

87 86 85 84 83 82 81 80
80
P0
không được đòa chỉ hóa bit
81
SP
không được đòa chỉ hóa bit
82
DPL
không được đòa chỉ hóa bit
83
DPH
không được đòa chỉ hóa bit
87
PCON
8F 8E
8D 8C 8B 8A
89 88
88
TCON
không được đòa chỉ hóa bit
89
TMOD
không được đòa chỉ hóa bit
8A
TL0
không được đòa chỉ hóa bit
8B
TL1
không được đòa chỉ hóa bit

8C
TH0
97 96 95 94 93 92 91 90
90
P1
9F 9E
9D 9C 9B 9A
99 98
98
SCON
không được đòa chỉ hóa bit
99
SBUF
A7 A6 A5 A4 A3 A2 A1 A0
A0
P2
AF – – A
C
A
B
A
A
A9 A8
A8
IE
– – – BC BB BA B9 B8
B8
IP
E7 E6 E5 E4 E3 E2 E1 E0
E0

ACC
D7 D6 D5 D4 D3 D2 – D0
D0
PSW
B7 B6 B5 B4 B3 B2 B1 B0
B0
P3
F7 F6 F5 F4 F3 F2 F1 F0
F0
B
CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT
Đòa chỉ bit
không được đòa chỉ hóa bit
8D
TH1
FF
Địa chỉ
byte
Địa chỉ
byte

×