Đồng hồ số hiển thị LCD

48
HC VIN CÔNG NGHBCVT CS TP.HCM KHOA KTHUẬT ĐIỆN TII ĐỒ ÁN THC HÀNH CƠ SỞ ĐỀ TÀI: ĐỒNG HSHIN THLCD GVHD: Nguyn Trng Huân SVTH MSSV 1.Nguyn Ngc Hà N102102011 2.Trn Nguyên Hoàng N102102025 3. Trn Hu Lc N102102032 TP.HCM THÁNG 4 NĂM 2013

description

Đồng hồ số hiển thị LCD, có báo thức, đo nhiệt độ

Transcript of Đồng hồ số hiển thị LCD

Page 1: Đồng hồ số hiển thị LCD

HỌC VIỆN CÔNG NGHỆ BCVT CS TP.HCM

KHOA KỸ THUẬT ĐIỆN TỬ II

ĐỒ ÁN THỰC HÀNH CƠ SỞ

ĐỀ TÀI:

ĐỒNG HỒ SỐ HIỂN THỊ LCD

GVHD: Nguyễn Trọng Huân

SVTH MSSV

1.Nguyễn Ngọc Hà N102102011

2.Trần Nguyên Hoàng N102102025

3. Trần Hữu Lục N102102032

TP.HCM THÁNG 4 NĂM 2013

Page 2: Đồng hồ số hiển thị LCD

PHẦN A

GIỚI THIỆU

Page 3: Đồng hồ số hiển thị LCD

LỜI CẢM ƠN

Để đề tài được hoàn thành theo đúng thời gian qui định đồng thời đạt được

kết quả đề ra không chỉ là sự nỗ lực của bản thân người thực hiện đề tài mà còn

có sự giúp đỡ, sự chỉ bảo của thầy cô giáo và chia sẻ kinh nghiệm từ các bạn sinh

viên.

Người thực hiện đề tài xin chân thành cảm ơn :

Sự chỉ dẫn và góp ý chân thành của thầy Nguyễn Trọng Huân. Cám ơn thầy

đã nhiệt tình cung cấp thông tin hướng dẫn và hỗ trợ kiểm tra, khắc phục các

thông tin chưa chính xác.

Các bạn sinh viên trong lớp đã giúp đỡ rất nhiều về mặt phương tiện, sách

vở, ý kiến . . .

Trong quá trình thực hiện đề tài này, mặc dù người thực hiện đề tài đã rất

cố gắng, song sẽ không tránh khỏi thiếu sót. Rất mong nhận được sự góp ý, phê

bình, chỉ dẫn của quý thầy cô và các bạn sinh viên.

Người thực hiện đề tài:

Nguyễn Ngọc Hà

Trần Nguyên Hoàng

Trần Hữu Lục

Page 4: Đồng hồ số hiển thị LCD

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN:

…………………………………………………………………………………......

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

TP HCM, ngày … tháng … năm 2013

Ký tên:

Page 5: Đồng hồ số hiển thị LCD

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN:

…………………………………………………………………………………......

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

……………………………………………………………………………………

TP HCM, ngày … tháng … năm 2013

Ký tên:

Page 6: Đồng hồ số hiển thị LCD

LỜI NÓI ĐẦU

Bộ vi xử lý ngày càng phát triển và được sử dụng trong hầu hết các hệ

thống điều khiển trong công nghiệp cũng như các thiết bị dân dụng. Chính nhờ

vai trò và chức năng của vi điều khiển đã đem lại nhiều ưu điểm và các tính năng

đặc biệt cho các hệ thống điều khiển.Trong thực tế, các ứng dụng của vi điều

khiển rất đa dạng và phong phú. Dưới đây sẽ trình bày ứng dụng nhỏ của vi điều

khiển, thiết kế đồng hồ thời gian thực hiển thị trên LCD.

Page 7: Đồng hồ số hiển thị LCD

MỤC LỤC PHẦN A: GIỚI THIỆU Trang bìa………………………………………………………………………..

Lời cảm ơn ............................................................................................................

Phiếu giao đề tài ....................................................................................................

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

Mục lục ..................................................................................................................

Liệt kê hình ...........................................................................................................

Liệt kê bảng ...........................................................................................................

PHẦN B: NỘI DUNG CHƯƠNG 1: GIỚI THIỆU ................................................................................ 02

1.1 Lý do chọn đề tài ............................................................................................. 02

1.2 Mục đích của đề tài ......................................................................................... 02

1.3 Đối tượng và phạm vi nghiên cứu ................................................................... 02

1.4 Hướng nghiên cứu và phát triển ...................................................................... 02

CHƯƠNG 2: LÝ THUYẾT TỔNG QUAN ...................................................... 03

2.1 Vi điều khiển ATmega16 ................................................................................ 03

2.2 IC thời gian thực DS1307 ............................................................................... 18

2.3 Cảm biến nhiệt độ LM35 ................................................................................ 26

2.4 Màn hình LCD1602 ........................................................................................ 27

CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG ....................................................... 31

3.1 Sơ đồ các khối ................................................................................................. 31

3.1.1 Khối MCU ................................................................................................. 31

3.1.2 Khối LCD .................................................................................................. 32

3.1.3 Khối RTC .................................................................................................. 32

3.1.4 Khối cảm biến nhiệt độ ............................................................................. 33

3.1.5 Khối cài đặt ............................................................................................... 33

3.1.6 Khối chuông báo ....................................................................................... 33

3.2 Sơ đồ mạch in .................................................................................................. 33

3.3 Các linh kiện sử dụng trong mạch .................................................................. 36

CHƯƠNG 4 : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................ 38

4.1 Kết quả của đề tài ............................................................................................ 38

4.2 Hạn chế của đề tài ........................................................................................... 38

4.3 Hướng phát triển đề tài .................................................................................... 38

TÀI LIỆU THAM KHẢO .................................................................................. 39

Page 8: Đồng hồ số hiển thị LCD

LIỆT KÊ HÌNH

Hình 2.1.1 Vi điều khiển ATMega16 ................................................................... 3

Hình 2.1.2 Sơ đồ cấu trúc ATmega16 ................................................................... 4

Hình 2.1.3 Sơ đồ cấu trúc CPU của ATmega16 ................................................... 5

Hình 2.1.4 Thanh ghi trạng thái SREG ................................................................. 5

Hình 2.1.5 Thanh ghi chức năng chung ................................................................ 6

Hình 2.1.6 Thanh ghi con trỏ sắp xếp ................................................................... 6

Hình 2.1.7 Bản đồ bọ nhớ chương trình ............................................................... 8

Hình 2.1.8 Bản đồ bộ nhớ SRAM ......................................................................... 8

Hình 2.1.9 Sơ đồ cấu trúc bộ định thời ................................................................. 10

Hình 2.1.10 Đơn vị đếm ........................................................................................ 10

Hình 2.1.11 Sơ đồ đơn vị so sánh ngõ ra .............................................................. 11

Hình 2.1.12 Thanh ghi điều khiển bộ định thời .................................................... 11

Hình 2.1.13 Thanh ghi bộ định thời ...................................................................... 12

Hình 2.1.14 Thanh ghi so sánh ngõ ra .................................................................. 12

Hình 2.1.15 Thanh ghi mặt nạ ngắt ....................................................................... 13

Hình 2.1.16 Thanh ghi cờ ngắt bộ định thời ......................................................... 13

Hình 2.1.17 Sơ đồ bộ biến đổi A/D ...................................................................... 14

Hình 2.1.18 Thanh ghi ADMUX .......................................................................... 14

Hình 2.1.19 Thanh ghi điều khiển và trạng thái ADC ......................................... 15

