1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Thiết kế mạch quang báo giao tiếp máy tính dùng PIC 16F877A

58 4 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 58
Dung lượng 2,5 MB
File đính kèm mạch quang báo giao tiếp máy tính dùng PIC 16F877A.rar (2 MB)

Cấu trúc

  • 1. Nội dung đề tài (6)
  • 2. Nhiệm vụ đề tài (6)
  • 3. Kết quả thực nghiệm (6)
  • CHƯƠNG 1...........................................................................................................9 (7)
    • 1.1. Vi điều khiển PIC 16F877A (0)
      • 1.1.1. Một vài thông số của vi điều khiển PIC16F877A (0)
      • 1.1.2. Sơ đồ khối của vi điều khiển PIC 16F877A (0)
      • 1.1.3. Tổ chức bộ nhớ (0)
        • 1.1.3.1. Bộ nhớ chương trình (10)
        • 1.1.3.2. Bộ nhớ dữ liệu (10)
      • 1.1.4. Các cổng xuất nhập của PIC 16F877A (0)
        • 1.1.4.1. PORTA (14)
        • 1.1.4.2. PORTB (15)
        • 1.1.4.3. PORTC (15)
        • 1.1.4.4. PORTD (16)
        • 1.1.4.5. PORTE (16)
      • 1.1.5. Timer (16)
        • 1.1.5.1. Timer0 (16)
        • 1.1.5.2. Timer1 (18)
        • 1.1.5.3. Timer2 (19)
      • 1.1.6. ADC (20)
      • 1.1.7. Giao tiếp nối tiếp USART (0)
      • 1.1.8. Các đặc tính oscillator (23)
      • 1.1.9. Ngắt (Interrupt) (0)
      • 1.1.10. Các chế độ reset (24)
    • 1.2. Cổng COM (0)
    • 1.3. Giao tiếp RS232 (29)
    • 1.4. IC dịch 74HC595 (30)
    • 1.5. IC đệm dòng ULN2803 (32)
  • CHƯƠNG 2.........................................................................................................37 (34)
    • 2.1. Sơ đồ hệ thống (0)
    • 2.2. Quang báo LED ma trận (34)
    • 2.3. Phương pháp Multiplex hiển thị ma trận led (0)
    • 2.4. Phương pháp hiển thị sử dụng thanh ghi dịch (0)
      • 2.4.1. Quét cột (36)
      • 2.4.2. Quét hàng (37)
  • CHƯƠNG 3.........................................................................................................42 (39)
    • 3.1. Sơ đồ nguyên lý (39)
    • 3.2. Sơ đồ mạch in (41)
    • 3.3. Mạch hoàn chỉnh (41)
    • 3.4. Tính toán (42)
    • 3.5. Nguyên lý hoạt động (0)
    • 3.6. Lưu đồ giải thuật (44)
      • 3.6.1. Lưu đồ chương trình hệ thống (44)
      • 3.6.2. Lưu đồ chương trình chính (45)
      • 3.6.3. Lưu đồ chương trình hiển thị (46)
      • 3.6.4. Lưu đồ chương trình copy font vào RAM (47)
    • 3.7. Code chương trình nạp vào vi điều khiển (48)
    • 1. Giới thiệu về visual basic (56)
    • 2. Chương trình điều khiển từ máy tính (0)

Nội dung

