1. Trang chủ
  2. » Thể loại khác

MẠCH LED CHẠY CHỮ docx

10 784 2

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 372 KB

Nội dung

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..

Trang 1

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

Trang 2

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

Trang 3

1.2 Sơ đồ khối của AT89C5

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

Trang 4

- 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

Trang 5

* 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

Trang 6

2.Sơ đồ mạch

*Mach nguyên lý

*Mạch in

Trang 7

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

Trang 8

{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;

Trang 9

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;

Trang 10

if (dau_cot >= 88) dau_cot = 0;

cuoi_cot = dau_cot + 15; };

}

}

Ngày đăng: 07/03/2014, 13:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w