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

Báo cáo thiết kế mạch đèn giao thông

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 (1.28 MB, 70 trang )

ĐẠI HỌC THÁI NGUYÊN
TRUỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
& TRUYỀN THÔNG

KHOA: CÔNG NGHỆ ĐIỆN TỬ & TRUYỀN THÔNG
BỘ MÔN: CÔNG NGHỆ KỸ THUẬT MÁY TÍNH

ĐỒ ÁN TỐT NGHIỆP
TÌM HIỂU HỌ VI ĐIỀU KHIỂN 8051, XÂY DỰNG HỆ THỐNG ĐIỀU KHIỂN
ĐÈN GIAO THÔNG

Sinh viên thực hiện

:

Giảng viên hướng dẫn:

Phạm Văn Hưng
Nguyễn Ngọc Hoan

1


MỤC LỤC
1.5.2 Thạch anh12MHz:...................................................................................13
2.3.3 Các chế độ của bộ định thời....................................................................32
CHƯƠNG 3: XÂY DỰNG MÔ HÌNH ĐIỀU KHIỂN ĐÈN TÍN HIỆU GIAO THÔNG
..................................................................................................................................49
3.1. Giới thiệu phần mềm mô phỏng mạch điện proteus 7.0.................................................49
3.3.3 Phương pháp quét led:..................................................................................................54


2


DANH MỤC HÌNH VẼ
Hình 1.1 Giao tiếp vi điều khiển với led 7 đoạn(1)......................................... Error: Reference source not found
Hình 1.2 Giao tiếp vi điều khiển với led 7 đoạn (2)........................................ Error: Reference source not found
Hình 2.1 Hình dạng và sơ đồ AT89C51.......................................................... Error: Reference source not found
Hình 2.2 Sơ đồ khối của họ vi điều khiển 8051...............................................Error: Reference source not found
Hình 2.3 Mạch thiết lập lại cho 8051.............................................................Error: Reference source not found
Hình 2.4 Mạch tạo dao động cho bộ dao động trên chip của AT89C51 ...............Error: Reference source not found
Hình 2.5 Bộ nhớ dữ liệu trên chip................................................................. Error: Reference source not found
Hình 2.6 Hoạt động của Timer 0 và Timer 1 ở chế độ 0................................... Error: Reference source not found
Hình 2.7 Hoạt động của Timer 0 và Timer 1 ở chế độ 1................................... Error: Reference source not found
Hình 2.8 Hoạt động của Timer 0 và Timer 1 ở chế độ 2................................... Error: Reference source not found
Hình 2.9 Hoạt động của Timer 0 ở chế độ 3................................................... Error: Reference source not found
Hình 2.10 Sơ đồ khối cổng nối tiếp của 8051................................................. Error: Reference source not found
Hình 2.14Dùng Timer 1 và Timer 2 cung cấp tốc độ baud cho cổng nối tiếp.......Error: Reference source not found
Hình 2.15 Tốc độ baud ở chế độ 1................................................................ Error: Reference source not found
Hình 2.16 Tốc độ baud ở chế độ 2............................................................... Error: Reference source not found
Hình 2.17 Tốc độ baud ở chế độ 3............................................................... Error: Reference source not found
Hình 2.11 Giản đồ truyền nhận dữ liệu ở chế độ 0.......................................... Error: Reference source not found
Hình 2.12 Tốc độ baud ở chế độ 0................................................................ Error: Reference source not found
Hình 2.13 Giản đồ truyền nhận dữ liệu của chế độ 1.......................................Error: Reference source not found
Hình 2.18 Chương trình trước (a) và sau (b) khi có ngắt xảy ra.......................Error: Reference source not found

DANH MỤC BẢNG
Bảng 1. Thanh ghi chức năng TMOD............................................................. Error: Reference source not found
Bảng 2. Thanh ghi chức năng TCON..............................................................Error: Reference source not found
Bảng 3. Thanh ghi chức năng T2CON............................................................Error: Reference source not found
Bảng 4. Thanh ghi chức năng T2MOD........................................................... Error: Reference source not found