Nội dung đề tài Quang báo 8x32 được nhập dữ liệu từ máy tính. Dữ liệu này được ghi vào 16F877A để lưu. 2. Nhiệm vụ đề tài Cách điều khiển và xử lý dữ liệu cho bảng led ma trận. Tìm hiểu vi điều khiển PIC16F877A. Tìm hiểu ngôn ngữ lập trình C cho PIC. Tìm hiểu lập trình visal basic. Tìm hiểu cách kết nối và điều khiển qua cổng COM của máy tính. Thi công bảng quang báo led ma trận kích thước 8x32. 3. Kết quả thực nghiệm Ghi dữ liệu vào PIC 16F877A. Xuất dữ liệu lên quang báo. MỤC LỤC LỜI MỞ ĐẦU 1 LỜI CẢM ƠN 2 BẢN NHẬN XÉT 3 ĐỒ ÁN MÔN HỌC CỦA GIÁO VIÊN HƯỚNG DẪN 3 BẢN NHẬN XÉT 4 ĐỒ ÁN MÔN HỌC CỦA GIÁO VIÊN PHẢN BIỆN 4 MỤC LỤC 5 MỞ ĐẦU 8 1. Nội dung đề tài 8 2. Nhiệm vụ đề tài 8 3. Kết quả thực nghiệm 8 CHƯƠNG 1 9 KHẢO SÁT LINH KIỆN 9 1.1. Vi điều khiển PIC 16F877A 9 1.1.1. Một vài thông số của vi điều khiển PIC16F877A 9 1.1.2. Sơ đồ khối của vi điều khiển PIC 16F877A 11 1.1.3. Tổ chức bộ nhớ 12 1.1.3.1. Bộ nhớ chương trình 12 1.1.3.2. Bộ nhớ dữ liệu 12 1.1.4. Các cổng xuất nhập của PIC 16F877A 16 1.1.4.1. PORTA 17 1.1.4.2. PORTB 17 1.1.4.3. PORTC 18 1.1.4.4. PORTD 18 1.1.4.5. PORTE 18 1.1.5. Timer 18 1.1.5.1. Timer0 18 1.1.5.2. Timer1 20 1.1.5.3. Timer2 21 1.1.6. ADC 22 1.1.7. Giao tiếp nối tiếp USART 23 1.1.8. Các đặc tính oscillator 26 1.1.9. Ngắt (Interrupt) 26 1.1.10. Các chế độ reset 27 1.2. Cổng COM 27 1.3. Giao tiếp RS232 32 1.4. IC dịch 74HC595 33 1.5. IC đệm dòng ULN2803 35 CHƯƠNG 2 37 GIỚI THIỆU VỀ QUANG BÁO 37 2.1. Sơ đồ hệ thống 37 2.2. Quang báo LED ma trận 37 2.3. Phương pháp Multiplex hiển thị ma trận led 39 2.4. Phương pháp hiển thị sử dụng thanh ghi dịch 39 2.4.1. Quét cột 39 2.4.2. Quét hàng 40 CHƯƠNG 3 42 THIẾT KẾ VÀ THI CÔNG MẠCH 42 3.1. Sơ đồ nguyên lý 42 3.2. Sơ đồ mạch in 44 3.3. Mạch hoàn chỉnh 46 3.4. Tính toán 47 3.5. Nguyên lý hoạt động 47 3.6. Lưu đồ giải thuật 49 3.6.1. Lưu đồ chương trình hệ thống 49 3.6.2. Lưu đồ chương trình chính 50 3.6.3. Lưu đồ chương trình hiển thị 51 3.6.4. Lưu đồ chương trình copy font vào RAM 52 3.7. Code chương trình nạp vào vi điều khiển 53 KẾT LUẬN 58 TÀI LIỆU THAM KHẢO 59 PHỤ LỤC 60 1. Giới thiệu về visual basic 60 2. Chương trình điều khiển từ máy tính 60

Nội dung đề tài

- Quang báo 8x32 được nhập dữ liệu từ máy tính.

- Dữ liệu này được ghi vào 16F877A để lưu.

Nhiệm vụ đề tài

- Cách điều khiển và xử lý dữ liệu cho bảng led ma trận

- Tìm hiểu vi điều khiển PIC16F877A.

- Tìm hiểu ngôn ngữ lập trình C cho PIC.

- Tìm hiểu lập trình visal basic.

- Tìm hiểu cách kết nối và điều khiển qua cổng COM của máy tính.

- Thi công bảng quang báo led ma trận kích thước 8x32.

Kết quả thực nghiệm

- Ghi dữ liệu vào PIC 16F877A.

- Xuất dữ liệu lên quang báo.

Giao tiếp RS232

Cổng nối tiếp RS232 là giao diện phổ biến rộng rãi nhất, nó còn gọi là cổng COM1, còn cổng COM2 thường dùng tự do cho các ứng dụng khác Cổng này truyền dữ liệu dưới dạng nối tiếp theo một tốc độ do người lập trình quy định (thường là 1200, 2400, 4800, 9600 bps…) Loại truyền này có khả năng dùng cho những khoảng cách lớn.

