Đề tài Quang báo hiển thị bằng led ma trận

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

pdf70 trang | Chia sẻ: lvbuiluyen | Lượt xem: 4260 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Quang báo hiển thị bằng led ma trận, để xem tài liệu hoàn chỉnh 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 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 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à toà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 hoà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 hoà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 toá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 toà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 loà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 ngoà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Ô ÑOÀ CHAÂN VI ÑIEÀU KHIEÅN PIC16F877A 2 MOÄT VAØI THOÂNG SOÁ VEÀ VI ÑIEÀU KHIEÅN PIC16F877A Ñaây laø vi ñieàu khieån thuoäc hoï PIC16Fxxx vôùi taäp leänh goàm 35 leänh coù ñoä daøi 14 bit. Moãi leänh ñeàu ñöôïc thöïc thi trong moät chu kì xung clock. Toác ñoä hoaït ñoäng toái ña cho pheùp laø 20 MHz vôùi moä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. Caùc ñaëc tính ngoaïi vi bao goàmcaùc khoái chöùc naêng sau:  Timer0: boä ñeám 8 bit vôùi boä chia taàn soá 8 bit.  Timer1: boä ñeám 16 bit vôùi boä chia taàn soá, coù theå thöïc hieän chöùc naêng ñeám döïa vaøo xung clock ngoaïi vi ngay khi vi ñieàu khieån hoaït ñoäng ôû cheá ñoä sleep.  Timer2: boä ñeám 8 bit vôùi boä chia taàn soá, boä postcaler.  Hai boä Capture/so saùnh/ñieàu cheá ñoä roâng xung.  Caùc chuaån giao tieáp noái tieáp SSP (Synchronous Serial Port), SPI vaø I2C.  Chuaån giao tieáp noái tieáp USART vôùi 9 bit ñòa chæ.  Coång giao tieáp song song PSP (Parallel Slave Port) vôùi caùc chaân ñieàu khieån RD, WR,  CS ôû beân ngoaøi.  Caùc ñaëc tính Analog:  8 keânh chuyeån ñoåi ADC 10 bit.  Hai boä so saùnh.  Beân caïnh ñoù laø moät vaøi ñaëc tính khaùc cuûa vi ñieàu khieån nhö:  Boä nhôù flash vôùi khaû naêng ghi xoùa ñöôïc 100.000 laàn.  Boä nhôù EEPROM vôùi khaû naêng ghi xoùa ñöôïc 1.000.000 laàn.  Döõ lieäu boä nhôù EEPROM coù theå löu tröõ treân 40 naêm.  Khaû naêng töï naïp chöông trình vôùi söï ñieàu khieån cuûa phaàn meàm. Naïp ñöôïc chöông trình ngay treân maïch ñieän ICSP (In Circuit Serial Programming) thoâng qua 2 chaân. Watchdog Timer vôùi boä dao ñoäng trong.  Chöùc naêng baûo maät maõ chöông trình.  Cheá ñoä Sleep.  Coù theå hoaït ñoäng vôùi nhieàu daïng Oscillator khaùc nhau. 3 SÔ ÑOÀ KHOÁI VI ÑIEÀU KHIEÅN PIC16F877A 4 TOÅ CHÖÙC BOÄ NHÔÙ Caáu truùc boä nhôù cuûa vi ñieàu khieån PIC16F877A bao goàm boä nhôù chöông trình (Program memory) vaø boä nhôù döõ lieäu (Data Memory). 5 BOÄ NHÔÙ CHÖÔNG TRÌNH Boä nhôù chöông trình cuûa vi ñieàu khieån PIC16F877A laø boä nhôù flash, dung löôïng boä nhôù 8K word (1 word = 14 bit) vaø ñöôïc phaân thaønh nhieàu trang (töø page0 ñeán page 3) . Nhö vaäy boä nhôù chöông trình coù khaû naêng chöùa ñöôïc 8*1024 = 8192 leänh (vì moät leänh sau khi maõ hoùa seõ coù dung löôïng 1 word (14 bit). Ñeå maõ hoùa ñöôïc ñòa chæ cuûa 8K word boä nhôù chöông trình, boä ñeám chöông trình coù dung löôïng 13 bit (PC). 1. Khi vi ñieàu khieån ñöôïc reset, boä ñeám chöông trình seõ chæ ñeán ñòa chæ 0000h (Reset vector). Khi coù ngaét xaûy ra, boä ñeám chöông trình seõ chæ ñeán ñòa chæ 0004h (Interrupt vector). Boä nhôù chöông trình khoâng bao goàm: Boä nhôù stack vaø khoâng ñöôïc ñòa chæ hoùa bôûi boä ñeám chöông trình. Boä nhôù stack seõ ñöôïc ñeà caäp cuï theå trong phaàn sau. 6 BOÄ NHÔÙ DÖÕ LIEÄU Boä nhôù döõ lieäu cuûa PIC laø boä nhôù EEPROM ñöôïc chia ra laøm nhieàu bank. Ñoái vôùi PIC16F877A boä nhôù döõ lieäu ñöôïc chia ra laøm 4 bank. Moãi bank coù dung löôïng 128 byte, bao goàm caùc thanh ghi coù chöùc naêng ñaëc bieät SFG (Special Function Register) naèm ôû caùc vuøng ñòa chæ thaáp vaø caùc thanh ghi muïc ñích chung GPR (General Purpose Register) naèm ôû vuøng ñòa chæ coøn laïi trong bank. Caùc thanh ghi SFR thöôøng xuyeân ñöôïc söû duïng (ví duï nhö thanh ghi STATUS) seõ ñöôïc ñaët ôû taát caø caùc bank cuûa boä nhôù döõ lieäu giuùp thuaän tieän trong quaù trình truy xuaát vaø laøm giaûm bôùt leänh cuûa chöông trình. Sô ñoà cuï theå cuûa boä nhôù döõ lieäu PIC16F877A nhö sau: 6.1 THANH GHI CHÖÙC NAÊNG ÑAËC BIEÄT SFR Ñaây laø caùc thanh ghi ñöôïc söû duïng bôûi CPU hoaëc ñöôïc duøng ñeå thieát laäp vaø ñieàu khieån caùc khoái chöùc naêng ñöôïc tích hôïp beân trong vi ñieàu khieån. Coù theå phaân thanh ghi SFR laøm hai loïai: thanh ghi SFR lieân quan ñeán caùc chöùc naêng beân trong (CPU) vaø thanh ghi SRF duøng ñeå thieát laäp vaø ñieàu khieån caùc khoái chöùc naêng beân ngoaøi (ví duï nhö ADC, PWM, …). Phaàn naøy seõ ñeà caäp ñeán caùc thanh ghi lieân quan ñeán caùc chöùc naêng beân trong. Caùc thanh ghi duøng ñeå thieát laäp vaø ñieàu khieån caùc khoái chöùc naêng seõ ñöôïc nhaéc ñeán khi ta ñeà caäp ñeán caùc khoái chöùc naêng ñoù. Thanh ghi STATUS (03h, 83h, 103h, 183h):thanh ghi chöùa keát quaû thöïc hieän pheùp toaùn cuûa khoái ALU, traïng thaùi reset vaø caùc bit choïn bank caàn truy xuaát trong boä nhôù döõ lieäu. Thanh ghi OPTION_REG (81h, 181h): thanh ghi naøy cho pheùp ñoïc vaø ghi, cho pheùp ñieàu khieån chöùc naêng pull-up cuûa caùc chaân trong PORTB, xaùc laäp caùc tham soá veà xung taùc ñoäng, caïnh taùc ñoäng cuûa ngaét ngoaïi vi vaø boä ñeám Timer0. Thanh ghi INTCON (0Bh, 8Bh,10Bh, 18Bh):thanh ghi cho pheùp ñoïc vaø ghi, chöùa caùc bit ñieàu khieån vaø caùc bit côø hieäu khi timer0 bò traøn, ngaét ngoaïi vi RB0/INT vaø ngaét interrput-on-change taïi caùc chaân cuûa PORTB. Thanh ghi PIE1 (8Ch): chöùa caùc bit ñieàu khieån chi tieát caùc ngaét cuûa caùc khoái chöùc naêng ngoaïi vi. Thanh ghi PIR1 (0Ch) chöùa côø ngaét cuûa caùc khoái chöùc naêng ngoaïi vi, caùc ngaét naøy ñöôïc cho pheùp bôûi caùc bit ñieàu khieån chöùa trong thanh ghi PIE1. Thanh ghi PIE2 (8Dh): chöùa caùc bit ñieàu khieån caùc ngaét cuûa caùc khoái chöùc naêng CCP2, SSP bus, ngaét cuûa boä so saùnh vaø ngaét ghi vaøo boä nhôù EEPROM. Thanh ghi PIR2 (0Dh): chöùa caùc côø ngaét cuûa caùc khoái chöùc naêng ngoaïi vi, caùc ngaét naøy ñöôïc cho pheùp bôûi caùc bit ñieàu khieån chöùa trong thanh ghi PIE2. Thanh ghi PCON (8Eh): chöùa caùc côø hieäu cho bieát traïng thaùi caùc cheá ñoä reset cuûa vi ñieàu khieån. 6.2 THANH GHI MUÏC ÑÍCH CHUNG GPR Caùc thanh ghi naøy coù theå ñöôïc truy xuaát tröïc tieáp hoaëc giaùn tieáp thoâng qua thanh ghi FSG (File Select Register). Ñaây laø caùc thanh ghi döõ lieäu thoâng thöôøng, ngöôøi söû duïng coù theå tuøy theo muïc ñích chöông trình maø coù theå duøng caùc thanh ghi naøy ñeå chöùa caùc bieán soá, haèng soá, keát quaû hoaëc caùc tham soá phuïc vuï cho chöông trình. 7 STACK Stack khoâng naèm trong boä nhôù chöông trình hay boä nhôù döõ lieäu maø laø moät vuøng nhôù ñaëc bieät khoâng cho pheùp ñoïc hay ghi. Khi leänh CALL ñöôïc thöïc hieän hay khi moät ngaét xaûy ra laøm chöông trình bò reõ nhaùnh, giaù trò cuûa boä ñeám chöông trình PC töï ñoäng ñöôïc vi ñieàu khieån caát vaøo trong stack. Khi moät trong caùc leänh RETURN, RETLW hat RETFIE ñöôïc thöïc thi, giaù trò PC seõ töï ñoäng ñöôïc laáy ra töø trong stack, vi ñieàu khieån seõ thöïc hieän tieáp chöông trình theo ñuùng qui trình ñònh tröôùc. Boä nhôù Stack trong vi ñieàu khieån PIC hoï 16F87xA coù khaû naêng chöùa ñöôïc 8 ñòa chæ vaø hoaït ñoäng theo cô cheá xoay voøng. Nghóa laø giaù trò caát vaøo boä nhôù Stack laàn thöù 9 seõ ghi ñeø leân giaù trò caát vaøo Stack laàn ñaàu tieân vaø giaù trò caát vaøo boä nhôù Stack laàn thöù 10 seõ ghi ñeø leân giaù tri6 caát vaøo Stack laàn thöù 2. Caàn chuù yù laø khoâng coù côø hieäu naøo cho bieát traïng thaùi stack, do ñoù ta khoâng bieát ñöôïc khi naøo stack traøn. Beân caïnh ñoù taäp leänh cuûa vi ñieàu khieån doøng PIC cuõng khoâng coù leänh POP hay PUSH, caùc thao taùc vôùi boä nhôù stack seõ hoaøn toaøn ñöôïc ñieàu khieån bôûi CPU. 8 CAÙC COÅNG XUAÁT NHAÄP CUÛA PIC16F877A Coång xuaát nhaäp (I/O port) chính laø phöông tieän maø vi ñieàu khieån duøng ñeå töông taùc vôùi theá giôùi beân ngoaøi. Söï töông taùc naøy raát ña daïng vaø thoâng qua quaù trình töông taùc ñoù, chöùc naêng cuûa vi ñieàu khieån ñöôïc theå hieän moät caùch roõ raøng. Moät coång xuaát nhaäp cuûa vi ñieàu khieån bao goàm nhieàu chaân (I/O pin), tuøy theo caùch boá trí vaø chöùc naêng cuûa vi ñieàu khieån maø soá löôïng coång xuaát nhaäp vaø soá löôïng chaân trong moãi coång coù theå khaùc nhau. Beân caïnh ñoù, do vi ñieàu khieån ñöôïc tích hôïp saün beân trong caùc ñaëc tính giao tieáp ngoaïi vi neân beân caïnh chöùc naêng laø coång xuaát nhaäp thoâng thöôøng, moät soá chaân xuaát nhaäp coøn coù theâm caùc chöùc naêng khaùc ñeå theå hieän söï taùc ñoäng cuûa caùc ñaëc tính ngoaïi vi neâu treân ñoái vôùi theá giôùi beân ngoaøi. Chöùc naêng cuûa töøng chaân xuaát nhaäp trong moãi coång hoaøn toaøn coù theå ñöôïc xaùc laäp vaø ñieàu khieån ñöôïc thoâng qua caùc thanh ghi SFR lieân quan ñeán chaân xuaát nhaäp ñoù. Vi ñieàu khieån PIC16F877A coù 5 coång xuaát nhaäp, bao goàm PORTA, PORTB, PORTC, PORTD vaø PORTE. Caáu truùc vaø chöùc naêng cuûa töøng coång xuaát nhaäp seõ ñöôïc ñeà caäp cuï theå trong phaàn sau. 8.1 PORTA PORTA (RPA) bao goàm 6 I/O pin. Ñaây laø caùc chaân “hai chieàu” (bidirectional pin), nghóa laø coù theå xuaát vaø nhaäp ñöôïc. Chöùc naêng I/O naøy ñöôïc ñieàu khieån bôûi thanh ghi TRISA (ñòa chæ 85h). Muoán xaùc laäp chöùc naêng cuûa moät chaân trong PORTA laø input, ta “set” bit ñieàu khieån töông öùng vôùi chaân ñoù trong thanh ghi TRISA vaø ngöôïc laïi, muoán xaùc laäp chöùc naêng cuûa moät chaân trong PORTA laø output, ta “clear” bit ñieàu khieån töông öùng vôùi chaân ñoù trong thanh ghi TRISA. Thao taùc naøy hoaøn toaøn töông töï ñoái vôùi caùc PORT vaø caùc thanh ghi ñieàu khieån töông öùng TRIS (ñoái vôùi PORTA laø TRISA, ñoái vôùi PORTB laø TRISB, ñoái vôùi PORTC laø TRISC, ñoái vôùi PORTD laø TRISD vaøñoái vôùi PORTE laø TRISE). Beân caïnh ñoù PORTA coøn laø ngoõ ra cuûa boä ADC, boä so saùnh, ngoõ vaøo analog ngoõ vaøo xung clock cuûa Timer0 vaø ngoõ vaøo cuûa boä giao tieáp MSSP (Master Synchronous Serial Port). Ñaëc tính naøy seõ ñöôïc trình baøy cuï theå trong phaàn sau. Caáu truùc beân trong vaø chöùc naêng cuï theå cuûa töøng chaân trong PORTA seõ ñöôïc trình baøy cuï theå trong Phuï luïc 1. Caùc thanh ghi SFR lieân quan ñeán PORTA bao goàm: PORTA (ñòa chæ 05h) : chöùa giaù trò caùc pin trong PORTA. TRISA (ñòa chæ 85h) : ñieàu khieån xuaát nhaäp. CMCON (ñòa chæ 9Ch) : thanh ghi ñieàu khieån boä so saùnh. CVRCON (ñòa chæ 9Dh) : thanh ghi ñieàu khieån boä so saùnh ñieän aùp. ADCON1 (ñòa chæ 9Fh) : thanh ghi ñieàu khieån boä ADC. Chi tieát veà caùc thanh ghi seõ ñöôïc trình baøy cuï theå trong phu