Bảng 5. Vị trí và ý nghĩa các bit của thanh ghi SCON...................................... Error: Reference source not found
Bảng 6. Các chế độ của cổng nối tiếp phụ thuộc SM1, SM0 ..............................Error: Reference source not found
Bảng 7. Bảng tốc độ baud khác nhau............................................................Error: Reference source not found
Bảng 8. Các giá trị của thanh ghi TH1 tạo tốc độ baud.................................... Error: Reference source not found
Bảng 9. Vị trí và công dụng các bit của thanh ghi IE....................................... Error: Reference source not found
Bảng 10. Vị trí và công dụng các bit của thanh ghi IP......................................Error: Reference source not found

3


Bảng 11. Các cờ gây ngắt............................................................................Error: Reference source not found
Bảng 12. Các Vector ngắt............................................................................Error: Reference source not found

LỜI MỞ ĐẦU
Ngày nay cùng với sự phát triển của khoa học kỹ thuật, xã hội ngày càng văn
minh, hiện đại và mạnh mẽ của kinh tế như hiện nay. Các hệ thống điện tử rất đa dạng
và đang thay thế các công việc hàng ngày của con người từ những công việc đơn giản
đến phức tạp.
Vấn đề điều khiển giao thông tại các ngã ba, ngã tư mà không cần đến sự có mặt
thường trực của cảnh sát giao thông, người ta sử dụng các đèn giao thông báo hiệu: đèn
xanh là được phép đi tiếp, đèn vàng là giảm tốc độ và đèn đỏ là dừng lại. Việc sử dụng
đèn giao thông như vậy đã giảm thiểu được rất nhiều các vụ tai nạn không mong muốn.
Nhận thấy đây là vấn đề sát thực với những kiến thức đã trang bị trong quá trình học
tập và nghiên cứu, em đã lựa chọn đề tài : “Nghiên cứu họ vi điều khiển 8051, xây
dựng hệ thống điều khiển đèn giao thông” để làm đồ án tốt nghiệp.
Đồ án gồm 3 chương :

4



Chương 1 : Tổng quan về đèn giao thông.
Chương 2 : Họ vi điều khiển 8051 (AT89C51).
Chương 3 : Xây dựng mô hình điều khiển đèn tín hiệu giao thông.
Dù em đã có nhiều cố gắng để hoàn thành tốt đề tài nhưng vẫn không tránh khỏi
những thiếu sót, mong các thầy cô thông cảm. Em mong được đón nhận những ý kiến
đóng góp của các thầy cô.

Sinh viên:
Phạm Văn Hưng

CẢM ƠN
Để hoàn thành đồ án này em xin chân thành cảm ơn sự giúp đỡ và hướng dẫn tận
tình của quý thầy cô bộ môn công nghệ kỹ thuật máy tính trường đại học công nghệ
thông tin và truyền thông, đặc biệt là sự hướng dẫn tận tình của thầy Nguyễn Ngọc
Hoan. Dù đã có nhiều cố gắng nhưng do kiến thức còn hạn chế chắc chắn còn nhiều
điểm thiếu sót và yếu kém. Rất mong sự đóng góp của quý thầy cô cũng như các bạn
để em có thể hoàn thiện hơn đồ án này. Em xin chân thành cảm ơn.

5


CHƯƠNG 1 – TỔNG QUAN VỀ ĐÈN GIAO THÔNG
1.1 Giới thiệu đề tài.
Hiện nay khoa học rất phát triển, việc thiết kế được một sản phẩm có tính hữu dụng
và mang tính thực tiễn cao là việc làm hết sức cần thiết. Kết quả thực hiện không chỉ
ảnh hường trực tiếp tới doanh nghiệp mà còn tác động tới người sử dụng. Trong học
tập và nghiên cứu của sinh viên cũng không ngoại lệ, và một đề tài có thể đáp ứng
được yêu cầu trên đó là “mạch điều khiển đèn giao thông” ứng dụng vi điều khiển
8051.
Đèn tín hiệu giao thông đường bộ là một thiết bị được dùng để điều khiển giao