Cổng nối tiếp RS232 không phải là hệ thống bus, nó cho phép dễ dàng tạo ra liên kết dưới hình thức điểm giữa hai máy cần trao đổi thông tin với nhau. Việc truyền dữ liệu RS-232 được tiến hành theo cách nối tiếp, nghĩa là các bit dữ liệu được gởi đi nối tiếp nhau trên một đường truyền dẫn Mức tín hiệu chân ra RXD tùy thuộc vào đường dẫn TXD và thông thường nằm trong khoảng –12V đến +12V Các bit dữ liệu được gửi đảo ngược lại Mức điện áp đối với mức cao nằm giữa –12V đến –3V và mức thấp nằm giữa +3V đến +12V.

Chiều dữ liệu truyền đi có thể là 5, 6, 7 hoặc 8 bit, và kèm theo các bit start, stop, parity để tạo thành một khung truyền (frame) Do việc truyền dữ liệu là nối tiếp nên tốc độ truyền bị hạn chế nên nó thường không được sử dụng trong những ứng dụng cần tốc độ truyền cao.

Khung truy n d li u nh sau : ền dữ liệu như sau : ữ liệu như sau : ệu như sau : ư sau :

Max232 là IC chuyên dùng cho giao tiếp giữa RS232 và thiết bị ngoại vi Max232 là IC của hãng Maxim Đây là IC chạy ổn định và được sử dụng phổ biến trong các mạch giao tiếp chuẩn RS232 Giá thành của Max232 phù hợp và tích hợp trong đó hai kênh truyền cho chuẩn RS232 Dòng tín hiệu được thiết kế cho chuẩn RS232 Ngoài ra Max232 còn được thiết kế với nguồn cung cấp +5V công suất nhỏ.

Hình 1.12 Sơ đồ chân IC max232.

IC dịch 74HC595

74HC595 là một thanh ghi dịch 8 bit đầu vào nối tiếp, có các đầu ra song song hoặc nối tiếp, ngõ ra có bộ đệm 3 trạng thái

Sơ đồ chân của 74HC595 như sau:

Hình 1.13 Sơ đồ chân 74HC595

Hình 1.14 Sơ đồ logic của 74HC595

Bảng 1.4 Chức năng các chân của 74HC595

Chân Ký hiệu Chức năng

1 Q1 Ngõ ra dữ liệu song song

2 Q2 Ngõ ra dữ liệu song song

3 Q3 Ngõ ra dữ liệu song song

4 Q4 Ngõ ra dữ liệu song song

5 Q5 Ngõ ra dữ liệu song song

6 Q6 Ngõ ra dữ liệu song song

7 Q7 Ngõ ra dữ liệu song song

9 Q7’ Ngõ ra dữ liệu nối tiếp

10 MR\ Đưa về trạng thái ban đầu (tích cực mức thấp)

Ngõ vào xung clock Một quá trình chuyển từ mức thấp đến mức cao ở chân này sẽ dịch dữ liệu trong thanh ghi dịch một nhịp.

12 ST_CP Ngõ vào Quá trình chuyển từ mức thấp sang mức cao ở Latch clock sẽ chốt dữ liệu được dịch trong thanh ghi dich vào bộ chốt

Ngõ ra cho phép (tích cực mức thấp) Khi chân này ở mức thấp thì tín hiệu từ bộ chốt được đưa ra đầu ra Khi nó ở mức cao thì các đầu ra song song ở trạng thái trở kháng cao Đầu ra nối tiếp không bị ảnh hưởng bởi chân này

14 DS Dữ liệu vào nối tiếp

15 Q0 Dữ liệu ra song song

Hình 1.15 Hình ảnh thực tế IC 74HC595.

IC đệm dòng ULN2803

Đây là IC gồm 8 transistor NPN ghép Darlington gắn mạch điện tử trong dãy này của chuỗi là một bộ lý tưởng để giao tiếp với mạch điện dạng số mức logic thấp như: TTL, CMOS hoặc PMOS/NMOS ULN2803 được thiết kế để phù hợp với chuẩn TTL.

