1. Trang chủ
  2. » Luận Văn - Báo Cáo

đề tài lịch vạn niên

98 704 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 98
Dung lượng 2,65 MB

Nội dung

Để qua đó thể hiện được một phần mô hình ứng dụng trong cuộc sống, trong gia đình… Bằng những kiến thức đã đạt được trong quá trình học tập tại nhà trường và những tìm hiểu nghiên cứu

Trang 1

Nhận xét của giáo viên hướng dẫn

-o0o -………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Tp HCM, ngày … tháng … năm 2011

Giáo viên hướng dẫn

Trang 2

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

Nhận xét của giáo viên phản biện

-o0o -

Tp.HCM, ngày … tháng… năm 2011

Giáo viên phản biện

Trương Quang Trung

Trang 3

Lời cảm ơn

Trong suốt thời gian học tập tại trường Cao Đẳng

Kỹ Thuật Cao Thắng, chúng em nhận được sự giảng dạy cũng như sự chỉ dẫn một cách tận tình của quí thầy cô về những kiến thức trong học tập cũng như trong cuộc sống.

Chúng em xin chân thành cảm ơn quí thầy cô trong khoa Điện Tử-Tin Học đã giảng dạy cho chúng

em những kiến thức chuyên môn và tạo điều kiện cho chúng em hoàn thành tốt khóa học, qua đó giúp chúng em định hướng được trong việc lựa chọn và

thực hiện đề tài “LỊCH VẠN NIÊN” trong khả năng

của mình.

Chúng em cũng xin chân thành cảm ơn Thầy Nguyễn Hữu Phước, đã tận tình theo dõi, giúp đỡ và hướng dẫn chúng em trong suốt thời gian chúng em thực hiện và hoàn thành đồ án này.

Nhóm sinh viên thực hiện

ĐẶNG QUỐC KHÁNH

ĐOÀN VĂN LÊN

Trang 4

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

Lời nói đầu

Ngày nay, khoa học công nghệ đạt được một trình độ phát triển rất nhanh và mạnh mẽ, cùng với sự phát triển của các nghành kĩ thuật nói chung và công nghệ điện tử nói riêng Những thành tựu đạt được cũng như các ứng dụng của công nghệ kĩ thuật điện tử ngày càng được sử dụng nhiều trong cuộc sống hàng ngày của con người và trong các nghành công nghiệp khác Đặc biệt hiện nay trong lĩnh vực vi xử lý, những ứng dụng của nó đã mang lại hiệu quả rất thiết thực trong cuộc sống như: quang báo điện tử, lịch vạn niên, điều khiển tốc độ động cơ, hệ thống đếm sản phẩm…

Nắm dược tầm quan trọng đó, chúng em đã quyết định chọn đề tài “ LỊCH VẠN NIÊN ’’ để làm đồ án tốt nghiệp của mình Để qua đó thể hiện được một

phần mô hình ứng dụng trong cuộc sống, trong gia đình…

Bằng những kiến thức đã đạt được trong quá trình học tập tại nhà trường

và những tìm hiểu nghiên cứu bên ngoài cùng với những nổ lực của bản thân, mỗi sinh viên trong nhóm của chúng em sẽ được đánh giá qua đợt bảo vệ đồ án này So với thời gian học tập tại trường thì đó là thành quả của quá trình học tập cùng với những thành công ban đầu trước khi tốt nghiệp ra trường

Nhóm chúng em đã cố gắng nổ lực hết mình trong suốt thời gian thực hiện

đề tài này nhưng với lượng kiến thức và thời gian cho phép nên đồ án còn nhiều thiếu sót Nhóm chúng em mong nhận được nhiều sự nhận xét và ý kiến đóng góp của quý thầy cô và các bạn về đề tài này cũng như hướng mở rộng, phát triển đề tài để hoàn thiện hơn Nhóm chúng em xin chân thành cám ơn

Trang 5

Mục Lục

Nhận xét của giáo viên hướng dẫn Trang

Nhận xét của giáo viên phản biện

Lời cảm ơn

Lời nói đầu

Mục lục

Chương dẫn nhập: 7

1.1.Đặt vấn đề 7

1.2.Các yêu cầu đạt được và hạn chế của đề tài 7

1.3.Mục đích nghiên cứu 8

