Tải bản đầy đủ (.docx) (12 trang)

Thiết kế mạch ghep nối 8 led đơn với cổng p1của at89c51 viết chương trình điều khiển các led san gs theo các hiệu ứ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 (546.81 KB, 12 trang )

BÁO CÁO
THIẾT KẾ MẠCH GHÉP NỐI 8 LED ĐƠN
CỔNG P1 CỦA at89c51 VIẾT CHƯƠNG TRÌNH
ĐIỀU KHIỂN CÁC LED SÁNG THEO HIỆU
ỨNG SAU:
-Sáng lần lượt led 1 đến led 8 trễ cách nhau 1s .
-Sáng từ giữa sang 2 bên thời gian trễ cách nhau 0,5s .
-LED sáng nhấp nháy cách nhau 1s .

(full báo cáo demo slide)

Thành viên:
-

Đỗ Tấn Sang (nhóm trưởng)
Lê Thị Hợi
Nguyễn Thị Phương
Trần Thanh Tuấn
Trần Văn Sáng.


CHƯƠNG I: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN AT89C51
1.1.

Giới thiệu vi điều khiển 89C51

AT89C51 là một hệ vi tính 8 bit đơn chíp CMOS có hiệu suất cao,công suất
nguồn tiêu thụ thấp và có 4Kbyte bộ nhớ ROM Flash xoá đượ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.
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 trên chip này cho phép bộ nhớ chương trình được lập
trình lại trên hệ thống hoặc bằng bộ lập trình bộ nhớ không mất nội dung qui
ước. Bằng cách 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 sau: 4Kbyte Flash, 128 byte Ram, 32 đường xuất
nhập, hai bộ định thời / đếm 16 bit, một cấu trúc ngắt 2 mức ưu tiên và 5 nguyên
nhân ngắt, một port nối tiếp song công, mạch dao động và tạo xung clock trên
chip.
Ngoài ra AT8951 đượ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ế độ nghỉ 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.
Chế độ nguồn giảm duy trì nội dung của RAM nhưng không cho mạch dao
động cung cấp xung clock nhằm vô hiệu hoá các hoạt động khác của chip cho
đến khi có reset cứng tiếp theo.
Các đặc điểm của 8951 được tóm tắt như sau:
− 8 KB EPROM bên trong.
− 128 Byte Ram nội.












4 Port xuất /nhập I/O 8 bit.
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 bit đơn).
210 vị trí nhớ có thể định vị bit.
4 μs cho hoạt động nhân hoặc chia.
Sơ đồ khối của 89C51:


1.2.

Khảo sát sơ đồ chân 8951, chức năng từng chân

1.2.1.Sơ đồ chân IC 89C51:

Hình 1.2. Sơ đồ chân IC 89C51

1.2.2. Chức năng các chân của IC 89C51:
- 89C51 có tất cả 40 chân có chức năng như các đường xuất nhập. Trong đó
có 24 chân có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có thể
hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc là thành phần
của các bus dữ liệu và bus địa chỉ.
a. Các Port:
− Port 0 : là port có 2 chức năng ở các chân 32 – 39 của 8951. 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 các thiết kế cỡ 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: là port IO 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 giao tiếp với các thiết bị ngoài nếu cần. Port 1



không có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với
các thiết bị bên ngoài.
− Port 2: là 1 port có tác 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 bị dùng
bộ nhớ mở rộng.
− Port 3 : là port có tác 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 8951 như ở bảng sau:



Các ngõ tín hiệu điều khiển :
o Ngõ tín hiệu 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 0E\
(output enable) của Eprom cho phép đọc các byte mã lệnh.
 PSEN ở mức thấp trong thời gian Microcontroller 8951 lấy
lệnh. Các mã lệnh của chương trình được đọc từ Eprom qua
bus dữ liệu và được chốt vào thanh ghi lệnh bên trong 8951
để giải mã lệnh. Khi 8951 thi hành chương trình trong ROM
nội PSEN sẽ ở mức logic 1.
o Ngõ tín hiệu điều khiển ALE (Address Latch Enable ) :
 Khi 8951 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là
bus địa chỉ và bus dữ liệu 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 ra ở 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. 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àm tín hiệu
clock cho các phần khác của hệ thống. Chân ALE được dùng
làm ngõ vào xung lập trình cho Eprom trong 8951.
o Ngõ tín hiệu 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, 8951 thi hành chương trình từ
ROM nội trong khoảng địa chỉ thấp 8 Kbyte. Nếu ở mức 0,
8951 sẽ thi hành chương trình từ bộ nhớ mở rộng. Chân EA\
được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom
trong 8951.
o Ngõ tín hiệu RST (Reset) :
 Ngõ vào RST ở chân 9 là ngõ vào Reset của 8951. Khi ngõ