Hình 1.16 Sơ đồ khối IC ULN2803

 Vài chỉ số kĩ thuật của IC ULN2803:

- Dòng điện ngõ vào khoảng 25mA

- Điện áp ngõ vào khoảng 0.5V – 30V

Hình 1.17 Sơ đồ cấu tạo 1 kênh đệm dòng của ULN2803

Hình 1.18 Hình ảnh thực tế IC ULN2803.

Quang báo LED ma trận

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 thành một khối Trong khối đó các LED đơn được sắp xếp theo các hàng và các cột, tại mỗi giao điểm của hàng và 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

Khối hiển thị đề tài sử dụng là một khối LED ma trận 8x32 được ghép từ 4 LED ma trận 8x8 Mỗi LED ma trận 8x8 được tạo nên bằng cách ghép 64 LED đơn vào với nhau theo sơ đồ dưới đây:

Hình 2.1 Sơ đồ nguyên lý LED ma trận 8x8

Hình 2.2 Hình ảnh thực tế của một LED ma trận 8x8

Kết nối 4 LED ma trận 8x8 như trên theo nguyên tắc nối chung hàng hoặc chung cột ta sẽ được một LED ma trận 8x32 với 40 chân điều khiển Nếu nối chung hàng thì sẽ có 8 chân điều khiển hàng và 32 chân điều khiển cột Và ngược lại, nếu nối chung cột thì sẽ có 8 chân điều khiển cột và 32 chân điều khiển hàng.

2.3 Phương pháp Multiplex hiển thị ma trận led Điều khiển ma trận led cần mạch chốt dữ liệu, xuất dữ liệu các mạch này phải kết hợp chặt chẽ với nhau Số mạch chốt tỷ lệ với số lượng LED.

Với một ma trận hiển thị, số lượng LED rất lớn, kéo theo số mạch chốt nhiều, dẫn đến phần hiển thị quang báo trở nên phức tạp, cồng kềnh, khó kết nối, khó vẽ mạch in, không có tính kinh tế.

Phương pháp multiplex cho phép ta điều khiển ma trận led với số lượng đường dây và mạch in giảm đáng kể.

Theo phương pháp này, tại mỗi thời điểm duy nhất chỉ có một led sáng. Các led phát sáng theo tần số đủ nhanh để mắt người cảm thấy led sáng liên tục, nhờ hiện tượng lưu ảnh trên võng mạc của mắt, nhưng chú ý làm sao cho các led sáng rõ không có cảm giác rung.Do led được cấp dòng phát sáng trong thời gian ngắn, nên để led thấy rõ biên độ dòng xung phải lớn hơn nhiều lần so với dòng

DC trung bình qua led.

Phương pháp multiplex được dùng trong phương pháp truyền data nối tiếp hay song song, được chia thành hai loại thường dùng : quét hàng hay quét cột trên bảng led Việc chọn hàng hay chọn cột cần có một mạch chọn lệnh để chọn hàng hay cột thích hợp.

2.4 Phương pháp hiển thị sử dụng thanh ghi dịch

Phương pháp quét cột là phương pháp mà trong một khoảng thời gian xác định chỉ cho một cột được tích cực hiển thị trong khi các cột khác đều tắt, các cột được quét (tích cực) tuần tự ở các khoảng thời gian kế tiếp nhau được lặp lại nhiều lần với tốc độ lớn hơn 24 lần/1s sẽ cho ta một hình ảnh liên tục cần hiển thị lên trên màn hình led ma trận.

Dữ liệu của cột thứ nhất được đưa ra hàng sau đó tích cực cột thứ nhất như vậy dữ liệu của cột thứ nhất được hiển thị trên màn hình led ma trận, tiếp tục dữ liệu của cột thứ hai được đưa ra hàng sau đó tích cực cột thứ hai lúc này dữ liệu của hàng thứ hai được hiển thị trên màn hình led ma trận, cứ như vậy cho đến dữ liệu của cột cuối cùng được đưa ra hàng sau đó tích cực cột cuối cùng Cứ như thế quá trình trên được lặp đi lặp lại lớn hơn 24 lần/1s, đến đây chúng ta quan sát được một hình ảnh liên tục hiển thị trên màn hình led ma trận.

