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

MẠCH LED CHẠY CHỮ docx

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 (236.56 KB, 10 trang )

TRƯỜNG AAAAAAAAAAAAAAAAAAAAAAAAAA
KHOA TIN HỌC ỨNG DỤNG
BÁO CÁO ĐỒ ÁN MÔN HỌC
VI XỬ LÍ
ĐỀ TÀI
MẠCH LED CHẠY CHỮ
Giáo viên hưỡng dẫn:

Sinh viên thực hiện :
Đà Nẵng, tháng 03 năm 2013
MỤC LỤC
1. Giới thiệu IC 8051
1.1 Giới thiệu họ MSC-51
1.2 Sơ đồ khối của AT89C5
1. 3 Sơ đồ chân của AT89C51
1.4 Chức năng các chân của AT89C51
2. Sơ đồ mạch
3. Chương trình mô phỏng
4. Chạy mô phỏng
1. Giới thiệu IC 8051
1.1 Giới thiệu họ MSC-51
MCS-51 là họ IC vi điều khiển do hãng I ntel sản xuất. Các IC tiêu biểu
cho họ là 8051 và 8031. Các sản phẩm MSC-51 thích hợp cho những ứng dụng
điều khiển. Việc xử lý trên Byte và các toán số học ở cấu trúc dữ liệu nhỏ được
thực hiện bằng nhiều chế đọ truy xuất dữ liệu nhanh trên RAM nội.
AT89C51 cung cấp nhungx đặc tính chuẩn như sau : 4 KB bộ nhớ chỉ
đọc có thể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 2
TIMER/COUNTER 16 Bit, vecto ngắt có cấu trúc 2 mức ngắt, một Port nối
tiếp bán song công, 1 mạch dao động tạo xung Clock và dao động ON-CHIP.
Thêm vào đó, AT89C51 được thiết kế với logic tĩnh cho hoạt động đến mức
không tần số và hỗ trợ hai phần mềm có thể lựa chọn những chế độ tiết kiện


công suất, chế độ chờ (IDLE MODE) sẽ dừng CPU trong khi vẫn cho phép
RAM, timer/counter, port nối tiếp và hệ thống ngát tiếp tục hoạt động. Chế độ
giảm công suất sẽ lưu nội dung RAM những sẽ treo bộ dao động làm khả năng
hoạt động của tất cả những chức năng khác cho đến khi Reset hệ thống.
1.2 Sơ đồ khối của AT89C5

1.3 Sơ đồ chân của AT89C51

- Từ chân 32->39: Cổng vào ra 0, tương ứng với các chân P0_7 > P0_0 (8bit)
- Từ chân 1->8: Cổng vào ra 1
- Từ chân 21 -> 28: Cổng vào ra 2
- Từ chân 10->17: Cổng vào ra 3.
- Chân 40 và chân 20: Cấp nguồn cho VĐK. Chân 40 bạn nối với +5V và chân
20 nối với mass
- Chân 18 và chân 19 (XTAL 2 và XTAL 1): Nối với bộ dao động thạch anh
(crystal) nhằm tạo xung nhịp cho VĐK. Hai chân này mỗi chân bạn nối với một
đầu thạch anh. Ngoài ra, tại mỗi chân, bạn nối với một tụ 33pF (là loại tụ gốm,
nhỏ) xuống mass để bù nhiệt và ổn định hoạt động cho VĐK.
- Chân 9 (RST): Dùng để Reset VĐK. Khi chân này được đưa lên mức áp cao
trong khoảng thời gian từ 2 chu kỳ máy (chu kỳ máy là gì sẽ nói sau) trở lên thì
VĐK sẽ được reset đưa về tình trạng lúc ban đầu. Chân này bạn nối với một
điện trở 8,2K, nối với một nút ấn đưa lên nguồn +5V. Khi nhấn nút, chân số 9
sẽ được đưa lên mức áp cao và reset cho VĐK.
- Chân PSEN: Bạn nối lên +5V để chỉ thị sử dụng chương trình từ ROM
Đó là những chân cần dùng nhất. Còn lại những chân khác khi nào dùng đến
mình sẽ nói cụ thể hơn để các bạn dễ tiếp thu
1.4 Chức năng các chân của AT89C51
89C51cos tất cả 40 chaancos 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 dườ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ó hai chức năng ở các chân 32-39 của 89C51. 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 dặt biệt
của 89C51
* Các ngõ tín hiệu điều khiển:
Ngõ tín hiệu PSEN:
- 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ở rộng .
- 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 từ 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.
Ngõ tín hiệu điều khiển 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à
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 dóng vai

trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động.
- Bộ dao động được tích hợp bên trong 89C51, khi sử dungj89C51 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 89C51 là 12Mhz.
- Chân 40 (vcc)được nối lên nguồn.các xung tín hiệu ALE có tốc độ bằng 1/6
lần tần số dao động trên chíp 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 89C51.
Ngõ tín hiệu EA\(External Access):
- Tín hiệu vào EA\ ở chân 31 thường được mất lên mức 1 hoặc mức 0. nếu ở
mức 1, 89C51 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp
8KB. Nếu ở mức 0, 89c51 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 89c51.
Ngõ tín hiệu RST (Reset):
- Ngõ vào RST ở chân 9 là ngõ vào reset của 89C51. 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.
2.Sơ đồ mạch
*Mach nguyên lý
*Mạch in
5. Chương trình mô phỏng
#include <at89x52.h>
#define SDI P0_0 //pin14 595 CHAN DU LIEU
#define LATCH P0_1 //pin12
#define SCK P0_2 //pin11
#define CLR P0_3 //pin10
#define A_0 P0_4 // 74HC138
#define A_1 P0_5
#define A_2 P0_6
#define G1 P0_7

unsigned char k, m, dau_cot, cuoi_cot, toc_do;
unsigned char code bang_ma[8][88] = {
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0,1,0,0,0,0,0,1,0,0,
0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,
1,1,1,1}, // hang 1
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,
0,1,1,1,1,0,1,1,1,0,1,1,0,1,0,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,
1,1,1,1}, // hang 2
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,
0,1,1,1,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,
1,1,1,1}, // hang 3
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0,1,0,0,0,0,1,1,1,1,
0,1,1,1,1,0,0,0,0,0,1,0,1,1,1,0,1,0,1,1,0,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,
1,1,1,1}, // hang 4
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,
0,1,1,1,1,0,1,1,1,0,1,0,0,0,0,0,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,
1,1,1,1}, //
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,
0,1,1,1,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,
1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,
0,1,1,1,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,0,1,1,1,1,1,1,1,1,1,
1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,1,1,1} // hang 8
};// > tung cot tinh tu trai qua
// delay
void delay(unsigned int x) {
unsigned int i ;

unsigned char j;
for (i=0;i<=x;i++) {
for (j=0;j<=40;j++) {
}
}
}
//chuong trinh chinh
void main(void) {
CLR = 0;
CLR = 1;
G1 = 0;
toc_do = 0;
dau_cot = 0;
cuoi_cot = dau_cot + 15;
while (1) {
for (k = 0; k <= 7; k++) { // hang
//P0 = 0xFF;// ko bat 8 hang
for (m = dau_cot; m <= cuoi_cot; m++){ //cot
SDI = bang_ma[k][m];
SCK = 1;
SCK = 0; // lap lai den m =
47 lan ~47 cot khi k = 0
}
G1 = 0; // tat tat ca cac hang
(dieu khien 74HC138)
LATCH = 1;
LATCH = 0;
// 1 thoi diem kich dan 1 BJT
if (k == 0) (A_0 = 1,A_1 = 1,A_2 = 1);
// dung 74HC138 quet hang

if (k == 1) (A_0 = 0,A_1 = 1,A_2 = 1);
// hang thu 2
if (k == 2) (A_0 = 1,A_1 = 0,A_2 = 1);
// hang thu 3
if (k == 3) (A_0 = 0,A_1 = 0,A_2 = 1);
// hang thu 4
if (k == 4) (A_0 = 1,A_1 = 1,A_2 = 0);
// hang thu 5
if (k == 5) (A_0 = 0,A_1 = 1,A_2 = 0);
// hang thu 6
if (k == 6) (A_0 = 1,A_1 = 0,A_2 = 0);
// hang thu 7
if (k == 7) (A_0 = 0,A_1 = 0,A_2 = 0);
// hang thu 8
G1 = 1;
delay(1); // tgian delay phai thoa man toc do 24 hinh/s
}
// toc do
toc_do++;
if (toc_do >= 10) {
toc_do = 0;
dau_cot++;
if (dau_cot >= 88)
dau_cot = 0;
cuoi_cot = dau_cot + 15;
};
}
}

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×