vào tín hiệu này đưa lên cao ít nhất là 2 chu kỳ máy, các
thanh ghi bên trong được nạp những giá trị thích hợp để
khởi động hệ thống. Khi cấp điện mạch tự động Reset.
o Các ngõ vào bộ dao động X1, X2:
 Bộ dao động được tích hợp bên trong 8951, khi sử dụng
8951 người thiết kế chỉ cần kết nối thêm thạch anh và các tụ
như hình vẽ trong sơ đồ. Tần số thạch anh thường sử dụng
cho 8951 là 12Mhz.
o Chân 40 (Vcc) được nối lên nguồn 5V.
1.3. Các thanh ghi điều khiển Timer
1.3.1. Thanh ghi điều khiển chế độ timer TMOD (timer mode register).
- Thanh ghi mode gồm hai nhóm 4 bit là: 4 bit thấp đặt mode hoạt động cho
Timer 0 và 4 bit cao đặt mode hoạt động cho Timer 1. 8 bit của thanh ghi TMOD
được tóm tắt như sau:



Hai bit M0 và M1 của TMOD để chọn mode cho Timer 0 hoặc Timer 1.

- TMOD không có bit định vị, nó thường được LOAD một lần bởi phần mềm
ở đầu chương trình để khởi động mode Timer. Sau đó sự định giờ có thể dừng lại,
được khởi động lại như thế bởi sự truy xuất các thanh ghi chức năng đặc biệt của
Timer khác.


1.3.2. Thanh ghi điều khiển timer TCON (timer control register):
- Thanh ghi điều khiển bao gồm các bit trạng thái và các bit điều khiển bởi
Timer 0 và Timer 1. Thanh ghi TCON có bit định vị. Hoạt động của từng bit
được tóm tắt như sau :


CHƯƠNG 2: ĐIỀU KHIỂN KHIỂN LED ĐƠN
2.1. Nguyên lý điều khiển LED

Để điều khiển được led, ngoài kiến thức về lập trình(Software),cần có
kiến thức về phần cứng (Hardware) để khi nhìn sơ đồ mạch có thể hiểu
được khi nào thì led sẽ sáng và khi nào led sẽ tắt.
Có những mạch khi xuất mức 0 (0V) ra chân của vi điều khiển thì led sáng,
nhưng cũng có những mạch khi xuất mức 1(5V) ra chân của vi điều khiển thì led
mới sáng. Nhưng cho dù có ở mạch nào thì để điều khiển led đơn sáng thì phải
tuân thủ nguyên tắc led sáng khi có dòng điện chạy qua led, nghĩa là phải có sự
chênh lệch áp giữa hai cực Anot và Katot của led. Hai dạng mạch điện điều khiển
led đơn dùng vi điều khiển :

Hình 2. 1 Led sáng mức 0



Hình 2. 2 Led sáng mức 1

Giải thích sơ đồ hình 2.1: Để led sáng thì cần làm sao cho có dòng điện chạy
qua led, nghĩa là có sự chênh lệch áp giữa 2 cực Anot, Katot của led. Nhìn vào
hình 2.1 ta thấy cực Anot của led được nối qua trở 330R lên nguồn 5V, vậy để có
dòng điện chạy qua led ta cần xuất mức 0 (0V) ra chân của vi điều khiển, khi đó
led sẽ sáng, và để tắt led ta sẽ xuất mức 1(5V) ra chân của vi điều khiển, khi đó
sẽ không có dòng chạy qua led và led sẽ tắt. Dòng chạy qua led không được quá
lớn nên chúng ta cần phải sử dụng trở hạn dòng để tránh cháy led như trên 2 sơ
đồ đã cho.
Sơ đồ hình 2.2 Ngược lại sơ đồ hình 2.1 cực katot của led được nối xuống
đất.
2.2 Viết chương trình
2.2.1 Thiết kế mạch mô phỏng


Hình 2. 3 Mạch mô phỏng 8 led đơn

2.2.2 Chương trình điều khiển 8 LED đơn
− Khai báo thư viện:
#include <REGX51.H>
− Tạo mảng hiệu ứng

− Hàm tạo trễ sử dụng tần số thạch 12MHz, timer 1, che do 1, 116 bit

− Hiệu ứng nhấp nháy có độ trễ 1s



- Hiệu ứng led sáng từ giữa sang hai bên độ trễ 0.5s

- Hiệu ứng sáng dần từ 1-8 độ trễ 1s



×