Phương pháp quét cột thích hợp cho các bảng quang báo sử dụng Led ma trận có số lượng cột ít hơn số lượng hàng, vì thời gian sáng của LED khi quét cột lớn hơn thời gian sáng của LED khi quét hàng Như vậy điện áp nguồn cung cấp được sử dụng trong quét cột nhỏ hơn điện áp nguồn cung cấp sử dụng trong quét hàng Trong phương pháp quét cột việc đưa dữ liệu ra hàng và tạo bảng mã là khá dễ dàng cho người lập trình.

Quét hàng là phương pháp mà trong một khoảng thời gian xác định chỉ cho một hàng được tích cực hiển thị trong khi các hàng khác đều tắt, các hàng được quét (tích cực) tuần tự ở các khoảng thời gian kế tiếp nhau được lặp lại nhiều lần với tốc độ lớn hơn 24 lần/1s sẽ cho ta một hình ảnh liên tục cần hiển thị lên trên màn hình led ma trận.

Quét hàng sử dụng thanh ghi dịch là tương đối phức tạp cho người lập trình trong việc đưa dữ liệu ra cột Dữ liệu lần lượt được đưa vào chân Datain của thanh ghi dịch sau đó tác động xung clock dữ liệu được dịch đi.

Dữ liệu của hàng thứ nhất được đưa ra cột sau đó tích cực hàng thứ nhất, như vậy dữ liệu của hàng thứ nhất được hiển thị trên màn hình led ma trận, tiếp tục dữ liệu của hàng thứ hai được đưa ra cột sau đó tích cực hàng thứ hai lúc này dữ liệu của hàng thứ hai được hiển thị trên màn hình led ma trận, cứ như vậy cho đến dữ liệu của hàng cuối cùng được đưa ra cột sau đó tích cực hàng cuối cùng.

Cứ như thế quá trình trên được lặp đi lặp lại lớn hơn 24lần/1s, đến đây chúng ta quan sát được một hình ảnh liên tục hiển thị trên màn hình led ma trận.

Phương pháp quét hàng thích hợp cho các bảng quang báo sử dụng led ma trận có số lượng hàng nhỏ hơn số lượng cột, vì thời gian sáng của led khi quét hàng lâu hơn thời gian sáng của led khi quét cột Như vậy điện áp nguồn cung cấp được sử dụng trong quét hàng nhỏ hơn điện áp nguồn cung cấp sử dụng trong quét cột

Phương pháp hiển thị sử dụng thanh ghi dịch

Điều khiển ma trận led cần mạch chốt dữ liệu, xuất dữ liệu các mạch này phải kết hợp chặt chẽ với nhau Số mạch chốt tỷ lệ với số lượng LED.

Với một ma trận hiển thị, số lượng LED rất lớn, kéo theo số mạch chốt nhiều, dẫn đến phần hiển thị quang báo trở nên phức tạp, cồng kềnh, khó kết nối, khó vẽ mạch in, không có tính kinh tế.

Phương pháp multiplex cho phép ta điều khiển ma trận led với số lượng đường dây và mạch in giảm đáng kể.

Theo phương pháp này, tại mỗi thời điểm duy nhất chỉ có một led sáng. Các led phát sáng theo tần số đủ nhanh để mắt người cảm thấy led sáng liên tục, nhờ hiện tượng lưu ảnh trên võng mạc của mắt, nhưng chú ý làm sao cho các led sáng rõ không có cảm giác rung.Do led được cấp dòng phát sáng trong thời gian ngắn, nên để led thấy rõ biên độ dòng xung phải lớn hơn nhiều lần so với dòng

DC trung bình qua led.

Phương pháp multiplex được dùng trong phương pháp truyền data nối tiếp hay song song, được chia thành hai loại thường dùng : quét hàng hay quét cột trên bảng led Việc chọn hàng hay chọn cột cần có một mạch chọn lệnh để chọn hàng hay cột thích hợp.

2.4 Phương pháp hiển thị sử dụng thanh ghi dịch

