1. Trang chủ
  2. » Tất cả

Bài tập lớn vi xử lý đề tài thiết kế mạch đồng hồ thời gian thực sử dụng ds1307 và pic16f877a và hiển thị lên lcd

34 64 2
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Thiết kế Mạch Đồng Hồ Thời Gian Thực Sử Dụng DS1307 Và PIC16F877A Và Hiển Thị Lên LCD
Tác giả Nguyễn Văn Trường, Nguyễn Văn Trường, Đỗ Đức Cường, Nguyễn Ngọc Vinh
Người hướng dẫn Vũ Song Tùng
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Kỹ thuật Vi xử lý
Thể loại bài tập lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 34
Dung lượng 0,97 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Với mong muốn làm rõ các kiến thức đã học và giới thiệu các ứng dụng cơ bản của hệ thống nhúng, nhóm chúng em đưa ra mô hình thiết kế đồng hồ thời gian thực – một sản phẩm rất quen thuộc

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ VIỄN THÔNG

BÀI TẬP LỚN VI XỬ LÝ

Đề tài : Thiết kế mạch đồng hồ thời gian thực sử dụng DS1307 và PIC16F877A và hiển thị lên LCD

Giáo viên hướng dẫn : Vũ Song Tùng

Sinh viên thực hiện : Nguyễn Văn Trường 20082842 (A)

Nguyễn Văn Trường 20083543 (B)

Đỗ Đức Cường 20083278

Nguyễn Ngọc Vinh 20083169

1

Trang 2

Mục Lục

1.Lời nói đầu :………1

2.Giới thiệu về nhóm và timeline công việc : 2

3 Mô tả hệ thống : 5

4 Sơ đồ mô phỏng trên PROTEUS 4

5 Tổng quan về các khối : 5

a Tổng quan về PIC16F877A : 6

b Khối thời gian thực DS1307: 9

c Khối màn hình LCD1602 11

Sơ đồ chân của LCD 1602a 12

d Code của chương trình mô phỏng : 14

6 Kết quả mô phỏng : 22

7 Mức độ hoàn thành công việc : 24

8 Các phần mềm đã sử dụng trong quá trình mô phỏng : 23

9 Tài liệu tham khảo : 25

2

Trang 3

LỜI NÓI ĐẦU

Ngày nay, các hệ thống nhúng trở nên phổ biến và đóng vai trò quan trọng trong đời sống con người Ví dụ quanh ta có rất nhiều sản phẩm nhúng như lò

vi sóng, nồi cơm điện, điều hòa, điện thoại di động, ô tô, máy bay, tàu thủy, các đầu đo, cơ cấu chấp hành thông minh, robot v.v… ta có thể thấy hiện nay hệ thống nhúng có mặt ở mọi lúc mọi nơi trong cuộc sống của chúng ta.

Qua môn học Kỹ thuật Vi xử lý, chúng em đã hiểu thêm về các hệ thống

nhúng trong thực tế, về đặc điểm, tính ưu việt cũng như tính ứng dụng của chúng đối với con người Với mong muốn làm rõ các kiến thức đã học và giới thiệu các ứng dụng cơ bản của hệ thống nhúng, nhóm chúng em đưa ra mô hình thiết kế đồng hồ thời gian thực – một sản phẩm rất quen thuộc và cần thiết trong đời sống.

Do thời gian thực hiện và kiến thức còn hạn chế nên còn nhiều sai sót trong quá trình thực hiện đề tài, rất mong được sự bổ sung đóng góp của các thầy cô

Trang 4

2.Giới thiệu về nhóm và timeline công việc:

Nhóm chúng em gồm 4 thành viên như sau :

1. Nguyễn Văn Trường SHSV:20082842 (A) ( trưởng nhóm)

2. Nguyễn Văn Trường 20083543 (B)

3. Đỗ Đức Cường 20083278

4. Nguyễn Ngọc Vinh 20083169

3.Timeline công việc của nhóm:

Nghiên cứu đề tài,tìm hiểu tài liệu Cả nhóm