thông ở những giao lộ có lượng phương tiện lưu thông lớn (thường là ngã ba, ngã tư

6


đông xe qua lại). Đây là một thiết bị quan trọng không những an toàn cho các phương
tiện mà còn giúp giảm ùn tắc giao thông vào giờ cao điểm. Nó được lắp ở tâm giao lộ
hoặc trên vỉa hè. Đèn tín hiệu có thể hoạt động tự động hay cảnh sát giao thông điều
khiển.
1.2 Phương pháp nghiên cứu.
Cách thức tiến hành nghiên cứu dựa trên sự hiểu biết về vi điều khiển 8051, các
kiến thức đã học từ môn “ kỹ thuật lập trình nhúng”. Cùng với sự hướng dẫn của
GVHD và tận dụng những nguồn thông tin trên Internet.
Đèn tín hiệu là một thiết bị quan trọng không những đảm bảo an toàn cho người và
phương tiện tham gia giao thông mà còn giúp giảm thiểu ách tắc giao thông tại những
nơi có mật độ giao thông cao vào những giờ cao điểm.
1.3 Nguyên lý hoạt động.
Mạch đèn giao thông hoạt động dựa trên nội dung đã lập trình cho AT89C51,
khi có tác động từ các nút điều khiển mạch hoạt động theo đúng thời gian yêu cầu.
AT89C51 đưa dữ liệu đến các LED xanh, đỏ, vàng để điều khiển các LED này đóng,
mở. Ngoài ra, nó còn xuất dữ liệu đến các bit để điều khiển các LED 7 đoạn. LED 7
đoạn còn nhận dữ liệu từ vi điều khiển trung tâm để thực hiện việc đếm lùi thời gian.
Chúng ta sử dụng ngắt ngoài 0 và ngắt ngoài 1 để điều khiển đèn tín hiệu giao thông
bằng tay và cài đặt thời gian cho các đèn(Xanh, đỏ, vàng).
Như vậy mỗi khi mạch bắt đầu thực hiện đếm lùi, nếu trục lộ bên này đèn xanh
hoặc vàng sáng thì trục lộ bên kia đèn đỏ sáng và ngược lại. Bộ phận điều khiển
AT89C51 là các nút nhấn. Tùy theo thời gian yêu cầu mà ta điều khiển các trục giao
thông sáng. AT89C51 sẽ xuất ra các cổng I/O những xung ở mức cao hoặc mức thấp
để điều khiển các bit từ đó điều khiển các đèn hiện thị. Khi AT89C51 nhận tín hiệu


7


điều khiển từ các phím nhấn, nó sẽ quét và tím ra chương trình được mã hóa phù hợp
với tín hiệu điều khiển để hoạt động.
1.4 Vấn đề điều khiển hệ thống đèn tín hiệu.
Đèn tín hiệu thường hoạt động cả ngày, đến 0 giờ (12 giờ đêm) thì chuyển sang
trạng thái nháy vàng hoặc ngừng hoạt động. Khi nháy vàng, xe cộ được đi và phải chú
ý, người đi bộ được phép sang đường. Đến 6 giờ sáng ngày hôm sau đèn lại hoạt động
bình thường trở lại. Đôi khi ở một vài ngã tư đông đúc, đèn tín hiệu có thể hoạt động
24/24 mà không nháy vàng. Khi hoạt động, đèn thường sáng màu xanh, sau đó đến
vàng và đỏ. Sau một thời gian hoạt động nhất định, đèn lại chuyển xuống màu xanh.
Mật độ giao thông phát triển mạnh mẽ ở các đô thị lớn đòi hỏi hệ thống điều khiển
giao thông phải chính xác, đơn giản, nhưng hiệu quả cao. Hệ thống đèn giao thông hai
pha phần nào đã đáp ứng được những yêu cầu trên.
Mỗi pha gồm các đèn: Xanh-Đỏ-Vàng điều khiển các phương tiện cơ giới.
Hoạt động của từng pha như sau:
-

Đèn xanh: cho phép các phương tiện tham giao giao thông được đi.

-

Đèn vàng: thông báo cho các phương tiện giảm tốc độ, và chuẩn bị dừng lại.

-

Đèn đỏ: các phương tiện phải dừng lại.

Ngoài ra, vào giờ cao điểm ở những ngã tư giao nhau giữa hai làn đường trục chính

và trục phụ, mật độ phương tiện tham gia giao thông ở làn đường trục chính cao hơn ta
có thể điều chỉnh thời gian sáng của đèn xanh ở làn đường này tăng lên và giảm thời
gian sang của đèn đỏ. Và vào ban đêm (khoảng từ 23h 5h) lưu lượng phương tiện
tham gia giao thông rất ít và hầu như không có, ta có thể điều chỉnh để đèn vàng nhấp
nháy tại những ngã tư này.

