31
1 VIỆT PHÁP 10 6/2014 BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM Mục Lục Lời mở đầu..................................................... 2 Giới thiệu chung............................................... 2 Công cụ sử dụng................................................ 2 Nội Dung....................................................... 2 1. Đặc tính sản phẩm............................................2 2. Đặc tính kĩ thuật............................................3 a) Nút nhấn...................................................3 b) Vi xử lý PIC16F877A........................................4 c) Khối hiển thị .............................................6 d) Khối nguồn ................................................6 e) Các thành phần khác........................................6 f) Yêu cầu....................................................6 3. Đặc tính phần cứng...........................................7 a) Sơ đồ mô phỏng và sơ đồ khối mạch..........................7 b) Nguyên lý hoạt động cơ bản.................................9 4. Đặc tính phần mềm………………………………………………………………..……………9 a) Đồng hồ sẽ hoạt động như thế nào?..........................9 b) Cách tạo bộ đếm thời gian.................................10 c) Sơ đồ khối và các hàm quan trọng..........................14 5. Đặc tính kiểm tra...........................................22 a) Mô phỏng mạch trên Proteus 8.0............................22 b) Thiết kế mạch in và kết quả thực tế.......................23 6. Kết luận....................................................24 Hướng Phát Triển.............................................. 25 Tham Khảo..................................................... 25

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

1

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Mục LụcLời mở đầu.......................................................................................................................................2

Giới thiệu chung..............................................................................................................................2

Công cụ sử dụng..............................................................................................................................2

Nội Dung.........................................................................................................................................2

1. Đặc tính sản phẩm........................................................................................................................2

2. Đặc tính kĩ thuật...........................................................................................................................3

a) Nút nhấn...............................................................................................................................3b) Vi xử lý PIC16F877A..........................................................................................................4c) Khối hiển thị .......................................................................................................................6d) Khối nguồn ..........................................................................................................................6e) Các thành phần khác............................................................................................................6f) Yêu cầu................................................................................................................................6

3. Đặc tính phần cứng......................................................................................................................7

a) Sơ đồ mô phỏng và sơ đồ khối mạch...................................................................................7b) Nguyên lý hoạt động cơ bản................................................................................................9

4. Đặc tính phần mềm………………………………………………………………..……………9

a) Đồng hồ sẽ hoạt động như thế nào?.....................................................................................9b) Cách tạo bộ đếm thời gian.................................................................................................10c) Sơ đồ khối và các hàm quan trọng.....................................................................................14

5. Đặc tính kiểm tra........................................................................................................................22

a) Mô phỏng mạch trên Proteus 8.0.......................................................................................22b) Thiết kế mạch in và kết quả thực tế...................................................................................23

6. Kết luận......................................................................................................................................24

Hướng Phát Triển..........................................................................................................................25

Tham Khảo....................................................................................................................................25

Page 2: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

2

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Lời mở đầuNgày nay,khoa học công nghệ và kỹ thuật đang đóng một vai trò quan trọng trong đời sống

con người. Bên cạnh đó, thời gian luôn trở thành một tài sản quý giá mà bất kì ai cũng mong muốn được tận dụng một cách tối đa. Tuy nhiên, việc quản lý thời gian một cách hiệu quả vẫn là một trong những vấn đề nan giải cần được giải quyết một cách triệt để và đây là một đề tài mà nhóm luôn muốn tìm cách giải quyết. Kết hợp với kiến thức thiết kế và lập trình hệ thống nhúng, nhóm đã quyết định lựa chọn đề tài “Thiết kế đồng hồ số bằng vi xử lý PIC16F877A”.

Đề tài này được thực hiện trong khoảng thời gian 4 tháng với sự hỗ trợ của những kiến thức về lập trình C, thiết kế và mô phỏng mạch. Hơn thế nữa, nhóm cũng tận dụng những khả năng của vi xử lý PIC16F877A để giải quyết những vấn đề phát sinh trong quá trình thực hiện. Kết quả nhận được là khả quan khi thành phẩm có thể hiện thị thời gian một cách chi tiết và có thể được điều chỉnh thông qua các nút nhấn. Trong tương lai, sản phẩm này hoàn toàn có thể được phát triển xa hơn với các tính năng mới hơn như báo thức, thiết lập lịch làm việc… nhằm đáp ứng nhu cầu quản lý thời gian mà mỗi người mong muốn.