1.4.Đối tượng nghiên cứu, ứng dụng và hướng phát triển đề tài 8

Chương 2: Giới thiệu một số linh kiện được sử dụng trong mạch 9

2.1.Giới thiệu về Pic 9

2.1.1.Tổng quan về họ vi điều khiển 9

2.1.1.1.Một số đặc tính của vi điều khiển Pic 9

2.1.1.2.Những đặc tính ngoại vi 10

2.1.1.3.Đặc điểm về tương tự 11

2.1.1.4.Các đặc điểm đặc biệt của vi điều khiển Pic 11

2.1.1.5.Công nghệ CMOS 12

2.1.2.Giới thiệu về Pic16f8xx và Pic16f877A 12

2.1.2.1.Các đặc tính ngoại vi bao gồm 13

2.1.2.2.Sơ lược về vi điều khiển Pic16f877A 14

2.1.2.3.Cấu trúc phần cứng của Pic16f877A 18

2.1.2.4.Một số chế độ đặc biệt của vi điều khiển Pic16f877A 19

2.1.2.4.1.Dao động 19

2.1.2.4.2.Reset 21

2.1.2.4.3.MCLR 21

2.1.2.4.4.Interrups 22

2.1.2.5.Tổ chức bộ nhớ 23

Trang 6

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

2.1.2.7.4.PortD và thanh ghi TrisD 39

2.1.2.7.5.PortE và thanh ghi TrisE 40

2.1.2.8.Bộ định thời của Pic16f877A 41

2.1.2.8.1.Bộ định thời Timer0 41

2.1.2.8.2.Bộ định thời Timer1 43

2.1.2.8.3.Bộ định thời Timer2 45

2.1.2.9.Chế độ diều chế xung PWM 46

2.1.2.10.Module ADC 48

2.1.2.10.1.Giới thiệu Module ADC 10 bit 48

2.1.2.10.2.Các thanh ghi điều khiển 48

2.1.2.10.3 Lựa chọn xung Clock cho biến đổi ADC 51

2.2 IC ổn áp 7805 52

2.3.Chip DS1307 53

2.4.Diode 59

2.4.1 Diode chỉnh lưu 59

2.4.2.diode phát quang(led đơn) 60

2.4.3 Led 7 đoạn 60

2.5.Điện trở .62

2.6.Tụ điện .63

2.7.Transistor 65

Chương 3:Sơ đồ nguyên lý các khối trong mạch 77

3.1.Sơ đồ nguyên lý mạch Pic16f877A và DS1307 77

3.1.1.Lưu đồ giải thuật “ Lịch Vạn Niên” 78

3.1.2.Sơ đồ khối chung 79

3.2 Sơ đồ khối hiển thị 80

3.3.Sơ đồ mạch nguồn 81

Chương 4:Tổng quan về ngôn ngữ lập trình CCS 82

Code chương trình “ Lịch Vạn Niên” 83

Chương Tổng Kết: 94

Tài liệu và các trang Web tham khảo: 95

Trang 7

CHƯƠNG 1: DẪN NHẬP

1.1 Đặt vấn đề:

Với những thành tựu về khoa học kỹ thuật cũng như nhu cầu của con người ngày càng cao Vì vậy đòi hỏi nhiều ứng dụng của khoa học kỹ thuật vào các ngành công nghệp nói chung và kỹ thuật điện tử nói riêng được ứng dụng vào cuộc sống Nó giúp cho ngành điện tử ngày càng phát triển, đồng thời giúp cho cuộc sống của con người ngày càng nâng cao hơn

Một trong các ứng dụng được sử dụng rộng rãi trong cuộc sống hàng ngày, trong các thiết bị trong gia đình

Trong giai đoạn hiện nay, với sự phát triển vượt bậc của công nghệ chế tạo, hàng loạt các loại IC mới ra đời và phát triển Những loại IC này xử lý nhanh hơn rất nhiều so với các IC trước và đặc biệt chúng ta có thể ghi/xóa dữ liệu 1 cách dễ dàng.Vì thế, nó được sử dụng nhiều trong các thiết bị điện-điên tử

Với sự ra đời của các dòng IC mới làm thúc đẩy sự phát triển của những IC thời gian thực như: DS1307, DS12887…Bên cạnh sự phát triển của khoa học kĩ thuật đã góp phần nâng cao đời sống con người.Cũng chính vì thế mà mọi người cần phải biết chính xác ngày, giờ để thu xếp việc làm, học tập cho hợp lý