Hình 2.1.20 Thanh ghi dữ liệu ADC ..................................................................... 16

Hình 2.2.1 IC thời gian thực DS1307 ................................................................... 18

Hình 2.2.2 Sơ đồ nguyên lý mạch IC DS1307 ...................................................... 19

Hình 2.2.3 Sơ đồ khối DS1307 ............................................................................. 20

Hình 2.2.4 Sơ đồ địa chỉ RAM và RTC ................................................................ 21

Hình 2.2.5 Thanh ghi thời gian thực ..................................................................... 22

Hình 2.2.6 Sơ đồ đồng bộ ..................................................................................... 24

Hình 2.2.7 Đặc tính và thời gian thực hiện ........................................................... 25

Hình 2.3.1 Sơ đồ chân LM35 ................................................................................ 26

Hình 2.4.1 Màn hình hiển thị LCD ....................................................................... 27

Hình 2.4.2 Sơ đồ chân LCD1602 .......................................................................... 27

Hình 2.4.3 Sơ đồ địa chỉ DDRAM của LCD 1602 ............................................... 29

Hình 2.4.4 Các ký tự hiển thị trên LCD1602 ....................................................... 29

Hình 3.1 Sơ đồ các khối ........................................................................................ 31

Hình 3.2 Khối MCU .............................................................................................. 31

Hình 3.3 Mạch reset .............................................................................................. 32

Hình 3.4 Mạch dao động ....................................................................................... 32

Hình 3.5 Khối hiển thị LCD .................................................................................. 32

Hình 3.6 Khối thời gian thực DS1307 .................................................................. 32

Hình 3.7 Khối cảm biến nhiệt độ LM35 ............................................................... 33

Hình 3.8 Khối nút nhấn ......................................................................................... 33

Hình 3.9 Khối chuông báo .................................................................................... 33

Hình 3.10 Lớp TOP ............................................................................................... 34

Hình 3.11 Lớp BOTTOM ..................................................................................... 34

Page 9: Đồng hồ số hiển thị LCD

Hình 3.12 Lớp SSTOP .......................................................................................... 34

Hình 3.13 Lớp SSBOT .......................................................................................... 35

Hình 3.14 Mạch thực tế mặt sau ........................................................................... 35

Hình 3.15 Mạch thực tế mặt trước ........................................................................ 35

LIỆT KÊ BẢNG

Bảng 2.1 Các chân chức năng của LCD1602 ....................................................... 28

Bảng 2.2 Các tập lệnh của LCD1602 .................................................................... 30

Bảng 3.1 Các kinh kiện sử dụng trong mạch ........................................................ 36

Page 10: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 1

Trần Nguyên Hoàng

Trần Hữu Lục

PHẦN B

NỘI DUNG

Page 11: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 2

Trần Nguyên Hoàng

Trần Hữu Lục

CHƢƠNG 1 : GIỚI THIỆU 1.1 Lý do chọn đề tài

Trong mấy chục năm qua, khoa học máy tính và xử lý thông tin có những bước

tiến vượt bậc và ngày càng có những đóng góp to lớn vào cuộc cách mạng khoa học

kỹ thuật hiện đại. Đặc biệt sự ra đời và phát triển nhanh chóng của kỹ thuật số làm

cho ngành điện tử trở nên phong phú và đa dạng hơn. Nó góp phần rất lớn trong việc

đưa kỹ thuật hiện đại thâm nhập rộng rãi vào mọi lĩnh vực của hoạt động sản xuất,

kinh tế và đời sống xã hội. Từ những hệ thống máy tính lớn đến những hệ thống máy

tính cá nhân, từ những việc điều khiển các máy công nghiệp đến các thiết bị phục vụ

đời sống hằng ngày của con người.

Với mong muốn tìm hiểu nguyên lý, kỹ thuật trong các hệ thống điều khiển. được

sự hướng dẫn của thầy Nguyễn Trọng Huân nhóm đã chọn đề tài : “ Đồng hồ số hiển

thị LCD “.

1.2 Mục đích của đề tài

Mục đích nghiên cứu của đề tài này là nghiên cứu họ vi điều khiển AVR cụ thể là

ATmega16 , phương pháp lập trình cho AVR bằng ngôn ngữ C trên trình biên dịch

Codevison AVR cũng như các kỹ năng vẽ , thiết kế, thi công mạch đã được học trong

môn thực tập cơ sở.

1.3 Đối tƣợng và phạm vi nghiên cứu

Đối tượng nghiên cứu là họ vi điều khiển AVR của hãng Atmel, IC thời gian thực,

sensor cảm biến nhiệt độ

Vi điều khiển sử dụng là AVR ATmega16, để nắm được cấu trúc phần cứng, lập

trình phần mềm và ứng dụng vào thực tế

IC thời gian thực là IC DS1307. IC này có tác dụng tạo thời gian thực chính xác

bào gồm giờ, phút, giây, thứ, ngày, tháng, năm.

Sensor cảm biến nhiệt độ LM35. Là cảm biến nhiệt độ analog, không phải cân

chỉnh nhiệt độ khi sử dụng, thay đổi nhiệt độ nhanh và chính xác.

Phần hiển thị sử dụng màn hình LCD1602

1.4 Hƣớng nghiên cứu và phát triển

Ứng dụng kiến thức đã học trên lớp để thiết kế vào ứng dụng cụ thể mà ở đây là

đồng hồ số

Nắm bắt được cấu trúc phần cứng, sơ đồ khối, bố trí chân, tập lệnh điều khiển cho

AVR ATMega16. Tìm hiểu giao tiếp I2C để thực hiện giao tiếp với IC thời gian thực

DS1307, tìm hiểu về chuyển đổi tín hiệu ADC nhằm đọc nhiệt đọ từ LM35 và đưa ra

màn nhình hiển thị,…

Kết quả cuối cùng sẽ có được mạch đồng hố số hoàn chỉnh, có báo thức, đo nhiệt

độ,…

Page 12: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 3

Trần Nguyên Hoàng

Trần Hữu Lục

CHƢƠNG 2 : LÝ THUYẾT TỔNG QUAN

2.1 Vi điều khiển ATMega 16

Hình 2.1.1 Vi điều khiển ATMega16

ATmega16 là vi điều khiển 8 bit dựa trên kiến trúc RISC. Với khả năng thực hiện

mỗi lệnh trong vòng một chu kỳ xung clock, ATmega16 có thể đạt được tốc độ 1MIPS

trên mỗi MHz (1 triệu lệnh/s/MHz).

ATmega16 có các đặc điểm sau: 16KB bộ nhớ Flash với khả năng đọc trong khi ghi, 512 byte bộ nhớ EEPROM, 1KB bộ nhớ SRAM, 32 thanh ghi chức năng chung, 32 đường vào ra chung, 3 bộ định thời/bộ đếm, ngắt nội và ngắt ngoại, USART, giao tiếp

nối tiếp 2 dây, 8 kênh ADC 10 bit,.... ATmega 16 hỗ trợ đầy đủ các chương trình và công cụ phát triển hệ thống như: trình dịch C, macro assemblers, chương trình mô phỏng/sửa lỗi, kit thử nghiêm,...

Dưới đây là sơ đồ khối của ATmega16

Page 13: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 4

Trần Nguyên Hoàng

Trần Hữu Lục

Hình 2.1.2 Sơ đồ cấu trúc ATmega16

Page 14: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 5

Trần Nguyên Hoàng

Trần Hữu Lục

Cấu trúc nhân AVR

CPU của AVR có chức năng bảo đảm sự hoạt động chính xác của các chương trình.