Giới thiệu chungBài báo cáo trình bày mạch đồng hồ hiển thị thời gian thông qua việc sử dụng ngôn ngữ lập

trình C trên PIC C Compiler và những kiến thức cơ bản về thiết kế hệ thống nhúng. Trước hết, bài báo cáo sẽ trình bày về những đặc tính cơ bản của sản phẩm. Nhìn chung, mạch được tạo thành từ các thành phần linh kiện khá phổ biến trong việc thiết kế hệ thống nhúng như vi xử lý PIC16F877A, màn hình LCD, nút nhấn cùng với các linh kiện cơ bản như điện trở, tụ điện…

Ngoài ra, bài báo cáo này cũng trình bày về cách thức mô phỏng bằng Proteus cũng như thiết kế mạch in thông qua ứng dụng Orcad, trong đó, việc thiết kế mạch in đóng vai trò quan trọng hơn hết khi chất lượng sản phẩm phụ thuộc vào yếu tố này. Tiếp theo, sơ đồ khối cơ bản cùng với những thuật toán dành cho sản phẩm sẽ được giới thiệu. Về cơ bản, mạch đồng hồ này sử dụng Timer0 của vi xử lý PIC để tạo bộ đếm 1 giây cho các thành phần khác hoạt động. Thêm vào đó, thuật toán dành cho màn hình LCD và nút nhấn cũng được chú trọng kĩ càng khi những phần này đóng vai trò quan trọng trong việc khẳng định hiệu năng của thiết bị.

Công cụ sử dụngTrong quá trình thực hiện đồ án này, sản phẩm đã được hình thành thông qua việc sử dụng

các phần mềm hữu ích sau đây:

PIC C Compiler, hỗ trợ viết mã và biên dịch mã nguồn thành file .hex. Proteus 8.0, hỗ trợ mô phỏng sản phẩm. Orcad 9.2, hỗ trợ thiết kế mạch in và hoàn thiện sản phẩm.

Nội Dung1. Đặc tính sản phẩm

Page 3: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

3

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Sản phẩm được thiết kế là đồng hồ điện tử có khả năng hiển thị thời gian. Cụ thể hơn, mạch có khả năng hiển thị thời gian với các thông số: ngày – tháng – năm và giờ - phút – giây. Ngoài ra, người dùng có thể thực hiện việc điều chỉnh các thông số này thông qua các nút nhấn.

Để thực hiện được các tính năng trên, sản phẩm sử dụng giao tiếp với màn hình LCD để hiển thị thời gian cùng với bộ định thì timer0 trong chip xử lý PIC16F877A để tạo bộ đếm giây. Ngoài ra, như đã đề cập ở trên, sản phẩm có sử dụng các nút nhấn để nhập thông tin về thời gian mà người dùng mong muốn. Sau khi hoàn thành quá trình nhập, thời gian sẽ được hiển thị phù hợp với yêu cầu của người dùng.

2. Đặc tính kĩ thuật:3.

Hình 1: Sơ đồ hoạt động tổng quát

Sản phẩm sử dụng đầu các thành phần linh kiện sau đây để thực hiện chức năng:

a. Nút nhấn:

Trong mạch thiết kế, sản phẩm sử dụng ba nút nhấn với tên gọi lần lượt là SET TIME, UP và DOWN. Mỗi nút nhấn có từng chức năng riêng biệt như sau:

SET TIME: thiết lập thời gian cho từng thông số hiển thị trên đồng hồ UP: tăng giá trị của thông số đang tùy chỉnh lên 1 với giờ phút giây, tháng năm và tang

thứ tự ngày trong tuần DOWN: giảm giá trị thông số đang tùy chỉnh xuống 1 với giờ phút giây, tháng, năm và

giảm thứ tự ngày trong tuần.Hệ thống nút nhấn:

Nút nhấn PIC16F877A LCD

Hiển thị thời gian

Tạo xung

Page 4: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

4

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

b. Vi xử lý PIC16F877A:

Hình 2: Sơ đồ chân Vi xử lý PIC16F877A