Xuất phát từ thật tiễn nhóm chúng em đã quyết định chọn đề tài “ Lịch Vạn Niên” nhằm đáp ứng nhu cầu ham muốn học hỏi của bản thân, cũng như góp phần nâng cao giá trị của những mạch điện tử ứng dụng trong cuộc sống

1.2 Các yêu cầu cần đạt được và hạn chế của đề tài:

Trang 8

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

Trong quá trình nghiên cứu và thực hiện đề tài này giúp cho người thực hiện:

- Tăng khả năng tự học, tự nghiên cứu và giải quyết vấn đề

- Tiếp xúc trực tiếp với thực tế, nâng cao kinh nghiệm nghề nghiệp chuyên ngành

- Phải nắm vững và vận dụng những kiến thức chuyên ngành, tìm hiểu nghiên cứu tài liệu qua sách vở, giáo trình nước ngoài và các mạch điện và mô hình thực tế liên quan để thi công phần cứng

1.4 Đối tượng nghiên cứu, ứng dụng và hướng phát triển của đề tài:

Lập trình vi xử lý cho hoạt động của mạch nên đối tượng nghiên cứu chính

là vi điều khiển Pic16F877A, IC số cho vấn đề điều khiển và hiển thị

Đề tài này được ứng dụng rộng rãi và phổ biến trong cuộc sống con người.Hướng phát triển của đề tài là xem xét nghiên cứu các ứng dụng trong thực

tế để có thể mở rộng và phát triển đề tài

Trang 9

Chương 2:

GIỚI THIỆU MỘT SỐ IC ĐƯỢC SỬ DỤNG

TRONG MẠCH2.1 Giới thiệu về PIC:

2.1.1 Tổng quan về họ vi điều khiển:

Dòng PIC đầu tiên là PIC1650 được phát triển Microelectronics Division thuộc General_Instrument PIC bắt nguồn từ chữ viết tắc của “Programmable Intelligent Computer” (Máy tính khả trình thông minh) là một sản phẩm của hãng General Instruments đặt cho dòng sản phẩm đầu tiên của họ là PIC1650 Lúc này, PIC 1650 được Pic là một ho vi điều khiển RISC được sản xuất bởi công ty Mirochip Technology dùng để giao tiếp với các thiết bị ngoại vi cho các máy chủ

15 bit CP1600, vì vậy, người ta cũng gọi PIC “Peripheral Interface Controller” (Bộ điều khiển giao tiếp ngoại vi) CP1600 là một CPU tốt, nhưng lại kém về các hoạt động xuất nhập, vì vậy PIC 8_bit được phất triển vào khoảng năm 1975 để hổ trợ hoạt động xuất nhập cho CP1600 PIC sử dụng microcode đơn giản đặt trong ROM, và mặc dù cụm từ RISC chưa được sử dụng thời bấy giờ, nhưng PIC thật sự

là một vi điều khiển với kiến trúc RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động) Năm 1985 General Instruments bán bộ phận vi điện tử của họ,

và chủ sở hữu hũy bỏ hầu hết các dự án lúc đó quá lỗi thời Tuy nhiên, PIC được