8


Dựa trên những kiến thức cơ bản về họ vi điều khiển 8051, lập trình ghép nối giữa
vi điều khiển với thiết bị ngoại vi, cách sử dụng timer và phương pháp quét led để điều
khiển đèn giao thông tại các ngã tư.
1.5 Một số linh kiện khác.
1.5.1 Led 7 thanh.

LED 7 thanh được dùng nhiều trong các mạch hiện thị thông báo, hiện thị số, kí tự
đơn giản... LED 7 thanh được cấu tạo từ các LED đơn sắp xếp theo các thanh nét để có
thể biểu diễn các chữ số hoặc các kí tự đơn giản như từ số 0 đến 9 và A đến F. LED 7
thanh dùng để hiện số thì rất đẹp và dễ nhìn. Tùy vào kích thước của số và kí tự mà
mỗi thanh được cấu tạo bởi một hay nhiều LED đơn. Các LED đơn đó được ghép và
được đặt tên bằng các chữ cái a...g và có một dấu chấm dot ( dấu chấm này có thể sáng
và tắt tùy theo yêu cầu) được cấu tạo bởi 1 LED đơn. Qua đó người ta chỉ cần 8 bit
tương ứng với 8 LED đơn để điều khiển được và hiện thị số từ 0 đến 9 và các kí tự từ
A đến F.
Hiện nay trên thị trường có 2 loại LED 7 thanh đó là loại chung Anot và chung
catot. Cấu tạo của nó gồm 8 con LED đơn được ghép với nhau:

9



- 1 là chung Anot.
- 2 là chung Catot.
Có 1 chân cấp nguồn và 8 chân đầu ra hay vào tùy theo Anot chung hay catot
chung.
Tìm hiểu giao tiếp giữa vi điều khiển với led 7 thanh:
Nếu kết nối mỗi port của vi điều khiển với một led 7 đoạn thì tối đa kết nối được
4 led 7 đoạn. Mặt khác nếu kết nối như trên sẽ hạn chế khả năng thực hiện các công
việc khác của vi điều khiển. Cho nên cần phải kết nối, điều khiển nhiều led 7 đoạn với
số lượng chân điều khiển từ vi điều khiển càng ít càng tốt. Có 2 giải pháp: một là sử
dụng IC chuyên dụng cho việc hiển thị led 7 đoạn; hai là kết nối
nhiều led 7 đoạn vào cùng một đường xuất tín hiệu hiển thị.

• Giải pháp thứ nhất:

10


Để kết nối nhiều led 7 đoạn ở đây ta dùng IC giải mã BCD đó là IC 74LS47. Sơ đồ
kết nối như sau:

Hình 1.1 Giao tiếp vi điều khiển với led 7 đoạn(1)
Sơ đồ trên sử dụng IC 74LS47 giải mã BCD ra led 7 đoạn. Dữ liệu xuất ra từ các
Port của vi điều khiển dạng mã BCD, led 7 đoạn được dùng là loại anod chung.

11


Ưu điểm: ta có thể dễ lập trình bằng ngôn ngữ lập trình ASM, cũng như ngôn ngữ
lập trình C.
Nhược điểm: rất tốn kém vì cần sử dụng IC giải mã; mỗi Port của vi điều khiển chỉ

có thể điều khiển tối đa được 2led 7 đoạn. Để khắc phục nhược điểm này ta có thể lựa
chọn giải pháp thứ 2.
• Giải pháp thứ 2:

Hình 1.2 Giao tiếp vi điều khiển với led 7 đoạn (2)
Giải pháp này dùng phương pháp quét led: dựa trên tính chất lưu ảnh trên võng mạc
khi quan sát tín hiệu, ta biết rằng mắt con người có khả năng phân biệt sự thay đổi của
hiện tượng là 24 hình/s. Nếu ta thực hiện với tần số quét lớn hơn 24 hình/s thì mắt
người sẽ có cảm giác là led sáng liên tục, nhưng thực tế tại một thời điểm chỉ có một
led sáng.
Trong sơ đồ trên, led 7 đoạn được sử dụng là loại có Anode chung, với tất cả các
chân nhận tín hiệu được kết nối với Port 2 đã qua điện trở hạn dòng. Để điều khiển
ON/OFF cho các led 7 đoạn, sử dụng transitor loại NPN, transitor này nhận dòng điều
khiển từ một ngõ ra của Vi điều khiển, led 7 đoạn sẽ được ON khi tín hiệu từ vi điều