Vẽ mạch bằng Orcad, Mô phỏng bằng Proteus Cường + Vinh

Thiết kế mạch bằng tay Trường A

Giao tiếp với máy tính Trường B

4

Trang 5

4.Mô tả hệ thống :

Đề tài nhằm thiết kế 1 bộ đồng hồ thời gian thực đảm bảo tự cập nhật thời gian

của hệ thống và hiển thị giá trị lên LCD Với thiết kế sử dụng cả nguồn ngoài và PIN

VBat làm cho hệ thống hoạt động cả khi mất điện thì hệ thống thời gian thực vẫn

hoạt động

Ngoài ra đề tài còn có tương tác với phím bấm nhằm Reset hệ thống

5.Sơ đồ mô phỏng trên PROTEUS

RE1/AN6

RE2/AN7

PIC16F887

Trang 7

1. Tổng quan về các khối :

a Tổng quan về PIC16F877A :

Sơ đồ chân của Pic16f877a :

Pic16f877a có 5 cổng vào ra: PortA(RA0-RA5), PortB(RB0-RB7), RC7), PortD(RD0-RD7), PortE(RE0-RE2) Có 3 bộ định thời: Timer0, Timer1,Timer2 8K bộ nhớ chương trình flash

PortC(RC0-Tổ chức bộ nhớ :

6

Trang 8

Có 3 khối bộ nhớ trong pic16F877A: bộ nhớ chương trình ,bộ nhớ dữ liệu và khối

bộ nhớ EEPROM Bộ nhớ chương trình và bộ nhớ dữ liệu có đường bus riêng vì vậy

có thể truy cập vào từng bộ nhớ một cách riêng rẽ

Bộ đếm chương trình có 13 bit vì vậy không gian địa chỉ sẽ là 8k word x 8bit.Truy cập ngoài vùng không gian trên sẽ gây lỗi

Bộ nhớ dữ liệu được chia thành 4 bank (Bank0÷Bank3) ,trong các bank chứa cácthanh ghi thường và các thanh ghi chức năng đặc biệt Bank được chọn phụ thuộc vàobit RP1 và RP0 (bit thứ 6 và bit thứ 5) của thanh ghi trạng thái status

Các cổng vào ra của pic:

+ Port A: có 6 bit (tương ứng với 6 chân RA0÷RA5) các chân của cổng A có tích hợpmột số chức năng ngoại vi, nếu một thiết bị ngoại vi được enable thì cổng này sẽkhông hoạt động như một cổng vào ra

7

Trang 9

Bình thường Port A sẽ là một cổng vào ra 2 chiều Thanh ghi xác đinh chiều tươngứng của các chân port A là thanh ghi TrisA Các bit ở thanh ghi TrisA bằng 1 sẽ xácđịnh các chân ở port A là đầu vào ngược lại sẽ là đầu ra.

+ Port B: rộng 8 bit(tương ứng với 8 chân RB0÷RB7), là một cổng vào ra 2 chiều.Thanh ghi qui đinh chiều của cổng B là thanh ghi Tris B Thiết lập các bit ở thanh ghiTrisB bằng 1 sẽ làm cho cổng B là cổng vào ngược lại sẽ là cổng ra

+ Port C: rộng 8 bit(tương ứng với các chân RC0÷RC7), bình thường nó là một cổngvào ra 2 chiều, thanh ghi qui định chiều của cổng là thanh ghi TrisC Các chânRC3,RC4 dùng để kết nối truyền nhân thông tin với các thiết bị ngoại vi

+ Port D: rộng 8 bit (RD0÷RD7),nó có thể là cổng vào hoặc cổng ra Port D có thểđược cấu hình như một cổng vi xử lý rộng 8 bit (cổng slave song song) bằng cách thiêtlập bit điều khiển PSPSTATUS (TrisE.4) Ở chế độ này thì đầu vào la tín hiệu

TTL

+ Port E: rộng 3 bit(RE0÷RE2), được cấu hình là đầu ra hoặc đầu vào Port E có thể

là đầu vào điều khiển I/O khi bit PSPSTATUS (TrisE.4) được thiết lập

Từ hình vẽ ta có thể thấy, pic16F877A có 2 chân Vcc và 2 chân GND, để pic có thể hoạt động được ta phải cấp nguồn cho tất cả các chân này

Ngoài cấp nguồn cung cấp ta phải cấp nguồn xung dao động để cho vi điều khiểnhoạt động ta sẽ dùng một thạch anh 20MHz để cấp xung dao động nguồn dao độngđược cấp thông qua 2 chân 13 và 14 của pic

Mạch reset cho vi điều khiển là một công tắc để hở thông qua chân MCLR của viđiều khiển mạch sẽ thực hiện reset khi chân này từ mức logic 1 xuống logic 0 khicông tắc để hở thì chân này luôn mang mức logic 1 do luôn được nối với nguồn thôngqua một điện trở hạn dòng R1, điện trở này phải có giá trị nhỏ hơn hoặc bằng 10k đểđảm bảo điện áp cung cấp cho vi điều khiển

8

Trang 10

b Khối thời gian thực DS1307:

DS1307 là chip thời gian thực hay RTC (Read time clock) Ðây là một IC tíchhợp cho thời gian bởi vì tính chính xác về thời gian tuyệt đối cho thời gian : Thứ,ngày,tháng, nãm, giờ, phút, giây Chip này có 7 thanh ghi 8 bit mỗi thanh ghi nàychứa : Thứ , ngày, tháng, nãm, giờ , phút, giây Ngoài ra DS1307 còn chứa 1 thanhghi điều khiển ngõ ra phụ và 56 thanh ghi trống các thanh ghi này có thể dùng như làRAM DS1307 được đọc thông qua chuẩn truyền thông I2C nên do đó để đọc được vàghi từ DS1307 thông qua chuẩn truyền thông này Do nó được giao tiếp chuẩn I2Cnên cấu tạo bên ngoài nó rất đơn giản

U2

6 SCL 5 SDA 7 SOUT 3 VBAT

Trang 11

gian và ngày tháng với 56 bytes SRAM Địa chỉ và dữ liệu được truyền nối tiếp qua

2 đường bus 2 chiều Nó cung cấp thông tin về giờ, phút, giây, thứ, ngày, tháng,

9

Trang 12

năm.Ngày cuối tháng sẽ tự động được điều chỉnh với các tháng nhỏ hơn 31 ngày,bao gồm cả việc tự động nhảy năm Đồng hồ có thể hoạt động ở dạng 24h hoặc 12hvới chỉ thị AM/PM DS1307 có một mạch cảm biến điện áp dùng để dò các điện áplỗi và tự động đóng ngắt với nguồn pin cung cấp.

- DS 1307 hoạt động với vai trò slave trên đường bus nối tiếp Việc truy cập được thi

hành với chỉ thị START và một mã thiết bị nhất định được cung cấp bởi địa chỉ cácthanh ghi Tiếp theo đó các thanh ghi sẽ được truy cập liên tục đến khi chỉ thịSTOP được thực thi

Mô tả hoạt động của các chân:

+ X1 và X2 là đầu vào dao động cho DS1307 Cần dao động thạch anh

32.768Khz Vbat là nguồn nuôi cho chip Nguồn này từ ( 2V- 3.5V) ta lấy pin có nguồn 3V Ðây là nguồn cho chip hoạt động liên tục khi không có nguồn Vcc mà

DS1307 vẫn hoạt động theo thời gian

chung với vi điều khiển Nếu Vcc không có mà Vbat có thì DS1307 vẫn hoạt động bình thường nhưng mà không ghi và đọc dữ liệu được

+) GND là nguồn MASS chung cho Vcc và VBAT