bổ xung EPROM để tạo thành một bộ điều khiển vào ra khả trình Ngày nay rất nhiều dòng PIC được sản xuất với hàng loạt các module ngoại vi tích hợp sẵn (như

Trang 10

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

 Các cổng xuất/nhập (I/O) mức logic thường từ 0V đến 5.5V, ứng với logic 0 và 1

 8/16 bit timer

 Các chuẩn giao tiếp nối tiếp đồng bộ, khung đồng bộ USART

 Bộ chuyển đổi ADC Analog_to_digital converters, 10/12 bit

 Bộ so sánh điện áp

 Các module Capture/Campare/PWM

 MSSP Peripheral dựng cho các giao tiếp IC2,SPI

 Bộ nhớ nội EPROM-có thể ghi/xóa lên tới một triệu lần

 Moudle điều khiển động cơ,đọc encoder

 Hỗ trợ giao tiếp USB

 Hỗ trợ giao tiếp CAN

 Hỗ trợ giao tiếp LIN

 Hỗ trợ giao tiếp IRDA

 Một số dòng có tích hợp 7675bộ RF (PIC16f639,và RFPIC)

 KEELOQ mã hóa và giải mã

 DSP những tính năng xử lý tín hiệu số (dsPIC) đặc điểm thực thi tốc

độ cao của RISC CPU của họ vi điều khiển PIC16F87XA

 Timer0 : 8_bit định thời/đếm với 8_bit, prescaler

 Timer1 : 16_bit định thời/đếm với prescaler, có thể được tăng lên trong suốt chế độ Sleep qua thạch anh/xung clock bên ngoài

Trang 11

• Capture có độ rộng 16 bit, độ phân giải 12,5ns

• Compare có độ rộng 16 bit, độ phân giải 200ns

• Độ phân giải lớn nhất của PWM là 10bit

 Có 13 ngõ I/O có thể điều khiển trực tiếp

• 25mA dòng vào cho mỗi chân

• 20mA dòng ra cho mõi chân

• Module điện áp chuẩn VREF có thể lập trình trên PIC

Có thể lập trình ngõ vào đến từ những ngõ vào của PIC và trên điện áp bên trong

Những ngõ ra của bộ so sánh có thể sử dụng cho bên ngoài

2.1.1.4 Các đặc điểm đặc biệt của vi điều khiển Pic:

 Có thề ghi/xóa tới 100.000 lần với kiểu bộ nhớ chương trình Enhanced Flash

 1000.000 lần ghi/xóa với kiểu bộ nhớ EPROM

Trang 12

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

 Có thể lập trình màng bảo vệ

 Tiết kiệm năng lượng với chế độ Sleep

 Có thể lựa chọn bộ dao động

2.1.1.5.Công nghệ CMOS:

 Năng lượng thấp, tốc độ caoFlash/công nghệ EPROM

 Việc thiết kế hoàn toàn tĩnh

 Khoảng điện áp hoạt động từ 2V đến 5,5V

 Tiêu tốn năng lượng thấp

2.1.2 Giới thiệu về PIC16F8XX và PIC16F877A:

 PIC16F8XX lò nhóm PIC trong họ PIC16FXX của họ vi điều khiển 8_bit, tiêu tốn năng lượng thấp, đáp ứng nhanh, chế tạo theo công nghệ CMOS, chống tĩnh điện tuyệt đối Bao gồm các nhóm sau:

 Họ PIC16F8XX có nhiều tính năng đặc biệt làm giảm các thiết bị ngoại vi,

vì vậy kinh tế cao, có hệ thống nổi bật đáng tin cậy và sự tiêu thụ năng lượng thấp

Ở dây có bốn sự lựa chọn bộ dao động và chỉ có chân kết nối bộ dao dộng RC nên

có giải pháp tiết kiệm cao Chế độ SLEEP tiết kiệm nguồn và có thể được đánh thức bởi các nguồn reset Và còn nhiều phần khác đó được giới thiệu bên trên sẽ

Trang 13

được nói ở các phần kế tiếp

 PIC 16F877A là dòng PIC phổ biến nhất hiện nay (đủ mạnh về tính năng,

40 chân, bộ nhớ đủ cho hầu hết các ứng dụng thông thường) Cấu trúc tổng quát của PIC16F877A như sau:

 8 K Flash ROM

 368 Bytes RAM

 256 Bytes EEPROM

 5 ports (A, B, C, D, E) vào ra với tín hiệu điều khiển độc lập

 2 bộ định thời 8 bits (Timer 0 và Timer 2)

 Một bộ định thời 16 bits (Timer 1) có thể hoạt động trong chế độ tiết kiệm năng lượng (SLEEP MODE) với nguồn xung Clock ngoài

 2 bô CCP( Capture / Compare/ PWM)

 1 bộ biến đổi AD 10 bits, 8 ngõ vào

 2 bộ so sánh tương tự (Compartor)

 1 bộ định thời giám sát (WatchDog Timer)

 Một cổng song song 8 bits với các tín hiệu điều khiển

 Một cổng nối tiếp

 15 nguồn ngắt

 Có chế độ tiết kiệm năng lượng

 Nạp chương trình bằng cổng nối tiếp ICSP(In-Circuit Serial Programming)

 Được chế tạo bằng công nghệ CMOS

 35 tập lệnh có độ dài 14 bits

 Tần số hoạt động tối đa 20MHz

Trang 14

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

 Hai bộ Capture/so sánh/điều chế độ rộng xung

 Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ

 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

 Cổng 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

2.1.2.2 Sơ lược về vi điều khiển PIC 16F877A:

• Sơ đồ chân :

Trang 15

Hình 2.1 Sơ đồ khối PIC 16F877A

• Sơ đồ nguyên lý:

Trang 16

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

để RESET vi điều khiển

Trang 17

Hình 2.3 Sơ đồ khối cấu trúc bên trong PIC 16F877A

Trang 18

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước 2.1.2.3 Cấu trúc phần cứng của PIC 16F877A:

PIC là tên viết tắt của “ Programmable Intelligent computer” do hãng General Instrument đặt tên cho con vi điều khiển đầu tiên của họ Hãng Micrchip tiếp tục phát triển sản phầm này và cho đến hàng đã tạo ra gần 100 loại sản phẩm khác nhau

PIC16F887A là dòng PIC khá phổ biến, khá đầy đủ tính năng phục vụ cho hầu hết tất cả các ứng dụng thực tế Đây là dòng PIC khá dễ cho người mới làm quen với PIC có thể học tập và tạo nền tản về họ vi điều khiển PIC của mình

 Cấu trúc tổng quát của PIC16F877A như sau :

 5 port vào ra với tín hiệu điều khiển độc lập

 2 bộ định thời Timer0 và Timer2 8 bit

 1 bộ định thời Timer1 16 bit có thể hoạt động ở cả chế độ tiết kiệm năng lượng với nguồn xung clock ngoài

 2 bộ Capture/ Compare/ PWM

 1 bộ biến đổi Analog -> Digital 10 bit, 8 ngõ vào

 2 bộ so sánh tương tự

 1 bộ định thời giám sát (Watch Dog Timer)

 1 cổng song song 8 bit với các tín hiệu điều khiển

 1 cổng nối tiếp

 15 nguồn ngắt

 Sơ đồ khối

Trang 19

Hình 2.4 Sơ đồ khối bên trong của vi điều khiển 16F877A

Trang 20

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

Việc lựa chọn tụ trong dao động thạch anh được lựa chọn dựa vào bảng sau:

Hình 2.6 Giá trị tụ trong dao động thạch anh

Tụ có giá trị lớn sẽ mang tính ổn định của dao động nhưng làm tăng thời gian khởi động

Trang 21

Cách tính chu kỳ máy: Ví dụ ta sử dụng thạch anh 10Mhz Khi đó: Tần số dao động của thạch anh là Fosc = 10Mhz thì chu kỳ dao động của thạch anh là Tosc = 1/Fosc= 1/10*106(s).

Chu kỳ máy:

T_instruction = 4*Tosc = 4/10*10 6 (s) = 0.4 µs = 400 ns

2.1.2.4.2 Reset:

PIC16F877A có thể bị reset bởi nhiều nguyên nhân khác nhau:

• Power-on Reset (POR)

• MCLR Reset during sleep

• MCLR Reset during normal operation

• WDT Reset (during normal operation)

• WDT Wake-up (during sleep)

• Brown-out Reset (BOR)

Trang 22

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

hiện và bỏ qua các tín hiệu nhiễu Ngõ vào MCLR trên chân 4 của PIC16F877A Khi đưa chân này xuống thấp thì các thanh ghi bên trong VĐK sẽ được tải những giá trị thích hợp để khởi động lại hệ thống (Lưu ý: Reset do WDT không làm chân MCLR xuống mức thấp)

Hình 2.8 Mạch MCLR

2.1.2.4.4 Interrupts:

PIC16F877A có nhiều nguồn ngắt khác nhau Đây là một số ngắt tiêu biểu:

Ngắt ngoài xảy ra trên chân INT.

Trang 23

Ngắt hoàn tất ghi EEPROM.

Ngắt module CCP.

Ngắt Module SSP.

Các thanh ghi chức năng ngắt: INTCON, PIE1, PIR1, PIE2, PIR2 (các

thanh ghi này sẽ được nghiên cứu ở các phần sau)

Trang 24

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

Hình 2.10 Bộ nhớ chương trình PIC 16F877A

Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ Flash, dung lượng 8K word (1 word chứa 14bit) và được phân thành nhiều trang như hình trên

Để mã hóa được địa chỉ 8K word bộ nhớ chương trình, thanh ghi đếm chương trình PC có dung lượng 13 bit

Khi vi điều khiển reset, bộ đếm chương trình sẽ trỏ về địa chỉ 0000h Khi có ngắt xảy ra thì thanh ghi PC sẽ trỏ đến địa chỉ 0004h

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

2.1.2.5.2 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

Bộ nhớ dữ liệu của PIC16F877A được chia thành 4 bank Mỗi bank có dụng lượng 128 byte

Nếu như 2 bank bộ nhớ dữ liệu của 8051 phân chia riêng biệt : 128 byte đầu tiên thuộc bank1 là vùng Ram nội chỉ để chứa dữ liệu, 128 byte còn lại thuộc bank

2 là cùng các thanh ghi có chức năng đặc biệt SFR mà người dùng không được

Trang 25

chứa dữ liệu khác trong đây thì 4 bank bộ nhớ dữ liệu của PIC16F877A được tổ chức theo cách khác.

Mỗi bank của bộ nhớ dữ liệu PIC16F877A bao gồm cả các thanh ghi có chức năng đặc biệt SFR nằm ở các các ô nhớ địa chỉ thấp và các thanh ghi mục đích dùng chung GPR nằm ở vùng địa chỉ còn lại của mỗi bank thanh ghi Vùng ô nhớ các thanh ghi mục đích dùng chung này chính là nơi người dùng sẽ lưu dữ liệu trong quá trình viết chương trình Tất cả các biến dữ liệu nên được khai báo chứa trong vùng địa chỉ này

Trong cấu trúc bộ nhớ dữ liệu của PIC16F877A, các thanh ghi SFR nào mà thường xuyên được sử dụng (như thanh ghi STATUS) sẽ được đặt ở tất cả các bank để thuận tiện trong việc truy xuất Sở dĩ như vậy là vì, để truy xuất một thanh ghi nào đó trong bộ nhớ của 16F877A ta cần phải khai báo đúng bank chứa thanh ghi đó, việc đặt các thanh ghi sử dụng thường xuyên giúp ta thuận tiện hơn rất nhiều trong quá trình truy xuất, làm giảm lệnh chương trình

Trang 26

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

Trang 27

Hình 2.11 Bộ nhớ dữ liệu PIC 16F877A

Dựa trên sơ đồ 4 bank bộ nhớ dữ liệu PIC16F877A ta rút ra các nhận xét như sau :

- Bank0 gồm các ô nhớ có địa chỉ từ 00h đến 77h, trong đó các thanh ghi dùng chung để chứa dữ liệu của người dùng địa chỉ từ 20h đến 7Fh Các thanh ghi PORTA, PORTB, PORTC, PORTD, PORTE đều chứa ở bank0, do đó để truy xuất dữ liệu các thanh ghi này ta phải chuyển đến bank0 Ngoài ra một vài các thanh ghi thông dụng khác ( sẽ giới thiệu sau) cũng chứa ở bank0

- Bank1 gồm các ô nhớ có địa chỉ từ 80h đến FFh Các thanh ghi dùng chung có địa chỉ từ A0h đến Efh Các thanh ghi TRISA, TRISB, TRISC, TRISD, TRISE cũng được chứa ở bank1

- Tương tự ta có thể suy ra các nhận xét cho bank2 và bank3 dựa trên sơ đồ trên.Cũng quan sát trên sơ đồ, ta nhận thấy thanh ghi STATUS, FSR… có mặt trên

cả 4 bank Một điều quan trọng cần nhắc lại trong việc truy xuất dữ liệu của PIC16F877A là : phải khai báo đúng bank chứa thanh ghi đó Nếu thanh ghi nào

mà 4 bank đều chứa thì không cần phải chuyển bank

Bảng tóm tắt các thanh ghi chức năng đặc biệt:

Trang 28

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

Trang 30

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

Hình 2.12-2.13-2.14 Các thanh ghi chức năng đặt biệt PIC 16F877A

Trang 31

2.1.2.6 Các thanh ghi chức năng đặt biệt:

2.1.2.6.1 Thanh ghi trạng thái (Status Register):

Thanh ghi này có mặt ở cả 4 bank thanh ghi ở các địa chỉ 03h, 83h, 103h và 183h : 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

Each bank is 128 bytes

Bit 4 TO: Bit báo hiệu hoạt động của WDT.

1: Lệnh xóa WDT hoặc Sleep xảy ra

Trang 32

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

0: Khi kết quả của một phép toán khác 0

Bit 1 DC: Digit Carry

1: Có một số nhớ được sinh ra bởi phép cộng hoặc phép trừ 4 bit thấp.0: Không có số nhớ sinh ra

Bit 0 C: cờ nhớ (Carry Flag)

1: Có một số nhớ sinh ra bởi phép cộng hoặc phép trừ

0: Không có số nhớ sinh ra

2.1.2.6.2 Thanh ghi tùy chọn (Option Reg Register):

Thanh ghi tùy chọn chứa các bit điều khiển để cấu hình cho các chứa năng như: ngắt ngoài, Timer 0 chức năng kéo lên Vdd của các chân Port B, và thời gian chờ của WDT

Hình 2.16 Option-Reg Register

Bit 7 RBPU : Bit cho phép PORTB được kéo lên nguồn

1: Không cho phép PORTB kéo lên nguồn

0: Cho phép PORTB kéo lên nguồn

Bit 6 INTEDG: Bít lựa chọn cạnh tác động ngắt (INTERRUPT EDGE) 1: Ngắt sẽ được tác động bởi cạnh lên của chân RB0/INT

0: Ngắt sẽ được tác động bởi cạnh xuống của chân RB0/INT

Bit 5 T0CS: Bit lựa chọn nguồn xung Clock cho Timer 0

1: Xung Clock cung cấp bởi nguồn ngoài qua chân RA4/T0CKI

0: Xung Clock cung cấp bởi nguồn dao động nội

Bit 4 T0SE: Bit lựa chọn cạnh nào của xung clock tác động lên timer 0

1: Cạnh xuống

Trang 33

Bit 3 PSA: Bit quyết định tốc độ đếm PS2:PS0 sẽ tác động lên Timer 0 hay WDT

1: Tốc độ đếm PS2:PS0 sẽ tác động lên WDT

0: Tốc độ đếm PS2:PS0 sẽ tác động lên Timer 0

Bit 2-0 PS2:PS0: Dùng để lựa chọn tốc độ đếm của timer hay WDT

2.1.2.7 Khái quát chức năng các Port trong vi điều khiển PIC 16F877A:

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

Trang 34

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

PORTA gồm có 6 chân Các chân của PortA, ta lập trình để có thể thực hiện được chức năng “hai chiều” : xuất dữ liệu từ vi điều khiển ra ngoại vi và nhập dữ liệu từ ngoại vi vào vi điều khiển

Hình 2.17 Block diagram of RA3:RA0 Pins

Port A gồm 6 chân từ RA0 đến RA5 Việc ghi giá trị vào thanh ghi TRISA sẽ qui định các chân của Port A là input hay output(nếu là 1 thì là input, là output nếu

là 0) Việc đọc thanh ghi Port A sẽ đọc trạng thái của các chân ở Port A Việc ghi giá trị vào thanh ghi Port A sẽ thay đổi trạng thái của các chân Port A Riêng chân RA4 được tích hợp chức năng là chân cung cấp xung clock ngoài cho Timer 0 (RA4/T0CKI) Những chân khác của Port A được đa hợp với các chân ngõ vào Analog của ADC và chân ngõ vào điện thế so sánh của bộ so sánh Comparator Hoạt động của những chân này được quy định bằng những bit tương ứng trong các thanh ghi ADCCON1 và CMCON1

Trang 35

Hình 2.18 Block Diagram of RA4/TOCKI Pin

Khi các chân của Port A được sử dụng làm ngõ vào Analog thì các bit trong thanh ghi TRISA phải được set bằng 1.

Chức năng các chân trong Port A

Trang 36

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

- Ngõ vào xung Clock của Timer0 trong kiến trúc phần cứng : thực hiện các nhiệm vụ đếm xung thông qua Timer0…

- Ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port).Các thanh ghi FSR 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.ị ỉ ề ể ấ ậ