Phương pháp quét cột là phương pháp mà trong một khoảng thời gian xác định chỉ cho một cột được tích cực hiển thị trong khi các cột khác đều tắt, các cột được quét (tích cực) tuần tự ở các khoảng thời gian kế tiếp nhau được lặp lại nhiều lần với tốc độ lớn hơn 24 lần/1s sẽ cho ta một hình ảnh liên tục cần hiển thị lên trên màn hình led ma trận.

Dữ liệu của cột thứ nhất được đưa ra hàng sau đó tích cực cột thứ nhất như vậy dữ liệu của cột thứ nhất được hiển thị trên màn hình led ma trận, tiếp tục dữ liệu của cột thứ hai được đưa ra hàng sau đó tích cực cột thứ hai lúc này dữ liệu của hàng thứ hai được hiển thị trên màn hình led ma trận, cứ như vậy cho đến dữ liệu của cột cuối cùng được đưa ra hàng sau đó tích cực cột cuối cùng Cứ như thế quá trình trên được lặp đi lặp lại lớn hơn 24 lần/1s, đến đây chúng ta quan sát được một hình ảnh liên tục hiển thị trên màn hình led ma trận.

Phương pháp quét cột thích hợp cho các bảng quang báo sử dụng Led ma trận có số lượng cột ít hơn số lượng hàng, vì thời gian sáng của LED khi quét cột lớn hơn thời gian sáng của LED khi quét hàng Như vậy điện áp nguồn cung cấp được sử dụng trong quét cột nhỏ hơn điện áp nguồn cung cấp sử dụng trong quét hàng Trong phương pháp quét cột việc đưa dữ liệu ra hàng và tạo bảng mã là khá dễ dàng cho người lập trình.

Quét hàng là phương pháp mà trong một khoảng thời gian xác định chỉ cho một hàng được tích cực hiển thị trong khi các hàng khác đều tắt, các hàng được quét (tích cực) tuần tự ở các khoảng thời gian kế tiếp nhau được lặp lại nhiều lần với tốc độ lớn hơn 24 lần/1s sẽ cho ta một hình ảnh liên tục cần hiển thị lên trên màn hình led ma trận.

Quét hàng sử dụng thanh ghi dịch là tương đối phức tạp cho người lập trình trong việc đưa dữ liệu ra cột Dữ liệu lần lượt được đưa vào chân Datain của thanh ghi dịch sau đó tác động xung clock dữ liệu được dịch đi.

Dữ liệu của hàng thứ nhất được đưa ra cột sau đó tích cực hàng thứ nhất, như vậy dữ liệu của hàng thứ nhất được hiển thị trên màn hình led ma trận, tiếp tục dữ liệu của hàng thứ hai được đưa ra cột sau đó tích cực hàng thứ hai lúc này dữ liệu của hàng thứ hai được hiển thị trên màn hình led ma trận, cứ như vậy cho đến dữ liệu của hàng cuối cùng được đưa ra cột sau đó tích cực hàng cuối cùng.

Cứ như thế quá trình trên được lặp đi lặp lại lớn hơn 24lần/1s, đến đây chúng ta quan sát được một hình ảnh liên tục hiển thị trên màn hình led ma trận.

Phương pháp quét hàng thích hợp cho các bảng quang báo sử dụng led ma trận có số lượng hàng nhỏ hơn số lượng cột, vì thời gian sáng của led khi quét hàng lâu hơn thời gian sáng của led khi quét cột Như vậy điện áp nguồn cung cấp được sử dụng trong quét hàng nhỏ hơn điện áp nguồn cung cấp sử dụng trong quét cột

Do mạch quang báo trong đồ án được thiết kế với độ phân giải 8x32 (8 hàng, 32 cột) nên chọn phương pháp quét hàng để đảm bảo cho hình ảnh hiển thị được liên tục và sắc nét.

Sơ đồ nguyên lý

RC1/T1OSI/CCP2 16 RC2/CCP1 17 RC3/SCK/SCL 18

RB7/PGD 40 RB6/PGC RB5 RB4 39 38 37 RB3/PGM RB0/INT RB2 RB1 36 35 34 33