12


khiển đến transitor ở mức 1. Có thể sử transitor loại khác có thông số phù hợp. Các
điện trở khoảng 4,7K đảm bảo transitor luôn hoạt động ở chế độ ngắt/dẫn (đảm bảo khi
led 7 đoạn đang ở trạng thái OFF sẽ bị tắt hoàn toàn, không bị sáng mờ mờ).
Ưu điểm: tốn ít cổng ra của vi điều khiển; mạch thiết kế đơn giản; một vi điều khiển
có thể điều khiển được rất nhiều led 7 đoạn khác nhau.
Nhược điểm: khó lập trình, và thường dùng ngôn ngữ C để lập trình cho giải pháp
này.
=>Bởi vậy trong đề tài này, chúng em đã lựa chọn giải pháp thứ nhất để ghép nối
vi điều khiển 89C51 với led 7 đoạn để thiết kế mạch đèn giao thông.
1.5.2 Thạch anh12MHz:

Chức năng: Là nguồn tạo xung nhịp dao động clock ổn định (12MHz) cho dao động

của 8051. Thạch anh sẽ được gắn vào chân XTAL1 và XTAL2 (Chân số 18 và 19) của
8051 .Tần số thạch anh thường dùng trong các ứng dụng là : 11.0592Mhz(giao tiếp
với cổng com máy tính) và 12Mhz Tần số tối đa 24Mhz. Tần số càng lớn VĐK xử lí
càng nhanh.
1.5.3 Transistor.
Bốn transistor nối với P1.0 -> P1.3 sử dụng như những chiếc khóa điện tử đóng mở
rất nhanh, vừa có tác dụng đệm dòng cho các led đủ sáng vì dòng do vi điều khiển

13


cung cấp không đủ để làm cho các led sáng đẹp được.Và một lý do nữa là nếu ta sử
dụng trực tiếp các chân của vi điều khiển sẽ làm vi điều khiển hoạt động quá công suất,
dẫn đến vi điều khiển rất nóng và hay bị treo khi hoạt động. Sáu transistor nối với P2.0
-> P2.5 dùng để khuếch đại dòng vào các led đơn đồng thời ngăn dòng dò từ vi điều
khiển vào các led.
1.5.4 Led đơn:

Các led được lập trình sáng theo thứ tự và thời gian khác nhau để điều khiển giao
thông tại các đường giao nhau.
1.5.5 Điện trở:

14


Hạ dòng vào cực B của các transistor và dòng từ cực E của transistor ra các led.

1.5.6 Tụ.

- Tụ điện gồm hai bản cực đặt song song ở giữa có môt lớp cách điện gọi là điện môi.

Người ta thường dung giấy, gốm, mica, giấy tẩm hóa chất làm chất điện môi
- Tụ gốm là tụ không phân biệt âm dương và có điện dung nhỏ
- Tụ hóa là tụ có phân cực âm dương và có điện dung lớn
- Trong mạch giao thông ta sử dụng tụ gốm và tụ hóa
- Tụ điện trong mạch có tác dụng lọc cho điện áp một chiều sau khi dã chỉnh lưu
bằng phẳng để cho tải tiêu thụ
1.5.7 Công tắc Reset.
Khởi động lại quá trình hoạt động của mạch.
1.5.8 Diot
Ngoài ra mạch còn có thêm một con diot dùng để bảo vệ mạch khi người sử dụng
vô tình cắm ngược nguồn.Và LM7805 để mạch có thể hoạt động với dải điện áp lớn
hơn và bảo vệ khi người sử dụng cắm nguồn điện áp lớn hơn đện áp cho phép.Vì qua

15


kinh nghiệm thực tế mạch rất hay bị hỏng vi điều khiển khi ta cắm nhầm nguồn cung
cấp hoặc cắm ngược cực tính của nguồn.