Do đó nó phải có khả năng truy cập bộ nhớ, thực hiện các quá trình tính toán, điều

khiển các thiết bị ngoại vi và quản lý ngắt.

- Cấu trúc tổng quát

Hình 2.1.3 Sơ đồ cấu trúc CPU của ATMega16

AVR sử dụng cấu trúc Harvard, tách riêng bộ nhớ và các bus cho chương trình và

dữ liệu. Các lệnh được thực hiện chỉ trong một chu kỳ xung clock. Bộ nhớ chương trình

được lưu trong bộ nhớ Flash

- ALU

ALU làm việc trực tiếp với các thanh ghi chức năng chung. Các phép toán được

thực hiện trong một chu kỳ xung clock. Hoạt động của ALU được chia làm 3 loại: đại

số, logic và theo bit

- Thanh ghi trạng thái

Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALU sau các phép tính số

học và logic

Hình 2.1.4 Thanh ghi trạng thái SREG

Page 15: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 6

Trần Nguyên Hoàng

Trần Hữu Lục

C: Carry Flag ;cờ nhớ (Nếu phép toán có nhớ cờ sẽ được thiết lập)

Z: Zero Flag ;Cờ zero (Nếu kết quả phép toán bằng 0)

N: Negative Flag (Nếu kết quả của phép toán là âm) V: Two’s complement overflow indicator (Cờ này được thiết lập khi tràn số bù 2)

V, For signed tests (S=N XOR V) S: N

H: Half Carry Flag (Được sử dụng trong một số toán hạng sẽ được chỉ rõ sau)

T: Transfer bit used by BLD and BST instructions(Được sử dụng làm nơi chung gian

trong các lệnh BLD,BST).

I: Global Interrupt Enable/Disable Flag (Đây là bit cho phép toàn cục ngắt. Nếu bit này ở trạng thái logic 0 thì không có một ngắt nào được phục vụ.)

- Các thanh ghi chức năng chung

Hình 2.1.5 Thanh ghi chức năng chung

- Con trỏ ngăn xếp (SP)

Là một thanh ghi 16 bit nhưng cũng có thể được xem như hai thanh ghi chức năng đặc

biệt 8 bit. Có địa chỉ trong các thanh ghi chức năng đặc biệt là $3E (Trong bộ nhớ

RAM là $5E). Có nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp

Hình 2.1.6 Thanh ghi con trỏ sắp xếp

Khi chương trình phục vu ngắt hoặc chương trình con thì con trỏ PC được lưu vào

ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí. Và con trỏ ngăn xếp sẽ giảm 1 khi

thực hiện lệnh push. Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và

Page 16: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 7

Trần Nguyên Hoàng

Trần Hữu Lục

khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2. Như vậy con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một chương

trình con được gọi hoặc các ngắt được cho phép phục vụ. Và giá trị ngăn xếp ít nhất

cũng phải lơn hơn hoặc bằng 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi.

- Quản lý ngắt

Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình trạng sẵn

xàng cho đổi dữ liệu của mình.Ví dụ:Khi bộ truyền nhận UART nhận được một byte nó

sẽ báo cho CPU biết thông qua cờ RXC,hợc khi nó đã truyền được một byte thì cờ TX được thiết lập…

Khi có tín hiệu báo ngắt CPU sẽ tạm dừng công việc đạng thực hiện lại và lưu vị

trí đang thực hiên chương trình (con trỏ PC) vào ngăn xếp sau đó trỏ tới vector phuc vụ ngắt và thức hiện chương trình phục vụ ngắt đó chơ tới khi gặp lệnh RETI (return from interrup) thì CPU lại lấy PC từ ngăn xếp ra và tiếp tục thực hiện chương trình mà trước khi có ngăt nó đang thực hiện. Trong trường hợp mà có nhiều ngắt yêu cầu cùng một lúc thì CPU sẽ lưu các cờ báo ngắt đó lại và thực hiện lần lượt các ngắt theo mức ưu tiên. Trong khi đang thực hiện ngắt mà xuất hiện ngắt mới thì sẽ xảy ra hai trường hợp. Trường hớp ngắt này có mức ưu tiên cao hơn thì nó sẽ được phục vụ. Còn nó mà có mức ưu tiên thấp hơn thì nó sẽ bị bỏ qua.

Bộ nhớ ngăn xếp là vùng bất kì trong SRAM từ địa chỉ 0x60 trở lên. Để truy nhập

vào SRAM thông thường thì ta dùng con trỏ X,Y,Z và để truy nhập vào SRAM theo kiểu

ngăn xếp thì ta dùng con trỏ SP. Con trỏ này là một thanh ghi 16 bit và được truy nhập

như hai thanh ghi 8 bit chung có địa chỉ :SPL :0x3D/0x5D(IO/SRAM) và

SPH:0x3E/0x5E.

Khi chương trình phục vu ngắt hoặc chương trình con thì con trỏ PC được lưu vào

ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí.Và con trỏ ngăn xếp sẽ giảm 1 khi

thực hiện lệnh push. Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và

khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2. Như vậy con trỏ ngăn

xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một chương trình

con được gọi hoặc các ngắt được cho phép phục vụ. Và giá trị ngăn xếp ít nhất cũng phải

lớn hơn 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi.

Cấu trúc bộ nhớ

AVR có 2 không gian bộ nhớ chính là bộ nhớ dữ liệu vào bộ nhớ chương trình.

Ngoài ra ATmega16 còn có thêm bộ nhớ EEPROM để lưu trữ dữ liệu

- Bộ nhớ chƣơng trình ( bộ nhớ Flash )

Bộ nhớ Flash 16KB của ATmega16 dùng để lưu trữ chương trình. Do các lệnh của

AVR có độ dài 16 hoặc 32 bit nên bộ nhớ Flash được sắp xếp theo kiểu 8KX16. Bộ nhớ

Flash được chia làm 2 phần, phần dành cho chương trình boot và phần dành cho

chương trình ứng dụng

Page 17: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 8

Trần Nguyên Hoàng

Trần Hữu Lục

Hình 2.1.7 Bản đồ bộ nhớ chương trình

- Bộ nhớ dữ liệu SRAM

1120 ô nhớ của bộ nhớ dữ liệu định địa chỉ cho file thanh ghi, bộ nhớ I/O và bộ nhớ

dữ liệu SRAM nội. Trong đó 96 ô nhớ đầu tiên định địa chỉ cho file thanh ghi và bộ nhớ

I/O, và 1024 ô nhớ tiếp theo định địa chỉ cho bộ nhớ SRAM nội.

Hình 2.1.8 Bản đồ bộ nhớ SRAM

Page 18: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 9

Trần Nguyên Hoàng

Trần Hữu Lục

- Bộ nhớ dữ liệu EEPROM

ATmega16 chứa bộ nhớ dữ liệu EEPROM dung lượng 512 byte, và được sắp xếp

theo từng byte, cho phép các thao tác đọc/ghi từng byte một.

Các cổng vào ra (I/O)

Vi điều khiểnATmega16có 32 đường vào ra chia làm bốn nhóm 8 bit một. Các

đường vào ra này có rất nhiều tính năng và có thể lập trình được. Ở đây ta sẽ xét chúng là các cổng vào ra số. Nếu xét trên mặt này thì các cổng vào ra này là cổng vào ra hai chiều có thể định hướng theo từng bit. Và chứa cả điện trở pull-up (có thể lập trình được). Mặc