RD7/PSP7 30 RD6/PSP6 29 RD5/PSP5 28 RD4/PSP4 27 RD3/PSP3 22 RD2/PSP2 21

RC7/RX/DT 26 RC6/TX/CK RC5/SDO 25 24 RC4/SDI/SDA 23

RC0 RC1 RC2 RC3 RC4 RC5 TX RX

Hình 3.1 Sơ đồ nguyên lý khối điều khiển

Khối điều khiển gồm mạch nguồn, vi xử lí và mạch giao tiếp máy tính.

- Khối nguồn: tạo ra điện áp một chiều ổn định 5V để cung cấp cho các khối và linh kiện trong hệ thống Để an toàn IC 7805 cung cấp dòng cho tải là: 100mA-1A Điện áp ngõ vào tối thiểu phải cao hơn điện áp ngõ ra 2V để mạch hoạt động tốt.

- Khối vi xử lí: tạo ra tín hiệu điều khiển khối LED ma trận để hiển thị các ký tự như chương trình đã định trước.

- Khối giao tiếp máy tính: sử dụng ic max232 nhận tín hiệu truyền từ máy tính vào vi điều khiển.

Hình 3.2 Sơ đồ nguyên lý khối hiển thị led matrix 8x32

Khối hiển thị LED ma trận nhận tín hiệu từ khối vi xử lý, giải mã để chuyển ra khối hiển thị - là 4 led ma trận 8x8 ghép lại, hiển thị các ký tự được truyền từ máy tính.

Module hiển thị dùng 4 ma trận led ghép lại với nhau thành 8 hàng và 32 cột Các ma trận led được nối chung hàng Module sử dụng IC chốt dịch 74HC595 và IC đệm dòng ULN2803.

Các chân Clock và Latch của IC 74HC595 được mắc song song với nhau. Chân Data của IC 74HC595 đầu tiên được nối vào vi điều khiển Các chân Data của 3 IC còn lại được mắc vào chân số 9 của IC 74HC595 trước đó.

Các đầu ra của IC chốt dịch 74HC595 được mắc vào các cổng vào của IC đệm dòng ULN2803, các đầu ra của ULN2803 sẽ được nối trực tiếp với các chân cho phép cột của các LED ma trận trong module hiển thị.

Sơ đồ mạch in

Hình 3.3 Sơ đồ mạch in khối điều khiển.

Mạch hoàn chỉnh

Hình 3.4 Mạch mô phỏng Proteus.

Tính toán

Từ hiệu ứng sinh học của mắt tần số một led chớp không nháy là: fmin%Hz.

Bảng led thiết kế gồm 8 hàng, vậy tần số quét toàn bảng Led là: fquét = 25x8 = 200Hz Với fquét = 200Hz  chu kỳ quét: f ms

 Thời gian sáng trung bình của mỗi hàng led là: ttb = 1/8.

Từ thực nghiệm cho thấy dòng qua led ở chế độ thường trực là 5mA- 25mA, chọn dòng trung bình qua led là 10mA Mạch gồm 8 led đơn mắc song song cho mỗi cột nên dòng Ic cao nhất của A1015 là:

RE = (Vcc-(VLed + Vce))/Ic =(5-2.2)/80mA 5(Ω))

 Tính RB: Để transistor dẫn bảo hòa thì IB = Ic /β (A1015 có β = 80)

RB = (VB-VBE) / IB = (5-0.7) / 1mA =4.3k Chọn RB = 4k7.

Khi khởi động mạch quang báo, vi điều khiển sẽ đọc thông tin được lưu trước trong ROM Sau đó vi điều khiển sẽ đối chiếu từng kí tự trong nội dung bản tin để copy font tương ứng vào RAM của chương trình hiển thị, rồi gọi chương trình hiển thị để hiển thị nội dung ra bảng quang báo.

Khi chương trình quản lí trên máy tính yêu cầu cập nhật bản tin mới cho bảng quang báo, vi điều khiển sẽ ngừng việc hiển thị để chờ nhận dữ liệu mới từ máy tính Sau đó lưu nội dung vừa nhận được vào ROM để phục vụ cho việc hiển thị bảng quang báo.