CHƯƠNG 2 – KHẢO SÁT VI ĐIỀU KHIỂN AT89C51
2.1 Tổng quát

Hình 2.1 Hình dạng và sơ đồ AT89C51
AT89C51 là một hệ vi tính 8 bit đơn chip CMOS có hiệu suất cao, công suất
nguồn tiêu thụ thấp và có 4KB bộ nhớ ROM Flash xóa được/lập trình được. Chip này được
sản xuất dựa vào công nghệ bộ nhớ không mất nội dung có độ tích hợp cao của Atmel.

16



Chip AT89C51 cũng tương thích với tập lệnh và các chân ra của chuẩn công nghiệp MCS-51.
Flash chip này cho phép bộ nhớ chương trình được lập trình lại trên hệ thống. Kết hợp một CPU
linh hoạt 8 bit với Flash trên một chip đơn thế, Atmel 89C51 là một hệ vi tính 8 bit đơn chip
mạnh cho ta một giải pháp có hiệu quả về chi phí và rất linh hoạt đối với các ứng dụng điều
khiển.
AT89C51 có các đặc trưng chuẩn sau: 4KN Flash, 128 byte RAM, 32 đường xuất nhập, 2 bộ định
thời/đếm 6 bit, một cấu trúc ngắt hai mức ưu tiên và 5 nguyên nhân ngắt, một port nốt tiếp song
công, mạch dao động và tạo xung clock trên chip.
Ngoài ra AT89C51 được thiết kế với logic tĩnh cho hoạt đông có tần số giảm xuống 0 và hỗ
trợ hai chế độ tiết kiệm năng lượng được lựa chọn bằng phần mềm.

Chế độ nghi dừng CPU trong khi vẫn cho phép RAM, các bộ định thời/đếm,
port nối tiếp và hệ thống ngắt tiếp tục hoạt động.
2.1.1 Các đặc điểm của họ vi điều khiển 8051 được tóm tắt như sau :


4 KB EPROM bên trong.

 128 Byte RAM nội.
 4 Port xuất /nhập I/O 8 bít.
 Giao tiếp nối tiếp.
 64 KB vùng nhớ mã ngoài
 64 KB vùng nhớ dữ liệu ngoại.
 Xử lí Boolean (hoạt động trên bít đơn).
 210 vị trí nhớ có thể định vị bít.
 4 chu kì máy (4 μs đối với thạch anh 12MHz) cho hoạt động nhân hoặc chia.
 Có các chế độ nghỉ (Low – power Idle) và chế độ nguồn giảm (power down).

Ngoài ra một số IC khác của họ MCS – 51 có thêm bộ định thời thứ 3 và 256 byte RAM nội.


17


2.1.2 Sơ đồ khối và các chân:

Hình 2.2 Sơ đồ khối của họ vi điều khiển 8051.
- CPU (Central Processing Unit): Đơn vị xử lý trung tâm tính toán và điều khiển quá
trình hoạt động của hệ thống.
- OSC (Oscillator): Mạch dao động tạo tín hiệu xung clock cung cấp cho các khối trong
chip hoạt động.

18


- Interrupt control: Điều khiển ngắt nhận tín hiệu ngắt từ bên ngoài (INT0\, INT1\), từ
bộ định thời (Timer 0, Timer 1) và từ cổng nối tiếp (Serial port), lần luợt đua các tín
hiệu ngắt này đến CPU để xử lý.
- Other registers: Các thanh ghi khác : Lưu trữ dữ liệu của các port xuất/nhập, trạng
thái làm việc của các khối trong chip trong suốt quá trình hoạt động của hệ thống.
- RAM (Random Access Memory): Bộ nhớ dữ liệu trong chip lưu trữ các dữ liệu.
- ROM (Read Only Memory): Bộ nhớ chương trình trong chip lưu trữ chương trình
hoạt động của chip.
- I/O ports (In/Out ports): Các port xuất/nhập điều khiển việc xuất nhập dữ liệu duới
dạng song song giữa trong và ngoài chip thông qua các port P0, P1, P2, P3.
- Serial port: Port nối tiếp điều khiển việc xuất nhập dữ liệu dưới dạng nối tiếp giữa
trong và ngoài chip thông qua các chân TxD, RxD.
- Timer 0, Timer 1: Bộ định thời 0, 1 dùng để định thời gian hoặc đếm sự kiện (đếm
xung) thông qua các chân T0, T1.
- Bus control: Điều khiển bus điều khiển hoạt động của hệ thống bus và việc di chuyển
thông tin trên hệ thống bus.