2.1.2.7.2 PORT B và thanh ghi TRISB:

PORTB có 8 chân từ chân RB0-RB7 Việc ghi giá trị vào thanh ghi TRISB

sẽ quy định các chân của Port B là input hay output (1: input, 0: output) Việc đọc thanh ghi PortB sẽ đọc trạng thái của các chân ở Port B Việc ghi giá trị vào thanh ghi Port B sẽ thay đổi trạng thái của các chân Port B

Ba chân của Port B được đa hợp với chức năng In-Circuit Debugger và Low Voltage Programming function: RB3/PGM, RB6/PGC, RB7/PGD Mỗi chân Port

B có một transistor kéo lên Vdd Chức năng này hoạt động khi bit RBPU (Option

<7>) được xóa Chức năng này sẽ tự động được xóa khi Port B được quy định là input

Bốn chân của Port B từ RB7 đến RB4 có chức năng ngắt khi trạng thái chân Port B thay đổi (Khi Port B được quy định là output thì chức năng này không hoạt động Giá trịchân của PortB được so sánh với giá trị đã được lưu trước đó, khi có

sự sai lệch giữa 2 giá trị này ngắt sẽ xảy ra với cờ ngắt RBIF (INTCON<0) sẽ bật lên Ngắt có thể làm cho VĐK thoát khỏi trạng thái SLEEP

Bất cứ sự truy xuất nào trên PortB sẽ xóa trạng thái sai lệch, kết thúc ngắt

và cho phép xóa cờ ngắt RBIF

Trang 37

Hình 2.20 Cấu trúc bên trong Port B.

Chức năng các chân trong portB

Hình 2.21 Chức năng các chân trong Port B

Trang 38

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

Port C gồm 8 chân từ chân RC0-RC7 Việc ghi giá trị vào thanh ghi TRISC

sẽ quy định các chân của Port C là input hay output (1: input, 0: output) Việc đọc thanh ghi Port C sẽ đọc trạng thái của các chân ở Port C Việc ghi giá trị vào thanh ghi Port C sẽ thay đổi trạng thái của các chân Port C Các chân của Port C được đa hợp với các chức năng ngoại vi

Khi các chức năng ngoại vi được cho phép ta cần quan tâm chặt chẽ tới giá trị các bit của thanh ghi TRISC Một số chức năng ngoại vi sẽ ghi đè giá trị 0 lên các bit của thanh ghi TRISC và mặc định các chân này là output, ngoài ra một số chức năng ngoại vi khác sẽ tự động mặc định một số chân là ngõ vào Do đó cần xem xét kĩ các tính năng của các hàm ngoại vi để thiết lập giá trị các bit trong

thanh ghi TRISC cho thích hợp

Hình 2.22 Port C Block Diagram

Bảng chức năng các chân trong portC

Trang 39

Hình 2.23 PORT C Functions

Các thanh ghi lien 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

2.1.2.7.4 Port D và thanh ghi TRISD:

Port D gồm 8 chân từ chân RD0-RD7 Bên cạnh chức năng là port xuất nhập, PortD cịn cĩ thể hoạt động như một cổng song song bằng cách set bit PSPMODE (TRISD<4>), trong chế độ này buffer ngõ vào là TTL PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port)