Về cơ bản, PIC là viết tắt của Programmable Intelligent Computer,do hãng General Instrument đặt tên cho sản phẩm xử lý đầu tiên của họ. Hiện nay, trên thị trường có rất nhiều họ vi điều khiển như 8051, ARM, v.v nhưng họ vi điều khiển PIC được ưa chuộng vì rất nhiều lý do:

Họ vi điều khiển này dễ dàng tìm thấy tại thị trường Việt Nam Giá thành phù hợp với nhu cầu học hỏi của sinh viên Có đầy đủ tính năng của một vi điều khiển hoạt động độc lập

Page 5: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

5

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Là sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền thống như 8051.

Ngoài ra, sự hỗ trợ của các nhà sản xuất về trình biên dịch (PIC C Compiler, MickroC), các công cụ lập trình, nạp chương trình dành cho họ sản phẩm này khá đa dạng, chính vì thế PIC là một lựa chọn hoàn hảo để xây dựng mô hình sản phẩm.

Cụ thể hơn, PIC16F877A có tập lận gồm 35 lệnh có độ dài 14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ tối đa cho phép là 20MHz với một chu kì lệnh là 200ms. Bộ nhớ chương trình 8k x14 bit, bộ nhớ dữ liệu là 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng là 258 x 8 byte. Sổ PORT I/O là 5 với 33 chân I/O

Hình 3: Sơ đồ khối Vi xử lý PIC16F877A

Ngoài ra, các đặc tính ngoại vi của sản phẩm này bao gồm các khối chức năng sau:

Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit

Page 6: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

6

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ ngủ.

Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler. Hai bộ Capture/so sánh/điều chế độ xung Các chuẩn giao tiếp SSP (Synchronous Serial Port), SPI và I2C Chuẩn giao tiếp nối USART với 9 địa chỉ bit Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS

ở bên ngoài.

Ngoài ra, chúng ta cũng có thể nhắc tới các đặc tính Analog như sau:

8 kênh chuyển đổi ADC 10bit Hai bộ so sánh Bộ nhớ flash với khả năng ghi xóa được 100,000 lần Bộ nhớ EEPROM với khả năng 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 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

c. Khối hiển thị LCD:

Màn hình LCD đóng vai trò hiển thị các thông số thời gian như ngày tháng năm – giờ phút giây.

d. Khối nguồn:

Để mạch hoạt động một cách hiệu quả, sản phẩm sử dụng nguồn 5V cung cấp từ adapter hoặc USB kết nối với máy tính. Ở đây, nhóm chọn nguồn cung cấp cho mạch là từ cổng USB.

Sơ đồ bộ nguồn được thiết kế như sau:

Hình 4: Sơ đồ bộ nguồn

Page 7: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

7

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

e. Các thành phần khác:

Ngoài ra, để thực hiện mạch hoạt động cũng như thực hiện được các chức năng cơ bản như điều chỉnh thời gian, sản phẩm sử dụng thêm các linh kiện là biến trở, điện trở, nút nhấn.

f. Yêu cầu:

Mạch hoạt động một cách hiệu quả khi thời gian hiển thị phù hợp với thời gian chuẩn theo giờ GMT. Để thực hiện được điều này, ta cần tạo được bộ đếm thời gian một giây để đồng hồ hoạt động. Ngoài ra, người dùng hoàn toàn có thể điều chỉnh thời gian theo ý mình muốn cũng như có thể xóa tất cả các thiết lập ban đầu để thiết lập mới hoàn toàn. Hơn nữa, sản phẩm cũng phải có giao diện thiết kế đẹp, dễ nhìn và cuốn hút.

4. Đặc tính phần cứng:a. Sơ đồ mô phỏng và sơ đồ khối mạch:

Trước tiên, quá trình mô phỏng được thực hiện để kiểm tra hoạt động của mã nguồn chương trình. Sơ đồ mô phỏng mạch được thiết kế như sau:

Hình 5: Sơ đồ mạch mô phỏng bằng Proteus

Sau đó, để thực hiện sản phẩm, mạch được thiết kế với mô hình nguyên lý hoạt động sau đây:

Page 8: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

8

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Hình 6: Sơ đồ hoạt động của mạch