dù mỗi port có các đặc điểm riêng nhưng khi xét chúng là các cổng vào ra số thì dường như điều khiển vào ra dữ liệu thì hoàn toàn như nhau. Chúng ta có thanh ghi và một địa chỉ cổng đối với mỗi cổng, đó là : thanh ghi dữ liệu cổng (PORTA, PORTB, PORTC, PORTD), thanh ghi dữ liệu điều khiển cổng (DDRA, DDRB, DDRC, DDRD) và cuối cùng là địa chỉ chân vào của cổng (PINA, PINB, PINC, PIND).

- Thang ghi DDRx

Đây là thanh ghi 8 bit (ta có thể đọc và ghi các bit ở thanh ghi này) và có tác dụng

điều khiển hướng cổng PORTx (tức là cổng ra hay cổng vào). Nếu như một bit trong

thanh ghi này được set thì bit tương ứng đó trên PORTx được định nghĩa như một cổng

ra. Ngược lại nếu như bit đó không được set thì bit tương ứng trên PORTx được định

nghĩa là cổng vào.

- Thanh ghi PORTx

Đây cũng là thanh ghi 8 bit (các bit có thể đọc và ghi được) nó là thanh ghi dữ liệu

của cổng Px và trong trường hợp nếu cổng được định nghĩa là cổng ra thì khi ta ghi một

bit lên thanh ghi này thì chân tương ứng trên port đó cũng có cùng mức logic. Trong

trường hợp mà cổng được định nghĩa là cổng vào thì thanh ghi này lại mang dữ liệu điều

khiển cổng. Cụ thể nếu bit nào đó của thanh ghi này được set (đưa lên mức 1) thì điện trở

kéo lên (pull-up) của chân tương ứng của port đó sẽ được kích hoạt. Ngược lại nó sẽ ở

trạng thái hi-Z. Thanh ghi này sau khi khởi động Vi điều khiểnsẽ có giá trị là 0x00.

- Thanh ghi PINx

Đây là thanh ghi 8 bit chứa dữ liệu vào của PORTx (trong trường hợp PORTx được

thiết lập là cổng vào) và nó chỉ có thể đọc mà không thể ghi vào được

Bộ định thời

Bộ định thời (timer/counter0) là một module định thời/đếm 8 bit, có các đặc điểm sau:

- Bộ đếm một kênh

- Xóa bộ định thời khi trong mode so sánh (tự động nạp)

- PWM

- Tạo tần số

- Bộ đếm sự kiện ngoài

- Bộ chia tần 10 bit

- Nguồn ngắt tràn bộ đếm và so sánh

Sơ đồ cấu trúc của bộ định thời:

Page 19: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 10

Trần Nguyên Hoàng

Trần Hữu Lục

Hình 2.1.9 Sơ đồ cấu trúc bộ định thời

- Các thanh ghi

TCNT0 và OCR0 là các thanh ghi 8 bit. Các tín hiệu yêu cầu ngắt đều nằm trong

thanh ghi TIFR. Các ngắt có thể được che bởi thanh ghi TIMSK.Bộ định thời có thể sử

dụng xung clock nội thông qua bộ chia hoặc xung clock ngoài trên chân T0. Khối chọn

xung clock điều khiển việc bộ định thời/bộ đếm sẽ dùng nguồn xung nào để tăng giá trị

của nó. Ngõ ra của khối chọn xung clock được xem là xung clock của bộ định thời

(clkT0).Thanh ghi OCR0 luôn được so sánh với giá trị của bộ định thời/bộ đếm. Kết quả

so sánh có thể được sử dụng để tạo ra PWM hoặc biến đổi tần số ngõ ra tại chân OC0.

- Đơn vị đếm

Phần chính của bộ định thời 8 bit là một đơn vị đếm song hướng có thể lập trình được.

Cấu trúc của nó như hình dưới đây:

Hình 2.1.10 Đơn vị đếm

Page 20: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 11

Trần Nguyên Hoàng

Trần Hữu Lục

count: tăng hay giảm TCNT0 1

direction: lựa chọn giữa đếm lên và đếm xuống

clear: xóa thanh ghi TCNT0

clkT0: xung clock của bộ định thời

TOP: báo hiệu bộ định thời đã tăng đến giá trị lớn nhất

BOTTOM: báo hiệu bộ định thời đã giảm đến giá trị nhỏ nhất (0)

- Đơn vị so sánh ngõ ra

Hình 2.1.11 Sơ đồ đơn vị so sánh ngõ ra

Bộ so sánh 8 bit liên tục so sánh giá trị TCNT0 với giá trị trong thanh ghi so sánh

ngõ ra (OCR0). Khi giá trị TCNT0 bằng với OCR0, bộ so sánh sẽ tạo một báo hiệu. Báo

hiệu này sẽ đặt giá trị cờ so sánh ngõ ra (OCF0) lên 1 vào chu kỳ xung clock tiếp theo.

Nếu được kích hoạt (OCIE0=1), cờ OCF0 sẽ tạo ra một ngắt so sánh ngõ ra và sẽ tự động

được xóa khi ngắt được thực thi. Cờ OCF0 cũng có thể được xóa bằng phần mềm.

- Mô tả các thanh ghi

+ Thanh ghi điều khiển bộ định thời / bộ đếm TCCR0

Hình 2.1.12 Thanh ghi điều khiển bộ định thời

Bit 7-FOC0: So sánh ngõ ra bắt buộc. Bit này chỉ tích cực khi bit WGM00 chỉ định chế độ làm việc không có PWM. Khi đặt bit này lên 1, một báo hiệu so sánh bắt buộc xuất hiện tại đơn vị tạo dạng sóng.

Page 21: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 12

Trần Nguyên Hoàng

Trần Hữu Lục

Bit 6, 3-WGM01:0: Chế độ tạo dạng song. Các bit này điều khiển đếm thứ tự của bộ đếm, nguồn cho giá trị lớn nhất của bộ đếm (TOP) và kiểu tạo dạng sóng sẽ được sử dụng.

Bit 5:4-COM01:0: Chế độ báo hiệu so sánh ngõ ra. Các bit này điều khiển hoạt động của chân OC0. Nếu một hoặc cả hai bit COM01:0 được đặt lên 1, ngõ ra OC0 sẽ hoạt động

Bit 2:0: CS02:0: Chọn xung đồng hồ. Ba bit này dùng để lựa chọn nguồn xung

cho bộ định thời/bộ đếm.

+ Thanh ghi bộ định thời/ bộ đếm

Hình 2.1.13 Thanh ghi bộ định thời

Thanh ghi bộ định thời/bộ đếm cho phép truy cập trực tiếp (cả đọc và ghi) vào bộ đếm 8 bit.

+ Thanh ghi so sánh ngõ ra – OCR0

Hình 2.1.14 Thanh ghi so sánh ngõ ra

Thanh ghi này chứa một giá trị 8 bit và liên tục được so sánh với giá trị của bộ đếm.

+ Thanh ghi mặt nạ ngắt

Page 22: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 13

Trần Nguyên Hoàng

Trần Hữu Lục

Hình 2.1.15 Thanh ghi mặt nạ ngắt

Bit 1-OCIE0: Cho phép ngắt báo hiệu so sánh

Bit 0-TOIE0: Cho phép ngắt tràn bộ đếm

+ Thanh ghi cờ ngắt bộ định thời

Hình 2.1.16 Thanh ghi cờ ngắt bộ định thời

Bit 1-OCF0: Cờ so sánh ngõ ra 0

Bit 0-TOV0: Cờ tràn bộ đếm

Bit TOV0 được đặt lên 1 khi bộ đếm bị tràn và được xóa bởi phần cứng khi vector ngắt tương ứng được thực hiện. Bit này cũng có thể được xóa bằng phần mềm.

Bộ biến đổi A/D

Vi điều khiểnATmega16 có một bộ biến đổi ADC tích hợp trong chip với các đặc điểm:

Độ phân giải 10 bit

Sai số tuyến tính: 0.5LSB

Độ chính xác +/-2LSB

Thời gian chuyển đổi:65-260μs

8 Kênh đầu vào có thể được lựa chọn

Có hai chế độ chuyển đổi free running và single conversion

Có nguồn báo ngắt khi hoàn thành chuyển đổi

Loại bỏ nhiễu trong chế độ ngủ

Page 23: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 14

Trần Nguyên Hoàng

Trần Hữu Lục

Hình 2.1.17 Sơ đồ bộ biến đổi A/D

Tám đầu vào của ADC là tám chân của PORTA và chúng được chọn thông qua

một MUX.Để điều khiển hoạt động vào ra dữ liệu của ADC và CPU chúng ta có 3 thanh

ghi:

ADMUX là thanh ghi điều khiển lựa chọn kênh đầu vào cho ADC, ADCSRA là thanh ghi điều khiển và thanh ghi trạng thái của ADC, ADCH và ADCL là 2 thanh ghi dữ liệu.

- ADMUX : Multiplexer select register

Đây là thanh ghi điều khiển 8 bit.

Hình 2.1.18 Thanh ghi ADMUX

Page 24: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 15

Trần Nguyên Hoàng

Trần Hữu Lục

Với 4 bit được định nghĩa là MUX3, MUX2, MUX1,và MUX0, ứng với các tổ hợp logic

ta có thể chọn kênh đầu vào. Cụ thể:

Các bit REFS1 và REFS0 dùng để chọn giá trị điện áp tham khảo cho ADC, như sau:

Chú ý: Nếu như ta thay đổi kênh trong thời điểm mà ADC đang chuyển đổi thì khi quá trình chuyển đổi đã hoàn thành thì kênh vào mới được thay đổi.

- ADCSR-ADC control and status register

Đây là thanh ghi điều khiển và lưu trạng thái của ADC.

Hình 2.1.19 Thanh ghi điều khiển và trạng thái ADC

+ Bit 7-ADEN:ADC enable

Đây là bit điều khiển hoạt động của ADC.Khi bit này được set 1 thì ADC có thể hoạt

động và ngược lại.Nếu như ta ngừng hoạt động của ADC trong khi nó đang chuyển đổi

thì nó sẽ kết thúc quá trình chuyển đổi.Mặc dù chưa chuyển đổi xong.

+ Bit 6-ADSC: ADC start conversion

Trong chế độ chuyển đổi đơn thì bit này phải được set lên 1 để bắt đầu chuyển

Page 25: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 16

Trần Nguyên Hoàng

Trần Hữu Lục

đổi.Trong chế độ chuyển đổi tự do thì bit này cần được set lên 1 để bắt đầu lần chuyển

đổi đầu tiên.Bit này được giữ sốt trong quá trình chuyển đổi và được xóa khi mà chuyển

đổi xong.

+ Bit 5-ADATE :ADC Auto Trigger enable

Khi bit này được set thì ADC sẽ bắt đầu chuyển đổi mỗi khi có một nguồn kích hoạt xuất hiện. Việc lựa chọn nguồn kích hoạt được thực hiện bằng cách set các bit trong thanh ghi SFIOR.

+ Bit 4-ADIF: ADC interrupt Flag

Bit này được set lên 1 bởi phần cứng khi quá trình chuyển đổi đã hoàn thành và thanh

ghi dữ liệu đã được cập nhật. Bit này được xóa bằng phần cứng nếu như ngắt này được

phép và được phục vụ. Hoặc nó có thể được xóa bằng cách ghi giá trị logic “0”vào cờ

này. Cụ thể khi ngắt bị cấm ta có thể sử dụng các lệnh sbi và cbi để tác dụng lên bit này.

+ Bit 3-ADIE:ACD interrupt Enable

Nếu bit này set 1 và ngắt toàn cục được cho phép thì ngắt này được phép phục vụ (khi

chuyển đổi xong dữ liệu) và nếu bị xóa thì ngược lại.

+ Bit 2.1.0-ADPS2…ADPS0: Bit lựa chọn xung nhịp(Tốc độ)

Nguồn xung được lấy từ nguồn xung của Vi điều khiển(XTAL) và được chia tần thông qua bộ chia tần.Các bit ADPS có nhiệm vụ chọn số chia cho bộ chia tần theo bảng sau:

- Thanh ghi dữ liệu ACDH và ADCL

Thanh ghi này chứa dữ liệu chuyển đổi từ tương tự sang số, được sắp xếp như hình

dưới đây.

Hình 2.1.20 Thanh ghi dữ liệu ADC

Page 26: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 17

Trần Nguyên Hoàng

Trần Hữu Lục

- Nguyên tắc hoạt động và lập trình điều khiển

ADC có nhiệm vụ chuyển đổi tín hiệu điện áp tương tự thành tín hiệu số có độ phân

giải 10 bit.Với giá trị nhỏ nhất của điện áp đặt ở chân AGND và giá trị cực đại của điện

áp tương tự được mắc vào chân AREF. Tám kênh tương tự đầu vào được chọn lựa thông

qua ADMUX và ADMUX này được điều khiển bởi thanh ghi ADMUX.

ADC này có thể hoạt động được ở hai chế độ. Đó là chuyển đổi đơn: chỉ chuyển đổi một lần khi có lệnh chuyển đổi và chế độ tự chuyển đổi (Free running mode) đây là chế độ mà ADC tự động chuyển đổi khi được hoạt động và công việc chuyển đổi có tính tuần hoàn (chỉ cần khởi động một lần).ADC được phép hoạt động nhờ thiết lập bit ADEN. Quá trình chuyển đổi được bắt đầu bằng việc ghi vào bit ADSC mức logic 1 và trong suốt quá trình chuyển đổi bit này luôn được giữ ở mức cao. Khi quá trình chuyển đổi hoàn thành thì bit này được xóa bằng phần cứng và cờ AIDF được bật lên.

Dữ liệu sau khi chuyển đổi được đưa ra thanh ghi dữ liệu ADCL và ADCH, nhưng

chú ý khi đọc dữ liệu từ hai thanh ghi này thì đọc ADCL trước rồi mới đọc ADCH. Nếu

đọc ADCH trước thì dữ liệu cập nhật có thể ghi đè lên ADCL (Vi điều khiển nghĩ rằng đã

đọc xong dữ liệu).

Để điều khiển vào ra dữ liệu với ADC, các bước thực hiện như sau:

Bƣớc 1: Định nghĩa các cổng vào cho tín hiệu tương tự

Xóa bit tương ứng với chân đó trong thanh ghi DDRA. Sau đó loại bỏ điện trở treo bằng cách xóa bit tương ứng ở thanh ghi PORTA.

Bƣớc 2: Chọn kênh tương tự vào (chọn chân vào cho ADC) thông qua thanh

ghiADMUX (có thể thay đổi trong quá trình hoạt động).

Bƣớc 3: Thiết lập các thông số cho ADC

Tốc độ chuyển đổi thông qua xung nhip chuyển đổi.

Chế độ chuyển đổi : đơn hoặc tự động.

Sử dụng ngắt hoặc không. Bƣớc 4: Bắt đầu chuyển đổi và đọc dữ liệu.

Page 27: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 18

Trần Nguyên Hoàng

Trần Hữu Lục

2.2 IC Thời gian thực DS1307

Hình 2.2.1 IC thời gian thực DS1307

Giới thiệu chung về DS1307

IC thời gian thực là họ vi điều khiển của hãng dalat. DS1307 có một số đặc trưng cơ

bản sau:

- DS1307 là IC thời gian thực với nguồn cung cấp nhỏ dùng để cập nhật thời gian và

ngày tháng

- SRAM :56bytes

- Địa chỉ và dữ liệu được truyền nối tiệp qua 2 đường bus 2 chiều

- DS1307 có môt mạch cảm biến điện áp dùng để dò các điện áp lỗi và tự động đóng

ngắt với nguồn pin cung cấp 3V:

+ DS1307 có 7 byte dữ liệu nằm từ địa chỉ 0x00 tới 0x06, 1 byte điểu khiển, và

56 byte lưu trữ ( dành cho người sủ dụng ).

+ Khi xử lý dữ liệu từ DS1307, họ đã tự chuyển cho ta về dạng số BCD, ví dụ

như ta đọc được dữ liệu từ địa chỉ 0x04 (tưong ứng với Day- ngày trong tháng) và tại

0x05 (tháng) là 0x15, 0x11.

+ Lưu ý đến vai trò của chân SQW/OUT. Đây là chân cho xung ra của DS1307

có 4 chế độ 1Hz, 4.096HZ, 8.192Hz, 32.768Hz... các chế độ này đuợc quy định bởi các

bít của thanh ghi Control Register (địa chỉ 0x07 ).

+ Địa chỉ của DS1307 là 0xD0.

Cơ chế hoạt động : DS1307 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ác thanh 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.

Cơ chế hoạt động và chức năng của DS1307

Page 28: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 19

Trần Nguyên Hoàng

Trần Hữu Lục

Hình 2.2.2 Sơ đồ nguyên lý mạch IC DS1307

Vcc: nối với nguồn

X1,X2: nối với thạch anh 32,768 kHz

Vbat: đầu vào pin 3V

GND: đất

SDA: chuỗi data

SCL: dãy xung clock

SQW/OUT: xung vuông/đầu ra driver

DS1307 là một IC thời gian thực với nguồn cung cấp nhỏ, dùng để cập nhật thời 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,

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 12h vớ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 áp lỗ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ác

thanh 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.

Sơ đồ khối của DS1307:

Page 29: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 20

Trần Nguyên Hoàng

Trần Hữu Lục

Hình 2.2.3 Sơ đồ khối DS1307

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

- Vcc,GND: nguồn một chiều được cung cấp tới các chân này. Vcc là đầu vào 5V.

Khi 5V được cung cấp thì thiết bị có thể truy cập hoàn chỉnh và dữ liệu có thể

đọc và viết. Khi pin 3 V được nối tới thiết bị này và Vcc nhỏ hơn 1,25Vbat thì quá

trình đọc và viết không được thực thi,tuy nhiên chức năng timekeeping không bị

ảnh hưởng bởi điện áp vào thấp. Khi Vcc nhỏ hơn Vbat thì RAM và timekeeper sẽ

được ngắt tới nguồn cung cấp trong (thường là nguồn 1 chiều 3V)

- Vbat: Đầu vào pin cho bất kỳ một chuẩn pin 3V . Điện áp pin phải được giữ trong

khoảng từ 2,5 đến 3V để đảm bảo cho sự hoạt động của thiết bị.

- 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ết lậ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ở vì vậy nó cũng cần có một

điện trở kéo trong. Chân nàysẽ hoạt động khi cả Vcc và Vbat được cấp.

- X1,X2: được nối với một thạch anh tần số 32,768kHz. Là một mạch tạo dao động

ngoài, để hoạt động ổn định thì phải nối thêm 2 tụ 33pF

Page 30: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 21

Trần Nguyên Hoàng

Trần Hữu Lục

Cũng có DS1307 với bộ tạo dao động trong tần số 32,768kHz, với cấu hình này thì chân

X1 sẽ được nối vào tín hiệu dao động trong còn chân X2 thì để hở.

Sơ đồ địa chỉ RAM và RTC

Hình 2.2.4 Sơ đồ địa chỉ RAM và RTC

- Thông tin về thời gian và ngày tháng được lấy ra bằng cách đọc các byte thanh ghi

thích hợp. thời gian và ngày tháng được thiết lập cũng thông qua các byte thanh

ghi này bằng cách viết vào đó những giá trị thích hợp. nội dung của các thanh ghi

dưới dạng mã BCD(binary coded decreaseimal). Bit 7 của thanh ghi seconds là bit

clock halt(CH),khi bit này được thiết lập 1 thì dao động disable, khi nó được xoá

về 0 thì dao động được enable

Chú ý: enable dao động trong suốt quá trình cấu hình thiết lập (CH=0).Thanh ghi

thời gian thực được mô tả như sau:

Page 31: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 22

Trần Nguyên Hoàng

Trần Hữu Lục

Hình 2.2.5 Thanh ghi thời gian thực

- DS1307 có thể chạy ở chế độ 24h cũng như 12h. Bit thứ 6 của thanh ghi hours là

bit chọn chế độ 24h hoặc 12h. khi bit này ở mức cao thì chế độ 12h được chọn. ở

chế độ 12h thì bit 5 là bit AM/PM với mức cao là là PM. ở chế độ 24h thì bit 5 là

bitchỉ20h(từ20hđến 23h).

- Trong quá trình truy cập dữ liệu, khi chỉ thị START được thực thi thì dòng thời

gian được truyền tới một thanh ghi thứ 2,thông tin thời gian sẽ được đọc từ thanh

ghi thứ cấp này,trong khi đó đồng hồ vẫn tiếp tục chạy. Trong DS1307 có một

thanh ghi điều khiển để điều khiển hoạt động của chân SQW/OUT :

+ OUT(output control): bit này điều khiển mức ra của chân SQW/OUT khi đầu ra xung

vuông là disable. Nếu SQWE = 0 thì mức logic ở chân SQW/OUT sẽ là 1 nếu OUT=1 và

OUT = 0 nếu OUT = 0

+ SQWE(square wave enable): bit này được thiết lập 1 sẽ enable đầu ra của bộ tạo dao

động. Tần số của đầu ra sóng vuông phụ thuộc vào giá trị của RS1 và RS0.

Page 32: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 23

Trần Nguyên Hoàng

Trần Hữu Lục

DS1307 hỗ trợ bus 2 dây 2 chiều và giao thức truyền dữ liệu. thiết bị gửi dữ liệu lên bus

được gọi là bộ phát và thiết bị nhận gọi là bộ thu. thiết bị điều khiển quá trình này gọi là

master. thiết bị nhận sự điều khiển của master gọi là slave. Các bus nhận sự điều khiển

của master,là thiết bị phát ra chuỗi xung clock(SCL),master sẽ điều khiển sự truy cập

bus,tạo ra các chỉ thị START và STOP.

Sự truyền nhận dữ liệu trên chuỗi bus 2 dây

Tuỳ thuộc vào bit R/ w mà 2 loại truyền dữ liệu sẽ được thực thi:

- Truyền dữ liệu từ master truyền và slave nhận: Master sẽ truyền byte đầu tiên là

địa chỉ của slave. Tiếp sau đó là các byte dữ liệu . slave sẽ gửi lại bit thông báo đã

nhận được (bit acknowledge) sau mỗi byte dữ liệu nhận được. dữ liệu sẽ truyền từ

bit có giá trị nhất (MSB).

- Truyền dữ liệu từ slave và master nhận: byte đầu tiên (địa chỉ của slave) được

truyền tới slave bởi master. Sau đó slave sẽ gửi lại master bit acknowledge. tiếp

theo đó slave sẽ gửi các byte dữ liệu tới master. Master sẽ gửi cho slave các bit

acknowledge sau mỗi byte nhận được trừ byte cuối cùng,sau khi nhận được byte