Bảng chức năng của PortD

Trang 40

Đồ án tốt nghiệp khóa 2009-2011 GVHD: Thầy Nguyễn Hữu Phước

• 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 TRISD : điều khiển xuất nhập PORTD và chuẩn giao tiếp PSP

2.1.2.7.5 PortE và thanh ghi TRISE:

Port E có 3 chân RE0 / RD/ AN5, RE1/ WR / AN6, RE2 / CS/AN7, có thể được cấu hình như các chân xuất nhập thông thường

Các chân của Port E có thể trở thành các chân điều khiển cho cổng song song của VĐK khi bit PSPMODE (TRISE<4>) được set bằng 1 Trong chế độ này, người sử dụng phải đảm bảo các chân của PortE là ngõ vào

Ngoài ra các chân Port E còn có thể được cấu hình như các ngõ vào Analog, tại chế độ này, khi đọc giá trị của các chân này sẽ cho ta giá trị là 0

Thanh ghi TRISE quy định chức năng xuất nhập của Port E ngay cả khi nó được sử dụng như các ngõ vào Analog Phải đảm bảo các chân này được quy định là ngõ vào trong chế độ này

Hình 2.25 PORTE Block Diagram

Bảng chức năng của PortE

Ngày đăng: 25/11/2014, 14:10

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w