- Bus system: Hệ thống busliên kết các khối trong chip lại với nhau.
- Port0:
Là Port có 2 chức năng ở trên chân từ 32 đến 39 trong các thiết kế cỡ nhỏ ( không
dùng bộ nhớ mở rộng ) có hai chức năng như các đường I/O. Đối với các thiết kế cỡ
lớn (với bộ nhớ mở rộng) nó được kết hợp kênh giữa các bus.
- Port1:
Port1 là một port I/O trên các chân 1-8. Các chân được ký hiệu P1.0, P1.1, P1.2…
có thể dùng cho các thiết bị ngoài nếu cần. Port1 không có chức năng khác, vì vậy
chúng ta chỉ được dùng trong giao tiếp với các thiết bị ngoài.
- Port2:

19


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

- Port3:
Port3 là một port công dụng kép trên các chân 10 - 17. Các chân của port này có
nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tính đặc biệt của
8051 / 8031 như sau :
Bit

Tên

Chức năng chuyển đổi

P3.0

RXD


Dữ liệu nhận cho port nối tiếp

P3.1

TXD

Dữ liệu phát cho port nối tiếp

P3.2

INTO

Ngắt 0 bên ngoài

P3.3

INT1

Ngắt 1 bên ngoài

P3.4

TO

Ngõ vào của timer/counter 0

P3.5

T1


Ngõ vào của timer/counter 1

P3.6

WR

Xung ghi bộ nhớ dữ liệu ngoài

P3.7

RD

Xung đọc bộ nhớ dữ liệu ngoài

- PSEN (Program Store Enable):
8051/8031 có 4 tín hiệu điều khiển
PSEN là tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển để cho phép bộ nhớ
chương trình mở rộng và thường được nối đến chân OE (Output Enable) của một
EPROM để cho phép đọc các bytes mã lệnh.
PSEN sẽ ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của chương trình
được đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của 8051 để giải mã

20


lệnh. Khi thi hành chương trình trong ROM nội (8051), PSEN sẽ ở mức thụ động (mức
cao).
- ALE (Address Latch Enable).
Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lí 8085

8088, 8086, 8051 dùng ALE một cách tương tự cho làm việc giải các kênh các bus địa
chỉ và dữ liệu. Khi Port 0 được dùng trong chế độ chuyển đổi, vừa là bus dữ liệu vừa là
bus thấp của địa chỉ, ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài trong
nửa đầu của chu kỳ bộ nhớ. Sau đó, các đường Port 0 dùng để xuất hoặc nhập dữ liệu
trong nửa sau chu kỳ của bộ nhớ.
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể
được dùng là nguồn xung nhịp cho các hệ thống. Nếu xung trên 8051 là 12MHz thì
ALE có tần số 2MHz. Chỉ ngoại trừ khi thi hành lệnh MOVX, một xung ALE sẽ bị
mất. Chân này cũng được làm ngõ vào cho xung lập trình cho EPROM trong 8051.
- EA (External Access).
Tín hiệu vào EA trên chân 31 thường được mắc lên mức cao (+5V) hoặc mức thấp
(GND). Nếu ở mức cao, 8051 thi hành chương trình từ ROM nội trong khoảng địa chỉ
thấp (4K). Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng. Khi
dùng 8031, EA luôn được nối mức thấp vì không có bộ nhớ chương trình trên chip.
Nếu EA được nối mức thấp bộ nhớ bên trong, chương trình 8051 sẽ bị cấm và chương
trình thi hành từ EPROM mở rộng.
- RST (Reset).
Ngõ vào RST trên chân 9 là ngõ reset của 8051. Khi tín hiệu này được đưa lên mức
cao (trong ít nhất 2 chu kỳ máy), các thanh ghi trong 8051 được tải những giá trị thích
hợp để khởi động hệ thống. Khi chân này đưa lên mức cao ít nhất là 2 chu kỳ máy, các
thanh ghi bên trong được nạp lại những giá trị thích hợp để khởi động lại hệ thống. RST
có thể được kích khi cấp điện dùng cho mạch R-C. Mạch này như sau:

