MỤC LỤCLỜI NÓI ĐẦU3CHƯƠNG 1. PHÂN TÍCH HỆ THỐNG41.1ĐẶT VẤN ĐỀ41.2GIỚI THIỆU VỀ HỆ THỐNG QUANG BÁO41.2.1Hệ thống quang báo dùng LED 7 đoạn41.2.2Hệ thống quang báo dùng LED đơn51.2.3Hệ thống quang báo dùng LCD61.2.4Hệ thống quang báo dùng LED ma trận61.3CÁC GIẢI PHÁP VÀ CÁCH XÁC ĐỊNH BÀI TOÁN61.3.1Phân tích và lựa chọn phương án61.3.2Xác định bài toán và giới hạn của đề tài6CHƯƠNG 2. THIẾT KẾ HỆ THỐNG82.1SƠ ĐỒ KHỐI TỔNG THỂ CỦA HỆ THỐNG82.2SƠ ĐỒ CALL GRAPH92.3SƠ ĐỒ ĐẶC TẢ CỦA HỆ THỐNG92.4CÁC MODULE TRONG HỆ THỐNG92.4.1Module điều khiển trung tâm102.4.2Module hiển thị102.4.3Module điều khiển LED ma trận112.4.4Module nguồn122.5LỰA CHỌN LINH KIỆN132.5.1Khối điều khiển132.5.2Khối nguồn202.5.3IC dịch 74HC595212.5.4IC đệm dòng ULN2803232.5.5Khối hiển thị (LED ma trận)242.6SƠ ĐỒ MÔ PHỎNG262.7SƠ ĐỒ THUẬT TOÁN27CHƯƠNG 3: XÂY DỰNG HỆ THỐNG293.1XÂY DỰNG PHẦN MỀM293.1.1Sơ đồ thuật toán cho hệ thống293.1.2Chương trình nạp vào vi điều khiển 16F877A293.2KẾT QUẢ MÔ PHỎNG32ĐÁNH GIÁ VÀ KẾT LUẬN33TÀI LIỆU THAM KHẢO33 LỜI NÓI ĐẦUNgày nay với sự phát triển của xã hội cùng với sự phát triển của khoa học kỹ thuật, cho nên nhu cầu về thông tin trở nên thiết yếu đối với con người trong cuộc sống cũng như trong hoạt động sản xuất kinh doanh. Việc đưa thông tin quảng cáo đến với người tiêu dùng,đến với xã hội trở nên dễ dàng và nhanh chóng. Thông qua nhiều hình thức quảng cáo khác nhau mà các doanh nghiệp giới thiệu sản phẩm của mình đến mọi người.Trong nhiều hình thức đa dạng của thông tin quảng cáo như báo, đài, tivi,tờ rơi, áp phích… thì việc dùng bảng thông tin điện tử là một cách đơn giản và hiệu quả để quảng cáo.Chúng ta bắt gặp rất nhiều bảng thông tin như vậy trong thực tế. Khi đi vào một hiệu sách, bạn có thể biết được hiệu sách đó bán loại sách gì, giá cả ra sao… là nhờ vào bảng đèn quang báo rất bắt mắt trước cửa hiệu. Hoặc khi vào sân bay, bạn biết được giờ giấc các chuyến bay, các thông báo ngắn của phi trường,…cũng là nhờ vào quang báo. Và khi đi trên đường phố lúc về đêm, bạn sẽ bắt gặp cùng với ánh đèn màu là rất nhiều các bảng quang báo lớn với các hình ảnh sinh động như ly bia Tiger đang trào bọt, hay các hình ảnh, logo hiệnlên với đủ kiểu (từ trên xuống, từ trái sang, ……).Với mong muốn giới thiệu những ứng dụng cơ bản của hệ thống nhúng trong đời sống hiện đại và để mọi người biết đến một vài ứng dụng cụ thể cũng như tầm quan trọng của các hệ thống nhúng, nhóm chúng em đã tìm hiểu và đưa ra mô hình quang báo sử dụng LED ma trận 8x32.Nhóm thực hiện đồ án chúng em xin chân thành cảm ơn sự hướng dẫn tận tình của ThS. Nguyễn Văn Huy – Bộ môn Kỹ thuật máy tính Khoa Điện Tử đã giúp nhóm hoàn thành đề tài một cách tốt nhất.
Trang 1Nhận xét của giáo viên hướng dẫn
……… ………
……… ………
……… ………
……… ………
……… ………
……… ………
Thái Nguyên, Ngày Tháng Năm 2011 Giáo viên hướng dẫn (Ký ghi rõ họ tên) Nhận xét của giáo viên chấm ……… ………
……… ………
……… ………
……… ………
……… ………
……… ………
……… ………
Thái Nguyên, Ngày Tháng Năm 2011
Giáo viên chấm
(Ký ghi rõ họ tên)
Trang 2MỤC LỤC
LỜI NÓI ĐẦU 3
CHƯƠNG 1 PHÂN TÍCH HỆ THỐNG 4
1.1 ĐẶT VẤN ĐỀ 4
1.2 GIỚI THIỆU VỀ HỆ THỐNG QUANG BÁO 4
1.2.1 Hệ thống quang báo dùng LED 7 đoạn 4
1.2.2 Hệ thống quang báo dùng LED đơn 5
1.2.3 Hệ thống quang báo dùng LCD 6
1.2.4 Hệ thống quang báo dùng LED ma trận 6
1.3 CÁC GIẢI PHÁP VÀ CÁCH XÁC ĐỊNH BÀI TOÁN 6
1.3.1 Phân tích và lựa chọn phương án 6
1.3.2 Xác định bài toán và giới hạn của đề tài 6
CHƯƠNG 2 THIẾT KẾ HỆ THỐNG 8
2.1 SƠ ĐỒ KHỐI TỔNG THỂ CỦA HỆ THỐNG 8
2.2 SƠ ĐỒ CALL GRAPH 9
2.3 SƠ ĐỒ ĐẶC TẢ CỦA HỆ THỐNG 9
2.4 CÁC MODULE TRONG HỆ THỐNG 9
2.4.1 Module điều khiển trung tâm 10
2.4.2 Module hiển thị 10
2.4.3 Module điều khiển LED ma trận 11
2.4.4 Module nguồn 12
2.5 LỰA CHỌN LINH KIỆN 13
2.5.1 Khối điều khiển 13
2.5.2 Khối nguồn 20
2.5.3 IC dịch 74HC595 21
2.5.4 IC đệm dòng ULN2803 23
2.5.5 Khối hiển thị (LED ma trận) 24
2.6 SƠ ĐỒ MÔ PHỎNG 26
2.7 SƠ ĐỒ THUẬT TOÁN 27
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG 29
3.1 XÂY DỰNG PHẦN MỀM 29
3.1.1 Sơ đồ thuật toán cho hệ thống 29
3.1.2 Chương trình nạp vào vi điều khiển 16F877A 29
3.2 KẾT QUẢ MÔ PHỎNG 32
ĐÁNH GIÁ VÀ KẾT LUẬN 33
TÀI LIỆU THAM KHẢO 33
Trang 3LỜI NÓI ĐẦU
Ngày nay với sự phát triển của xã hội cùng với sự phát triển của khoahọc kỹ thuật, cho nên nhu cầu về thông tin trở nên thiết yếu đối với con ngườitrong cuộc sống cũng như trong hoạt động sản xuất kinh doanh Việc đưathông tin quảng cáo đến với người tiêu dùng,đến với xã hội trở nên dễ dàng
và nhanh chóng Thông qua nhiều hình thức quảng cáo khác nhau mà cácdoanh nghiệp giới thiệu sản phẩm của mình đến mọi người.Trong nhiều hìnhthức đa dạng của thông tin quảng cáo như báo, đài, tivi,tờ rơi, áp phích… thìviệc dùng bảng thông tin điện tử là một cách đơn giản và hiệu quả để quảngcáo
Chúng ta bắt gặp rất nhiều bảng thông tin như vậy trong thực tế Khi đivào một hiệu sách, bạn có thể biết được hiệu sách đó bán loại sách gì, giá cả
ra sao… là nhờ vào bảng đèn quang báo rất bắt mắt trước cửa hiệu Hoặc khivào sân bay, bạn biết được giờ giấc các chuyến bay, các thông báo ngắn củaphi trường,…cũng là nhờ vào quang báo Và khi đi trên đường phố lúc vềđêm, bạn sẽ bắt gặp cùng với ánh đèn màu là rất nhiều các bảng quang báolớn với các hình ảnh sinh động như ly bia Tiger đang trào bọt, hay các hìnhảnh, logo hiệnlên với đủ kiểu (từ trên xuống, từ trái sang, ……)
Với mong muốn giới thiệu những ứng dụng cơ bản của hệ thống nhúngtrong đời sống hiện đại và để mọi người biết đến một vài ứng dụng cụ thểcũng như tầm quan trọng của các hệ thống nhúng, nhóm chúng em đã tìmhiểu và đưa ra mô hình quang báo sử dụng LED ma trận 8x32
Nhóm thực hiện đồ án chúng em xin chân thành cảm ơn
sự hướng dẫn tận tình của ThS Nguyễn Văn Huy – Bộ môn Kỹthuật máy tính - Khoa Điện Tử đã giúp nhóm hoàn thành đềtài một cách tốt nhất
Chúng em xin chân thành cảm ơn!
Nhóm thực hiện đề tài: Vũ Thị Nguyệt
Trần Thị Lưu
Lê Thị Thu Phương
Trang 4CHƯƠNG 1 PHÂN TÍCH HỆ THỐNG 1.1 ĐẶT VẤN ĐỀ
Quang báo là hình thức thông báo trên bảng đèn Bảng đèn quang báogồm nhiều ma trận LED ghép lại, mỗi một ma trận biểu diễn một kí tự Tùychiều dài của bảng đèn mà có thể hiển thị những bản tin có độ dài khácnhau.Với sự ra đời của máy tính điện tử đặc biệt là máy vi tính, chúng cónhững tính năng ưu việt như khả năng xử lý dữ liệu nhanh chóng, độ tin cậycao, lưu trữ lượng thông tin lớn và quan trọng hơn cả là máy tính có thể kếthợp với nhiều thiết bị ngoại vi tùy theo mục đích ứng dụng cụ thể, mà việctrao đổi và điều khiển trở nên đơn giản, chúng phụ thuộc vào phần mềm điềukhiển Dựa vào tính đa dạng và mềm dẻo của máy tính người ta tìm cách ứngdụng nó vào mục đích quảng cáo, chẳng hạn như dùng trong quang báo Nhờvậy, việc thiết kế phần cứng cho quang báo trở thành ít phức tạp hơn, nhưng
độ tin cậy cao hơn Trong thực tế để hiển thị các văn bản, người ta dùng cáckiểu chữ là các Ma Trận LED 8x32, 8x12 hoặc 8x14 tuỳ thuộc vào mục đích
sử dụng và độ phân giải
1.2 GIỚI THIỆU VỀ HỆ THỐNG QUANG BÁO
Các công nghệ thiết kế quang báo hiện nay gồm nhiều công nghệ ,songthường sủ dụng Led 7 thanh, Led ma trận, LCD, Led đơn
1.2.1 Hệ thống quang báo dùng LED 7 đoạn
Trong các thiết bị, để báo trạng thái hoạt động của thiết bị đó cho người
sử dụng với thông số chỉ là các dãy số đơn thuần, thường người ta sử dụng
"led 7 đoạn" Led 7 đoạn được sử dụng khi các dãy số không đòi hỏi quáphức tạp, chỉ cần hiện thị số là đủ, chẳng hạn led 7 đoạn được dùng để hiểnthị nhiệt độ phòng, trong các đồng hồ treo tường bằng điện tử, hiển thị sốlượng sản phẩm được kiểm tra sau một công đoạn nào đó… Led 7 đoạn cócấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình và có thêm một ledđơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phải của led 7
Trang 5nối chung với nhau vào một điểm, được đưa chân ra ngoài để kết nối vớimạch điện 8 cực còn lại trên mỗi led đơn được đưa thành 8 chân riêng, cũngđược đưa ra ngoài để kết nối với mạch điện Nếu led 7 đoạn có Anode(cực +)chung, đầu chung này được nối với +Vcc, các chân còn lại dùng để điều khiểntrạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chânnày ở mức 0 Nếu led 7 đoạn có Cathode(cực -) chung, đầu chung này đượcnối xuống Ground (hay Mass), các chân còn lại dùng để điều khiển trạng tháisáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức1.Vì led 7 đoạn chứa bên trong nó các led đơn, do đó khi kết nối cần đảm bảodòng qua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led Nếu kết nốivới nguồn 5V có thể hạn dòng bằng điện trở 330Ω trước các chân nhận tínhiệu điều khiển.
Các điện trở 330Ω là các điện trở bên ngoài được kết nối để giới hạndòng điện qua led nếu led 7 đoạn được nối với nguồn 5v.Chân nhận tín hiệu ađiều khiển led a sáng tắt, ngõ vào b để điều khiển led b Tương tự với cácchân và các led còn lại
1.2.2 Hệ thống quang báo dùng LED đơn
Diode phát quang là Diode phát sáng khi ta phân cực thuận cho nó và
có dòng điện cấp qua Diode này có thể phát ra màu sắc khác nhau Tùy theomức năng lượng giải phóng cao hay thấp mà bước sóng ánh sáng phát ra khácnhau (tức màu sắc của LED sẽ khác nhau) Mức năng lượng (và màu sắc củaLED) hoàn toàn phụ thuộc vào cấu trúc năng lượng của các nguyên tử chấtbán dẫn
LED thường có điện thế phân cực thuận cao hơn diode thông thường, trongkhoảng 1,5 đến 3V Nhưng điện thế phân cực nghịch ở LED thì không cao
Do đó, LED rất dễ bị hư hỏng do điện thế ngược gây ra
Ưu điểm: giá thành rẻ.
Nhược điểm: Phải xếp LED theo những gì muốn hiển thị, không thể
thay đổi được, khó khăn trong việc thi công những bảng quang báo có diệntích lớn
Trang 61.2.3 Hệ thống quang báo dùng LCD
Có rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau.Trong thời đại hiện nay LCD cũng được ứng dụng khá nhiều trong lĩnh vựcquang báo vì nó có khả năng hiển thị các nội dung cần truyền tải tốt hơn vàđưa lại kết quả tốt hơn nhiều so với các loại hình quang báo khác Nhưngtrong thực tế loại hình này được sử dụng với tỉ lệ khá ít so với các loại hìnhkhác do giá thành và chi phí bảo dưỡng cao, khó khăn trong việc sửa chữa,bảo dưỡng
1.2.4 Hệ thống quang báo dùng LED ma trận
Bảng hiển thị ma trận LED (dot-matrix display) co 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ạivời nhau thánh một khối.Trong khối đó các LED đơn được sắp xếp theo cáchà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 Môt bảng led 5x7tức là có 5 cột dọc và 7 hàng ngang,tổng cộng sẽ có 5x7=35 led đơn đượcghép lại.Cũng như vậy một bảng led 8x8 là có 8 hàng và 8 cột,do đó có 64 ledđơn ghép lại.Và nhiều loại cỡ to hơn như 16x16 hay 32x32.Trong đề tài nàychúng em sử dụng bảng led 8x32 tức là có 8 cột và 32 hàng, do đó có 256 ledđơn ghép lại
1.3 CÁC GIẢI PHÁP VÀ CÁCH XÁC ĐỊNH BÀI TOÁN
1.3.1 Phân tích và lựa chọn phương án
Có rất nhiều các để điều khiển một bảng LED ma trận, trong đề tài nàychúng em sử dụng vi điều khiển PIC 16F877A
Để có thể điều khiển được một khối LED ma trận 8x32 chúng ta khôngthể chỉ sử dụng các chân của vi điều khiển nên ở đây em sử dụng thêm ICdịch 74HC595 để mở rộng cổng, tiết kiệm chân cho vi điều khiển
Để cấp đủ nguồn cho các LED và cho các LED sáng đều, chúng em sửdụng IC đệm dòng ULN2803
1.3.2 Xác định bài toán và giới hạn của đề tài
Hệ thống điều khiển 4 LED ma trận ,bảng led bao gồm 8 cột và 32
Trang 7Hiển thị 3 chữ “DO AN HE THONG NHUNG - LED MATRIX 8x32”trên nền led ma trận 8x32
Dòng chữ chạy từ phải qua trái
Trang 8CHƯƠNG 2 THIẾT KẾ HỆ THỐNG 2.1 SƠ ĐỒ KHỐI TỔNG THỂ CỦA HỆ THỐNG
Sơ đồ khối của hệ thống quang báo
220V để cung cấp cho các khối và linh kiện trong hệ thống
Khối xử lý trung tâm: Tạo ra tín hiệu điều khiển khối điều khiển LED
ma trận và khối hiển thị để hiển thị các ký tự như chương trình đã định trước
Khối điều khiển LED ma trận: Nhận tín hiệu từ khối xử lý trung tâm,
giải mã và cung cấp nguồn ổn định và đủ lớn để chuyển ra khối hiển thị
Khối hiển thị: Nhận tín hiệu từ khối xử lý trung tâm và khối điều
khiển LED ma trận để hiển thị các ký tự theo chương trình đã trong khối xử lýtrung tâm
KHỐI NGUỒN
KHỐI
XỬ LÝ TRUNG TÂM
KHỐI ĐIỀU KHIỂN LED
MA TRẬN
KHỐI HIỂN THỊ
Trang 92.2 SƠ ĐỒ CALL GRAPH
Trang 102.4 CÁC MODULE TRONG HỆ THỐNG
2.4.1 Module điều khiển trung tâm
Khối điều khiển trung tâm dùng vi điều khiển PIC16F877A Vi điềukhiển sẽ xuất tín hiệu để điều khiển khối hiển thị (Led ma trận) và khối điềukhiển hiển thị theo các chương trình đã lập trình sẵn
Bộ tạo dao động dùng thạch anh 20MHz cung cấp ngồn dao động cho
Trang 112.4.2 Module hiển thị
Module hiển thị sử dụng 4 led ma trận 8x8 ghép nối lại với nhau thànhmột ma trận 8x32 Các LED ma trận được nối chung các chân cho phép hàngvới nhau(H1 đến H8) Các chân cho phép cột được tách riêng và nối vàoModule điều khiển LED ma trận (C1 đến C32)
Sơ đồ module hiển thị
2.4.3 Module điều khiển LED ma trận
Module điều khiển LED được kết nối như hình dưới đây 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 nhưhình vẽ Chân Data của IC 74HC595 đầu tiên được nối vào vi điều khiển Cácchâ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ớicác chân cho phép cột của các LED ma trận trong module hiển thị
Trang 12Sơ đồ module điều khiển LED ma trận
2.4.4 Module nguồn
Module này tạo ra điện áp một chiều từ nguồn xoay chiều 220V đểcung cấp cho các linh kiện trong hệ thống Sử dụng biến áp để biến điện ápxoay chiều 220V thành điện áp xoay chiều 12V, dùng chỉnh lưu từ 12V xoaychiều sang 12V một chiều, dùng IC ổn áp để lấy ra điện áp ổn định 5V ở ngõra
Trang 132.5 LỰA CHỌN LINH KIỆN
2.5.1 Khối điều khiển
Sơ đồ chân vi điều khiển PIC 16F877A
Hình 2.9: Sơ đồ chân PIC 16F877A
Một vài thông số về vi điều khiển PIC 16F877A
Đâ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
Trang 14độ 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à 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ồm cá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ựavà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/sosá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ẩngiao 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ộ nhớ flash với khả năng ghi xóa được 100.000 lần Bộ nhớ EEPROM vớikhả 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 SerialProgramming) 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ớinhiều dạng Oscillator khác nhau
Trang 15Sơ đồ khối vi điều khiển PIC 16F877A
Hình 2.10 : Sơ đồ khối vi điều khiển PIC16F877A
Trang 16bit) Để mã hóa được địa chỉ của 8k word bộ nhớ chương trình , bộ đếmchương trình có dung lượng 13 bit (PC<12:0>) Khi vi điều khiển 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 sẽ được đề cập cụ thể trong phầnsau
Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làmnhiề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 đặcbiệt SFG (Special Function Register) nằm ở các vùng địa chỉ thấp và cácthanh ghi mục đích chung GPR (General Purpose Pegister) nằm ở vùng địachỉ 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ệugiúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh của chươngtrình
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 đượcthự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 Khimộ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ươngtrì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á trị 6 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 đó takhông biết được khi nào stack tràn Bên cạnh đó tập lệnh của vi điều khiểndò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
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
Trang 17qua quá trình tương tác đó, chức năng của vi điều khiển được thể hiện mộtcá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ấtnhậ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ênbê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ậpcò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ínhngoạ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ấtnhập trong mỗi cổng hoàn toàn có thể được xác lập và điều khiển được thôngqua các thanh ghi SFR liên quan đến chân xuất nhập đó
Port A
Port A (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ăngcủ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ộtchân trong Port A 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 PORTcòn lại Bên cạnh đó Port A còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vàoanalog ngõ vào xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP(Master Synchronous Serial Port)
Các thanh ghi SFR liên quan đến Port A bao gồm:
Port A (địa chỉ 05h) : chứa giá trị các pin trong
Port A 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
Port B
Port B (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 Port B còn đươc sử dụng trongquá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau.Port B còn liên quan đến ngắt ngoại vi và bộ Timer0 Port B còn được tích