cuối cùng thì bit acknowledge sẽ không được gửi .

Master phát ra tất cả các chuỗi xung clock và các chỉ thị START và STOP. sự truyền

sẽ kết thúc với chỉ thị STOP hoặc chỉ thị quay vòng START. Khi chỉ thị START quay

vòng thì sự truyền chuỗi dữ liệu tiếp theo được thực thi và các bus vẫn chưa được giải

phóng. Dữ liệu truyền luôn bắt đầu bằng bit MSB.

DS1307 có thể hoạt động ở 2 chế độ sau:

- Chế độ slave nhận( chế độ DS1307 ghi):chuỗi dữ liệu và chuỗi xung clock sẽ

được nhận thông qua SDA và SCL. Sau mỗi byte được nhận thì 1 bit acknowledge

sẽ được truyền. các điều kiện START và STOP sẽ được nhận dạng khi bắt đầu và

kết thúc một truyền 1 chuỗi. nhận dạng địa chỉ được thực hiện bởi phần cứng sau

khi chấp nhận địa chỉ của slave và bit chiều. Byte địa chỉ là byte đầu tiên nhận

được sau khi điều kiện START được phát ra từ master. Byte địa chỉ có chứa 7 bit

địa chỉ của DS1307, là 1101000, tiếp theo đó là bit chiều (R/ w) cho phép ghi khi

nó bằng 0. sau khi nhận và giải mã byte địa chỉ thì thiết bị sẽ phát đi 1 tín hiệu

acknowledge lên đường SDA. Sau khi DS1307 nhận dạng được địa chỉ và bit ghi

thì master sẽ gửi một địa chỉ thanh ghi tới DS1307 , tạo ra một con trỏ thanh ghi

trên DS1307 và master sẽ truyền từng byte dữ liệu cho DS1307 sau mỗi bit

acknowledge nhận được. sau đó master sẽ truyền điều kiện STOP khi việc ghi

hoàn thành.

Page 33: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 24

Trần Nguyên Hoàng

Trần Hữu Lục

- Chế độ slave phát ( chế độ DS1307 đọc): byte đầu tiên slave nhận được tương tự

như chế độ slave ghi. Tuy nhiên trong chế độ này thì bit chiều lại chỉ chiều truyền

ngược lại. Chuỗi dữ liệu được phát đi trên SDA bởi DS 1307 trong khi chuỗi xung

clock vào chân SCL. Các điều kiện START và STOP được nhận dạng khi bắt đầu

hoặc kết thúc truyền một chuỗi. byte địa chỉ nhận được đầu tiên khi master phát đi

điều kiện START. Byte địa chỉ chứa 7 bit địa chỉ của slave và 1 bit chiều cho phép

đọc là 1. Sau khi nhận và giải mã byte địa chỉ thì thiết bị sẽ nhận 1 bit

acknowledge trên đường SDA. Sau đó DS1307 bắt đầu gửi dữ liệu tới địa chỉ con

trỏ thanh ghi thông qua con trỏ thanh ghi.Nếu con trỏ thanh ghi không được viết

vào trước khi chế độ đọc được thiết lập thì địa chỉ đầu tiên được đọc sẽ là địa chỉ

cuối cùng chứa trong con trỏ thanh ghi .DS1307 sẽ nhận được một tín hiệu Not

Acknowledge khi kết thúc quá trình đọc. Đọc dữ liệu-chế độ slave phát.

-

- Thời gian thực hiện việc đọc,ghi dữ liệu của DS1307: sơ đồ đồng bộ

Hình 2.2.6 Sơ đồ đồng bộ

Page 34: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 25

Trần Nguyên Hoàng

Trần Hữu Lục

Hình 2.2.7 Đặc tính và thời gian thực hiện

Page 35: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 26

Trần Nguyên Hoàng

Trần Hữu Lục

2.3 Cảm biến nhiệt độ LM35

Giới thiệu về cảm biến nhiệt độ LM35

Đây là cảm biến nhiệt được tích hợp chính xác cao của hãng National

Semiconductor. Điện áp đầu ra của nó tỉ lệ tuyến tính với nhiệt độ theo thang độ Celsius.

Điện áp ngõ ra thay đổi 10mv (điện áp bước) cho mỗi sự thay đổi 1C. Chúng không yêu

cầu cân chỉnh ngoài.

LM35 có 4 dạng: TO-46, SO-8, TO-92, TO-220. Nhưng thường dung nhất là dạng

TO-92 như hình dưới.

Hình 2.3.1 Sơ đồ chân LM35

Đặc điểm cơ bản

+ Điện áp nguồn từ -0.2V đến +35V

+ Điện áp ra từ -1V đến +6V

+ Dải nhiệt độ đo được từ -55°C đến +150°C

+ Điện áp đầu ra thay đổi 10mV mỗi khi có sự thay đổi 1°C.

Page 36: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 27

Trần Nguyên Hoàng

Trần Hữu Lục

2.4 Màn hình LCD1602

Hình 2.4.1 Màn hình LCD1602

Khái niệm LCD 1602

Là một thiết bị thông dụng dùng để hiển thị thông tin,đặc biệt là hiển thị các chữ

cái.LCD1602 có 16 cột và 2 hàng,nó có thể hiện thị tối đa 32 ký tự cùng lúc(16 ký tự

hàng trên và 16 ký tự hàng dưới).

sơ đồ chân và bố trí chân của Atmega16

Hình 2.4.2 Sơ đồ chân của LCD1602

Page 37: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 28

Trần Nguyên Hoàng

Trần Hữu Lục

Bảng 2.1 Các chân chức năng của LCD 1602

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

1 Vss Chân nối đất cho LCD, khi thiết kế mạch 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 nối chân

này với Vcc= 5V.

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

4 RS Chân chọn thanh ghi(Register select). Nối chân RS với

logic “0”(GND) hoặc “1” (Vcc) để chọn thanh ghi.

+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh

IR của LCD (write) hoặc với bộ đếm địa chỉ (read).

+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ

liệu DR bên trong LCD.

5 R/W Chân chọn chế độ đọc/ghi. Nối chân này với logic “0”

để LCD ghi, hoặc nối với logic “1” để đọc.

6 E Châ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.

+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển

vào thanh ghi bên trong nó khi phát hiện một xung cho

phép của chân E.

+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-

DB7 khi phát hiện cạnh lên của chân E và được LCD

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

7 DB0-

DB7

8 đường của bus dữ liệu dùng để trao đổi thông tin với

MPU. Có 2 chế độ sử dụng:

+ Chế độ 8 bit: dữ liệu được truyền trên 8 đường, với

bit MSB là bit DB7.

+ Chế độ 4 bit: dữ liệu được truyền trên 4 đường từ

BD4 tới DB7, với bit MSB là bit DB7.

Các thanh ghi: - Thanh ghi IR: Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng. Người dùng

chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR.

- Cờ báo bận BF: (Busy Flag)

Khi đang thực thi các hoạt động bên trong, LCD bỏ qua mọi giao tiếp với bên ngoài và

bật cờ BF( thông qua chân DB7 khi có thiết lập RS=0, R/W=1) lên để cho biết nó đang

“bận”.

- Bộ đếm địa chỉ AC : (Address Counter)

Khi một địa chỉ lệnh được nạp vào thanh ghi IR, thông tin được nối trực tiếp cho 2 vùng

RAM (việc chọn lựa vùng RAM tương tác đã được bao hàm trong mã lệnh). Sau khi ghi

vào (đọc từ) RAM, bộ đếm AC tự động tăng lên (giảm đi) 1 đơn vị.

Bộ nhớ LCD

Page 38: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 29

Trần Nguyên Hoàng