+ SCL(serial clock input): SCL được sử dụng để đồng bộ sự chuyển dữ liệu trên đường dây nối tiếp

+ SDA(serial data input/out): là chân vào ra cho 2 đường dây nối tiếp Chân SDA thiết kế theo kiểu cực máng hở , đòi hỏi phải có một điện trở kéo trong khi hoạt động

+ SQW/OUT(square wave/output driver)- khi được kích hoạt thì bit SQWE được thiếtlập 1, chân SQW/OUT phát đi 1 trong 4 tần số (1Hz,4kHz,8kHz,32kHz) Chân này cũng được thiết kế theo kiểu cực máng hở

10

Trang 13

vì vậy nó cũng cần có một điện trở kéo trong Chân này sẽ hoạt động khi cả Vcc và Vbat được cấp.

35

RB1/AN10/C12IN3-RB2/AN8 36

Trang 14

Để hiển thị các thông số trong quá trình giao tiếp giữa người điều khiển với hệthống như xem ngày giờ và xem các thông số khi thực hiện điều khiển hệ thống(Active).Sử dụng LCD text 16x2.

11

Trang 15

Sơ đồ chân của LCD 1602a

Chức năng các chân:

Chân số Tên Chức năng

1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với

GND của mạch điều khiển

2 Vdd Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với