Vi xử lý PIC16F877A có tần số là 4 MHz. Ngoài ra, mạch sử dụng bộ định thì timer0 để tạo bộ đếm 1 giây cho đồng hồ. Hơn nữa, mạch nhận thông tin điều chỉnh thời gian thông qua các nút nhấn và thông tin đầu vào được đưa vào cổng E. Thông tin đầu ra sử dụng cổng D để hiển thị lên LCD.

Hình 7: Sơ đồ khối hiển thị LCD

Page 9: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

9

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Khối LCD sử dụng trong mạch là LCD 16 chân: trong đó, mạch sử dụng các chân 1, 2, 3, 4, 5, 6, 11, 12, 13, 14, 15, 16 để hiển thị thời gian. Ngoài ra, thành phần này được tích hợp thêm một biến trở để điều khiển độ sáng màn hình.

Thạch anh với tần số 4MHz và thành phần này kết hợp với 2 tụ 22pF để đưa vào chân số 13 OSC1/CLKIN và 14 OSC2/CLKOUT tạo xung clock cho đồng hồ.

Điện trở sử dụng trong mạch có giá trị là 4.7K, một số tụ kẹo 104 để lọc nhiễu.

b. Nguyên lý hoạt động cơ bản:

Mạch bắt đầu hoạt động khi được cung cấp nguồn 5V thông qua dây kết nối USB với máy tính cá nhân hoặc adapter. Khi cấp nguồn cho mạch, vi xử lý PIC16F877A sẽ bắt đầu đếm thời gian. Ngoài ra, khi bắt đầu khởi động, các giá trị ban đầu sẽ là 00:00:00. Do đó, để điều chỉnh thời gian, người dùng có thể sử dụng các nút nhấn SET TIME, UP, DOWN. Khi đó, mạch sẽ sử dụng thuật toán điều chỉnh thời gian cũng như xác định năm nhuận để thực hiện xác lập thời gian hiển thị.

5. Đặc tính phần mềma. Đồng hồ sẽ hoạt động như thế nào?

Về cơ bản, đồng hồ hiển ghị ngày – tháng – năm và giờ – phút – giây bao gồm các thông số cùng với tầm hoạt động sau đây:

Giây: 0 – 59 Phút: 0 – 59 Giờ: 0 – 23 Ngày: SUN – MON – TUE– WED – THU – FRI – SAT tương ứng với chủ nhật, thứ hai,

thứ ba, thứ tư, thứ năm, thứ sáu, thứ bảy trong tuần. 1 – 7 tương ứng với các ngày trong tuần. Số ngày: 1 – 28/29/30/31 với cận trên tương ứng với tháng trong năm. Tháng: 1 – 12

Như vậy, để đồng hồ hoạt động, biến giây của đồng hồ sẽ bắt đầu đếm từ 0 đến 59. Khi đó, biến phút sẽ được cộng lên 1; đồng thời, biến giây sẽ được trả lại 0 và tiếp tục quá trình đếm. Sau đó, biến phút sẽ được tăng từ 1 đến 59; khi đó, thông số giờ sẽ được tăng lên 1 và thông số phút sẽ bắt đầu đến lại bằng 0. Tiếp theo,biến giờ sẽ được đếm từ 1 và khi giá trị này đạt 23, ngày và số ngày được tăng lên một và giờ sẽ đếm lại với giá trị là 0. Ngoài ra, thông số ngày sẽ được tăng lên ở mốc tối đa là 7, ứng với thứ 7 và sau đó giá trị này sẽ bắt đầu lại từ 0 (ứng với chủ nhật).

Trong khi đó, thông số số ngày sẽ tăng từ 1 tới 28/29/30/31 với cận trên tương ứng với tháng trong năm hoặc năm nhuận hay không. Gỉa sử tháng đang nói tới là tháng 1, 3, 5, 7, 8, 10 hoặc 12 thì số ngày tối đa là 31; tháng hiện tại là 4, 6, 9, 10 hoặc 11 thì số ngày sẽ là 30. Nếu tháng hiện tại là tháng 2 năm thường thì số ngày là 28 và tháng 2 năm nhuận là 29 ngày. Khi số ngày của tháng đạt mức tối đa, giá trị tháng sẽ tăng lên 1 và số ngày sẽ bắt đầu lại từ 0. Cuối cùng,nếu tháng hiện tại là 12 thì sau đó, số năm sẽ tăng lên 1 và giá trị tháng bắt đầu lại là 1.