21


Hình 2.3 Mạch thiết lập lại cho 8051
- Các ngõ vào bộ dao động trên chip.
Như đã thấy trong các hình trên, 8051 có một bộ dao động trên chip. Nó thường
được nối với thạch anh giữa hai chân 18 và 19. Các tụ giữa cũng cần thiết như đã vẽ.

Tần số thạch anh thông thường là 12MHz.
Các chân này (chân 18,19) nối với bộ tạo dao động trên chip. Mạch tạo dao động như sau:

Hình 2.4 Mạch tạo dao động cho bộ dao động trên chip của AT89C51
- Các chân nguồn.
8051 vận hành với nguồn đơn +5V. Vcc được nối vào chân 40 và Vss (GND) được nối
vào chân 20.

22


Hình 2.5 Bộ nhớ dữ liệu trên chip
AT89C51 có 128 byte RAM ở bên trong chip. RAM trong AT89C51 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. Họ 8051 có bộ nhớ theo cấu
trúc Harvard: có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu.

23


Chương trình và dữ liệu có thể chứa bên trong AT89C51 vẫn có thể kết nối với
64K byte bộ nhớ chương trình và 64K byte dữ liệu.
Có 2 đặc tính cần chú ý là:

- Các thanh ghi và các cổng xuất nhập đã được định vị trong bộ nhớ và có
thể truy xuất trực tiếp giống như các địa chỉ bộ nhớ khác.

- Ngăn xếp trong RAM nội nhỏ hơn so với RAM ngoại như các vi điều khiển
khác.
RAM bên trong AT89S52 đượ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 đặc biệt từ 80H đến FFH.
Sau đây ta sẽ xét cụ thể địa chỉ truy xuất và chức năng từng vùng RAM nội của
AT89C51.
- RAM đa dụng
RAM đa dụng có địa chỉ từ 30h – 7Fh có thể truy xuất mỗi lần 8 bit bằng cách dùng
chế độ định địa chỉ trực tiếp hay gián tiếp.
Các vùng địa chỉ thấp từ 00h – 2Fh cũng có thể sử dụng cho mục đích như trên,
ngoài các chức năng đặc biệt được đề cập ở phần sau.
- RAM có thể định địa chỉ bit
Vùng địa chỉ từ 20h -2Fh gồm 16 byte có thể thực hiện như vùng RAM đa dụng
(truy xuất mỗi lần 8 bit) hay thực hiện truy xuất mỗi lần 1 bit bằng các lệnh xử lý bit.

24


- Các bank thanh ghi
Vùng địa chỉ 00h – 1Fh được chia thành 4 bank thanh ghi: bank 0 từ 00h – 07h,
bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18 – 1Fh. Các bank thanh ghi
này được đại diện bằng các thanh ghi từ R0 đến R7. Sau khi khởi động thì hệ thống
bank 0 được chọn sử dụng.
Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi được truy
xuất bởi các thanh ghi R0 đến R7. Việc thay đổi bank thanh ghi được thực hiện thông
qua thanh ghi từ trạng thái chương trình (PSW).
2.2 Một số thanh ghi đặc biệt của AT89X52.
a. Thanh ghi tích lũy.
Thanh ghi tích lũy là thanh ghi được sử dụng nhiều nhất trong AT89C51, được ký
hiệu trong câu lệnh A. Ngoài ra trong các lệnh xứ lý bit, thanh ghi tích lũy được ký

hiệu là ACC.
b. Thanh ghi B.
Thanh ghi tích lũy có thể truy xuất trực tiếp thông qua địa chỉ E0H (byte) hay truy
xuất từng bit thông qua địa chỉ bit từ E0H đến E7H.
c. Thanh ghi từ trạng thái chương trình.
Thanh ghi từ trạng thái chương trình PSW nằm tại địa chỉ D0H và có các địa chỉ bit
từ D0H đến D7H bao gồm 7 bit (1 bit không sử dụng) có các chức năng sau:

Bit

7

6

5

4

3

2

1

O

Chức

CY


AC

F0

RS1

RS0

OV

-

P

năng

25


×