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.
70 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 4260 | Lượt tải: 1
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