Tín hiệu điều khiển từ máy tính được đưa qua chân 2, 3 cổng COM đến chân 14 (T1OUT\), 13 (R1IN) của MAX232, tín hiệu này được đưa đến chân 26 (RXD), 25 (TXD) của pic 16F877A qua hai chân 12 (R1OUT), 11 (T1IN) của MAX232.

Tại vi xử lý, dữ liệu do máy tính đưa đến sẽ được lưu vào bộ nhớ ROM, RAM của vi xử lý đồng thời cũng lưu vào EEPROM Khi dữ liệu được đưa vào chân 14 của IC 74HC595 thì led đầu tiên sẽ sáng, sau đó dữ liệu này sẽ được dịch từ từ sang những led tiếp theo.

Kỹ thuật quét led là cấp tín hiệu điều khiển theo dạng xung theo kiểu quét cho các hàng cần hiển thị tần số quét nhỏ nhất cho mỗi chu kỳ cần khoảng 25Hz (40ms) nhằm bảo đảm cho mắt thấy các led sáng đều không nhấp nháy.

Dữ liệu font chữ được đổ qua cột.

Khi quét hết 32 cột thì được một hình.

Khi chạy chữ chỉ cần hiển thị một hình khác đã được dịch đi một cột

3.6.1 Lưu đồ chương trình hệ thống

LƯU VÀO RAM ĐỦ DỮ LIỆU

VĐK LẤY DỮ LIỆU TỪ

END ĐIỀU KHIỂN HIỂN THỊ RA LED MA TRẬN Đ

Hình 3.7 Lưu đồ chương trình hệ thống

3.6.2 Lưu đồ chương trình chính

KHAI BÁO CHƯƠNG TRÌNH CON

GỌI CHUONG TRÌNH COPY FONT VÀO

GỌI CHƯƠNG TRÌNH HIỂN THỊ

Hình 3.8 Lưu đồ chương trình chính

3.6.3 Lưu đồ chương trình hiển thị

DỊCH FONT TỪ RAM VÀO 595 ĐỦ DỮ LIỆU 8 BYTES ? ĐỦ 8 HÀNG ?

Hình 3.9 Lưu đồ chương trình hiển thị

3.6.4 Lưu đồ chương trình copy font vào RAM

GIẢI MÃ ĐỊA CHỈ MẢNG FONT

COPY FONT VÀO RAM ĐỦ 8 BYTES ?

TĂNG ĐỊA CHỈ RAM LÊN 8 ĐƠN VỊ

Hình 3.10 Lưu đồ chương trình copy font vào RAM

3.7 Code chương trình nạp vào vi điều khiển

#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT

#use delay(clock 000000)//tan so thach anh 20Mhz

#use rs232(baud00,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)//giao tiep UART

#include //File chua bo font ma hoa ky tu ASCII

// Dinh nghia cac chan cho ket noi 74595

#bit clk = 0x05.0 //RA0 XUNG CLOCK

#bit latch = 0x05.2 //RA2 CHOT DATA

// Bo nho dem man hinh hien thi int8 ha[8] = {1,2,4,8,16,32,64,128}; int8 buff_disp[33]; //Bo nho dem cho man hinh LED int8 max_char; //SO ky tu hien thi toi da int8 time@; //Bien quy dinh toc do chu chay nhanh cham int8 count=0,dem=0; int is = 0; int1 isrun = 0; char dt[65]="Quang Bao Led Matrix 8x32 ";// hien thi mac dinh luc ban dau //=========KHAI BAO CAC CHUONH TRINH CON=============== void send_2_595(int8 temp);//gui data void display();//hien thi void copy_2_ram1(int8 index_char);//copy 1 void copy_2_ram2(int8 index_char);//copy 2 void luudata();//luu du lieu

Receive_isr()// nhan data tu giao dien PC

{ char c; c = getc(); putc(c); if(c==2) { dem =0; is =1; } else

{ is = 0; max_char = dem; luudata();

{ if(is==1 && dem72) time = 40;

//======GIN DISPLAY FUNCTION=============//Doan chuong trinh nay se hien thi noi dung ban tin luu trong EEPROM while(true)

{ for (i=0;i

Ngày đăng: 17/03/2024, 20:10

w