Đồ án Quang báo hiển thị bằng led ma trận

Tài liệu Đồ án Quang báo hiển thị bằng led ma trận: TRƯỜNG CAO ĐẲNG K Ỹ THUẬT CAO THẮNG ----o0o---- KHOA ĐIỆN TỬ-TIN HỌC ĐỒ ÁN TỐT NGHIỆP THÀNH PHỐ HỒ CHÍ MINH Với sự phát triển không ngừng của khoa học công nghệ, cuộc sống con người ngày càng trở nên tiện nghi và hiện đại hơn. Điều đó đem lại cho chúng ta nhiều giải pháp tốt hơn, đa dạng hơn trong việc xử lý những vấn đề tưởng chừng như rất phức tạp gặp phải trong cuộc sống. Việc ứng dụng các thành tựu khoa học kỹ thuật hiện đại trong tất cả các lĩnh vực đã và đang rất phổ biến trên toàn thế giới, thay thế dần những phương thức thủ công , lạc hậu và ngày càng được cải tiến hiện đại hơn, hoàn mỹ hơn. Cùng với sự phát triển chung đó, nước ta cũng đang mạnh mẽ tiến hành công cuộc công nghiệp hóa và hiện đại hóa đất nước để theo kịp sự phát triển của các nước trong khu vực và trên thế giới. Trong đó lĩnh vực điện tử đang ngày càng đóng vai trò quan trọng trong việc phát triển kinh tế và đời sống con người. Sự phổ biến của nó đóng góp không nhỏ tới sự phát tr...