b. Cách tạo bộ đếm thời gian?

Page 10: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

10

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Để đồng hồ hoạt động, ta cần tạo ra một đếm thời gian cũng như cập nhật thời gian để liên tục đếm cũng như hiển thị lên màn hình LCD. Có rất nhiều cách thực hiện nhiệm vụ này, trong đó nổi bật là hai cách thức : sử dụng Real Time Clock IC (IC thời gian thực) hoặc sử dụng Timer của PIC16F877A . Dựa trên yêu cầu của đồ án , phương án thứ hai được lựa chọn để thực hiện.

c. Sơ đồ khối và các hàm quan trọng.

Để đồng hồ hoạt động, ta sử dụng sơ đồ khối cũng như các đoạn mã sau đây:

Page 11: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

11

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Hình 11: Sơ đồ khối chung

Mã nguồn phần main() của chương trình:

Page 12: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

void TIMER0_isr(){ set_timer0(-125); clear_interrupt(INT_TIMER0); K++; if (K == 126) { if (++secs > 59) { secs = 0; if (++mins > 59) { mins = 0; if (++hours > 23) { hours = 0; if ((++date > 6) & (++day > 7)) date = 0; day = 0; if (++date > end_of_month[month-1][is_leap_year(year + 2000)]) { date = 1; if (++month > 12) { month = 1; ++year; } } } }

12

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Mã nguồn thành phần tạo bộ đếm thời gian cho đồng hồ:

void main()

{ Initialize_RTC();

enable_interrupts(GLOBAL);

lcd_init();

delay_ms(10);

output_low(PIN_D7);

while(true)

{ buttonchecked();

if (set_time_button)

{

set_time_button = 0;

time_setting_mode();

}

LCD_display();

}

}

Page 13: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

13

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Sơ đồ khối Buttonchecked() – Có tác dụng điều khiển hoạt động khi các nút được nhấn.

Hình 12: Sơ đồ khối hàm ButtonChecked

Page 14: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

14

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Mã nguồn hàm ButtonChecked()

Page 15: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

15

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Hàm Incre_Decre – để tăng giảm giá trị khi nhấn nút UP và DOWN

int8 incre_decre(int8 min_value, int8 value, int8 max_value)

{

buttonchecked();

if (incre_button)

{

incre_button = 0;

if (value < max_value)

return(value + 1);

else return(min_value);

}

if (decre_button)

{

decre_button = 0;

if (min_value < value)

return(value - 1);

else return (max_value);

} else return value;

}

Page 16: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

16

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Hình 13: Hàm Incre_Decre với phần Incre

Page 17: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

17

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Hình 14: Hàm Incre_Decre với phần Decre

Page 18: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

18

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Sơ đồ khối Date Setting Mode – Hàm Date Setting Mode có tác dụng điều chỉnh ngày cũng như thứ trong tuần tương ứng với tháng trong năm.

Hình 15: Sơ đồ khối hàm Date Setting Mode

Mã nguồn hàm Date Setting Mode:

Page 19: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

19

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMvoid date_setting_mode()

{

switch(month)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

while (!set_time_button) {

date = incre_decre(1,date,31);

LCD_DISPLAY();

}

break;

case 4:

case 6:

case 9:

case 11:

while (!set_time_button){

date = incre_decre(1,date,30);

LCD_DISPLAY();

}

break;

case 2:

if (year%4 == 0)

while (!set_time_button){

date = (incre_decre(1,date,29));

LCD_DISPLAY();

}

else

while (!set_time_button) {

date = (incre_decre(1, date, 28));

LCD_DISPLAY();

}

break;

}

}

Page 20: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

20

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Sơ đồ khối và mã nguồn hàm Time setting mode – Hàm có chức năng điều chỉnh thời gian hiển thị tương ứng với từng ngày trong tuần.

Hình 16: Sơ đồ khối hàm Time Setting Mode

Page 21: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

21

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

void time_setting_mode()

{

int1 exit_1 = 0;

int8 Time_SM = 0;

while (exit_1 == 0){

set_time_button = 0;

while (!set_time_button) {

Time_SM = incre_decre(0,Time_SM,7);

disp_lcd_TimeSM(Time_SM);

buttonchecked();

}

set_time_button = 0;

switch (Time_SM) {

case 2:while (!set_time_button) {secs = incre_decre(0,secs,59); LCD_DISPLAY();}; break;

case 1:while (!set_time_button) {mins = incre_decre(0,mins,59); LCD_DISPLAY();}; break;

case 0:while (!set_time_button) {hours = incre_decre(0,hours,23); LCD_DISPLAY();};break;

case 3:while (!set_time_button) {day = incre_decre(0,day,7);LCD_DISPLAY();}; break;

case 4:date_setting_mode(); break;

case 5:while (!set_time_button) {month = incre_decre(0,month,12);LCD_DISPLAY();}; break;

case 6:while (!set_time_button) {year = incre_decre(0,year,99); LCD_DISPLAY();};break;

case 7: exit_1 = 1; break;

}

}

lcd_gotoxy(1,1);

printf(lcd_putc, "SUCCESS!");

delay_ms(500);

}

Page 22: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

22

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

6. Đặc tính kiểm tra

Quá trình kiểm tra bao gồm việc mô phỏng mạch trên ISIS Proteus, thiết kế mạch in cũng như thực hiện mạch trên thực tế:

a. Mô phỏng mạch trên Proteus 8.0:

Hình 17: Sơ đồ mạch mô phỏng trên Proteus

Ta tiến hành kiểm tra lần lượt từng chế độ xem có đúng yêu cầu đặt ra không và chỉnh sửa code cho phù hợp.

b. Thiết kế mạch in và kết quả thực tế:

Page 23: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

23

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Hình 18: Sơ đồ mạch in, thiết kế bằng Layout trên Orcad

Page 24: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

24

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Hình 19: Hình ảnh mạch hoạt động

Để tiến hành kiểm tra hoạt động thực tế của mạch, ta tiến hành kiểm nghiệm từng thành phần:

Điều chỉnh độ sáng màn hình Nút nhấn: SET_TIME, UP, DOWN và RESET Hoạt động LCD. Nguồn

Sau khi kiểm tra và chỉnh sửa, ta thu được kết quả cụ thể sau đây:

Thành phần Kết quả kì vọng Kết quả thực tếĐộ sáng màn hình Tốt TốtNút nhấn SET_TIME Tốt Đạt

UP Tốt ĐạtDOWN Tốt Đạt

Page 25: BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆMdulieu.tailieuhoctap.vn/.../file_goc_783897.docx · Web viewNhìn chung, mạch được tạo thành từ các thành phần linh

25

Việt pháp 10 6/2014

BÁO CÁO ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM

Hoạt động LCD Tốt TốtNguồn Tốt Tốt và ổn địnhHoạt động của đồng hồ Tốt Tốt

7. Kết luận

Sản phẩm được tạo thành có chức năng hiển thị ngày tháng năm, giờ phút giây và hoạt động khá ổn đinh so với kì vọng của nhóm.

Đồ án là môn học là một thử thách đối với chúng em, qua đồ án này chúng em đã từng bước làm quen với cách vận dụng kiến thức đã học và quen dần với phương pháp tự học tự nghiên cứu dưới áp lực thời gian. Hơn thế nữa, đồ án giúp cho sinh viên quen dần với cách làm các đồ án tốt nghiệp sau này.

Hướng Phát TriểnSản phẩm trên đã đáp ứng yêu cầu của đồ án khi thực hiện tốt chức năng hiển thị thời gian.

Tuy nhiên, sản phẩm hoàn toàn có thể phát triển lên một mức cao hơn với các tính năng cơ bản sau đây:

Hoạt động độc lập trên nguồn pin hoăc trên nguồn pin. Hẹn giờ báo thức với mạch chuông bổ sung. Hiển thị thông tin về ngày âm lịch Cài đặt lịch làm việc.

Tham KhảoBài báo cáo có sử dụng thông tin từ nguồn sau đây:

[1] Thông tin vi xử lý PIC16F877A trên trang web www.microchip.com

[2] Tài liệu giảng dạy thiết kế hệ thống nhúng PIC16F877A của thầy Trương Quang Vinh.

[3] Một số trang web hỗ trợ: www.dientuvietnam.net , www.payitforward.edu.vn