Trần Hữu Lục

Vùng RAM hiển thị DDRAM : (Display Data RAM)

Vùng CGROM: Character Generator ROM

Vùng CGRAM : (Character Generator RAM)

- DDRAM

Đây là vùng RAM dùng để hiển thị, nghĩa là ứng với một địa chỉ của RAM là một ô kí tự

trên màn hình

Hình 2.4.3 Sơ đồ địa chỉ DDRAM của LCD1602

- CGROM

Chứa các mẫu kí tự loại 5x7 hoặc 5x10 điểm ảnh/kí tự, và định địa chỉ bằng 8 bit.

Hình 2.4.4 Các ký tự hiển thị trên LCD 1602

Page 39: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 30

Trần Nguyên Hoàng

Trần Hữu Lục

Bảng 2.2 Các tập lệnh của LCD 1602

Mã (hex) Lệnh đến thanh ghi của LCD

1 Xóa màn hình hiển thị

2 Trỏ về đầu dòng

4 Giảm con trỏ(dịch con trỏ sang trái)

5 Tăng con trỏ(dịch con trỏ sang phải)

6 Dịch hiển thị sang phải

7 Dịch hiển thị sang trái

8 Tăng con trỏ, tắt hiển thị

A Tắt hiển thị, bật con trỏ

C Bật hiển thị, tắt con trỏ

E Bật hiển thị, nhấp nháy con trỏ

F Tắt con trỏ, nhấp nháy con trỏ

10 Dịch vị trí con trỏ sang trái

14 Dịch con trỏ sang phải

18 Dịch toàn bộ hiển thị sang trái

1C Dịch toàn bộ hiển thị sang phải

80 Ép con trỏ về đầu dòng thứ nhất

C0 Ép con trỏ về đầu dòng thứ hai

38 Hiển thị LCD 2 dòng và ma trận 5x7

Page 40: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 31

Trần Nguyên Hoàng

Trần Hữu Lục

CHƢƠNG 3 : THIẾT KẾ VÀ THI CÔNG 3.1 Sơ đồ các khối

Hình 3.1 Sơ đồ các khối

Mạch nguyên lý được thiết kế trên phần mềm OrCAD 16.3

3.1.1 Khối MCU

Hình 3.2 Khối MCU

KHỐI THỜI

GIAN THỰC

KHỐI HIỂN THỊ

LCD

KHỐI XỬ LÝ

TRUNG TÂM

ATMEGA16

K

H

I

N

G

U

N

KHỐI ĐO

NHIỆT ĐỘ

KHỐI CÀI ĐẶT

KHỐI

CHUÔNG BÁO

Page 41: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 32

Trần Nguyên Hoàng

Trần Hữu Lục

Mạch RESET cho MCU

Hình 3.3 Mạch Reset

Khối tạo dao động sử dụng thạch anh ngoài

Hình 3.4 Mạch dao động

3.1.2 Khối LCD

Hình 3.5 khối hiển thị LCD

3.1.3 Khối RTC

Hình 3.6 Khối thời gian thực DS1307

Page 42: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 33

Trần Nguyên Hoàng

Trần Hữu Lục

3.1.4 Khối cảm biến nhiệt độ

Hình 3.7 Khối cảm biến nhiệt độ LM35

3.1.5 Khối cài đặt

Hình 3.8 Khối nút nhấn

3.1.6 Khối chuông báo

Hình 3.9 Khối chuông báo

3.2 Sơ đồ mạch in

Sử dụng phần mềm OrCAD Layout 16.2 để layout mạch in. Mạch đưuọc vẽ trên 2 lớp

TOP và BOTTOM, mạch vẽ bằng tay , được chỉnh sửa phù hợp để có thể làm mạch in 2

lớp thủ công .

Page 43: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 34

Trần Nguyên Hoàng

Trần Hữu Lục

- Lớp mạch in:

Hình 3.10 Lớp TOP

Hình 3.11 Lớp BOTTOM

- Lớp Bố trí linh kiện

Hình 3.12 Lớp SSTOP

Page 44: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 35

Trần Nguyên Hoàng

Trần Hữu Lục

Hình 3.13 Lớp SSBOT

- Mạch sau khi thi công

Hình 3.14 Mạch thực tế mặt sau

Hình 3.15 Mạch thực tế mặt trước

Page 45: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 36

Trần Nguyên Hoàng

Trần Hữu Lục

3.3 Các linh kiện sử dụng trong mạch

Bảng 3.1 Các linh kiện sử dụng trong mạch

ST

T

Tên Giá trị Số

lượn

g

Ghi

chú

Hình ảnh

1 ATMega1

6

1 DIP-

40

2 DS1307 1 DIP-

8

3 LCD1602 1

4 LM35 1 TO9

2

5 Thạch anh 8MHz

32.768MH

z

1

1

Page 46: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 37

Trần Nguyên Hoàng

Trần Hữu Lục

6 Tụ gốm 22p

104

2

1

7 Transistor C1815 1 TO9

2

8 Loa

Buzzer

1

9 Biến trở 10K 1

10 Điện trở 10K

1K

3

1

11 Nút nhấn 2 chân 6

12 Pin CMOS 3V 1

Page 47: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 38

Trần Nguyên Hoàng

Trần Hữu Lục

CHƢƠNG 4 :

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN

4.1 Kết quả của đề tài

- Đồ án đã đạt yêu cầu đề ra, đó là thiết kế đồng hồ thời gian thực hiển thị LCD

+ Hiển thị giờ, phút, giây, ngày, tháng, năm

+ Có phím cài đặt thời gian

+ Báo thức do người dung cài đặt bằng phím nhấn

+ Hiển thị nhiệt độ môi trường

+ Mạch nhỏ gọn

-Trong quá trình làm đô án, nhóm đã học hỏi thêm được nhiều thứ

+ Hiểu về vi điều khiển AVR ATMega16 và sửu dụng làm VXL trung tâm

+ Dùng LCD để hiển thị ký tự theo mong muốn

+ Dùng ngôn ngữ lập trình C cho vi điều khiển dùng Codevision AVR

+ Áp dụng được lý thuyết đã học vào thực tế

4.2 Hạn chế của đề tài

- Sử dụng ATMega16 cho ứng dụng này là khá phí phạm vì ứng dựng không đòi hỏi

nhiều ứng dụng

- Hệ thống báo thức chưa được tối ưu

- Dùng LCD nên chỉ xem được trong phạm vi ngắn

4.3 Hƣớng phát triển của đề tài

- Có thử sử dụng 8051 để hạ giá thành sản phẩm.

Page 48: Đồng hồ số hiển thị LCD

Đề tài: ĐỒNG HỒ SỐ HIỂN THỊ LCD GVHD: Nguyễn Trọng Huân

SVTH: Nguyễn Ngọc Hà 39

Trần Nguyên Hoàng

Trần Hữu Lục

- Sử dụng senser cảm biến nhiệt độ DS1820 để cho độ chính xác cao. DS1820 là IC giao

tiếp chuẩn 1 wire nên có thể đo nhiệt độ tại nhiều điểm khác nhau mà chỉ tốn 1 dây duy

nhất.

- Nâng cấp phần mềm để có thể hiển thị được âm lịch

- Mở rộng phần hiển thị ra LED 7 đoạn để có thể nhìn được ở khoảng cách xa

- Có thể báo thức ở nhiều thời điểm khác nhau

TÀI LIỆU THAM KHẢO

[1]. Giáo trình vi điều khiển AVR, DKS_GROUP, http://www.embestdks.com/

[2]. http://hocavr.com

[3]. http://www.datasheetcatalog.com/

[4]. http://google.com.vn