VCC=5V của mạch điều khiển

3 Vee Chân này dùng để điều chỉnh độ tương phản của LCD

4 RSChân chọn thanh ghi (Register select) Nối chân RS với logic “0” (GND) hoặc logic“1” (VCC) để chọn thanh ghi

+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR củaLCD (ở chế độ “ghi” -write) hoặc nối với bộ đếm địa chỉ củaLCD (ở chế độ “đọc” - read)

12

Trang 16

+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.

5 R/WChân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc

6 EChân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E

nhận) thanh ghi bên trong nó khi phát hiện một xung

(high-to-low transition) của tín hiệu chân E

+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi pháthiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ

ở bus đến khi nào chân E xuống mức thấp

7-14 DB0- Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU

DB7 Có 2 chế độ sử dụng 8 đường bus này :

+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bitMSB là bit DB7

+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tớiDB7, bit MSB là DB7

13

Trang 17

d. Code của chương trình mô phỏng :

Trang 24

if(temp!=0x90)write_DS1307(0x07,0x90);}

#include <stddef.h>

19

Trang 25

233. #define LCD_EN PIN_D3

247. #separate void LCD_SetPosition ( unsigned int

cX );//Thiet lap vi tri con tro

248. #separate void LCD_PutChar ( unsigned int

cX );// Ham viet1kitu/1chuoi len LCD

249. #separate void LCD_PutCmd ( unsigned int

cX) ;// Ham gui lenh len LCD

250. #separate void LCD_PulseEnable ( void );// Xungkich hoat

251. #separate void LCD_SetData ( unsigned int

cX );// Dat du lieu len chan Data

261. output_low ( LCD_RS );// che do gui lenh

262 LCD_SetData ( 0x03 ); /* init with specific

nibbles to start 4-bit mode */

Trang 26

20

Trang 28

293. /* this subroutine works specifically for 4-bit

Port A */

21

Trang 29

294. LCD_SetData ( swap ( cX ) ); /* send high

0x02 ); output_bit ( LCD_D6,

cX & 0x04 ); output_bit( LCD_D7, cX & 0x08 ); }

6.Kết quả mô phỏng :

Trang 30

LM016L DS1307

1

X1

CRYSTAL 2

RB5/AN13/T1G RD7/P1D 39

RB6/ICSPCLK 40

RB7/ICSPDAT RE0/AN5

RE1/AN6 RE2/AN7

PIC16F887

Trang 32

7.Mức độ hoàn thành công việc :

Nhìn chung dự án đã hoàn thành về mạch mô phỏng và chạy ổn định khâu củabài tập lớn

8.Các phần mềm đã sử dụng trong quá trình mô phỏng :

MPlab Ver 8.4 , Proteus ver 7.7 , Visual Studio 2010, Orcad 10.5

24

Trang 34

9.Tài liệu tham khảo :

Website : Google.com

Picvietnam.comDientuvietnam.netEbook : Tutorial PIC 16F877A

Library Microchip

Datasheet Pic16f877a , DS1307 , LCD 1602

26

Ngày đăng: 24/02/2023, 14:35

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w