pdf70 trang | Chia sẻ: tranhong10 | Ngày: 16/01/2016 | Lượt xem: 547 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đồ án Quang báo hiển thị bằng led ma trận, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
TRƯỜNG CAO ĐẲNG K Ỹ THUẬT CAO THẮNG ----o0o---- KHOA ĐIỆN TỬ-TIN HỌC ĐỒ ÁN TỐT NGHIỆP THÀNH PHỐ HỒ CHÍ MINH Với sự phát triển khơng ngừng của khoa học cơng nghệ, cuộc sống con người ngày càng trở nên tiện nghi và hiện đại hơn. Điều đĩ đem lại cho chúng ta nhiều giải pháp tốt hơn, đa dạng hơn trong việc xử lý những vấn đề tưởng chừng như rất phức tạp gặp phải trong cuộc sống. Việc ứng dụng các thành tựu khoa học kỹ thuật hiện đại trong tất cả các lĩnh vực đã và đang rất phổ biến trên tồn thế giới, thay thế dần những phương thức thủ cơng , lạc hậu và ngày càng được cải tiến hiện đại hơn, hồn mỹ hơn. Cùng với sự phát triển chung đĩ, nước ta cũng đang mạnh mẽ tiến hành cơng cuộc cơng nghiệp hĩa và hiện đại hĩa đất nước để theo kịp sự phát triển của các nước trong khu vực và trên thế giới. Trong đĩ lĩnh vực điện tử đang ngày càng đĩng vai trị quan trọng trong việc phát triển kinh tế và đời sống con người. Sự phổ biến của nĩ đĩng gĩp khơng nhỏ tới sự phát triển của tất cả các ngành sản xuất, giải trí, ...trong những năm gần đây đặc biệt trong lĩnh vực giải trí, quảng cáo đã cĩ sự phát triển mạnh mẽ với nhiều hình thức, phương pháp tiếp cận, quảng bá và chia sẻ thơng tin hiện đại và tồn diện hơn. Với lịng đam mê, yêu thích của mình trong lĩnh vực này, nhĩm đã quyết định chọn đề tài “Quang Báo Hiển Thị Bằng Led Ma Trận” làm đề tài tốt nghiệp. Trong thời gian ngắn thực hiện đề tài cộng với kiến thức cịn nhiều hạn chế, nên trong tập đồ án này khơng tránh khỏi thiếu sĩt, nhĩm thực hiện rất mong được sự đĩng gĩp ý kiến của thầy cơ và các bạn sinh viên. Nhĩm sinh viên thực hiện đề tài LỜI CẢM ƠN Trong suốt khĩa học (2006-2009) tại Trường Cao Đẳng Kỹ Thuật Cao Thắng, với sự giúp đỡ của quý thầy cơ và giáo viên hướng dẫn về mọi mặt từ nhiều phía và nhất là trong thời gian thực hiện đề tài, nên đề tài đã được hồn thành đúng thời gian qui định. Nhĩm thực hiện xin chân thành cảm ơn đến : Quí thầy cơ trong khoa Điện tử -Tin học đã giảng dạy những kiến thức chuyên mơn làm cơ sở để thực hiện tốt luận văn tốt nghiệp và đã tạo điều kiện thuận lợi cho những người thực hiện hồn tất khĩa học. Đặc biệt, cơ NGUYỄN THỊ HỒNG ÁNH– giáo viên hướng dẫn đề tài đã nhiệt tình giúp đỡ và cho nhĩm thực hiện những lời chỉ dạy quý báu, giúp nhĩm thực hiện định hướng tốt trong khi thực hiện luận văn. Tất cả bạn bè đã giúp đỡ và động viên trong suốt quá trình làm đồ án tốt nghiệp. TP.HCM _ Tháng 7 năm 2009 Nhĩm sinh viên thực hiện. MỤC LỤC Trang Phiếu đăng ký đồ án tốt nghiệp.. Nhận xét của giáo viên hướng dẫn Nhận xét của giáo viên phản biện.. Lời nĩi đầu Lời cảm ơn PHẦN I: NỘI DUNG Chương 1: Dẫn nhập ............................5 1.1: Đặt vấn đề...5 1.2: Nội dung đề tài.....5 1.3: Mục đích đề tài... 6 1.4: Đối tượng nghiên cứu....6 1.5: Lập kế hoạch nghiên cứu....6 Chương 2: Giới thiệu về bảng quang báo....7 2.1: Một số bảng quang báo thơng dụng ...7 2.2: Giới thiệu về bảng quang báo hiển thị led ma trận ... 8 Chương 3: Khảo sát linh kiện.. ..9 3.1: Vi điều khiển PIC 16F877A ......9 3.2: Linh kiện khác trong mạch quang báo.....32 Chương 4: Các phương pháp hiển thị led ma trận....37 4.1: Phương pháp hiển thị bằng IC chốt...37 4.2: Phương pháp sử dụng thanh ghi dịch...39 Chương 5: Sơ đồ khối và chức năng từng khối ....44 5.1: Sơ đồ khối hệ thống ...44 5.2: Ý nghĩa từng khối......44 Chương 6: Tính tốn .....48 6.1: Nguồn điều khiển...48 6.2: Mạch nguồn Reset.....48 6.3: Mạch kéo dịng. .....50 Chương 7:Sơ đồ mạch và nguyên lý hoạt động. ... 52 7.1: Sơ đồ nguyên lý mạch.... 52 7.2: Nguyên lý hoạt động....53 Chương 8: Lưu đồ giải thuật và chương trình hoạt động ..54 8.1: Lưu đồ giải thuật. ..54 8.2: Chương trình hoạt động..57 Chương 9: Tổng Kết........62 PHẦN II: PHỤ LỤC CHƯƠNG 1 DẪN NHẬP 1.1 ĐẶT VẤN ĐỀ: Thơng tin liên lạc là vấn đề được quan tâm trong xã hội. Ngay từ ngày xưa, con người đã biết vận dụng những gì đã cĩ sẵn để truyền tin như lửa, âm thanh, các dấu hiệu Ngày nay, với sự phát triển của xã hội thì ngày càng cĩ nhiều cách tiếp cận với những thơng tin mới. Ta cĩ thể biết được thơng tin qua báo chí, truyền hình, mạng internet, qua các pano, áp phích Thơng tin cần phải được truyền đi nhanh chĩng, kịp thời và phổ biến rộng rãi trong tồn xã hội. Và việc thu thập thơng tin kịp thời, chính xác là yếu tố hết sức quan trọng trong sự thành cơng của mọi lĩnh vực. Các thiết bị tự động được điều khiển từ xa qua một thiết bị chủ hoặc được điều khiển trực tiếp qua hệ thống máy tính. Việc sử dụng vi điều khiển để điều khiển hiển thị cĩ rất nhiều ưu điểm mà các phương pháp truyền thống như panơ, áp phích khơng cĩ được như việc điều chỉnh thơng tin một cách nhanh chĩng bằng cách thay đổi phần mềm. Với những lý do trên, nhĩm thực hiện đề tài đưa ra một cách thức nữa phục vụ thơng tin là dùng quang báo. Nội dung nghiên cứu của đề tài chính là tạo ra một bảng quang báo ứng dụng trong việc hiển thị truyền thơng ở các nơi cơng cộng như cơng ty, nhà xưởng, các ngã tư báo hiệu Thế giới ngày càng phát triển thì lĩnh vực điều khiển cần phải được mở rộng hơn. Việc ứng dụng mạng truyền thơng cơng nghiệp vào sản xuất mang lại nhiều thuận lợi cho xã hội lồi người, thơng tin được cập nhật nhanh chĩng và được điều khiển một cách chính xác . 1.2 NỘI DUNG ĐỀ TÀI: Với khoảng thời gian thực hiện đề tài 4 tuần, nhĩm đã thảo luận và chọn nội dung của đề tài như sau: - Nghiên cứu và tìm phương án điều khiển và xử lý dữ liệu cho bảng led ma trận hiển thị. - Thi cơng bảng quang báo hiển thị kích thước 8×48 điểm ảnh. - Viết chương trình tạo hiệu ứng và xử lý dữ liệu. 1.3 MỤC ĐÍCH ĐỀ TÀI: Trong quá trình nghiên cứu và thực hiện đề tài này nhằm giúp người học: - Tăng khả năng tự nghiên cứu cũng như tự học. - Bước đầu tiếp xúc với thực tế . - Vận dụng những kiến thức đã cĩ đồng thời tìm tịi những kiến thức mới để hiểu sâu sắc hơn trong lĩnh vực này. Để thiết kế được một hệ thống như đã nêu ở trên thì người nghiên cứu phải nắm vững kiến thức chuyên ngành điện tử, tìm hiểu, nghiên cứu qua sách vở, tài liệu nước ngồi và dạng mạch thực tế để thi cơng phần cứng. 1.4 ĐỐI TƯỢNG NGHIÊN CỨU: - Các phương án đ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 PIC 16F877A. - Tìm hiểu phương pháp lập trình C. - Bảng quang báo led ma trận kích thước 8×48 điểm ảnh. 1.5 LẬP KẾ HOẠCH NGHIÊN CỨU:  Để thực hiện đề tài này nhĩm sinh viên đã kết hợp sử dụng nhiều phương pháp và phương tiện hỗ trợ gồm cĩ:  Tham khảo tài liệu: kỹ thuật xung số, điện tử căn bản, vi điều khiển.  Quan sát.  Thực nghiệm.  Tổng kết kinh nghiệm.  Phương tiện: máy vi tính, Internet, thư viện..  Kế hoạch nghiên cứu:  Tuần 1: Nhận đề tài và lập đề cương tổng quát. Thu thập tài liệu và lập đề cương chi tiết.  Tuần 2, 3, 4: Thiết kế thi cơng và viết đồ án. CHƯƠNG 2 GIỚI THIỆU VỀ BẢNG QUANG BÁO Ngày nay, các bảng quang báo ngày càng trở nên phổ biến và rất đa dạng về chủng loại và cơng nghệ thay thế dần cho các hình thức truyền thống như pano, áp phích,.bởi những tiện lợi và linh hoạt mà nĩ đem lại. Dưới đây, nhĩm xin giới thiệu một số kiểu bảng quang báo thường được sử dụng: 2.1 MỘT SỐ BẢNG QUANG BÁO THƠNG DỤNG: 2.1.1. Mẫu một dịng chữ (16 X 240 điểm ảnh): Các thơng số kỹ thuật:  Kích thước hiển thị: chiều cao 122mm, chiều dài tuỳ ý (thường là bội của 305mm)  Độ phân giải (số điểm ảnh): 16 x 40 x (chiều dài hiển thị/305)  Kết nối chuẩn (Máy tính, cổng COM) tuỳ chọn (RJ45, Bàn phím)  Bảng này cĩ thể hiển thị một dịng chữ cao 122mm (16 điểm ảnh - như hình trên) hoặc hai dịng chữ cao 61mm (8 điểm ảnh) nhưng khơng dấu Tiếng Việt  Kết nối chuẩn (Máy tính, cổng COM) tuỳ chọn ( RJ45) 2.1.2. Mẫu hai dịng chữ (32 X 240 điểm ảnh) Các thơng số kỹ thuật  Kích thước hiển thị: chiều cao 244mm, chiều dài tuỳ ý (thường là bội của 305mm)  Độ phân giải (số điểm ảnh): 32 x 40 x (chiều dài hiển thị/305)  Kết nối chuẩn (Máy tính, cổng COM) tuỳ chọn ( RJ45)  Bảng này cĩ thể hiển thị hai dịng chữ cao 122mm (16 điểm ảnh – như hình trên) hoặc một dịng chữ cao 244mm (32 điểm ảnh - như hình dưới)  Kết nối chuẩn (Máy tính, cổng COM) tuỳ chọn ( RJ45) 2.2. GIỚI THIỆU VỀ BẢNG QUANG BÁO HIỂN THỊ LED MA TRẬN TRONG ĐỒ ÁN: 2.2.1. Phần cứng: - Kích thước hiển thị: chiều cao 6cm,chiều dài 36cm - Độ phân giải (số điểm ảnh):8 x 48. - Hiển thị: o Một màu. o Nội dung hiển thị được cho chạy theo nhiều hướng khác nhau như : cuốn từ dưới lên, cuốn từ trên xuống, sang trái, sang phải. 2.2.2. Phần mềm: - Dùng ngơn ngữ C lập trình cho vi điều khiển 16F877A - Phần mềm để viết chương trình CCS CHƯƠNG 3 KHẢO SÁT LINH KIỆN 3.1. VI ĐIỀU KHIỂN 16F877A: 1 SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN PIC16F877A 2 MỘT VÀI THÔNG SỐ VỀ VI ĐIỀU KHIỂN PIC16F877A Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ hoạt động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns. Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM vào bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte. Số PORT I/O là 5 với 33 pin I/O. Các đặc tính ngoại vi bao gồmcác khối chức năng sau:  Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.  Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.  Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.  Hai bộ Capture/so sánh/điều chế độ rông xung.  Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.  Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.  Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR,  CS ở bên ngoài.  Các đặc tính Analog:  8 kênh chuyển đổi ADC 10 bit.  Hai bộ so sánh.  Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:  Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.  Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.  Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.  Khả năng tự nạp chương trình với sự điều khiển của phần mềm. Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming) thông qua 2 chân. Watchdog Timer với bộ dao động trong.  Chức năng bảo mật mã chương trình.  Chế độ Sleep.  Có thể hoạt động với nhiều dạng Oscillator khác nhau. 3 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC16F877A 4 TỔ CHỨC BỘ NHỚ Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình (Program memory) và bộ nhớ dữ liệu (Data Memory). 5 BỘ NHỚ CHƯƠNG TRÌNH Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash, dung lượng bộ nhớ 8K word (1 word = 14 bit) và được phân thành nhiều trang (từ page0 đến page 3) . Như vậy bộ nhớ chương trình có khả năng chứa được 8*1024 = 8192 lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng 1 word (14 bit). Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộ đếm chương trình có dung lượng 13 bit (PC). 1. Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h (Reset vector). Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h (Interrupt vector). Bộ nhớ chương trình không bao gồm: Bộ nhớ stack và không được địa chỉ hóa bởi bộ đếm chương trình. Bộ nhớ stack sẽ được đề cập cụ thể trong phần sau. 6 BỘ NHỚ DỮ LIỆU Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank. Đối với PIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank. Mỗi bank có dung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt SFG (Special Function Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose Register) nằm ở vùng địa chỉ còn lại trong bank. Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở tất cà các bank của bộ nhớ dữ liệu giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh của chương trình. Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A như sau: 6.1 THANH GHI CHỨC NĂNG ĐẶC BIỆT SFR Đây là các thanh ghi được sử dụng bởi CPU hoặc được dùng để thiết lập và điều khiển các khối chức năng được tích hợp bên trong vi điều khiển. Có thể phân thanh ghi SFR làm hai lọai: thanh ghi SFR liên quan đến các chức năng bên trong (CPU) và thanh ghi SRF dùng để thiết lập và điều khiển các khối chức năng bên ngoài (ví dụ như ADC, PWM, ). Phần này sẽ đề cập đến các thanh ghi liên quan đến các chức năng bên trong. Các thanh ghi dùng để thiết lập và điều khiển các khối chức năng sẽ được nhắc đến khi ta đề cập đến các khối chức năng đó. Thanh ghi STATUS (03h, 83h, 103h, 183h):thanh ghi chứa kết quả thực hiện phép toán của khối ALU, trạng thái reset và các bit chọn bank cần truy xuất trong bộ nhớ dữ liệu. Thanh ghi OPTION_REG (81h, 181h): thanh ghi này cho phép đọc và ghi, cho phép điều khiển chức năng pull-up của các chân trong PORTB, xác lập các tham số về xung tác động, cạnh tác động của ngắt ngoại vi và bộ đếm Timer0. Thanh ghi INTCON (0Bh, 8Bh,10Bh, 18Bh):thanh ghi cho phép đọc và ghi, chứa các bit điều khiển và các bit cờ hiệu khi timer0 bị tràn, ngắt ngoại vi RB0/INT và ngắt interrput-on-change tại các chân của PORTB. Thanh ghi PIE1 (8Ch): chứa các bit điều khiển chi tiết các ngắt của các khối chức năng ngoại vi. Thanh ghi PIR1 (0Ch) chứa cờ ngắt của các khối chức năng ngoại vi, các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1. Thanh ghi PIE2 (8Dh): chứa các bit điều khiển các ngắt của các khối chức năng CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM. Thanh ghi PIR2 (0Dh): chứa các cờ ngắt của các khối chức năng ngoại vi, các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE2. Thanh ghi PCON (8Eh): chứa các cờ hiệu cho biết trạng thái các chế độ reset của vi điều khiển. 6.2 THANH GHI MỤC ĐÍCH CHUNG GPR Các thanh ghi này có thể được truy xuất trực tiếp hoặc gián tiếp thông qua thanh ghi FSG (File Select Register). Đây là các thanh ghi dữ liệu thông thường, người sử dụng có thể tùy theo mục đích chương trình mà có thể dùng các thanh ghi này để chứa các biến số, hằng số, kết quả hoặc các tham số phục vụ cho chương trình. 7 STACK Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là một vùng nhớ đặc biệt không cho phép đọc hay ghi. Khi lệnh CALL được thực hiện hay khi một ngắt xảy ra làm chương trình bị rẽ nhánh, giá trị của bộ đếm chương trình PC tự động được vi điều khiển cất vào trong stack. Khi một trong các lệnh RETURN, RETLW hat RETFIE được thực thi, giá trị PC sẽ tự động được lấy ra từ trong stack, vi điều khiển sẽ thực hiện tiếp chương trình theo đúng qui trình định trước. Bộ nhớ Stack trong vi điều khiển PIC họ 16F87xA có khả năng chứa được 8 địa chỉ và hoạt động theo cơ chế xoay vòng. Nghĩa là giá trị cất vào bộ nhớ Stack lần thứ 9 sẽ ghi đè lên giá trị cất vào Stack lần đầu tiên và giá trị cất vào bộ nhớ Stack lần thứ 10 sẽ ghi đè lên giá tri6 cất vào Stack lần thứ 2. Cần chú ý là không có cờ hiệu nào cho biết trạng thái stack, do đó ta không biết được khi nào stack tràn. Bên cạnh đó tập lệnh của vi điều khiển dòng PIC cũng không có lệnh POP hay PUSH, các thao tác với bộ nhớ stack sẽ hoàn toàn được điều khiển bởi CPU. 8 CÁC CỔNG XUẤT NHẬP CỦA PIC16F877A Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương tác với thế giới bên ngoài. Sự tương tác này rất đa dạng và thông qua quá trình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng. Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng chân trong mỗi cổng có thể khác nhau. Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường, một số chân xuất nhập còn có thêm các chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nêu trên đối với thế giới bên ngoài. Chức năng của từng chân xuất nhập trong mỗi cổng hoàn toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên quan đến chân xuất nhập đó. Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD và PORTE. Cấu trúc và chức năng của từng cổng xuất nhập sẽ được đề cập cụ thể trong phần sau. 8.1 PORTA PORTA (RPA) bao gồm 6 I/O pin. Đây là các chân “hai chiều” (bidirectional pin), nghĩa là có thể xuất và nhập được. Chức năng I/O này được điều khiển bởi thanh ghi TRISA (địa chỉ 85h). Muốn xác lập chức năng của một chân trong PORTA là input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong PORTA là output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA. Thao tác này hoàn toàn tương tự đối với các PORT và các thanh ghi điều khiển tương ứng TRIS (đối với PORTA là TRISA, đối với PORTB là TRISB, đối với PORTC là TRISC, đối với PORTD là TRISD vàđối với PORTE là TRISE). Bên cạnh đó PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog ngõ vào xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port). Đặc tính này sẽ được trình bày cụ thể trong phần sau. Cấu trúc bên trong và chức năng cụ thể của từng chân trong PORTA sẽ được trình bày cụ thể trong Phụ lục 1. Các thanh ghi SFR liên quan đến PORTA bao gồm: PORTA (địa chỉ 05h) : chứa giá trị các pin trong PORTA. TRISA (địa chỉ 85h) : điều khiển xuất nhập. CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh. CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp. ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC. Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2. 8.2 PORTB PORTB (RPB) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là TRISB. Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau. PORTB còn liên quan đến ngắt ngoại vi và bộ Timer0. PORTB còn được tích hợp chức năng điện trở kéo lên được điều khiển bởi chương trình. Cấu trúc bên trong và chức năng cụ thể của từng chân trong PORTB sẽ được trình bày cụ thể trong Phụ lục 1. Các thanh ghi SFR liên quan đến PORTB bao gồm: PORTB (địa chỉ 06h,106h) : chứa giá trị các pin trong PORTB TRISB (địa chỉ 86h,186h) : điều khiển xuất nhập OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Timer0. Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2. 8.3 PORTC PORTC (RPC) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là TRISC. Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ Timer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART. Cấu trúc bên trong và chức năng cụ thể của từng chân trong PORTC sẽ được trình bày cụ thể trong Phụ lục 1. Các thanh ghi điều khiển liên quan đến PORTC: PORTC (địa chỉ 07h) : chứa giá trị các pin trong PORTC TRISC (địa chỉ 87h) : điều khiển xuất nhập. Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2. 8.4 PORTD PORTD (RPD) gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng là TRISD. PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port). Cấu trúc bên trong và chức năng cụ thể của từng chân trong PORTD sẽ được trình bày cụ thể trong Phụ lục 1. Các thanh ghi liên quan đến PORTD bao gồm: Thanh ghi PORTD : chứa giá trị các pin trong PORTD. Thanh ghi TRISD : điều khiển xuất nhập. Thanh ghi TRISE : điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP. Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2. 8.5 PORTE PORTE (RPE) gồm 3 chân I/O. Thanh ghi điều khiển xuất nhập tương ứng là TRISE. Các chân của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là các chân điều khiển của chuẩn giao tiếp PSP. Cấu trúc bên trong và chức năng cụ thể của từng chân trong PORTE sẽ được trình bày cụ thể trong Phụ lục 1. Các thanh ghi liên quan đến PORTE bao gồm: PORTE : chứa giá trị các chân trong PORTE. TRISE : điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP. ADCON1 : thanh ghi điều khiển khối ADC. Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2. 9 TIMER_0 Đây là một trong ba bộ đếm hoặc bộ định thời của vi điều khiển PIC16F877A. Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần số (prescaler) 8 bit. Cấu trúc của Timer0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực của xung clock. Ngắt Timer0 sẽ xuất hiện khi Timer0 bị tràn. Bit TMR0IE (INTCON) là bit điều khiển của Timer0. TMR0IE=1 cho phép ngắt Timer0 tác động, TMR0IF= 0 không cho phép ngắt Timer0 tác động. Muốn Timer0 hoạt động ở chế độ Timer ta clear bit TOSC (OPTION_REG), khi đó giá trị thanh ghi TMR0 sẽ tăng theo từng chu kì xung đồng hồ (tần số vào Timer0 bằng ¼ tần số oscillator). Khi giá trị thanh ghi TMR0 từ FFh trở về 00h, ngắt Timer0 sẽ xuất hiện. Thanh ghi TMR0 cho phép ghi và xóa được giúp ta ấn định thời điểm ngắt Timer0 xuất hiện một cách linh động. Muốn Timer0 hoạt động ở chế độ counter ta set bit TOSC (OPTION_REG). Khi đó xung tác động lên bộ đếm được lấy từ chân RA4/TOCK1. Bit TOSE (OPTION_REG) cho phép lựa chọn cạnh tác động vào bột đếm. Cạnh tác động sẽ là cạnh lên nếu TOSE=0 và cạnh tác động sẽ là cạnh xuống nếu TOSE=1. Khi thanh ghi TMR0 bị tràn, bit TMR0IF (INTCON) sẽ được set. Đây chính là cờ ngắt của Timer0. Cờ ngắt này phải được xóa bằng chương trình trước khi bộ đếm bắt đầu thực hiện lại quá trình đếm. Ngắt Timer0 không thể “đánh thức” vi điều khiển từ chế độ sleep. Bộ chia tần số (prescaler) được chia sẻ giữa Timer0 và WDT (Watchdog Timer). Điều đó có nghĩa là nếu prescaler được sử dụng cho Timer0 thì WDT sẽ không có được hỗ trợ của prescaler và ngược lại. Prescaler được điều khiển bởi thanh ghi OPTION_REG. Bit PSA (OPTION_REG) xác định đối tượng tác động của prescaler. Các bit PS2:PS0 (OPTION_REG) xác định tỉ số chia tần số của prescaler. Xem lại thanh ghi OPTION_REG để xác định lại một cách chi tiết về các bit điều khiển trên. Các lệnh tác động lên giá trị thanh ghi TMR0 sẽ xóa chế độ hoạt động của prescaler. Khi đối tượng tác động là Timer0, tác động lên giá trị thanh ghi TMR0 sẽ xóa prescaler nhưng không làm thay đổi đối tượng tác động của prescaler. Khi đối tượng tác động là WDT, lệnh CLRWDT sẽ xóa prescaler, đồng thời prescaler sẽ ngưng tác vụ hỗ trợ cho WDT. Các thanh ghi điều khiển liên quan đến Timer0 bao gồm: TMR0 (địa chỉ 01h, 101h) : chứa giá trị đếm của Timer0. INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE và PEIE). OPTION_REG (địa chỉ 81h, 181h): điều khiển prescaler. Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2. 10 TIMER_1 Timer1 là bộ định thời 16 bit, giá trị của Timer1 sẽ được lưu trong hai thanh ghi (TMR1H:TMR1L). Cờ ngắt của Timer1 là bit TMR1IF (PIR1). Bit điều khiển của Timer1 sẽ là TMR1IE (PIE). Tương tự như Timer0, Timer1 cũng có hai chế độ hoạt động: chế độ định thời (timer) với xung kích là xung clock của oscillator (tần số của timer bằng ¼ tần số của oscillator) và chế độ đếm (counter) với xung kích là xung phản ánh các sự kiện cần đếm lấy từ bên ngoài thông qua chân RC0/T1OSO/T1CKI (cạnh tác động là cạnh lên). Việc lựa chọn xung tác động (tương ứng với việc lựa chọn chế độ hoạt động là timer hay counter) được điều khiển bởi bit TMR1CS (T1CON). Sau đây là sơ đồ khối của Timer1: Ngoài ra Timer1 còn có chức năng reset input bên trong được điều khiển bởi một trong hai khối CCP (Capture/Compare/PWM). Khi bit T1OSCEN (T1CON) được set, Timer1 sẽ lấy xung clock từ hai chân RC1/T1OSI/CCP2 và RC0/T1OSO/T1CKI làm xung đếm. Timer1 sẽ bắt đầu đếm sau cạnh xuống đầu tiên của xung ngõ vào. Khi đó PORTC sẽ bỏ qua sự tác động của hai bit TRISC và PORTC được gán giá trị 0. Khi clear bit T1OSCEN Timer1 sẽ lấy xung đếm từ oscillator hoặc từ chân RC0/T1OSO/T1CKI. Timer1 có hai chế độ đếm là đồng bộ (Synchronous) và bất đồng bộ (Asynchronous). Chế độ đếm được quyết định bởi bit điều khiển (T1CON). Khi =1 xung đếm lấy từ bên ngoài sẽ không được đồng bộ hóa với xung clock bên trong, Timer1 sẽ tiếp tục quá trình đếm khi vi điều khiển đang ở chế độ sleep và ngắt do Timer1 tạo ra khi bị tràn có khả năng “đánh thức” vi điều khiển. Ở chế độ đếm bất đồng bộ, Timer1 không thể được sử dụng để làm nguồn xung clock cho khối CCP (Capture/Compare/Pulse width modulation). Khi =0 xung đếm vào Timer1 sẽ được đồng bộ hóa với xung clock bên trong. Ở chế độ này Timer1 sẽ không hoạt động khi vi điều khiển đang ở chế độ sleep. Các thanh ghi liên quan đến Timer1 bao gồm: INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE và PEIE). PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer1 (TMR1IF). PIE1( địa chỉ 8Ch): cho phép ngắt Timer1 (TMR1IE). TMR1L (địa chỉ 0Eh): chứa giá trị 8 bit thấp của bộ đếm Timer1. TMR1H (địa chỉ 0Eh): chứa giá trị 8 bit cao của bộ đếm Timer1. T1CON (địa chỉ 10h): xác lập các thông số cho Timer1. 11.TIMER_2 Timer2 là bộ định thời 8 bit và được hỗ trợ bởi hai bộ chia tần số prescaler va postscaler. Thanh ghi chứa giá trị đếm của Timer2 là TMR2. Bit cho phép ngắt Timer2 tác động là TMR2ON (T2CON). Cờ ngắt của Timer2 là bit TMR2IF (PIR1). Xung ngõ vào (tần số bằng ¼ tần số oscillator) được đưa qua bộ chia tần số prescaler 4 bit (với các tỉ số chia tần số là 1:1, 1:4 hoặc 1:16 và được điều khiển bởi các bit T2CKPS1:T2CKPS0 (T2CON)). Timer2 còn được hỗ trợ bởi thanh ghi PR2. Giá trị đếm trong thanh ghi TMR2 sẽ tăng từ 00h đến giá trị chứa trong thanh ghi PR2, sau đó được reset về 00h. Kh I reset thanh ghi PR2 được nhận giá trị mặc định FFh. Ngõ ra của Timer2 được đưa qua bộ chia tần số postscaler với các mức chia từ 1:1 đến 1:16. Postscaler được điều khiển bởi 4 bit T2OUTPS3:T2OUTPS0. Ngõ ra của postscaler đóng vai trò quyết định trong việc điều khiển cờ ngắt. Ngoài ra ngõ ra của Timer2 còn được kết nối với khối SSP, do đó Timer2 còn đóng vai trò tạo ra xung clock đồng bộ cho khối giao tiếp SSP. Các thanh ghi liên quan đến Timer2 bao gồm: INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép toàn bộ các ngắt (GIE và PEIE). PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer2 (TMR2IF). PIE1 (địa chị 8Ch): chứa bit điều khiển Timer2 (TMR2IE). TMR2 (địa chỉ 11h): chứa giá trị đếm của Timer2. T2CON (địa chỉ 12h): xác lập các thông số cho Timer2. PR2 (địa chỉ 92h): thanh ghi hỗ trợ cho Timer2. Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2. Ta có một vài nhận xét về Timer0, Timer1 và Timer2 như sau: Timer0 và Timer2 là bộ đếm 8 bit (giá trị đếm tối đa là FFh), trong khi Timer1 là bộ đếm 16 bit (giá trị đếm tối đa là FFFFh). Timer0, Timer1 và Timer2 đều có hai chế độ hoạt động là timer và counter. Xung clock có tần số bằng ¼ tần số của oscillator. Xung tác động lên Timer0 được hỗ trợ bởi prescaler và có thể được thiết lập ở nhiều chế độ khác nhau (tần số tác động, cạnh tác động) trong khi các thông số của xung tác động lên Timer1 là cố định. Timer2 được hỗ trợ bởi hai bộ chia tần số prescaler và postcaler độc lập, tuy nhiên cạnh tác động vẫn được cố định là cạnh lên. Timer1 có quan hệ với khối CCP, trong khi Timer2 được kết nối với khối SSP. Một vài so sánh sẽ giúp ta dễ dàng lựa chọn được Timer thích hợp cho ứng dụng. 12 ADC ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai dạng tương tự và số. PIC16F877A có 8 ngõ vào analog (RA4:RA0 và RE2:RE0). Hiệu điện thế chuẩn VREF có thể được lựa chọn là VDD, VSS hay hiệu điện thể chuẩn được xác lập trên hai chân RA2 và RA3. Kết quả chuyển đổi từ tín tiệu tương tự sang tín hiệu số là 10 bit số tương ứng và được lưu trong hai thanh ghi ADRESH:ADRESL. Khi không sử dụng bộ chuyển đổi ADC, các thanh ghi này có thể được sử dụng như các thanh ghi thông thường khác. Khi quá trình chuyển đổi hoàn tất, kết quả sẽ được lưu vào hai thanh ghi ADRESH:ADRESL, bit (ADCON0) được xóa về 0 và cờ ngắt ADIF được set. Qui trình chuyển đổi từ tương tự sang số bao gồm các bước sau: 1. Thiết lập các thông số cho bộ chuyển đổi ADC: Chọn ngõ vào analog, chọn điện áp mẫu (dựa trên các thông số của thanh ghi ADCON1) Chọnh kênh chuyển đổi AD (thanh ghi ADCON0). Chọnh xung clock cho kênh chuyển đổi AD (thanh ghi ADCON0). Cho phép bộ chuyển đổi AD hoạt động (thanh ghi ADCON0). 2. Thiết lập các cờ ngắt cho bộ AD Clear bit ADIF. Set bit ADIE. Set bit PEIE. Set bit GIE. 3. Đợi cho tới khi quá trình lấy mẫu hoàn tất. 4. Bắt đầu quá trình chuyển đổi (set bit ). 5. Đợi cho tới khi quá trình chuyển đổi hoàn tất bằng cách: Kiểm tra bit . Nếu =0, quá trình chuyển đổi đã hoàn tất. Kiểm tra cờ ngắt. 6. Đọc kết quả chuyển đổi và xóa cờ ngắt, set bit (nếu cần tiếp tục chuyển đổi). 7. Tiếp tục thực hiện các bước 1 & 2 cho quá trình chuyển đổi tiếp theo Cần chú ý là có hai cách lưu kết quả chuyển đổi AD, việc lựa chọn cách lưu được điều khiển bởi bit ADFM và được minh họa cụ thể trong hình sau: Các thanh ghi liên quan đến bộ chuyển đổi ADC bao gồm: INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép các ngắt (các bit GIE, PEIE). PIR1 (địa chỉ 0Ch): chứa cờ ngắt AD (bit ADIF). PIE1 (địa chỉ 8Ch): chứa bit điều khiển AD (ADIE). ADRESH (địa chỉ 1Eh) và ADRESL (địa chỉ 9Eh): các thanh ghi chứa kết quả chuyển đổi AD. ADCON0 (địa chỉ 1Fh) và ADCON1 (địa chỉ 9Fh): xác lập các thông số cho bộ chuyển đổi AD. PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): liên quan đến các ngõ vào analog ở PORTA. PORTE (địa chỉ 09h) và TRISE (địa chỉ 89h): liên quan đến các ngõ vào analog ở PORTE. 13 COMPARATOR Bộ so sánh bao gồm hai bộ so so sánh tín hiệu analog và được đặt ở PORTA. gõ vào bộ so sánh là các chân RA3:RA0, ngõ ra là hai chân RA4 và RA5. Thanh ghi điều khiển bộ so sánh là CMCON. Các bit CM2:CM0 trong thanh ghi CMCON đóng vai trò chọn lựa các chế độ hoạt động cho bộ Comparator (hình 2.10). Cơ chế hoạt động của bộ Comparator như sau: Tín hiệu analog ở chân VIN + sẽ được só sánh với điện áp chuẩn ở chân VIN- và tín hiệu ở ngõ ra bộ so sánh sẽ thay đổi tương ứng như hình vẽ. Khi điện áp ở chân VIN+ lớn hơn điện áp ở chân VIN+ ngõ ra sẽ ở mức 1 và ngược lại. Dựa vào hình vẽ ta thấy đáp ứng tại ngõ ra không phải là tức thời so với thay đổi tại ngõ vào mà cần có một khoảng thời gian nhất định để ngõ ra thay đổi trạng thái (tối đa là 10us). Cần chú ý đến khoảng thời gian đáp ứng này khi sử dụng bộ so sánh. Cực tính của các bộ so sánh có thể thay đổi dựa vào các giá trị đặt vào các bit C2INV và C1INV (CMCON). Các chế độ hoạt động của bộ comparator. Các bit C2OUT và C1OUT (CMCON) đóng vai trò ghi nhận sự thay đổi tín hiệu analog so với điện áp đặt trước. Các bit này cần được xử lí thích hợp bằng chương trình để ghi nhận sự thay đổi của tín hiệu ngõ vào. Cờ ngắt của bộ so sánh là bit CMIF (thanh ghi PIR1). Cờ ngắt này phải được reset về 0. Bit điều khiển bộ so sánh là bit CMIE (Tranh ghi PIE). Các thanh ghi liên quan đến bộ so sánh bao gồm: CMCON (địa chỉ 9Ch) và CVRCON (địa chỉ 9Dh): xác lập các thông số cho bộ so sánh. Thanh ghi INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): chứa các bit cho phép các ngắt (GIE và PEIE). Thanh ghi PIR2 (địa chỉ 0Dh): chứa cờ ngắt của bộ so sánh (CMIF). Thanh ghi PIE2 (địa chỉ 8Dh): chứa bit cho phép bộ so sánh (CNIE). Thanh ghi PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): các thanh ghi điều khiển PORTA. Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2. 14 BỘ TẠO ĐIỆN ÁP SO SÁNH Bộ so sánh này chỉ hoạt động khi bộ Comparator đựơc định dạng hoạt động ở chế độ ‘110’. Khi đó các pin RA0/AN0 và RA1/AN1 (khi CIS = 0) hoặc pin RA3/AN3 và RA2/AN2 (khi CIS = 1) sẽ là ngõ vào analog của điện áp cần so sánh đưa vào ngõ VIN- của 2 bộ so sánh C1 và C2 (xem chi tiết ở hình 2.10). Trong khi đó điện áp đưa vào ngõ VIN+ sẽ được lấy từ một bộ tạo điện áp so sánh. Sơ đồ khối của bộ tạo điện áp so sánh đựơc trình bày trong hình vẽ sau: Bộ tạo điện áp so sánh này bao gồm một thang điện trở 16 mức đóng vai trò là cầu phân áp chia nhỏ điện áp VDD thành nhiều mức khác nhau (16 mức). Mỗi mức có giá trị điện áp khác nhau tùy thuộc vào bit điều khiển CVRR (CVRCON). Nếu CVRR ở mức logic 1, điện trở 8R sẽ không có tác dụng như một thành phần của cầu phân áp (BJT dẫn mạnh và dòng điện không đi qua điện trở 8R), khi đó 1 mức điện áp có giá trị VDD/24. Ngược lại khi CVRR ở mức logic 0, dòng điện sẽ qua điện trở 8R và1 mức điện áp có giá trị VDD/32. Các mức điện áp này được đưa qua bộ MUX cho phép ta chọn được điện áp đưa ra pin RA2/AN2/VREF-/CVREF để đưa vào ngõ VIN+ của bộ so sánh bằng cách đưa các giá trị thích hợp vào các bit CVR3:CVR0. Bộ tạo điện áp so sánh này có thể xem như một bộ chuyển đổi D/A đơn giản. Giá trị điện áp cần so sánh ở ngõ vào Analog sẽ được so sánh với các mức điện áp do bộ tạo điện áp tạo ra cho tới khi hai điện áp này đạt được giá trị xấp xỉ bằng nhau. Khi đó kết quả chuyển đổi xem như được chứa trong các bit CVR3:CVR0. Các thanh ghi liên quan đến bộ tạo điện áp so sánh này bao gồm: Thanh ghi CVRCON (địa chỉ 9Dh): thanh ghi trực tiếp điều khiển bộ so sánh điện áp. Thanh ghi CMCON (địa chỉ 9Ch): thanh ghi điều khiển bộ Comparator. Chi tiết về các thanh ghi sẽ được trình bày cụ thể ở phụ lục 2. 3.2. CÁC LINH KIỆN KHÁC TRONG MẠCH QUANG BÁO  IC 74HC573: 74HC573 là mạch chốt tín hiệu tốc độ cao được chế tạo theo cơng nghệ CMOS. IC 74HC573 sử dụng để giải mã khi kết nối vi xử lý với bộ nhớ ngồi. IC 74HC573 gồm 8 mạch chốt là các Flip-Flop cùng với 8 bộ đệm ngõ ra 3 trạng thái. IC này cĩ hai chân điều khiển: chân cho phép nhập dữ liệu (LE) vào IC, chân cịn lại (/OE) quyết định việc xuất dữ liệu của IC, cả hai chân này làm việc độc lập với nhau. 16 1 2 3 4 5 6 7 8 15 14 13 12 11 9 10 VCC GND /OE D2 D1 O1 O2 O3 D3 O8 D8 D7 O7 O6 D6 D5 74573 20 19 17 18 D4 O4 O5 LE Chức năng các chân của IC như sau:  VCC, GND: hai chân này dùng để cấp nguồn nuơi cho IC, VCC nối với +5V, GND được nối mass.  LE: Latch Enable, chân cho phép chốt dữ liệu. Khi chân này ở mức logic cao thì dữ liệu mới được phép nhập vào IC, khi nĩ ở mức logic thấp thì dữ liệu mới khơng được phép nhập vào và dữ liệu cũ (đã được đưa vào trước đĩ) vẫn cịn ở ngõ ra của nĩ.  /OE: Output Enable, chân cho phép xuất dữ liệu. Khi chân này ở mức logic thấp thì dữ liệu ở ngõ ra của Flip-Flop (bên trong IC) được đưa ra ngồi. Ngược lại, khi chân này ở mức logic cao thì dữ liệu khơng được phép đưa ra ngồi và tất cả cá ngõ ra đều ở trạng thái tổng trở cao.  D1 – D8: Data Inputs, các ngõ vào của IC. Dữ liệu được đưa vào IC thơng qua các ngõ này.  O1 – O8: Out Puts, các ngõ ra tương ứng với các ngõ vào trên. Cụ thể là ngõ ra O1 tương ứng với ngõ vào D1, O2 tương ứng với D2, O8 tương ứng với D8. Sơ đồ khối: Hình 3.6: Sơ đồ khối 74HC573 LATCH ENABLE LE D G D D1 D G G O O O D2 D8 O1 O2 O8 OUTPUT ENABLE OE Đặc điểm của vi mạch:  Tốc độ truyền tín hiệu từ đầu vào sang đầu ra chỉ cĩ 18ns.  Phạm vi điện áp hoạt động: 2 – 5.5V.  Dịng điện đầu vào thấp nhất: 1uA. Nguyên tắc hoạt động của IC 74573: Dựa vào bảng trạng thái ta nhận thấy dữ liệu mới chỉ được phép truyền qua IC khi cả hai chân điều khiển (LE và OE) ở mức logic thích hợp: LE ở mức logic cao, OE ở mức logic thấp. Khi cả hai chân điều khiển ở trạng thái này thì dữ liệu ở ngõ vào sẽ được đưa vào bên trong IC (truyền qua các Flip-Flop) và đưa thẳng ra ngồi thơng qua các cổng đệm ngõ ra 3 trạng thái. Khi chân OE ở mức logic thấp (cho phép) mà chân LE cũng ở mức logic thấp (cấm) thì dữ liệu ở ngõ ra của IC là dữ liệu cũ (vừa mới được truyền qua IC). Lúc này dữ liệu mới ở ngõ vào sẽ khơng được phép nhập vào IC. Ngược lại, khi chân OE ở mức logic cao thì ngõ ra của IC sẽ ở trạng thái tổng trở cao, bất chấp trạng thái logic của các ngõ vào cịn lại. Mặc dù ngõ ra ở trạng thái tổng trở cao nhưng dữ liệu ở ngõ vào (nếu cĩ) vẫn được phép đưa vào IC (đưa đến ngõ ra của các Flip-Flop ở bên trong IC). Dữ liệu này sẽ được phép truyền đến ngõ ra khi chân OE về lại mức logic thấp. Khi cả hai chân điều khiển đều ở trạng thái cấm (chân OE ở mức logic cao, chân LE ở mức logic thấp) thì ngõ ra sẽ ở trạng thái tổng trở cao và ngõ vào sẽ khơng được phép nhập dữ liệu mớivào. Như vậy, ở trạng thái này thì IC hồn tồn khơng giao tiếp với bất kỳ linh kiện nào khác ở cả ngõ vào và ngõ ra. Output Enable (OE) Latch Enable (LE) D Output Q L L L H H L H L X H L Q0 H X X Z Bảng 3.13:Trạng thái hoạt động74HC573 L:Trạng thái thấp Z: Trở kháng mức cao H:Trạng thái cao Q0: Điều kiện trước  LED MA TRẬN: Led ma trận dùng để chỉ thị, hiển thị, làm nguồn sáng trong các máy in lazer, ngồi ra cịn được sử dụng trong các hệ thống thơng tin dựa vào quang sợi. Led ma trận được coi là một trong nguồn quang điện phổ biến nhất. Về cấu tạo led ma trận gồm nhiều led đơn ghép lại. Cĩ hai loại: Anode chung ( cột Anode, hàng Catode) và Catode chung (cột Catode, hàng Anode), đa dạng về màu sắc.. Hình 3.17 : Hình dạng thực tế Hình 3.18: Cấu trúc bên trong của led ma trận 8x8 Dịng làm việc khoảng 10mA, và Điện áp làm việc khoảng 2,6V. Điều quan trọng khi sử dụng led là luơn mắc nối tiếp với một điện trở. RT = V V I B D F  VB : Điện thế nguồn VD : Điện thế ngưỡng của led IF : Dịng điện qua led Điện áp ngưỡng của led cĩ các trị số sau : đỏ 1,6 ... 2V cam 2,2 ... 3V xanh lá cây 2,7 ... 3,2V vàng 2,4 ... 3,2V xang da trời 3,0 ... 5V CHƯƠNG 4 CÁC PHƯƠNG PHÁP HIỂN THỊ LED MA TRẬN Led ma trận được coi là một trong các nguồn quang điện tử phổ biến nhất. Nĩ khơng đắt, tiêu thụ ít cơng suất, và dễ dàng thích hợp cho các mạch điện tử. Led ma trận hiển thị bao gồm nhiều led ma trận nhỏ kết hợp lại tạo thành một ma trận gồm m cột và n hàng (led ma trận m×n). Led ma trận 8×8 là led ma trận gồm cĩ 8 cột và 8 hàng. Led ma trận này cĩ hai loại: loại thứ nhất là cathode chung (cột cathode, hàng anode), loại thứ hai là anode chung (cột anode, hàng cathode). Sau đây là các phương pháp hiển thị ma trận led. 4.1 PHƯƠNG PHÁP HIỂN THỊ SỬ DỤNG IC CHỐT: Hiển thị led ma trận bằng phương pháp chốt giúp cho người lập trình thay đổi cách thức quét và hiển thị một cách linh hoạt và nhanh chĩng. matrix_3mau 12 9 6 3 13 16 19 22 11852141720231074115182124 c1 c2 c3 c4 c5 c6 c7 c8 hx 1 hx 2 hx 3 hx 4 hx 5 hx 6 hx 7 hx 8 hd 1 hd 2 hd 3 hd 4 hd 5 hd 6 hd 7 hd 8 DM74LS573 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 LE O E Q 0 Q 1 Q 2 Q 3 Q 4 Q 5 Q 6 Q 7 DM74LS573 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 U7 DM74LS573 23456789111 1918171615141312 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 LEO E Q 0 Q 1 Q 2 Q 3 Q 4 Q 5 Q 6 Q 7 Hình 4.1: Giao tiếp led ma trận dùng phương pháp chốt. 4.1.1. CHỐT HÀNG: Chốt hàng là phương pháp trong một khoảng thời gian xác định chỉ cĩ một cột được tích cực, dữ liệu được đưa ra 8 hàng rồi chốt lại, dữ liệu được hiển thị trên màn hình led ma trận. Sau đĩ dữ liệu kế tiếp được đưa ra 8 hàng và được chốt lại bởi một IC chốt khác, trong khi đĩ dữ liệu trước đĩ vẫn hiện diện tại ngõ ra của IC chốt. Như vậy dữ liệu của hàng nào được đưa ra đúng địa chỉ của hàng đĩ trong khi các dữ liệu của các hàng khác vẫn hiện diện trên hàng mà khơng bị mất đi. Việc thực hiện chốt hàng được thể hiện ở lưu đồ như sau: Hình 4.2: Qui trình hiển thị chốt hàng. 4.1.2 CHỐT CỘT: Chốt cột là phương pháp trong một khoảng thời gian xác định chỉ cĩ một hàng được tích cực, dữ liệu được đưa ra 8 cột rồi chốt lại, dữ liệu được hiển thị trên màn hình led ma trận. Sau đĩ dữ liệu được đưa ra 8 cột kế tiếp và được chốt lại bởi một IC chốt khác, trong khi đĩ dữ liệu trước đĩ vẫn hiện diện tại ngõ ra của IC chốt (dữ liệu vẫn hiện diện tại các cột). Như vậy dữ liệu của cột nào được đưa ra đúng địa chỉ của cột đĩ trong khi các dữ liệu của các cột khác vẫn hiện diện trên cột mà khơng bị mất đi. Việc thực hiện chốt cột được thể hiện ở lưu đồ như sau: Hình 4.3: Qui trình hiển thị chốt cột.. Ưu, nhược điểm của phương pháp hiền thị led ma trận sử dụng IC chốt:  Ưu điểm:  Mở rộng số hàng, số cột của bảng quang báo.  Dữ liệu được truyền đi nhanh.  Chuyển đổi cách quét hàng, cột một cách linh hoạt.  Nhược điểm:  Tạo bảng mã khĩ khăn.  Khĩ khăn trong việc lập trình xuất dữ liệu ra. 4.2 PHƯƠNG PHÁP HIỂN THỊ SỬ DỤNG THANH GHI DỊCH: 4.2.1 QUÉT HÀNG: a) Giới thiệu chung về phương pháp quét hàng. 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 độ > 24hình /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. Vcc Vcc H7 R26 27 H 8 Vcc R42 3K3 R16 1K R2 27 R15 3K3 Q8 TIP42 CTRL_B15 R35 27Q7 C1815 R28 1K R7 1K R41 27 R1 1K H 5 Q28 TIP42 CTRL_B7 R47 27 R19 1K H15 R44 27 R27 3K3 Q23 C1815 R24 3K3 Q18 TIP42 H4 R20 27 R22 1K H 6 H 3 CTRL_B8 R18 3K3 R17 27 H6 H 2 Q21 C1815 R6 3K3 Q32 TIP42 R21 3K3 CTRL_B12 CTRL_B14 CTRL_B9 Q10 TIP42 Vcc U7 matrix_3mau 12 9 6 3 13 16 19 22 11852141720231074115182124 c1 c2 c3 c4 c5 c6 c7 c8 hx 1 hx 2 hx 3 hx 4 hx 5 hx 6 hx 7 hx 8 hd 1 hd 2 hd 3 hd 4 hd 5 hd 6 hd 7 hd 8 Q17 C1815 R46 1K U1 TPIC6B595/SO 3 18 121398 456714151617 S D I S D O R C LK S R C LK GS R C LR D R A IN 0 D R A IN 1 D R A IN 2 D R A IN 3 D R A IN 4 D R A IN 5 D R A IN 6 D R A IN 7 R13 1K R34 1K CTRL_B3 H9 H3 Q31 C1815 Q11 C1815 CTRL_B13 Q26 TIP42 H14 Q4 TIP42 Vcc Vcc Vcc Q9 C1815 R9 3K3 H1 Q16 TIP42 Q27 C1815 H10 Q25 C1815 Q22 TIP42 R23 27 R14 27 R45 3K3 Vcc R11 27 Q29 C1815 H 1 Q5 C1815 Vcc CTRL_B6 R30 3K3 Vcc R36 3K3 Vcc Q13 C1815 Q6 TIP42 R32 27 R37 1K R8 27 U2TPIC6B595/SO 3 18 12 13 9 8 4 5 6 7 14 15 16 17 S D I S D O R C LK S R C LK G S R C LR D R A IN 0 D R A IN 1 D R A IN 2 D R A IN 3 D R A IN 4 D R A IN 5 D R A IN 6 D R A IN 7 Q15 C1815 R33 3K3 Vcc H2 Q30 TIP42 R39 3K3 H 7 Q20 TIP42 CTRL_B11 R29 27 R12 3K3 R38 27 R31 1K Vcc Q19 C1815 H16 H13 Q1 C1815 CTRL_B2 H5 R4 1K Q24 TIP42 R48 3K3 Q2 TIP42 R40 1K CTRL_B5 R5 27 Vcc H 4 H12 R3 3K3 Q14 TIP42 Vcc Q3 C1815 R25 1K CTRL_B4 CTRL_B1 Vcc R10 1K Q12 TIP42 H11 R43 1K CTRL_B10 CTRL_B16 Hình 4.4: Sơ đồ mạch thanh ghi. b) Quá trình thực hiện quét hàng: 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. VD: Đưa dữ liệu ra 8 cột được diễn ra như sau: Hình 4.5: Qui trình đưa dữ liệu ra 8 cột cho led ma trận. 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 > 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. Ví dụ: Hiển thị chữ B lên màn hình led ma trận (hàng được tích cực ở mức 1, cột được tích cực ở mức 0). Hình 4.6: Hiển thị chữ B trên led ma trận dùng phương pháp quét hàng. Hàng 1 Hàng 8 Cột 8 Cột 1 Dữ liệu thứ nhất cĩ giá trị: 11111111 được đưa ra cột tích cực hàng thứ nhất (điều khiển hàng thứ nhất cho ra giá trị là 1); dữ liệu thứ hai cĩ giá trị: 00001111 đưa ra cột, tích cực hàng thứ hai; dữ liệu thứ 3 cĩ giá trị: 01110111 đưa ra cột, tích cực hàng thứ 3; dữ liệu thứ 4 cĩ giá trị: 01110111 đưa ra cột, tích cực hàng thứ 4; tiếp tục đữ liệu hàng thứ 5 cĩ giá trị: 00001111 đưa ra cột, tích cực hàng thứ 5; kế tiếp là dữ liệu của hàng thứ 6 cĩ giá trị: 01110111 được đưa ra cột, tích cực hàng thứ 6 ; dữ liệu của hàng thứ 7 cĩ giá trị: 01110111 đưa ra cột, tích cực hàng thứ 7; dữ liệu thứ 8 cĩ giá trị: 00001111 đưa ra cột, tích cực hàng thứ 8. Như vậy tồn bộ dữ liệu của chữ B đã được đưa ra hiển thị trên màn hình led ma trận. Quá trình trên được diễn ra rất nhanh > 24lần/ 1s nên chúng ta cĩ cảm giác nĩ diễn ra một cách đồng thời nhờ đĩ mà chúng ta quan sát được trên màn hình led ma trậnlà một chữ B liên tục. 4.2.2 Quét cột: a) Giới thiệu chung về phương pháp quét cột. 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 độ > 24 hình/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. b) Quá trình thực hiện quét cột. 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 man 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 > 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. Ví dụ: Hiển thị chữ B lên màn hình led ma trận (hàng được tích cực ở mức1, cột được tích cực ở mức 0). Hình 4.7: Hiển thị chữ B trên led ma trận dùng phương pháp quét cột. Hàng 1 Hàng 8 Cột 8 Cột 1 Dữ liệu thứ nhất cĩ gía trị: 11111110 được đưa ra hàng, tích cực cột thứ nhất (điều khiển cột thứ nhất cho ra giá trị là 0); dữ liệu thứ hai cĩ giá trị: 10010010 đưa ra hàng, tích cực cột thứ hai; dữ liệu thứ 3 cĩ giá trị:10010010 đưa ra hàng, tích cực cột thứ 3; dữ liệu thứ 4 cĩ giá trị: 10010010 đưa ra hàng, tích cực cột thứ 4; tiếp tục đữ liệu hàng thứ 5 cĩ giá trị: 01101100 đưa ra hàng, tích cực cột thứ 5; kế tiếp là dữ liệu của cột thứ 6 cĩ giá trị: 00000000 được đưa ra hang, tích cực cơt thứ 6 ; dữ liệu của cột thứ 7 cĩ giá trị: 00000000 đưa ra hàng, tích cực cột thứ 7; dữ liệu thứ 8 cĩ giá trị: 00000000 đưa ra hàng, tích cực cột thứ 8. Như vậy tồn bộ dữ liệu của chữ B đã được đưa ra hiển thị trên màn hình led ma trận. Quá trình trên được diễn ra rất nhanh > 24lần/ 1s nên chúng ta cĩ cảm giác nĩ diễn ra một cách đồng thời, nhờ đĩ chúng ta quan sát được trên màn hình led ma trận là một chữ B liên tục. Ưu, nhược điểm của phương pháp hiền thị led ma trận sử dụng thanh ghi dịch:  Ưu điểm:  Tiết kiệm đường truyền, hiệu quả kinh tế.  Tiết kiệm chân PORT.  Truyền dữ liệu đi xa hơn.  Mở rộng bảng ma trận lên một cách dễ dàng.  Lập trình dễ dàng trong phương pháp quét cột.  Nhược điểm:  Tốn thời gian để thực hiện việc truyền dữ liệu đến các cột.  Chuyển đổi khơng linh hoạt bằng sử dụng phương pháp chốt.  Lập trình khĩ khăn hơn khi sử dụng phương pháp quét hàng. CHƯƠNG 5 SƠ ĐỒ KHỐI VÀ CHỨC NĂNG TỪNG KHỐI 5.1 SƠ ĐỒ KHỐI HỆ THỐNG: Hình 5.1: Sơ đồ khối của hệ thống. 5.2 Ý NGHĨA TỪNG KHỐI: 5.2.1 Khối điều khiển: Khối điều khiển: Được thiết kế bởi PIC 16F877A cĩ nhiệm vụ xử lý tất cả các dữ liệu của chương trình. Điều khiển dữ liệu hiển thị. Điều khiển xuất nhập dữ liệu. Điều khiển truy xuất dữ liệu và xử lý sau đĩ truyền đến các khối: cơng suất, chốt và đệm để hiển thị trên Led ma trận. VCC b6 D8 DIODE SW1 SW_PB_SPST b8 P1 5 9 4 8 3 7 2 6 1 R3 R C14 33P Y1 12MHz RXV b1 RXMAX VCC C12 CAP RXMAX 0 TXMAX 0 b5 C13 33P b3 R10 1k TXV C8 CAP b7 0 J13 CON9 1 2 3 4 5 6 7 8 9 C5 CAP b4 RXV TXV VCC U14 MAX232 1 3 4 5 16 15 2 6 12 9 11 10 13 8 14 7 C1+ C1- C2+ C2- VC C G N DV+ V- R1OUT R2OUT T1IN T2IN R1IN R2IN T1OUT T2OUT b2 C7 CAP VCC C6 CAP C4 104 TXMAX U13 PIC16F877A 11 12 14 32 13 31 2 3 1 4 5 6 7 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10 Vd d G N DOSC2/CLKOUT M C LR /V PP OSC1/CLK GND RA0/ANO RA1/AN1 VDD/MCLR RA2/AN2 RA3/AN3 RA4/TOCK/C1OUT RA5/AN4 RB0/INT RB1 RB2 RB3 RB4 RB5 RB6/BGC RB7/BGD RC0/T1OSO/ RC1/T1OSI RC2/CCP1 RC3/SCK/SCL RC4/SDA/SDI RC5/SD0 RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 Hình 5.3: Sơ đồ kết nối mạch VĐK. 5.2.2 Khối cơng suất: Nâng cơng suất đủ lớn để cung cấp cho khối hiển thị. Nếu ta dùng các IC để thúc cơng suất thì ta sẽ cĩ dịng ngõ ra cố định, khi muốn dùng tải cơng suất lớn hơn thì ta khĩ cĩ thể sửa đổi lại mạch cơng suất được. Và một điều nữa là theo tính tốn, dịng điện ở mỗi hàng cĩ thể lên tới vài trăm mA , giá trị này cao hơn nhiều so với dịng ngõ cực đại của IC .Do đĩ cần phải thiết kế mạch để thúc cơng suất cho tải. Cịn nhiều cách khác nữa để thúc tải như dùng SCR, Triac, Opto, Relay...Các cách này thường được dùng cho các tải cĩ cơng suất lớn ở ngồi trời. Do tải ở đây là bảng cơng suất khơng lớn lắm nên ta chỉ cần dùng Transistor cơng suất trung bình. Về phương diện cơng suất chính là việc nâng dịng cho dữ liệu hàng và cột nhằm đảm bảo yêu cầu về dịng qua led ma trận, vì phần cứng bao gồm 6 led ma trận, mỗi led ma trận là một khối bao gồm 64 led đơn nên ta chỉ sử dụng C1815, đảm bảo tính ổn định và cung cấp đủ dịng cho tải. Như vậy, cứ mỗi cột ta phải dung một mạch đệm dịng. D1 LED Q1 1R1001 R3 R VCC R4 R Hình 5.4: Sơ đồ nguyên lý mạch đệm dịng. 5.2.3 Khối hiển thị: Cĩ nhiệm vụ dịch chuyển dữ liệu ra các cột, đệm tăng dịng đủ lớn để điều khiển hiển thị các yêu cầu của người sử dụng. Khối hiển thị làm nhiệm vụ dịch dữ liệu từ vi điều khiển, chốt dữ liệu, đệm dữ liệu đủ dịng và hiển thị trên Led ma trận . b8 p5 p21 U9 74HC573 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 p6 p18 p3 LED 5 b8 b6 b6 U7 74HC573 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 p17 p2 p22 p20 LED 2 b7 b6 p13 p10 b1 p7 p14 p1 RN3 R-PACK 1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 RN1 R-PACK 1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 b3 b4 b3 p11 p8 p24 RN2 R-PACK 1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 p12 U8 74HC573 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 p16 p15 b5 b7 b2 LED 3 p19 b1 b8 b4 b3 b1 b7 b4 LED 6 b2 b2 b5 p9 p4 LED 1 LED 4 p23 b5 Hình 5.5: Sơ đồ mạch các IC chốt và hiển thị. Do nhĩm thực hiện đồ án quyết định chọn phương pháp hiển thị bằng IC chốt và quét hàng nên trong khoảng thời gian xác định một cột chỉ phải chịu dịng của một điểm ảnh, dịng ra cực đại tại một ngõ ra là 500mA, với những tính năng trên nhĩm thực hiện quyết định chọn IC 74HC573 để làm thanh ghi dịch và dung BJT C1815 đệm dịng ở cột 5.2.4 Khối nguồn: Trong một mạch điện tử thì bộ nguồn cĩ vai trị rất quan trọng, nĩ quyết định sự hoạt động hay ngưng hoạt động của mạch. Một bộ nguồn khơng tốt sẽ làm cho mạch hoạt động kém ổn định và dể làm hỏng linh kiện. Vì vậy bộ nguồn ổn áp tốt sẽ rất cần thiết cho các mạch điện tử ( mạch dùng các IC số). Chức năng của mọi ổn áp DC là biến đổi điện áp vào DC chưa ổn định thành điện áp ra DC ổn định và giá trị điện áp này phải đúng với giá trị khi tính tốn lý thuyết. Điện áp này phải được duy trì liên tục và khơng thay đổi khi điện áp ngõ vào hoặc dịng tải thay đổi (ở một giới hạn cho phép của mạch). Để thực hiện điều này thì một nguồn ổn áp thường gồm các phần sau: Hình 5.6: Sơ đồ khối của khối nguồn.  Khối chỉnh lưu và lọc: cĩ nhiệm vụ đổi điện áp xoay chiều thành điện áp một chiều và lọc.  Khối cơng suất: cung cấp dịng chính cho tải.  Khối lấy mẫu: lấy một điện áp từ ngõ ra đưa về so sánh với Vref để điều khiển ổn định điện áp. CHƯƠNG 6 TÍNH TỐN 6.1 NGUỒN ĐIỀU KHIỂN:  Sơ đồ mạch: C4 10uf /25V VCC C2 10uF/25V VCC D2 C3 104 C1 1000uf /25V J5 CON2 1 2 R2 1K - + D1 RS403L 2 1 3 4 U1 LM7805 1 3 2 IN OUT G N D Hình 6.1: Sơ đồ mạch nguồn ổn áp 5V Thiết kế: Để an tồ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. Trong đĩ C1, C2 dùng để lọc (nguồn DC chưa ổn định) để ổn định điện áp ngõ vào, C3 dùng để lọc nhiễu cao tần, C4 làm cho áp được phẳng hơn. 6.2. MẠCH NGUỒN RESET: Mạch dùng để thiết lập lại trạng thái ban đầu cho hệ thống, gọi tắt là reset hệ thống. 16f877A được reset bằng cách giữ chân MCLR ở mức thấp. MCLR cĩ thể được tác động bằng tay hoặc được tác động khi cấp nguồn (reset máy). Dưới đây là 2 dạng mạch reset:  Sơ đồ mạch: R2 R MCLR R1 R VCC C2 C SW1 D1 DIODE R2 R MCLR R1 R VCC C2 C Hình 6.2: mach reset tự động -- mạch reset bằng tay Giải thích mạch: Khi vừa cấp nguồn, điện áp trên tụ là 0V ngõ ra đưa đến chân reset ở mức cao, PIC bắt đầu hoạt động ở chế độ này. Sau đĩ tụ nạp điện do đĩ chân reset của PIC luơn ở mức cao, PIC được phép hoạt động. Hoặc khi mạch đang hoạt động mà nhấn nút SW làm IC ngưng hoạt động (do tụ phĩng điện), PIC chỉ hoạt động trở lại khi nút nhấn SW được thả ra và tụ nạp đến một giá trị nào đĩ. để chân reset của PIC khơng cịn bị tác động. Tính tốn: nguồn cung cấp cho mạch là 5V nên các IC thuộc họ CMOS sẽ hiểu mức logic cao khi điện áp các chân ngõ vào là 3.5V, mức thấp là 1V. Do đĩ, để IC thốt khỏi trạng thái reset (mức thấp) thì điện áp ở chân reset (điện áp trên R2) phải ≤ 1V Ta cĩ: VCC = 5V mà Vcc= VC + VR = VC + 1V  VC = 4V ; ( chọn VR=1V khi IC thốt khỏi trạng thái Reset ) Giả sử lúc chưa cĩ điện áp cung cấp, Vcc = 0V, Vc = 0V. Khi cĩ điện áp Vcc =5V, tụ được nạp điện với phương trình nạp: )1( RC t CCC eVV   với:  = RC: thời hằng nạp của tụ. t: thời gian tụ nạp đầy.  )1(54 RC t e   eRC t = 1 - 5 4 = 0.2  RC t = 1,6 Chọn t = 0.13 s  RC= 0.0812 s Chọn C = 10 uF  R = C  = 8.12 K Vậy, ta chọn R2 = 8.2 K . Tính R1: Nhấn nút SW , tụ bắt đầu xã điện: VCC = 5V, (3V>VRESET =VR2) Ta cĩ: VRESET = (VCC /(R1 + R2) x R1 R1 = (VCC .R2 – VRESET .R2)/VRESET = 10K 6.3. MẠCH ĐỆM DỊNG:  Sơ đồ mạch: R1 R R2 R VCC Q1 C1815 5V D1 LED Hình 6.3: Mạch đệm dịng Về phương diện cơng suất chính là việc nâng dịng cho dữ liệu hàng và cột nhằm đảm bảo yêu cầu về dịng qua led ma trận. Đồ án dùng quang báo 8x48 ( tức 8 hàng, 48 cột), nguồn dương đưa vào cột nên cĩ 48 mạch kéo dịng. Tính tốn:  Tính R2 Khi Q1 dẫn bão hịa ta cĩ: Ib = k  min 1I c ;( mà Ic1 Ib2) Vì mach đệm dịng được thiết kế trên cột và quét theo hàng nên khi quét mỗi cột chỉ sang một led. Để mỗi led đơn của led ma trận sáng bình thường trong quá trình quét led ta phân cực như sau: Ic = 20mA VLed = 2V Trong đĩ: IR: dịng qua led ma trận VLed : áp định mức đặt lên mỗi led  Ib = 3x(20/80) = 0.75(mA)  R2 = (Vcc – Vbe –Vled)/Ib= (5 – 0,8 – 2 )/0.75 =3 kΩ  Tính R1: Khi Transistor C1815 dẫn bão hịa thì: R1 = (Vcc – Vce – Vled )/Ic = (5 – 0,2 – 2)/20 = 140 Ω Chọn: R1 = 220 Ω, R2 = 3,3kΩ CHƯƠNG 7 SƠ ĐỒ MẠCH VÀ NGUYÊN LÝ HOẠT ĐỘNG 7.1 SƠ ĐỒ NGUYÊN LÝ 7.2 NGUYÊN LÝ HOẠT ĐỘNG Khi khởi động nguồn quang báo, đầu tiên vi điều khiển sẽ cập nhật cấu hình của quang báo trong đĩ cĩ font chữ, dữ liệu phơng hình, dữ liệu hiển thị trạng thái điều khiển, trạng thái của phần lưu giữ liệu, cấu hình chạy chữ Do khởi động mặc định là chữ chạy trước nên sau khi cập nhật cấu hình quang báo xong, chương trình sẽ dựa vào cấu hình chạy chữ mà thực hiện. Nếu khơng cĩ sự kiện nào phát sinh thì quang báo sẽ chạy vịng lặp hiển thị là vơ tận. Việc hiển thị trên bảng led là động. Tức là trong một thời điểm chỉ cĩ một hàng được sáng. Nhưng khi quét nhanh ở tần số 50Hz trở lên thì mắt thường coi như là sáng liên tục trên tồn bảng. 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 phơng chữ, hình được đổ qua cột. Khi quét hết 48 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 (hoặc hàng). CHƯƠNG 8 LƯU ĐỒ GIẢI THUẬT VÀ CHƯƠNG TRÌNH HOẠT ĐỘNG Ý TƯỞNG THIẾT KẾ PHẦN MỀM:  Bảng quang báo chạy text với font tiếng Việt và tiếng Anh, chạy từ trái sang phải, từ phải sang trái, chạy từ trên xuống dưới, từ dưới lên trên.  Tạo font chữ và giải mã.  Vi điều khiển lưu vào vùng nhớ trong ROM sau đĩ vi điều khiển lấy dữ liệu điều khiển hiển thị ra màn hình led ma trận thơng qua mạch cơng suất và mạch hiển thị. 8.1. LƯU ĐỒ GIẢI THUẬT. 1 .Quy trình hoạt động của hệ thống: Hình 8.1 Quy trình hoạt động của hệ thống 2.Lưu đồ chương trình chính: Hình 8.2: Lưu đồ chương trình chính. 3. Lưu đồ chương trình: chạy_chữ. Hình 8.5: Lưu đồ chương trình chạy_chữ. 8.2. CHƯƠNG TRÌNH HOẠT ĐỘNG. #include #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=12000000) //khai bao mang int const quet[]={0b11111110,0b11111101,0b11111011,0b11110111,0b11101111,0b11011 111,0b10111111,0b01111111}; int const mang0[]={0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,128,190,72,72,72,72,136, 0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,156,162,130,186,34,28, 0,0,0,0,0,145,83,85,89,81,145, 0,0,0,0,0,145,81,95,81,81,145, 0,0,0,0,152,164,132,152,160,36,24, 0,0,0,0,0,2,2,2,2,2,94, 0,0,0,0,0,145,83,85,89,81,145, 0,0,0,0,0,0,0,0 }; int const mang1[]={0,0,0,0,0,0,0,0, 0,128,142,82,87,82,82,142, 0,0,0,17,10,251,36,36,36,36,35, 0,0,0,0,206,81,65,225,65,81,206, 0,0,0,0,0,40,40,232,40,37,34, 0,0,0,0,0,147,148,144,151,148,99, 0,0,0,0,0,147,180,212,148,148,147, 0,0,0,0,232,136,136,136,136,133,130, 0,0,0,0,0,145,83,85,89,81,145, 0,0,0,0,0,195,36,32,39,36,203, 0,0,0,0,0,0,0,0 }; int const mang2[]={0,0,0,0,0,0,0,0, 5,10,131,68,68,196,68,67, 0,0,0,0,0,68,76,84,100,68,68, 0,0,0,0,243,20,20,125,20,20,243, 0,0,0,0,0,122,138,139,138,138,122, 0,0,0,0,0,162,162,156,136,136,136, 0,0,0,0,0,28,34,2,58,34,28, 0,0,0,0,139,136,136,248,136,136,136, 0,0,0,0,0,227,20,16,23,20,227, 0,0,0,0,0,137,138,248,136,138,137, 0,0,0,0,0,0,0,0 }; int const mang3[]={0,0,0,0,0,0,0,0, 4,2,137,154,170,203,138,138, 0,0,0,0,0,78,81,193,89,81,78, 0,0,0,0,62,9,9,9,9,9,8, 0,0,0,0,0,0,2,0,0,2,0 , 0,0,0,0,0,151,176,211,144,144,151, 0,0,0,0,0,78,209,81,95,81,81, 0,0,0,0,0,4,0,0,0,4,0, 0,0,0,0,0,56,69,5,5,69,56, 0,0,0,0,0,242,66,66,66,66,66, 0,0,0,0,0,0,0,0 }; int const mang4[]={0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,64,160,234,42,235,42,42,234,64, 0,0,0,28,162,162,162,162,162,28, 0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,124,16,16,16,16,16, 0,0,0,0,0,20,20,245,22,20,20, 0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,34,162,190,162,162,162, 0,0,0,0,0,157,162,162,190,162,162, 0,0,0,0,0,0,0,0 }; int const mang5[]={0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,29,36,36,28,4,5, 0,0,0,0,7,8,0,7,8,8,7, 0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,81,81,95,81,81,81, 0,0,0,0,0,1,1,1,1,1,1 , 0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,147,180,212,151,148,148 , 0,0,0,0,0,8,13,10,8,8,8 , 0,0,0,0,0,0,0,0 }; void chot0() { output_high(pin_c0); output_low(pin_c0); } void chot1() { output_high(pin_c1); output_low(pin_c1); } void chot2() { output_high(pin_c2); output_low(pin_c2); } void chot3() { output_high(pin_c3); output_low(pin_c3); } void chot4() { output_high(pin_c4); output_low(pin_c4); } void chot5() { output_high(pin_c5); output_low(pin_c5); } void main(void) { int m,i,a; set_tris_b(0x00); set_tris_c(0x00); set_tris_d(0x00); output_b(0x00); output_c(0x00); output_d(0x00); while(1) { for(m=0;m<=20;m++) { for(i=0;i<=7;i++) { output_b(mang0[a+i]); chot0(); output_b(mang1[a+i]); chot1(); output_b(mang2[a+i]); chot2(); output_b(mang3[a+i]); chot3(); output_b(mang4[a+i]); chot4(); output_b(mang5[a+i]); chot5(); output_d(quet[i]); delay_ms(2); output_b(0x00); chot0(); chot1(); chot2(); chot3(); chot4(); chot5(); output_d(0xff); delay_us(2); } } a++; if(a==104) a=0; } } CHƯƠNG 9 TỔNG KẾT Sau 4 tuần nghiên cứu và thực hiện với nhiều nỗ lực và cố gắng của nhĩm thực hiện đề tài cùng với sự hướng dẫn tận tình của cơ Bùi Thị Kim Chi, quyển đồ án này đã hồn thành với những nội dung như sau: 9.1. CÁC VẤN ĐỀ ĐÃ ĐƯỢC GIẢI QUYẾT TRONG ĐỒ ÁN:  Các vấn đề đã nghiên cứu:  Nghiên cứu vi điều khiển PIC 16F877A  Nghiên cứu cách quét led ma trận.  Thiết kế và thi cơng mơ hình một bảng quang báo.  Nghiên cứu ngơn ngữ lập trình C.  Các vấn đề đã thực hiện:  Lập trình điều khiển vi điều khiển PIC 16F877A bằng ngơn ngữ C.  Lập trình điều khiển led ma trận theo cách quét hàng.  Kết quả thực nghiệm và đánh giá mơ hình: Thời gian nghiên cứu và thi cơng khơng nhiều nên phần thiết kế vẫn chưa tối ưu về tính thẩm mỹ và hiệu quả kinh tế nhưng vẫn đảm bảo mơ hình họat động tốt. Độ sáng của quang báo là cĩ thể chấp nhận được, nội dung cần hiển thị và cĩ khả năng thay đổi được . Hình 9.8: Bảng quang báo 8x48 điểm ảnh. 8.2. ƯU VÀ NHƯỢC ĐIỂM CỦA THI CƠNG MẠCH:  Ưu Điểm:  Chữ hiển thị rõ ràng, tốc độ di chuyển vừa phải.  Mạch hoạt động ổn định trong thời gian dài.  Nhược Điểm:  Khi muốn thay đổi kiểu hiển thị cần phải nạp lại chương trình tức tác động trực tiếp trên board.  Các phương hướng phát triển đề tài:  Tăng kích thước của mạch quang báo cho phù hợp với thực tế sử dụng.  Sử dụng nhiều font chữ để làm phong phú hơn bảng quang báo.  Giao tiếp với máy tính .  Tạo bảng led ma trận bằng led out door để đáp ứng nhu cầu sử dụng. KẾT LUẬN: Đề tài: “QUANG BÁO HIỂN THỊ LED MA TRẬN”. Đề tài đã trình bày được nguyên tắc hoạt động cơ bản của một mạch quang báo, giới thiệu về cách sử dụng cũng như sơ đồ chân, sơ đồ nội bộ của các IC số dùng trong mạch. Nhĩm thực hiện đề tài xin chân thành cảm ơn quý thầy cơ cùng các bạn sinh viên, đã đĩng gĩp rất nhiều ý kiến, cơng sức quý báu trong quá trình nhĩm thực hiện đề tài này. Đặc biệt là cơ NGUYỄN THỊ HỒNG ÁNH, đã nhiệt tình hướng dẫn, chỉ bảo những kinh nghiệm, kiến thức thực tế để đề tài được hồn thành nhanh chĩng. Tuy nhiên, do cịn hạn chế về thời gian và trình độ nên đề tài khơng tránh khỏi nhiều sai sĩt, nhĩm rất mong nhận được sự đĩng gĩp ý kiến chân tình của quý thầy cơ và các bạn để đề tài được hồn chỉnh hơn. PHẦN II PHỤ LỤC GIỚI THIỆU VỀ LẬP TRÌNH C CHO PIC 16F877A I.Giới thiệu C là một ngơn ngữ khá mạnh và rất nhiều ngưịi dùng.C là một ngơn ngữ lập trình đa dụng,cấp cao cĩ những khả năng thực hiện những thao tác khá sâu như hợp ngữ (Assembly language).Chính nhờ tính tổng quát và linh hoạt đĩ mà C được xem là ngơn ngữ lập trình chuỵên nghiệp rất hiệu quả và tiện lợi,lập trình C cho vxl chúng ta chỉ cần biết số lượng lệnh khơng nhiều . Đầu tiên bạn phải làm quen với Các kiểu tốn tử ở C Các kiểu dữ liệu Cẩu trúc cơ bản của một chương trình Các cấu trúc điều khiển (chính các tập lệnh ) Cấu trúc điều kiện : if và else Các cấu trúc lặp Vịng lặp while Vịng lặp do while Vịng lặp for Lệnh break. Cấu trúc lựa chọn: switch. case Biết sử dụng các hàm và chương trình con . II.Cơ bản C 1. Các chỉ thị trước xử lý của C // chu thich /********** chu thich****************** *************************************** */ Đây là dịng chú thích. Tất cả các dịng bắt đầu bằng hai dấu sổ (//) được coi là chú thích chúng khơng cĩ bất kì một ảnh hưởng nào đến hoạt động của chương trình. Chúng cĩ thể được các lập trình viên dùng để giải thích hay bình phẩm bên trong mã nguồn của chương trình. Trong trường hợp này, dịng chú thích là một giải thích ngắn gọn những gì mà chương trình chúng ta làm. Cịn trong dấu (/* */) bạn cĩ thể chú thích bao nhiêu dịng tuỳ thích #include hoặc #include "16F877A.H" trình biên dịch sẽ gọi file thư viện của 16F877A ra #include ;// khai báo cho tốn học #include ;// khai báo cho chương trình dịch hỗ trợ cho PIC #include ;// khai báo cổng ra,vào #define bien_thay_the bien 2. Các tốn tử : ->Tốn tử gán (=). Ex: b = 5; a = 2 + b; a = 2 + (b = 5); a = b = c = 5; ->Các tốn tử số học ( +, -, *, /, % ) + cộng - trừ * nhân / chia % lấy phần dư (trong phép chia) ->Các tốn tử gán phức hợp (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=) value += increase; tương đương với value = value + increase; a -= 5; tương đương với a = a - 5; a /= b; tương đương với a = a / b; price *= units + 1; tương đương với price = price * (units + 1); Tăng và giảm ++ - - a++; a+=1; a=a+1; tính chất tiền tố hoặc hậu tố (++a) # (a++) Ex: B=3; B=3;A=++B; // A is 4, B is 4 B=3; A=B++; // A is 3, B is 4 -> Các tốn tử quan hệ ( ==, !=, >, =, <= ) == Bằng != Khác > Lớn hơn < Nhỏ hơn > = Lớn hơn hoặc bằng < = Nhỏ hơn hoặc bằng 3. Các kiểu dữ liệu Các kiểu biến.chuẩn type bits byte phạm vi char 8 1 -127 to 128 unsigned char 8 1 0 to 255 int 16 2 -32,768 to 32,767 unsigned int 16 2 0 to 65,535 Kiểu dữ liệu trong Keil C type bits byte phạm vi bit 1 0 0 to1 sbit 1 0 0 to1 sfr 8 1 0 to 255 sf16 16 2 0 to 65,535 4. Cấu trúc cơ bản của 1 chương trình C Cac cấu trúc lệnh _while (expr) stmt : xét điều kiện trước rồi thực thi biểu thức sau . _ do stmt while (expr) : thực thi biểu thức trước rồi xét điều kiện sau . _Return : dùng cho hàm cĩ trả về trị, hoặc khơng trả về trị cũng được, khi đĩ chỉ cần dùng : return ; ( nghĩa là thốt khỏi hàm tại đĩ). _Break : ngắt ngang (thốt khỏi) vịng lặp while. _Continue : quay trở về đầu vịng lặp while . Các chỉ thị tiền định #include //Gọi thư viện cĩ sẵn cách viết khác "*.h" #define led1 PORTA.0 //dùng định nghĩa các biến char bien1,bien2; //cac bien can dung int a,b; void chuongtrinhcon(unsigned int b) // chuong trinh con { } int ham(void) // chuong trinh con dang ham { . Return(a); } { int a; // khai bao bien dang so nguyen chuongtrinhcon(); a = ham(); } Khai báo ngắt void main // chuong trinh chinh { ... while(1) //vong lap vo tan sau khi thuc hien xong cong viec } void ngat0(void) interrupt 0 // chuong trinh ngat { Khai báo Timer void delay(unsigned char time) { while(time--) { TMOD=0x01; TR0=0; TH0 = 0xFF;// nạp giá trị cho timer TL0 = 0xFF; nạp giá trị cho timer TF0=0; TR0 = 1; // Chạy bộ định thời while(!TF0); // chờ khi nào cờ TF0 =1 } TÀI LIỆU THAM KHẢO  [1] Hồ Trung Mỹ – Giáo trình Quang điện tử.Đại học Bách khoa Tp.Hồ Chí Minh. [2] Ngơ Diên Tập – Vi điều khiển với lập trình - Nhà xuất bản Khoa học và Kỹ thuật Hà Nội [3] W.Buchanan – C for Electronic Engineering [4] Tài liệu PIC 16F877A_Nguyễn Văn Xuân [5] Báo Cáo PIC 16F877A_Nguyễn Chí Linh [6] www.Microchip.com [7] www.diendandientu.net [8] www.datasheet.com [9] www.picvietnam.com q45 d4 Q27 Q47 VCC VCC q17 d1 VCC p24 d7 Q5 VCC p17 R9 VCC d2 b1 VCC q4 q2 2 q4 0 b7 q41 d4 b7 d3 VCC p4 q3 d5 d4 d3 q6 p20 Q12 VCC d5 R16 Q50 VCC q33 p31 b5 R23 VCC p48 p30 d2 d6 SO DO NGUYEN LI p35 p13 q1 3 q2 4 VCC p11 p35 d1 p27 q6 q34 q9 U11 74HC573 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 10 20 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 G N D VC C D8 DIODE VCC p34 p5 b8 Q45 VCC p48 q27 d2 b6 C3 104 VCC VCC q36 q4 5 d1 VCC VCC p3 q1 9 b3 p15 b2 b3 Q16 R27 b3 p41 q39 q2 9 q4 2 U15 LM7805 1 3 2 IN OUT G N D p42 d1 b6 d1 b8 b8 U12 74HC573 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 10 20 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 G N D VC C p38 p11 q2 8 Q49 q9 d2 R44 VCC VCC p44 d1 Q39 R18 p9 d6 Q38 KHOI CONG SUAT VCC q7 d4 SW1 SW_PB_SPST q30 q10 q14 d6d7 VCC d6 p29 VCC p23 p26 R8 R15 VCC p14 p3 q1 4 q3 6 d7 d1 R19 U3 Matrix 1215 2 8 11 105 1 6 13 16 4 93 147 1215 2 8 11 105 1 6 13 16 4 93 147 RN2 R-PACK 1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 q20 q21 b4 Q34 q3 9 b4 b7 b2 Q19 p12 U1 Matrix 1215 2 8 11 105 1 6 13 16 4 93 147 1215 2 8 11 105 1 6 13 16 4 93 147 p13 d4 Q4 U5 Matrix 1215 2 8 11 105 1 6 13 16 4 93 147 1215 2 8 11 105 1 6 13 16 4 93 147 R4 470 VCC VCC p15 q44 b6 Q3 C1815 R34 VCC p22 q2 0 q3 3 b7 Q8 R42 R36 VCC q3 7 d7 d8 d2d6 R37 U13 PIC16F877A 11 12 14 32 13 31 2 3 1 4 5 6 7 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10 Vd d G N DOSC2/CLKOUT M C LR /V P P OSC1/CLK GND RA0/ANO RA1/AN1 VDD/MCLR RA2/AN2 RA3/AN3 RA4/TOCK/C1OUT RA5/AN4 RB0/INT RB1 RB2 RB3 RB4 RB5 RB6/BGC RB7/BGD RC0/T1OSO/ RC1/T1OSI RC2/CCP1 RC3/SCK/SCL RC4/SDA/SDI RC5/SD0 RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 q11 p22 p16 p39 q2 1 d5 b7 b4 b8 Q15 VCC q28 q18 q1 6 d7 R17 Q35 KHOI NGUON p21 p9 q37 R10 Y1 12MHz RXV R51 RN3 R-PACK 1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 VCC VCC q2 3 d4 Q17 U2 Matrix 1215 2 8 11 105 1 6 13 16 4 93 147 1215 2 8 11 105 1 6 13 16 4 93 147 Q42 p33 q32 q3 2 d6 R39 RN6 R-PACK 1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 VCC VCC q29 b4 d3 p40 p45 p45 q4 4 R29 VCC p21 p26 d7 Q41 VCC q3 0 b3 b2 d5 R25 R43 p40 p18 VCC q15 d5 Q31 U9 74HC573 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 10 20 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 G N D V C C q2 q1 TXV D2 b6 d8 b5 b6 VCC b1 d3 R10 1k q42 p10 d3 b4 R21 C13 33P R45 VCC p32 b6 C4 104 KHOI DIEU KHIEN p43 p44 q4 1 R20 R38 VCC Q28 U6 Matrix 1215 2 8 11 105 1 6 13 16 4 93 147 1215 2 8 11 105 1 6 13 16 4 93 147 p42 d5d8 R7 q26 b2 b6 Q37 U7 74HC573 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 10 20 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 G N D VC C R6 VCC p28 q5 R33 R3 R VCC q2 5 d3 q1 2 b2 Q36 KHOI HIEN THI p36 q12 U8 74HC573 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 10 20 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 G N D VC C Q11 R50 R46 p1 p2 d3 d8 R49 R28 VCC p18 b8 d4 R30 VCC q4 p4 p19 Q21 Q26 Q48 q47 q8 p6 b8 b3 Q24 VCC q5 q2 7 Q30 R13 R14 p7 p12 p36 q2 b5 Q25 q3 d5 p17 p31 p37 q23 d3 R12 p33 q4 7 d8 b1 R40 Q44 q46 q13 q35 d7 b5 b5 p29 d1 p28 p7 q1 0 d4 U4 Matrix 1215 2 8 11 105 1 6 13 16 4 93 147 1215 2 8 11 105 1 6 13 16 4 93 147 p37 p32 b3 d2 J15 CON2 1 2 C14 33P U10 74HC573 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 10 20 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 G N D V C C q31 q1 R5 RN5 R-PACK 1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 VCC q16 p47 d8 Q7 VCC p8 q4 8 b5 b4 b4 b8 Q18 p19 q2 6 VCC p38 R41 q25 p47 q1 1 d8 b2 d6 R26 R22 q4 6 d5 R47 b1 d7 Q43 Q10 R35 q48 p1 p27 q3 1 p10 p46 q3 5 Q33 RN1 R-PACK 1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 Q14 Q22 p8 q1 8 b1 Q23 - + D1 RS403L 2 1 3 4 VCC q8 R31 R48 p43 p23 b7 C4 10uf /25V VCC p5 p20 q1 7 Q13 VCC p46 b1 VCC p2 q3 8 R11 Q46 C1 1000uf /25V VCC p24 q40 p39 d8 RN4 R-PACK 1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 q3 4 d2 Q6 R24 p41 p6 q1 5 d2 Q20 C2 10uF/25V Q40 Q9 p30 q19 q4 3 b2 VCC b3 b1 R32 VCC p16 p25 b7 q43 q38 p34 b5 Q29 q22 p25 q7 p14 q24 d6 R3 1K

Các file đính kèm theo tài liệu này:

  • pdffile_goc_780054.pdf