SlideShare a Scribd company logo
1 of 44
Download to read offline
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
BÁO CÁO
BÀI TẬP LỚN VI XỬ LÝ
ĐỀ TÀI:
THIẾT KẾ MẠCH ĐỒNG HỒ LỊCH VẠN NIÊN
SỬ DỤNG VI ĐIỀU KHIỂN AVR
Giảng viên hướng dẫn: TS. Nguyễn Hoàng Dũng
Sinh viên thực hiện: Hoàng Tuấn Linh – 20132263
Nguyễn Văn Long – 20132393
Lớp: KSTN – ĐTVT – K58
Hà Nội, 4-2016
2
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
BÁO CÁO
BÀI TẬP LỚN VI XỬ LÝ
ĐỀ TÀI:
THIẾT KẾ MẠCH ĐỒNG HỒ LỊCH VẠN NIÊN
SỬ DỤNG VI ĐIỀU KHIỂN AVR
Giảng viên hướng dẫn: TS. Nguyễn Hoàng Dũng
Sinh viên thực hiện: Hoàng Tuấn Linh – 20132263
Nguyễn Văn Long – 20132393
Lớp: KSTN – ĐTVT – K58
Hà Nội, 4-2016
3
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Nhận xét của giáo viên
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
4
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Mục lục
Nhận xét của giáo viên....................................................................................................................... 3
Danh mục hình vẽ .............................................................................................................................. 5
Danh mục bảng biểu .......................................................................................................................... 6
Lời mở đầu......................................................................................................................................... 7
Chương I. Mô tả đề tài............................................................................................................. 8
1. Đặt vấn đề .............................................................................................................................. 8
2. Phân tích yêu cầu thiết kế....................................................................................................... 9
2.1 Yêu cầu chức năng......................................................................................................... 9
2.2 Yêu cầu phi chức năng................................................................................................... 9
Chương II. Lập kế hoạch ........................................................................................................ 10
1. Bảng phân tích nhân lực....................................................................................................... 10
2. Bảng phân công công việc ................................................................................................... 11
3. Bảng kế hoạch thực hiện...................................................................................................... 12
Chương III. Thiết kế hệ thống.................................................................................................. 13
1. Thiết kế sơ đồ khối............................................................................................................... 13
2. Thiết kế sơ đồ khối chi tiết................................................................................................... 14
2.1 Khối nguồn................................................................................................................... 14
2.2 Khối điều chỉnh ngày giờ và báo thức ......................................................................... 14
2.3 Khối hiển thị................................................................................................................. 15
2.4 Khối thời gian thực ...................................................................................................... 16
2.5 Khối điều khiển............................................................................................................ 18
3 Sơ đồ nguyên lý ................................................................................................................... 20
Chương IV. Hoàn thành sản phẩm........................................................................................... 21
1. Layout mạch in..................................................................................................................... 21
2. Làm mạch, hàn linh kiện...................................................................................................... 22
3. Đo đạc, kiểm tra, đánh giá chất lượng sản phẩm ................................................................. 23
Chương VI. Kết luận................................................................................................................ 25
1. Đánh giá những điều đã làm được và chưa làm được.......................................................... 25
1.1 Những điều đã làm được.................................................................................................... 25
1.2 Những điểm còn hạn chế.................................................................................................... 25
2. Hướng phát triển .................................................................................................................. 26
3. Kết luận................................................................................................................................ 26
Tài liệu tham khảo............................................................................................................................ 27
Phụ lục 1: Source code..................................................................................................................... 28
Phụ lục 2: Hướng dẫn sử dụng......................................................................................................... 44
5
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Danh mục hình vẽ
Hình 1. Sơ đồ khối tổng quan mạch đồng hồ lịch vạn niên .....................................13
Hình 2. Adapter 5V – 2A...........................................................................................14
Hình 3 Khối điều chỉnh ngày giờ và báo thức ..........................................................15
Hình 4. Nút bấm ........................................................................................................15
Hình 5. Điện trở ........................................................................................................15
Hình 6. Khối hiển thị................................................................................................16
Hình 7. LCD 16*2....................................................................................................16
Hình 8. Khối thời gian thực ......................................................................................17
Hình 9. Thạch anh 32,768MHz.................................................................................17
Hình 10. IC DS1307.................................................................................................17
Hình 11. Battery 3V...................................................................................................17
Hình 12. Khối điều khiển .........................................................................................18
Hình 13. VĐK ATmega16 .........................................................................................18
Hình 14. Sơ đồ chân VĐK ATmega16 ......................................................................19
Hình 15. Sơ đồ nguyên lý ..........................................................................................20
Hình 16. Mạch in PCB 2D ........................................................................................21
Hình 17. Mạch in PCB 3D ........................................................................................21
Hình 18. Kiểm tra mạch trên board..........................................................................22
Hình 19. Mạch in chưa hàn linh kiện........................................................................22
Hình 20. Hình ảnh mạch thực tế đang hoạt động.....................................................23
Hình 21. Mặt sau mạch hoàn chỉnh ..........................................................................23
6
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Danh mục bảng biểu
Bảng 1. Bảng phân tích nhân lực..............................................................................10
Bảng 2. Bảng phân công công việc...........................................................................11
Bảng 3. Bảng kế hoạch thực hiện..............................................................................12
7
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Lời mở đầu
Với sự phát triển không ngừng của khoa học kỹ thuật, đặc biệt là ngành điện
tử đã được ứng dụng rất nhiều trong công nghiệp. Trong lĩnh vực điều khiển, từ khi
công nghệ chế tạo loại vi mạch lập trình phát triển đã đem đến các kỹ thuật điều khiển
hiện đại có nhiều ưu điểm hơn so với việc sử dụng các mạch điều khiển lắp ráp bằng
các linh kiện rời như kích thước nhỏ, giá thành rẻ, độ làm việc tin cậy, công suất tiêu
thụ nhỏ.
Ngày nay, trong lĩnh vực điều khiển đã được ứng dụng rộng rãi trong các thiết
bị, sản phẩm phục vụ cho nhu cầu sinh hoạt hàng ngày của con người như máy giặt,
đồng hồ báo giờ… đã giúp cho đời sống của chúng ta ngày càng hiện đại và tiện nghi
hơn.
Chúng em đã chọn đề tài “Thiết kế mạch đồng hồ lịch vạn niên sử dụng vi
điều khiển AVR” để hoàn thành bài tập lớn môn Vi xử lý, cũng như để đáp ứng mong
muốn tìm hiểu và làm một sản phẩm điện tử cụ thể từ một dòng Vi điều khiển của
bản thân.
Đề tài “Thiết kế mạch đồng hồ lịch vạn niên” là một đề tài quen thuộc, có thể
thực hiện trên rất nhiều dòng VĐK. Nhưng đối với chúng em, khi mới tìm hiểu một
dòng VĐK mới, và đặc biệt phải thiết kế mạch đồng hồ trên dòng VĐK AVR theo
yêu cầu, đó cũng là một thách thức và trải nghiệm rất thú vị. Do kiến thức còn hạn
chế nên đề tài chắc chắn còn nhiều thiếu sót. Chúng em rất mong nhận được những ý
kiến đóng góp để chúng em hoàn thiện đề tài từ phía thầy cô cũng như các bạn sinh
viên.
Chúng em xin chân thành cảm ơn thầy Nguyễn Hoàng Dũng và các nhóm trợ
giảng đã giúp đỡ chúng em rất nhiều trong tất cả quá trình, từ lúc mới bắt đầu đến lúc
hoàn thiện sản phẩm!
8
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Chương I. Mô tả đề tài
1. Đặt vấn đề
Bài toán đặt ra là thiết kế mạch đồng hồ lịch vạn niên sử dụng VĐK Atmega16 là
VĐK chính. Đây là bài toán khá quen thuộc và có rất nhiều cách giải quyết bài toàn
này. Đề tài sử dụng IC thời gian gian thực DS1307, có tác dụng thực hiện việc đếm
lên ngày tháng, VĐK AVR chỉ thực hiện đặt ngày giờ để đưa vào DS1307, sau đó
thực hiện đọc ngày giờ từ DS1307 ra. VĐK còn có chức năng nhận các tín hiệu đặt
ngày giờ và đặt báo thức từ các nút bấm, sau đó xử lý để đưa ra ngày giờ mong muốn
rồi gửi dữ liệu vào DS1307. Để hiện thị có 2 lựa chọn là sử dụng LED 7 đoạn và sử
dụng LCD. Đề tài đã chọn phương án sử dụng LCD để có thể hiển thị nhiều thông tin
so với LED 7 đoạn, hơn nữa việc triển khai lại có phần dễ dàng hơn (nếu sử dụng
LED 7 đoạn thì phải tính toán thời gian quét LED).
Từ việc phân tích và khảo sát trên đây, nhóm đã đưa ra các vấn đề chính cần giải
quyết của bài toán đặt ra là:
- Tìm hiều kiến thức cơ bàn về VĐK Atmega16, đặc biệt về phần giao tiếp với
DS1307 và LCD. Tìm hiểu về phần mềm CodeVisionAVR C Compiler để
thực hiện code cho VĐK Atmega16.
- Xây dựng sơ đồ khối, từ đó xây dựng mạch nguyên lý và mô phỏng trên phần
mềm Proteus.
- Thiết kế mạch in trên phần mềm Altium Designer.
- Thực hiện lắp ráp linh kiện trên mạch in. Để nạp code cho VĐK nhóm sử dụng
phần mềm Progisp và mạch nạp USB ISP.
- Viết báo cáo tổng hợp về quy trình thực hiện đề tài.
9
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
2. Phân tích yêu cầu thiết kế
2.1 Yêu cầu chức năng
Mạch có các yêu cầu chức năng sau:
- Hiển thị giờ - phút – giây trên dòng thứ nhất của LCD 16*2
- Hiển thị thứ - ngày - tháng – năm trên dòng thứ 2 của LCD 16*2
- Có thể đặt lại ngày – giờ cũng như thứ - ngày – tháng – năm nhờ vào 3 phím
bấm MODE, UP, DOWN
- Có chức năng báo thức, thực hiện bằng đèn và còi báo hiệu. Có thể tắt báo thức
bằng nút bấm OK, khi đó nếu muốn báo thức lại phải cài đặt lại ngày giờ báo
thức rồi xác nhận bằng phím OK. Nếu không tắt báo thức thì đèn và còi sẽ tự
động hủy báo thức sau 1 phút, trong trường hợp này báo thức vẫn sẽ hoạt động
vào ngày hôm sau.
2.2 Yêu cầu phi chức năng
Mạch có các yêu cầu phi chức năng sau:
- Sử dụng nguồn 1 chiều 5V
- Kích thước mạch thực tế: 5cm * 7cm
- Sử dụng VĐK PIC là VĐK chính
- Hiển thị trên LCD 16*2
- Sản phẩm được thiết kế phù hợp với việc đặt cố định, lựa chọn sử dụng linh
kiện sao cho mức giá thấp nhất có thể
- Tổng chi phí dự kiến: 300.000VNĐ
10
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Chương II. Lập kế hoạch
Quá trình lập kế hoạch giúp chúng em có cái nhìn tổng quan về mục tiêu, nhiệm vụ
cần thực hiện cũng như phân bố thời gian hợp lí cho toàn bộ quá trình thiết kế sản
phẩm. Đây là bước giúp chúng em hiểu hơn về từng thành viên trong nhóm, từng
công việc cụ thể cần phải thực hiện.
1. Bảng phân tích nhân lực
Bảng 1. Bảng phân tích nhân lực
Thành viên Ưu điểm Ha ̣n chế
Hoàng Tuấn Linh
- Kĩ năng thuyết trình báo cáo tốt,
tự tin.
- Có kiến thứ c cơ bản đề điê ̣n tử ,
các loại vi điều khiển.
- Thành tha ̣o lâ ̣p trình cho Vi điều
khiển AVR
- Kĩ năng hàn mạch, test mạch tốt,
cẩn thận.
Chưa thành thạo các
công cụ mô phỏng,
thiết kế điện tử.
Nguyễn Văn Long
- Có kiến thức cơ bản về điện tử.
- Kĩ năng làm Slide, báo cáo Word
Excel tốt.
- Kĩ năng thiết kế mạch in nhanh
chóng, đẹp.
- Kĩ năng lập kế hoạch, quản lí đảm
bảo tiến độ công việc.
Hạn chế về Code,
thuật toán xử lí cho Vi
điều khiển.
11
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
2. Bảng phân công công việc
Bảng 2. Bảng phân công công việc
Nội dung Công việc Thành viên
Tìm hiểu
đề tài
Xác định đề tài, yêu cầu thiết kế của Mạch
đồng hồ Lịch vạn niên.
Tuấn Linh
Tìm hiểu kiến thức về Vi điều khiển AVR,
chip Atmega16.
Tuấn Linh + Văn Long
Lập kế hoạch chi tiết, phân công công việc
cho quá trình thiết kế sản phẩm.
Văn Long
Thiết kế hệ
thống
Thiết kế sơ đồ khối Tuấn Linh
Thiết kế chi tiết từng khối Tuấn Linh + Văn Long
Vẽ mạch nguyên lý và mô phỏng trên
Proteus.
Tuấn Linh
Lập trình cho Vi điều khiển Atmega16 Tuấn Linh + Văn Long
Hoàn thành
sản phẩm
Thiết kế mạch in, đặt mạch in. Văn Long
Mua linh kiện, test nguội mạch in Văn Long
Hàn linh kiện. Tuấn Linh
Đo đạc, kiểm tra, đánh giá sản phẩm Tuấn Linh + Văn Long
Báo cáo bài
tập lớn
Hoàn thành nội dung báo cáo Word, video
giới thiệu sản phẩm.
Tuấn Linh + Văn Long
Thuyết trình, báo cáo trước giảng viên. Tuấn Linh + Văn Long
12
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
3. Bảng kế hoạch thực hiện
Bảng 3. Bảng kế hoạch thực hiện
Công việc
Thời gian
bắt đầu
Thời gian
kết thúc
Yêu cầu đạt được Trạng thái
Xác định đề tài
Mạch đồng hồ Lịch
vạn niên.
10/02 17/02
Xác định được yêu
cầu thiết kế về chức
năng và phi chức năng
của mạch
Hoàn thành
Tìm hiểu về Vi điều
khiển AVR, code
cho AVR
18/02 01/03
Hiểu và trình bày
được những kiến thức
về Vi điều khiển AVR
Hoàn thành
Thiết kế mạch
nguyên lý.
02/03 16/03
Hoàn thành sơ đồ khối
chi tiết, mạch nguyên
lý
Hoàn thành
Viết Code, mô
phỏng mạch trên
Proteus
17/03 02/05
Mô phỏng và chạy
đúng với yêu cầu thiết
kế trên phần mềm mô
phỏng Proteus
Hoàn thành
Thiết kế mạch in 03/05 10/05
Hoàn thành thiết kế
mạch in trên phần
mềm Altium
Hoàn thành
Hoàn thành, kiểm
tra, đánh giá sản
phẩm
11/05 18/05
Sản phầm hoàn thành,
chạy đúng yêu cầu
thiết kế đề ra
Hoàn thành
Kiểm tra, hoàn
thiện báo cáo
19/05 03/06
Bản báo cáo Bài tập
lớn, video giới thiệu
sản phẩm.
Hoàn thành
13
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Chương III. Thiết kế hệ thống
1. Thiết kế sơ đồ khối
Khối điều khiển
chính
Khối hiển thị
Khối nguồn
Khối điều chỉnh
ngày giờ và báo
thức
Khối báo thứcKhối thời gian thực
Hình 1. Sơ đồ khối tổng quan mạch đồng hồ lịch vạn niên
Hình 1 biểu diễn sơ đồ khối tổng quan của toàn bộ đề tài mạch đồng hồ lịch vạn niên.
Có 6 khối chính như trong hình vẽ:
- Khối nguồn sẽ cung cấp nguồn vào cho các khối: Khối thời gian thực, Khối
báo thức, Khối hiển thị và Khối điều khiển chính.
- Khối điều chỉnh ngày giờ và báo thức là 4 nút bấm MODE, UP, DOWN và
OK.
- Khối điều khiển chính sẽ nhận tín hiệu từ Khối điều chỉnh ngày giờ và báo
thức, sau đó thực hiện xử lý tín hiệu rồi giao tiếp với Khối thời gian thực để
cài đặt và gọi thời gian. Song song với quá trình đó, Khối điều chỉnh cũng gửi
dữ liệu đến các Khối báo thức và Khối hiển thị. Khối điều khiển chính là VXL
ATmega16.
14
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
- Khối hiển thị nhận tín hiệu từ Khối điều khiển để hiển thị các thông tin về
ngày- giờ và thứ - ngày – tháng – năm như yêu cầu chức năng. Khối hiển thị
chính là LCD 16*2.
- Khối báo thức gồm 1 đèn LED báo hiệu và một còi chíp. Khi nhận được tín
hiệu từ VĐK, đèn và còi sẽ hoạt động để thực hiện chức năng báo thức.
2. Thiết kế sơ đồ khối chi tiết
2.1 Khối nguồn
Hình 2. Adapter 5V – 2A
Mạch sử dụng nguồn lấy từ adapter 5V-2A như trong hình 2 để cung cấp đủ dòng cho
toàn bộ các khối.
2.2 Khối điều chỉnh ngày giờ và báo thức
Mạch sử dụng các nút bấm như trong hình 4 để điều chỉnh ngày giờ và đặt báo thức:
15
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Hình 3 Khối điều chỉnh
ngày giờ và báo thức
Hình 4. Nút bấm
Hình 5. Điện trở
2.3 Khối hiển thị
Khối hiển thị sử dụng LCD 16*2. LCD có 16 chân. Ta cấp nguồn cho LCD thông
qua các chân 1 (VSS) và 2 (VDD). Điều chỉnh đố sáng của LCD thông qua các chân
3 (Contrast Voltage), 15 (Backlight Anode) và 16 (Backlight Cathode). Các chân 7
đến 14 là các chân dữ liệu được nối với VĐK, với đề tài ta chỉ sử dụng các chân dữ
liệu từ 11 đến 14.
MODE
UP
DOWN
OK
VCC R4
10k
R3
10k
R5
10k
R6
10k
16
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Hình 6. Khối hiển thị
Hình 7. LCD 16*2
2.4 Khối thời gian thực
Khối thời gian thực sử dụng IC DS1307. Ta cấp nguồn cho DS1307 qua trở kéo lên
4.7kΩ vào chân số 4 và 8 của IC. Ngoài ra nguồn pin 3V được nối vào chân 3 là
nguồn pin dự trữ khi rút nguồn cấp chính, đảm bảo IC vẫn hoạt động (lúc khởi động
lại mạch không bị sai giờ khi mất nguồn nuôi bất chợt). Chân 1 và 2 của IC nối với
RS
RW
ELCD
D4
D5
D6
D7
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9
D1
8
D0
7
E
6
RW
5
RS
4
VSS
1
VDD
2
VEE
3
LCD1 LM016L
17
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
thạch anh 32,768 để tạo dao động. Hai chân 5 và 6 của IC là chân SCL (Serial Clock)
và SDA (Serial Data), nối với 2 cổng của VĐK, các chân này sẽ gửi clock và gửi/nhận
dữ liệu cho VĐK.
Hình 8. Khối thời gian thực Hình 9. Thạch anh 32,768MHz
Hình 10. IC DS1307
Hình 11. Battery 3V
SDA
SCL
VBAT
3
X1
1
X2
2
SCL
6
SDA
5
SOUT
7
U2
DS1307
R2
4K7
R1
4K7
+5V
X1
CRYSTAL
BAT1
9V
18
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
2.5 Khối điều khiển
Hình 12. Khối điều khiển
Hình 13. VĐK ATmega16
SCL
SDA
RS
RW
ELCD
D4
D5
D6
D7
SPEAKER
MODE
UP
DOWN
OK
SPEAKER
PA0/ADC0
40
PA1/ADC1
39
PA2/ADC2
38
PA3/ADC3
37
PA4/ADC4
36
PA5/ADC5
35
PA6/ADC6
34
PB0/XCK/T0
1
PB1/T1
2
PB2/INT2/AIN0
3
PB3/OC0/AIN1
4
PB4/SS
5
PB5/MOSI
6
PB6/MISO
7
PB7/SCK
8
PA7/ADC7
33
RESET
9
XTAL1
13
XTAL2
12
PC0/SCL
22
PC1/SDA
23
PC2/TCK
24
PC3/TMS
25
PC4/TDO
26
PC5/TDI
27
PC6/TOSC1
28
PC7/TOSC2
29
PD0/RXD
14
PD1/TXD
15
PD2/INT0
16
PD3/INT1
17
PD4/OC1B
18
PD5/OC1A
19
PD6/ICP
20
PD7/OC2
21
AVCC
30
AREF
32
U1
ATMEGA16
+5V
19
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Hình 14. Sơ đồ chân VĐK ATmega16
Khối điều khiển chính là VĐK Atmega16. VĐK này có 40 chân, sơ đồ các chân như
trong hình 14.
ATmega16 là một lọai Vi điều khiển có nhìều tính năng đặc biệt thíchhợp cho việc
giải quyết những bài tóan điều khiển trên nền vi xử lý.
ATmega16 là vi điều khiển 8bit dựa trên kiến trúc RISC. Với khảnăng thực hiện
mỗi lệnh trong vong một chu kỳ xung clock, Atmega16có thể đạt được tốc độ 1MIPS
trên mỗi MHz( 1triệu lệnh/s/MHz),các lệnh được xử lý nhanh hơn,tiêu thụ năng
lượng thấp.
20
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
3 Sơ đồ nguyên lý
Hình 15. Sơ đồ nguyên lý
SDA
SCL
RS
RW
ELCD
D4
D5
D6
D7
SCL
SDA
RS
RW
ELCD
D4
D5
D6
D7
MODE
SPEAKER
UP
DOWN
OK
MODE
UP
DOWN
OK
VCC
SPEAKER
GND
VCC
GND
SPEAKER
VBAT
3
X1
1
X2
2
SCL
6
SDA
5
SOUT
7
U2
DS1307
R2
4K7
R1
4K7
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9
D1
8
D0
7
E
6
RW
5
RS
4
VSS
1
VDD
2
VEE
3
LCD1LM016L
+5V
X1
CRYSTAL
BAT1
9V
PA0/ADC0
40
PA1/ADC1
39
PA2/ADC2
38
PA3/ADC3
37
PA4/ADC4
36
PA5/ADC5
35
PA6/ADC6
34
PB0/XCK/T0
1
PB1/T1
2
PB2/INT2/AIN0
3
PB3/OC0/AIN1
4
PB4/SS
5
PB5/MOSI
6
PB6/MISO
7
PB7/SCK
8
PA7/ADC7
33
RESET
9
XTAL1
13
XTAL2
12
PC0/SCL
22
PC1/SDA
23
PC2/TCK
24
PC3/TMS
25
PC4/TDO
26
PC5/TDI
27
PC6/TOSC1
28
PC7/TOSC2
29
PD0/RXD
14
PD1/TXD
15
PD2/INT0
16
PD3/INT1
17
PD4/OC1B
18
PD5/OC1A
19
PD6/ICP
20
PD7/OC2
21
AVCC
30
AREF
32
U1
ATMEGA16
+5V
R4
10k
R3
10k
R5
10k
R6
10k
D1
LED-GREEN
R7
330
LS1
SPEAKER
Q1
NPN
R8
1k
21
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Chương IV. Hoàn thành sản phẩm
Quá trình Hoàn thành sản phẩm là bước cuối cùng trong toàn bộ quy trình thiết kế
một sản phẩm điện tử.
1. Layout mạch in
Hình 16. Mạch in PCB 2D
Hình 17. Mạch in PCB 3D
22
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
2. Làm mạch, hàn linh kiện
Sau khi có mạch in và các linh kiện đầy đủ, ta sẽ tiến hành lắp ráp thành mạch
hoàn chỉnh. Sử dụng mạch nạp và phần mềm nạp để kết nối giữa máy tính và mạch
đã lắp ráp. Tùy từng mạch nạp mà có phần mềm nạp riêng. Sau khi nạp xong chúng
ra có thể test mạch thử và cung cấp nguồn cho mạch hoạt động.
Hình 18. Kiểm tra mạch trên board
Hình 19. Mạch in chưa hàn linh kiện
23
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Hình 20. Hình ảnh mạch thực tế đang hoạt động
Hình 21. Mặt sau mạch hoàn chỉnh
24
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
3. Đo đạc, kiểm tra, đánh giá chất lượng sản phẩm
Việc đo nguội là quá trình đo đạc, kiểm tra trước khi cấp nguồn cho mạch.
Việc này nhằm kiểm tra kết nối giữa cách đường đi dây, các kết nối trên mạch in, các
mối hàn.
Sau khi đo nguội mà không có lỗi, ta sẽ cấp nguồn cho mạch hoạt động (Chú
ý : cấp nguồn sau cùng khi lắp ráp mạch và ngắt nguồn đầu tiên khi tắt mạch).
Kiểm tra các chức năng hoạt động của đồng hồ, LCD hiển thị, chức năng các
phím nhấn, led báo hiệu, còi báo thức có hoạt động tốt không.
Khi mạch đã hoạt động ổn định, ta cần đo sai số của mạch. Nếu mạch có sai
số lớn hơn mức cho phép, cần điều chỉnh lại code. Chúng em đã kiểm tra và đo được
sai số trong 1 ngày hoạt động là 35 giây.
Trong quá trình hoạt động, cần đánh giá nhiệt độ của mạch để có biện pháp
điều chỉnh giúp mạch tản nhiệt tốt, bảo vệ linh kiện và hoạt động ổn định hơn.
25
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Chương VI. Kết luận
1. Đánh giá những điều đã làm được và chưa làm được
1.1 Những điều đã làm được
Nhìn chung, sản phẩm hoàn thành đã đạt được yêu cầu thiết kế đã đề ra:
- Đồng hồ Lịch vạn niên đếm thời gian một cách chính xác. Có các chức năng
chình giờ - phút, thứ - ngày – tháng – năm và cài đặt báo thức.
- Sản phẩm đơn giản, gọn nhẹ, dễ dàng sử dụng. Sản phầm sử dụng dòng điện
dân dụng và thích hợp với việc đặt cố định một chỗ.
Ngoài việc áp dụng những kiến thức đã được học trong môn vi xử lí, chúng
em còn được làm quen và thực hành với Vi điều khiển AVR Atmega16. Đây là những
kiến thức nền tảng, phục vụ cho ngành học điện tử sau này.
Chúng em được làm quen và sử dụng các phần mềm mô phỏng Proteus, phần
mềm lập trình CodeVisionAVR C Compilier cho vi điều khiển AVR, phần mềm thiết
kế mạch in Altium và thực hiện ráp mạch thực tế. Đây là những kỹ năng rất quan
trọng trong quá trình học tập, đặc biệt đối với sinh viên ngành điện tử.
Trong quá trình hoàn thành thiết kế sản phầm Mạch đồng hồ Lịch vạn niên sử
dụng vi xử lí AVR, chúng em đã học hỏi được thêm rất nhiều kiến thức và kinh
nghiệm về điện tử. Chúng em được thực hành, vân dụng các kiến thức đã học để thiết
kế nên một sản phẩm theo đúng quy trình thiết kế sản phẩm điện tử chuyên nghiệp.
1.2 Những điểm còn hạn chế
Ngoài các chức năng đã đạt được đề tài còn một số hạn chế sau:
- Mạch nhìn còn thô, tính thẩm mĩ chưa cao.
- Các nút bấm còn chưa nhạy, chưa có nút reset mạch (phải reset mạch bằng
cách rút nguồn).
26
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
- Mạch chạy thời gian dài còn tỏa nhiều nhiệt, ảnh hưởng tới độ bền của linh
kiện và độ chính xác của sản phẩm.
2. Hướng phát triển
Đề tài có thể được tiếp tục phát triển một số chức năng sau:
- Thêm phần hiển thị lịch âm.
- Thêm phần đo nhiệt độ, độ ẩm của mội trường.
- Hệ thống chuống báo là bài hát/đoạn âm thanh.
3. Kết luận
Bài tập lớn Vi xử lí đã giúp chúng em hoàn thiện hơn kĩ năng làm việc nhóm,
vân dụng các kiến thức đã được học để thiết kế ra một sản phầm điện tử hoàn chỉnh.
Đề tài Mạch đồng hồ Lịch vạn niên đã cho em nhiều trải nghiệm bổ ích, mở ra nhiều
hướng đi mới cho học tập và công việc sau này.
Chúng em xin được gửi lời cảm ơn chân thành tới thầy TS. Nguyễn Hoàng
Dũng, anh Thành và các anh trợ giảng đã giúp đỡ chúng em rất nhiều trong các quá
trình thiết kế và hoàn thành sản phẩm.
27
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Tài liệu tham khảo
[1] ThS. Phạm Hùng Kim Khánh, Giáo trình Vi Điều Khiển
[2] ThS. Trần Nhật Khải Hoàn, GS.Trần Hữu Danh, Tài liệu hướng dẫn thực tập Vi
Điều Khiển.
[3] ThS. Lương Văn Sơn, Giáo trình mạch Xung.
[4] ThS. Nguyễn Trung Tập, Giáo trình mạch Số
[5] GS. Trương Văn Tám, Giáo trình mạch Tương Tự.
[6] http://www.alldatasheet.com
[7] http://www.hocavr.com
[8] http://www.dientuvietnam.net
[9] http://codientu.org
28
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Phụ lục 1: Source code
/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Professional
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project : Dong ho lich van nien su dung VDK ATmega16
Date : 15-May-2016
Author : HoangTuanLinh & LongNguyenVan
Company : Hanoi University of Science and Technology
Chip type : ATmega16
Program type : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega16.h>
#include <delay.h>
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
// Alphanumeric LCD Module functions
#include <alcd.h>
// Declare your global variables here
#define MODE PINB.0
29
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
#define UP PINB.1
#define DOWN PINB.2
#define OK PINB.3
bit AP; // che do 24h (1), che do 12h(0)
bit sb; // sb=1: phim duoc nhan; sb=0; phim khong dc nhan
bit alarm_en;
unsigned int h_set=0,m_set=0;
unsigned char hour,min,sec,day,date,month,year,mode,h,No_date;
//Chuong trinh con
//Ham hien thi thu (day)
void display_day(unsigned char x){
switch(x) {
case 1: lcd_putsf(" 2");
break;
case 2: lcd_putsf(" 3");
break;
case 3: lcd_putsf(" 4");
break;
case 4: lcd_putsf(" 5");
break;
case 5: lcd_putsf(" 6");
break;
case 6: lcd_putsf(" 7");
break;
case 7: lcd_putsf(" 8");
break;
default:
};
}
//Ham doi ngay
void check_conveter_day(void){
if(day ==8) day=1;
if (day == 0) day = 7;
rtc_set_date(day, date,month,year);
}
//Ham doi che do 12h <-> 24h
void check_conveter_hour(void){
//kiem tra che do gio hien tai
30
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
if (AP == 0){ //che do 12h (AP = 0)
if (hour > 12) h = hour-12;
else h = hour;
}
else h = hour; //che do 24h (AP = 1)
}
//Ham hien thi time len LCD
void display_time_lcd(unsigned char x,unsigned char y){
lcd_gotoxy(x,y);
lcd_putchar(48+h/10); //hang chuc
lcd_putchar(48+h%10); //hang don vi
lcd_putsf(":");
lcd_putchar(48+min/10);
lcd_putchar(48+min%10);
lcd_putsf(":");
lcd_putchar(48+sec/10);
lcd_putchar(48+sec%10);
if (alarm_en == 1) lcd_putsf(" *"); //co bao thuc
else lcd_putsf(" ");
}
//Hien thi date len LCD
void display_date_lcd(unsigned char x,unsigned char y)
{
lcd_gotoxy(x,y);
lcd_putchar(48+date/10); //hang chuc
lcd_putchar(48+date%10); //hang don vi
lcd_putsf("/");
lcd_putchar(48+month/10);
lcd_putchar(48+month%10);
lcd_putsf("/");
lcd_putchar(48+year/10);
lcd_putchar(48+year%10);
display_day(day); //hien thi thu
}
//Ham hien thi o che do hen gio
void display_hengio_lcd(unsigned char x,unsigned char y)
{
lcd_gotoxy(x,y);
31
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
lcd_putchar(48+h_set/10);
lcd_putchar(48+h_set%10);
lcd_putsf(":");
lcd_putchar(48+m_set/10);
lcd_putchar(48+m_set%10);
if (alarm_en == 1) lcd_putsf(" *"); //co bao thuc
else lcd_putsf(" ");
}
//Ham hien thi len LCD
void display_lcd(void){
// Hien thi time len lcd
lcd_gotoxy(0,0);
lcd_putsf("Time: "); //Hien thi thoi gian
display_time_lcd(6,0);
// Hien thi date len lcd
lcd_gotoxy(0,1);
lcd_putsf("Date: ");
display_date_lcd(6,1);
//display_msg_lcd(); // chay msg tren LCD
}
//Chuong trinh con kiem tra trang thai cua phim nhan : bit trang thai
sb
void status_button(void) {
if(MODE&&UP&&DOWN&&OK&&sb) {
sb=0; // kiem tra phim da nha hay chua?
//PORTB.1 = sb;
}
}
//Ham kiem tra so ngay trong thang
void Ndate_in_month(void){
if (month == 2){
if (year%4 == 0) No_date = 29;
else No_date = 28;
}
else if (month ==1 || month ==3 || month ==5 || month ==7 ||
month == 8 || month == 10 || month ==12) No_date = 31;
else No_date = 30;
32
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
}
//Ham cai dat thoi gian & bao thuc
void set_alarm_time (void){
status_button(); //Kiem tra trang thai phim bam da nha hay chua
//chuyen doi che do 12h <-> 24h
if ((OK == 0) && (sb == 0)){ //phim SET duoc nhan khi cac phim khac
khong duoc nhan
AP = ~AP; //doi che do gio hien thi
sb = 1; //bao co phim nhan
//PORTB.1 = sb;
}
status_button();
//chon che do nguoi dung
if (MODE==0 && sb==0){ //chon che do
if (mode == 9){
//lcd_clear();
mode = 0;
}
else {
//lcd_clear();
mode++;
}
sb = 1; //bao co phim nhan
//PORTB.1 = sb;
}
//che do mode = 0 (hien thi thong tin de tai)
if (mode == 0) {
lcd_gotoxy(0,0);
lcd_putsf("BAI TAP LON VXL");
lcd_gotoxy(0,1);
lcd_putsf("V.LONG - T.LINH");
delay_ms (1000); //sau 1s tu chuyen sang che do hien thi binh
thuong
mode++;
}
//che do mode = 1 (hien thi binh thuong)
if(mode==1){
33
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
display_lcd();
if((alarm_en == 1)&&(hour == h_set)&&(min == m_set)) {
PORTB.4 = 1; //bao thuc keu
status_button();
if (OK == 0 && sb == 0){ //bao thuc
alarm_en = 0; //tat bao thuc
sb = 1;
//PORTB.1 = sb;
}
}
else {
PORTB.4 = 0; // tat bao thuc
//alarm_en = 0; //tu dong tat bao thuc sau 1 phut
}
}
//che do mode=2 (chinh gio)
if (mode == 2){ //che do chinh gio
//lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Set Hour: ");
lcd_putsf(" ");
display_time_lcd(5, 1);
lcd_putsf(" ");
status_button();
if (UP == 0 && sb == 0){ //Phim UP duoc nhan
if (hour == 23) hour = 0;
else hour++;
rtc_set_time (hour, min, sec); //dat lai gio cho DS1307
sb = 1;
//PORTB.1 = sb;
}
status_button();
if (DOWN == 0 && sb == 0){
if (hour == 0) hour = 23;
else hour--;
rtc_set_time(hour, min, sec);
sb = 1;
//PORTB.1 = sb;
}
}
34
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
//che do mode = 3 (chinh phut)
if (mode == 3){ //che do chinh phut
//lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Set Minute: ");
lcd_putsf(" ");
display_time_lcd(5, 1);
lcd_putsf(" ");
status_button();
if (UP == 0 && sb == 0){
if (min == 59) min = 0;
else min++;
rtc_set_time(hour, min, sec);
sb = 1;
//PORTB.1 = sb;
}
status_button();
if (DOWN == 0 && sb == 0){
if (min == 0) min = 59;
else min--;
rtc_set_time(hour, min, sec);
sb = 1;
//PORTB.1 = sb;
}
}
//che do mode = 4 (chinh thu(day) dong thoi chinh ngay(date))
if (mode == 4){
//lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Set Date: ");
lcd_putsf(" ");
display_date_lcd(6, 1);
lcd_putsf(" ");
Ndate_in_month();
status_button();
if (UP == 0 && sb ==0){
if (day == 7) day = 1;
else day++;
//xac dinh ngay (date) khi chinh thu
35
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
if (date == No_date) {
if (month == 12){ //Chuyen sang nam moi
date = 1; month = 1; year++;
}
else{
date = 1; month++; //Het thang thi nhay sang
thang moi
}
}
else date++;
rtc_set_date(day,date,month,year);
sb=1;
//PORTB.1 = sb;
}
status_button();
if (DOWN == 0 && sb == 0){
if (day == 1) day = 7;
else day--;
if (date == 1) { //VD: tu 1/3 chuyen xuong 28(hoac 29)/2
if (month == 1) {
month = 12; date =31; year--;
}
else{
month--;
Ndate_in_month();
date = No_date;
}
}
else date--;
rtc_set_date(day, date,month,year);
sb=1;
//PORTB.1 = sb;
}
}
//che do mode = 5 (chinh thang)
if (mode == 5){
lcd_gotoxy(0,0);
lcd_putsf("Set Month: ");
lcd_putsf(" ");
display_date_lcd(6, 1);
36
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
lcd_putsf(" ");
Ndate_in_month();
status_button();
if (UP == 0 && sb == 0){ //phim UP duoc nhan
if (month == 12) {
month = 1;
if (year==99) year=0;
else year++;
}
else month++;
//xac dinh thu (day) khi chinh thang (month)
if ( (day + No_date%7) > 7 )
day = day + No_date%7 - 7;
else day = day + No_date%7;
Ndate_in_month(); //Cap nhat so ngay toi da cua thang vua dat
lai
if (date > No_date) date = No_date; //VD: tu ngay 31/3 phai
chuyen thanh 30/4 khi an UP(month)
rtc_set_date(day, date, month, year);
sb = 1;
//PORTB.1 = sb;
}
status_button();
if (DOWN == 0 && sb == 0){
if (month == 1) {
month = 12;
if (year == 0) year=99;
else year--;
}
else month--;
Ndate_in_month(); //Kiem tra, phai tinh theo so ngay cua thang
truoc de xac dinh thu
if (day < No_date%7) day = day - No_date%7 +7;
else day = day - No_date%7;
if (date > No_date) date = No_date; //VD: tu ngay 31/3 phai
chuyen thanh 29/2 khi an DOWN(month)
rtc_set_date(day, date, month, year);
sb = 1;
//PORTB.1 = sb;
}
}
37
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
//che do moode = 6 (chinh nam)
if (mode == 6){
lcd_gotoxy(0,0);
lcd_putsf("Set Year: ");
lcd_putsf(" ");
display_date_lcd(6, 1);
//lcd_putsf(" ");
Ndate_in_month();
status_button();
if (UP == 0 && sb == 0){ //phim UP duoc nhan
//Chinh ngay cua thang 2 khi chuyen tu nam nhuan sang nam khong
nhuan
if ((year%4==0) && (month==2) && (date==29)){ //ngay 29/2 nam
nhuan
date = 28;
}
//Chinh thu(day) khi chuyen nam(year)
if (year%4 == 0){ //nam nhuan
if ((month == 1) || ((month==2)&&(date<29))){
if (day == 7) //thu CN
day = 2; //thu 3
else day = day + 2;
}
else day = day + 1; //nam nhuan nhung thu chi tang 1
ngay
}
else day = day + 1; //khong phai nam nhuan
//Chuyen nam
if (year == 99)
year = 0;
else
year++;
rtc_set_date(day, date, month, year);
sb = 1;
//PORTB.1 = sb;
}
status_button();
if (DOWN == 0 && sb == 0){
//Chuyen nam
if (year%4 == 0) { //nam nhuan
38
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
if ((month > 2) || ((month==2)&&(date==29))){
if (day == 1) //thu 2
day = 6; //thu 7
else day -= 2;
}
else day-=1; //nam nhuan nhung thu chi lui 1 ngay
}
else day -= 1; //khong phai nam nhuan
//Chinh ngay cua thang 2 khi chuyen tu nam nhuan sang nam khong
nhuan
if ((year%4==0) && (month==2) && (date==29)){ //ngay 29/2 nam
nhuan
date = 28;
}
//Chinh nam
if (year == 0) year = 99;
else year--;
rtc_set_date(day, date, month, year);
sb = 1;
//PORTB.1 = sb;
}
}
//che do mode = 7 ((chinh gio trong che do hen gio))
if (mode == 7){
lcd_gotoxy(0,0);
lcd_putsf("Alarm: ");
display_hengio_lcd(8,0);
lcd_gotoxy(0,1);
lcd_putsf("Hour: ");
lcd_gotoxy(8,1);
lcd_putchar(h_set/10 + 48);
lcd_putchar(h_set%10 + 48);
lcd_putsf(" ");
status_button();
if(UP == 0 && sb == 0){
if (h_set == 23) h_set = 0;
else h_set++;
sb = 1;
//PORTB.1 = sb;
}
//status_button();
39
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
if (DOWN == 0 && sb == 0){
if (h_set == 0) h_set = 23;
else h_set--;
sb = 1;
//PORTB.1 = sb;
}
//status_button();
if(OK == 0 && sb == 0) {
alarm_en = ~alarm_en; //xac nhan cai dat xong bao thuc;
alarm_en = 1 (0) -> co (khong co) bao thuc
//lcd_gotoxy(15,0);
//lcd_putsf("*");
sb = 1;
}
}
//che do mode = 8 (chinh phut trong che do hen gio)
if (mode == 8) {
lcd_gotoxy(0,0);
lcd_putsf("Alarm: ");
display_hengio_lcd(8,0);
lcd_gotoxy(0,1);
lcd_putsf("Minute: ");
lcd_gotoxy(8,1);
lcd_putchar(m_set/10 + 48);
lcd_putchar(m_set%10 + 48);
lcd_putsf(" ");
status_button();
if(UP == 0 && sb == 0){
if (m_set == 59) m_set = 0;
else m_set++;
sb = 1;
//PORTB.1 = sb;
}
//status_button();
if (DOWN == 0 && sb == 0){
if (m_set == 0) m_set = 59;
else m_set--;
sb = 1;
//PORTB.1 = sb;
}
//status_button();
40
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
if(OK == 0 && sb == 0){
alarm_en = ~alarm_en; //xac nhan cai dat xong bao thuc;
alarm_en = 1 (0) -> co (khong co) bao thuc
sb = 1;
}
//PORTB.1 = sb;
}
}
//_______________________Ham chinh___________________________
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out
Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0
State0=0
PORTB=0xEF; //1111_1111
DDRB=0x10; //1111_0000
// Port C initialization
// Func7=Out Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=0 State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTC=0xFF;
DDRC=0x80; //1000_0000
// Port D initialization
41
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out
Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0
State0=0
PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
42
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
// I2C Bus initialization
43
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
i2c_init();
// DS1307 Real Time Clock initialization
// Square wave output on pin SQW/OUT: Off
// SQW/OUT pin state: 0
rtc_init(0,0,0);
// Alphanumeric LCD initialization
// Connections specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTD Bit 0
// RD - PORTD Bit 1
// EN - PORTD Bit 2
// D4 - PORTD Bit 4
// D5 - PORTD Bit 5
// D6 - PORTD Bit 6
// D7 - PORTD Bit 7
// Characters/line: 16
lcd_init(16);
//cai dat mac dinh
rtc_set_time(0, 0, 0);
rtc_set_date(1, 16, 5, 16);
AP =1; //mac dinh de che do la 24h
sb = 0; //mac dinh khong co nut bam
//alarm_en = 0;
//PORTB.4 = 0;
while (1)
{
// Place your code here
rtc_get_time(&hour,&min,&sec); // Doc gio, phut, giay tu
ds1307
rtc_get_date(&day, &date,&month,&year); // Doc thu, ngay,
thang, nam tu ds1307
check_conveter_day(); // kiem tra va kiem chuyen thu, che
do gio ve dang chuan
check_conveter_hour();
status_button();
set_alarm_time(); // goi ctc thuc hien cai dat
//PORTB.0 = 0;
}
}
44
Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên
Phụ lục 2: Hướng dẫn sử dụng
Mạch đồng hồ Lịch vạn niên có các chức năng sau:
- Hiển thị thời gian : giờ, phút, giây.
- Hiển thị thứ, ngày, tháng, năm.
- Có thể chỉnh sửa thông số thời gian, ngày tháng năm.
- Có chức năng đặt giờ báo thức, sử dụng đèn Led và còi báo hiệu.
Sử dụng các phím MODE để vào chế độ Cài đặt và chỉnh sửa:
- Cài đặt giờ : ấn phím UP hoặc DOWN để thay đổi
- Cài đặt phút : ấn phím UP hoặc DOWN để thay đổi
- Cài đặt ngày : ấn phím UP hoặc DOWN để thay đổi
- Cài đặt tháng : ấn phím UP hoặc DOWN để thay đổi
- Cài đặt năm : ấn phím UP hoặc DOWN để thay đổi.
- Chế độ báo thức :
 Đặt giờ : ấn phím UP hoặc DOWN để thay đổi.
 Đặt phút : ấn phím UP hoặc DOWN để thay đổi.
 Xác nhận đặt báo thức bằng phím OK. Khi đó sẽ có kí hiệu * để báo hiệu
trên màn hình.
Khi đến thời điểm đặt báo thức, sẽ có còi và Led báo hiệu. Người sử dụng sẽ ấn
phím OK nếu muốn tắt thông báo trên. Nếu không tắt báo thức thì đèn và còi sẽ tự
động hủy báo thức sau 1 phút, trong trường hợp này báo thức vẫn sẽ hoạt động vào
ngày hôm sau.

More Related Content

What's hot

Ngân hàng đề môn điện tử số kỹ thuật số ( có đáp án) 4797768
Ngân hàng đề môn điện tử số kỹ thuật số ( có đáp án) 4797768Ngân hàng đề môn điện tử số kỹ thuật số ( có đáp án) 4797768
Ngân hàng đề môn điện tử số kỹ thuật số ( có đáp án) 4797768nataliej4
 
Giáo trình thiết kế mạch logic số
Giáo trình thiết kế mạch logic sốGiáo trình thiết kế mạch logic số
Giáo trình thiết kế mạch logic sốMan_Ebook
 
Kĩ thuật đo lường
Kĩ thuật đo lường Kĩ thuật đo lường
Kĩ thuật đo lường Vũ Quang
 
Bài giảng kỹ thuật điện điện tử
Bài giảng kỹ thuật điện điện tửBài giảng kỹ thuật điện điện tử
Bài giảng kỹ thuật điện điện tửLê ThắngCity
 
chỉnh lưu hình tia 3 pha.doc
chỉnh lưu hình tia 3 pha.docchỉnh lưu hình tia 3 pha.doc
chỉnh lưu hình tia 3 pha.doc26ngQuangKhi
 
Hệ truyền động đc một chiều và mạch buck
Hệ truyền động đc một chiều và mạch buckHệ truyền động đc một chiều và mạch buck
Hệ truyền động đc một chiều và mạch buckTiem Joseph
 
Bài tập lớn Lý thuyết điều khiển - Đề tài lò nhiệt
Bài tập lớn Lý thuyết điều khiển - Đề tài lò nhiệtBài tập lớn Lý thuyết điều khiển - Đề tài lò nhiệt
Bài tập lớn Lý thuyết điều khiển - Đề tài lò nhiệtMan_Ebook
 
Đồ án Tổng hợp hệ thống truyền động điện
Đồ án Tổng hợp hệ thống truyền động điệnĐồ án Tổng hợp hệ thống truyền động điện
Đồ án Tổng hợp hệ thống truyền động điệnEvans Schoen
 
NGHỊCH LƯU VÀ BIẾN TẦN.pdf
NGHỊCH LƯU VÀ BIẾN TẦN.pdfNGHỊCH LƯU VÀ BIẾN TẦN.pdf
NGHỊCH LƯU VÀ BIẾN TẦN.pdfMan_Ebook
 
Bài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu SốBài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu Sốviethung094
 
Giáo Trình Máy Điện
Giáo Trình Máy ĐiệnGiáo Trình Máy Điện
Giáo Trình Máy Điệnbaotoxamac222
 
Báo cáo hệ thống đóng táo tự động dùng plc
Báo cáo hệ thống đóng táo tự động dùng plcBáo cáo hệ thống đóng táo tự động dùng plc
Báo cáo hệ thống đóng táo tự động dùng plcTony Tun
 
[123doc] dieu-khien-thiet-bi-qua-module-wifi-esp8266
[123doc]   dieu-khien-thiet-bi-qua-module-wifi-esp8266[123doc]   dieu-khien-thiet-bi-qua-module-wifi-esp8266
[123doc] dieu-khien-thiet-bi-qua-module-wifi-esp8266Ngo Gia HAi
 

What's hot (20)

Đề tài: Thiết bị cảnh báo khí gas & phòng chống cháy nổ, HAY
Đề tài: Thiết bị cảnh báo khí gas & phòng chống cháy nổ, HAYĐề tài: Thiết bị cảnh báo khí gas & phòng chống cháy nổ, HAY
Đề tài: Thiết bị cảnh báo khí gas & phòng chống cháy nổ, HAY
 
Đề tài: Đồ án mạch cảm biến ánh sáng, HAY
Đề tài: Đồ án mạch cảm biến ánh sáng, HAYĐề tài: Đồ án mạch cảm biến ánh sáng, HAY
Đề tài: Đồ án mạch cảm biến ánh sáng, HAY
 
Ngân hàng đề môn điện tử số kỹ thuật số ( có đáp án) 4797768
Ngân hàng đề môn điện tử số kỹ thuật số ( có đáp án) 4797768Ngân hàng đề môn điện tử số kỹ thuật số ( có đáp án) 4797768
Ngân hàng đề môn điện tử số kỹ thuật số ( có đáp án) 4797768
 
Giáo trình thiết kế mạch logic số
Giáo trình thiết kế mạch logic sốGiáo trình thiết kế mạch logic số
Giáo trình thiết kế mạch logic số
 
Kĩ thuật đo lường
Kĩ thuật đo lường Kĩ thuật đo lường
Kĩ thuật đo lường
 
Bài giảng kỹ thuật điện điện tử
Bài giảng kỹ thuật điện điện tửBài giảng kỹ thuật điện điện tử
Bài giảng kỹ thuật điện điện tử
 
chỉnh lưu hình tia 3 pha.doc
chỉnh lưu hình tia 3 pha.docchỉnh lưu hình tia 3 pha.doc
chỉnh lưu hình tia 3 pha.doc
 
Hệ truyền động đc một chiều và mạch buck
Hệ truyền động đc một chiều và mạch buckHệ truyền động đc một chiều và mạch buck
Hệ truyền động đc một chiều và mạch buck
 
Xử lý tín hiệu số
Xử lý tín hiệu sốXử lý tín hiệu số
Xử lý tín hiệu số
 
Đề tài: Ứng dụng Iot giám sát mức tiêu thụ điện – nước, HAY
Đề tài: Ứng dụng Iot giám sát mức tiêu thụ điện – nước, HAYĐề tài: Ứng dụng Iot giám sát mức tiêu thụ điện – nước, HAY
Đề tài: Ứng dụng Iot giám sát mức tiêu thụ điện – nước, HAY
 
Đề tài: Hệ thống điều khiển tín hiệu đèn giao thông qua xử lý ảnh
Đề tài: Hệ thống điều khiển tín hiệu đèn giao thông qua xử lý ảnhĐề tài: Hệ thống điều khiển tín hiệu đèn giao thông qua xử lý ảnh
Đề tài: Hệ thống điều khiển tín hiệu đèn giao thông qua xử lý ảnh
 
Bài tập lớn Lý thuyết điều khiển - Đề tài lò nhiệt
Bài tập lớn Lý thuyết điều khiển - Đề tài lò nhiệtBài tập lớn Lý thuyết điều khiển - Đề tài lò nhiệt
Bài tập lớn Lý thuyết điều khiển - Đề tài lò nhiệt
 
Đồ án Tổng hợp hệ thống truyền động điện
Đồ án Tổng hợp hệ thống truyền động điệnĐồ án Tổng hợp hệ thống truyền động điện
Đồ án Tổng hợp hệ thống truyền động điện
 
NGHỊCH LƯU VÀ BIẾN TẦN.pdf
NGHỊCH LƯU VÀ BIẾN TẦN.pdfNGHỊCH LƯU VÀ BIẾN TẦN.pdf
NGHỊCH LƯU VÀ BIẾN TẦN.pdf
 
đIều chế tín hiệu (1)
đIều chế tín hiệu (1)đIều chế tín hiệu (1)
đIều chế tín hiệu (1)
 
Đề tài: Thiết kế hệ thống điều khiển các thiết bị trong phòng học
Đề tài: Thiết kế hệ thống điều khiển các thiết bị trong phòng họcĐề tài: Thiết kế hệ thống điều khiển các thiết bị trong phòng học
Đề tài: Thiết kế hệ thống điều khiển các thiết bị trong phòng học
 
Bài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu SốBài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu Số
 
Giáo Trình Máy Điện
Giáo Trình Máy ĐiệnGiáo Trình Máy Điện
Giáo Trình Máy Điện
 
Báo cáo hệ thống đóng táo tự động dùng plc
Báo cáo hệ thống đóng táo tự động dùng plcBáo cáo hệ thống đóng táo tự động dùng plc
Báo cáo hệ thống đóng táo tự động dùng plc
 
[123doc] dieu-khien-thiet-bi-qua-module-wifi-esp8266
[123doc]   dieu-khien-thiet-bi-qua-module-wifi-esp8266[123doc]   dieu-khien-thiet-bi-qua-module-wifi-esp8266
[123doc] dieu-khien-thiet-bi-qua-module-wifi-esp8266
 

Viewers also liked

Mạch led nháy theo nhạc sử dụng IC AN6884
Mạch led nháy theo nhạc sử dụng IC AN6884Mạch led nháy theo nhạc sử dụng IC AN6884
Mạch led nháy theo nhạc sử dụng IC AN6884Linh Hoang-Tuan
 
Junction-depth & Sheet-resitance meassurement
Junction-depth & Sheet-resitance meassurementJunction-depth & Sheet-resitance meassurement
Junction-depth & Sheet-resitance meassurementLinh Hoang-Tuan
 
Dap an de cuoi ki giai tich mach
Dap an de cuoi ki giai tich machDap an de cuoi ki giai tich mach
Dap an de cuoi ki giai tich machTung Dang Son
 
Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Ky Nguyen Ad
 
tai lieu-an-toan-dien
 tai lieu-an-toan-dien tai lieu-an-toan-dien
tai lieu-an-toan-dienTrà Nguyễn
 
Bao cao nhap mon dien tu vien thong
Bao cao nhap mon dien tu vien thongBao cao nhap mon dien tu vien thong
Bao cao nhap mon dien tu vien thongshockwavetn94
 
Giao trinh mach dien 1
Giao trinh mach dien 1Giao trinh mach dien 1
Giao trinh mach dien 1Trà Nguyễn
 
Chuong 5.2 m4 c bai giai
Chuong 5.2 m4 c bai giaiChuong 5.2 m4 c bai giai
Chuong 5.2 m4 c bai giaithanhyu
 

Viewers also liked (9)

Mạch led nháy theo nhạc sử dụng IC AN6884
Mạch led nháy theo nhạc sử dụng IC AN6884Mạch led nháy theo nhạc sử dụng IC AN6884
Mạch led nháy theo nhạc sử dụng IC AN6884
 
Junction-depth & Sheet-resitance meassurement
Junction-depth & Sheet-resitance meassurementJunction-depth & Sheet-resitance meassurement
Junction-depth & Sheet-resitance meassurement
 
Dap an de cuoi ki giai tich mach
Dap an de cuoi ki giai tich machDap an de cuoi ki giai tich mach
Dap an de cuoi ki giai tich mach
 
Ltm
LtmLtm
Ltm
 
Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr
 
tai lieu-an-toan-dien
 tai lieu-an-toan-dien tai lieu-an-toan-dien
tai lieu-an-toan-dien
 
Bao cao nhap mon dien tu vien thong
Bao cao nhap mon dien tu vien thongBao cao nhap mon dien tu vien thong
Bao cao nhap mon dien tu vien thong
 
Giao trinh mach dien 1
Giao trinh mach dien 1Giao trinh mach dien 1
Giao trinh mach dien 1
 
Chuong 5.2 m4 c bai giai
Chuong 5.2 m4 c bai giaiChuong 5.2 m4 c bai giai
Chuong 5.2 m4 c bai giai
 

Similar to Thiết kế đồng hồ lịch vạn niên sử dụng VĐK AVR

Nghiên cứu hệ SCADA cho hệ thống xử lý nước trong nhà máy nhiệt điện.pdf
Nghiên cứu hệ SCADA cho hệ thống xử lý nước trong nhà máy nhiệt điện.pdfNghiên cứu hệ SCADA cho hệ thống xử lý nước trong nhà máy nhiệt điện.pdf
Nghiên cứu hệ SCADA cho hệ thống xử lý nước trong nhà máy nhiệt điện.pdfMan_Ebook
 
Luận Văn Xây Dựng Chƣơng Trình Quản Lý Và Kế Toán Kho Hàng.doc
Luận Văn Xây Dựng Chƣơng Trình Quản Lý Và Kế Toán Kho Hàng.docLuận Văn Xây Dựng Chƣơng Trình Quản Lý Và Kế Toán Kho Hàng.doc
Luận Văn Xây Dựng Chƣơng Trình Quản Lý Và Kế Toán Kho Hàng.doctcoco3199
 
Luận án tiến sĩ kỹ thuật nghiên cứu hiệu quả của đê ngầm đến quá trình tiêu h...
Luận án tiến sĩ kỹ thuật nghiên cứu hiệu quả của đê ngầm đến quá trình tiêu h...Luận án tiến sĩ kỹ thuật nghiên cứu hiệu quả của đê ngầm đến quá trình tiêu h...
Luận án tiến sĩ kỹ thuật nghiên cứu hiệu quả của đê ngầm đến quá trình tiêu h...https://www.facebook.com/garmentspace
 
Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701
Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701
Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701Viết thuê báo cáo thực tập giá rẻ
 
Nghiên cứu thiết kế chế tạo mô hình hệ thống lái đa hướng, Nguyễn Phụ Thượng Lưu
Nghiên cứu thiết kế chế tạo mô hình hệ thống lái đa hướng, Nguyễn Phụ Thượng LưuNghiên cứu thiết kế chế tạo mô hình hệ thống lái đa hướng, Nguyễn Phụ Thượng Lưu
Nghiên cứu thiết kế chế tạo mô hình hệ thống lái đa hướng, Nguyễn Phụ Thượng LưuMan_Ebook
 
Nghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềm
Nghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềmNghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềm
Nghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềmsunflower_micro
 
Đồ Án Tốt Nghiệp Về Đánh Giá Một Số Giao Thức Trong Mạng Cảm Nhận Không Dây B...
Đồ Án Tốt Nghiệp Về Đánh Giá Một Số Giao Thức Trong Mạng Cảm Nhận Không Dây B...Đồ Án Tốt Nghiệp Về Đánh Giá Một Số Giao Thức Trong Mạng Cảm Nhận Không Dây B...
Đồ Án Tốt Nghiệp Về Đánh Giá Một Số Giao Thức Trong Mạng Cảm Nhận Không Dây B...mokoboo56
 
Luận Văn Tính Toán Dầm Thép Tiết Diện Dạng Chữ I Chịu Xoắn Theo AISC
Luận Văn Tính Toán Dầm Thép Tiết Diện Dạng Chữ I Chịu Xoắn Theo AISCLuận Văn Tính Toán Dầm Thép Tiết Diện Dạng Chữ I Chịu Xoắn Theo AISC
Luận Văn Tính Toán Dầm Thép Tiết Diện Dạng Chữ I Chịu Xoắn Theo AISCLe Duy
 
Luận Văn Xây Dựng Hệ Thống Quản Lý Dữ Liệu Video Tại Đài Phát Thanh Và Truyền...
Luận Văn Xây Dựng Hệ Thống Quản Lý Dữ Liệu Video Tại Đài Phát Thanh Và Truyền...Luận Văn Xây Dựng Hệ Thống Quản Lý Dữ Liệu Video Tại Đài Phát Thanh Và Truyền...
Luận Văn Xây Dựng Hệ Thống Quản Lý Dữ Liệu Video Tại Đài Phát Thanh Và Truyền...sividocz
 
Nghiên cứu cải tiến bộ điều khiển sử dụng đại số gia tử cho đối tượng phi tuyến
Nghiên cứu cải tiến bộ điều khiển sử dụng đại số gia tử cho đối tượng phi tuyếnNghiên cứu cải tiến bộ điều khiển sử dụng đại số gia tử cho đối tượng phi tuyến
Nghiên cứu cải tiến bộ điều khiển sử dụng đại số gia tử cho đối tượng phi tuyếnMan_Ebook
 
Luận Văn Quản Lý Thu Tiền Sử Dụng Internet.doc
Luận Văn Quản Lý Thu Tiền Sử Dụng Internet.docLuận Văn Quản Lý Thu Tiền Sử Dụng Internet.doc
Luận Văn Quản Lý Thu Tiền Sử Dụng Internet.doctcoco3199
 

Similar to Thiết kế đồng hồ lịch vạn niên sử dụng VĐK AVR (20)

Các mô hình học sâu tiên tiến và ứng dụng trong phân tích chuỗi thời gian lâm...
Các mô hình học sâu tiên tiến và ứng dụng trong phân tích chuỗi thời gian lâm...Các mô hình học sâu tiên tiến và ứng dụng trong phân tích chuỗi thời gian lâm...
Các mô hình học sâu tiên tiến và ứng dụng trong phân tích chuỗi thời gian lâm...
 
Nghiên cứu hệ SCADA cho hệ thống xử lý nước trong nhà máy nhiệt điện.pdf
Nghiên cứu hệ SCADA cho hệ thống xử lý nước trong nhà máy nhiệt điện.pdfNghiên cứu hệ SCADA cho hệ thống xử lý nước trong nhà máy nhiệt điện.pdf
Nghiên cứu hệ SCADA cho hệ thống xử lý nước trong nhà máy nhiệt điện.pdf
 
Đề tài: Hệ thống điều khiển thiết bị điện và giám sát nhà, HAY
Đề tài: Hệ thống điều khiển thiết bị điện và giám sát nhà, HAYĐề tài: Hệ thống điều khiển thiết bị điện và giám sát nhà, HAY
Đề tài: Hệ thống điều khiển thiết bị điện và giám sát nhà, HAY
 
Các Mô Hình Học Sâu Tiên Tiến Và Ứng Dụng Trong Phân Tích Chuỗi Thời Gian Lâm...
Các Mô Hình Học Sâu Tiên Tiến Và Ứng Dụng Trong Phân Tích Chuỗi Thời Gian Lâm...Các Mô Hình Học Sâu Tiên Tiến Và Ứng Dụng Trong Phân Tích Chuỗi Thời Gian Lâm...
Các Mô Hình Học Sâu Tiên Tiến Và Ứng Dụng Trong Phân Tích Chuỗi Thời Gian Lâm...
 
Luận Văn Xây Dựng Chƣơng Trình Quản Lý Và Kế Toán Kho Hàng.doc
Luận Văn Xây Dựng Chƣơng Trình Quản Lý Và Kế Toán Kho Hàng.docLuận Văn Xây Dựng Chƣơng Trình Quản Lý Và Kế Toán Kho Hàng.doc
Luận Văn Xây Dựng Chƣơng Trình Quản Lý Và Kế Toán Kho Hàng.doc
 
Luận án tiến sĩ kỹ thuật nghiên cứu hiệu quả của đê ngầm đến quá trình tiêu h...
Luận án tiến sĩ kỹ thuật nghiên cứu hiệu quả của đê ngầm đến quá trình tiêu h...Luận án tiến sĩ kỹ thuật nghiên cứu hiệu quả của đê ngầm đến quá trình tiêu h...
Luận án tiến sĩ kỹ thuật nghiên cứu hiệu quả của đê ngầm đến quá trình tiêu h...
 
Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701
Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701
Đồ án điện tử viễn thông Nghiên cứu về OPENSIPS - sdt/ ZALO 093 189 2701
 
Nghiên cứu thiết kế chế tạo mô hình hệ thống lái đa hướng, Nguyễn Phụ Thượng Lưu
Nghiên cứu thiết kế chế tạo mô hình hệ thống lái đa hướng, Nguyễn Phụ Thượng LưuNghiên cứu thiết kế chế tạo mô hình hệ thống lái đa hướng, Nguyễn Phụ Thượng Lưu
Nghiên cứu thiết kế chế tạo mô hình hệ thống lái đa hướng, Nguyễn Phụ Thượng Lưu
 
Luận văn: Cấu trúc điều khiển bộ biến đổi DC hai chiều, HAY
Luận văn: Cấu trúc điều khiển bộ biến đổi DC hai chiều, HAYLuận văn: Cấu trúc điều khiển bộ biến đổi DC hai chiều, HAY
Luận văn: Cấu trúc điều khiển bộ biến đổi DC hai chiều, HAY
 
Nghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềm
Nghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềmNghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềm
Nghiên cứu và ứng dụng giải pháp kiểm thử tự động phần mềm
 
Luận văn: Giải pháp tích hợp dịch vụ nghiệp vụ ngân hàng, 9đ
Luận văn: Giải pháp tích hợp dịch vụ nghiệp vụ ngân hàng, 9đLuận văn: Giải pháp tích hợp dịch vụ nghiệp vụ ngân hàng, 9đ
Luận văn: Giải pháp tích hợp dịch vụ nghiệp vụ ngân hàng, 9đ
 
Đồ Án Tốt Nghiệp Về Đánh Giá Một Số Giao Thức Trong Mạng Cảm Nhận Không Dây B...
Đồ Án Tốt Nghiệp Về Đánh Giá Một Số Giao Thức Trong Mạng Cảm Nhận Không Dây B...Đồ Án Tốt Nghiệp Về Đánh Giá Một Số Giao Thức Trong Mạng Cảm Nhận Không Dây B...
Đồ Án Tốt Nghiệp Về Đánh Giá Một Số Giao Thức Trong Mạng Cảm Nhận Không Dây B...
 
Luận Văn Tính Toán Dầm Thép Tiết Diện Dạng Chữ I Chịu Xoắn Theo AISC
Luận Văn Tính Toán Dầm Thép Tiết Diện Dạng Chữ I Chịu Xoắn Theo AISCLuận Văn Tính Toán Dầm Thép Tiết Diện Dạng Chữ I Chịu Xoắn Theo AISC
Luận Văn Tính Toán Dầm Thép Tiết Diện Dạng Chữ I Chịu Xoắn Theo AISC
 
Xoắn dầm thép I
Xoắn dầm thép IXoắn dầm thép I
Xoắn dầm thép I
 
Luận Văn Xây Dựng Hệ Thống Quản Lý Dữ Liệu Video Tại Đài Phát Thanh Và Truyền...
Luận Văn Xây Dựng Hệ Thống Quản Lý Dữ Liệu Video Tại Đài Phát Thanh Và Truyền...Luận Văn Xây Dựng Hệ Thống Quản Lý Dữ Liệu Video Tại Đài Phát Thanh Và Truyền...
Luận Văn Xây Dựng Hệ Thống Quản Lý Dữ Liệu Video Tại Đài Phát Thanh Và Truyền...
 
Luận án: Cải tiến bộ điều khiển sử dụng đại số gia tử cho phi tuyến
Luận án: Cải tiến bộ điều khiển sử dụng đại số gia tử cho phi tuyếnLuận án: Cải tiến bộ điều khiển sử dụng đại số gia tử cho phi tuyến
Luận án: Cải tiến bộ điều khiển sử dụng đại số gia tử cho phi tuyến
 
Nghiên cứu cải tiến bộ điều khiển sử dụng đại số gia tử cho đối tượng phi tuyến
Nghiên cứu cải tiến bộ điều khiển sử dụng đại số gia tử cho đối tượng phi tuyếnNghiên cứu cải tiến bộ điều khiển sử dụng đại số gia tử cho đối tượng phi tuyến
Nghiên cứu cải tiến bộ điều khiển sử dụng đại số gia tử cho đối tượng phi tuyến
 
Luận án: Phát triển một số phương pháp xây dựng hệ tư vấn
Luận án: Phát triển một số phương pháp xây dựng hệ tư vấnLuận án: Phát triển một số phương pháp xây dựng hệ tư vấn
Luận án: Phát triển một số phương pháp xây dựng hệ tư vấn
 
Luận Văn Quản Lý Thu Tiền Sử Dụng Internet.doc
Luận Văn Quản Lý Thu Tiền Sử Dụng Internet.docLuận Văn Quản Lý Thu Tiền Sử Dụng Internet.doc
Luận Văn Quản Lý Thu Tiền Sử Dụng Internet.doc
 
Luận án: Hệ tư vấn dựa trên mức độ quan trọng hàm ý thống kê, HAY
Luận án: Hệ tư vấn dựa trên mức độ quan trọng hàm ý thống kê, HAYLuận án: Hệ tư vấn dựa trên mức độ quan trọng hàm ý thống kê, HAY
Luận án: Hệ tư vấn dựa trên mức độ quan trọng hàm ý thống kê, HAY
 

More from Linh Hoang-Tuan

Phân tích, thiết kế giao thức nhận dạng thẻ tag cho hệ thống passive RFID
Phân tích, thiết kế giao thức nhận dạng thẻ tag cho hệ thống passive RFIDPhân tích, thiết kế giao thức nhận dạng thẻ tag cho hệ thống passive RFID
Phân tích, thiết kế giao thức nhận dạng thẻ tag cho hệ thống passive RFIDLinh Hoang-Tuan
 
[Report-Optical System] Bộ lọc sử dụng buồng vi cộng hưởng tinh thể quang tử ...
[Report-Optical System] Bộ lọc sử dụng buồng vi cộng hưởng tinh thể quang tử ...[Report-Optical System] Bộ lọc sử dụng buồng vi cộng hưởng tinh thể quang tử ...
[Report-Optical System] Bộ lọc sử dụng buồng vi cộng hưởng tinh thể quang tử ...Linh Hoang-Tuan
 
[Report] Cửa thông minh dựa trên công nghệ RFID và giao tiếp WiFi
[Report] Cửa thông minh dựa trên công nghệ RFID và giao tiếp WiFi[Report] Cửa thông minh dựa trên công nghệ RFID và giao tiếp WiFi
[Report] Cửa thông minh dựa trên công nghệ RFID và giao tiếp WiFiLinh Hoang-Tuan
 
Breakdown Voltage of Silicon Dioxide
Breakdown Voltage of Silicon DioxideBreakdown Voltage of Silicon Dioxide
Breakdown Voltage of Silicon DioxideLinh Hoang-Tuan
 
CCD and CMOS Image Sensor
CCD and CMOS Image SensorCCD and CMOS Image Sensor
CCD and CMOS Image SensorLinh Hoang-Tuan
 
Hướng dẫn viết báo cáo chuẩn
Hướng dẫn viết báo cáo chuẩnHướng dẫn viết báo cáo chuẩn
Hướng dẫn viết báo cáo chuẩnLinh Hoang-Tuan
 
[BestProject2014] BigBird Team
[BestProject2014] BigBird Team[BestProject2014] BigBird Team
[BestProject2014] BigBird TeamLinh Hoang-Tuan
 
[Intro] Best Project 2014
[Intro] Best Project 2014[Intro] Best Project 2014
[Intro] Best Project 2014Linh Hoang-Tuan
 

More from Linh Hoang-Tuan (9)

Phân tích, thiết kế giao thức nhận dạng thẻ tag cho hệ thống passive RFID
Phân tích, thiết kế giao thức nhận dạng thẻ tag cho hệ thống passive RFIDPhân tích, thiết kế giao thức nhận dạng thẻ tag cho hệ thống passive RFID
Phân tích, thiết kế giao thức nhận dạng thẻ tag cho hệ thống passive RFID
 
[Report-Optical System] Bộ lọc sử dụng buồng vi cộng hưởng tinh thể quang tử ...
[Report-Optical System] Bộ lọc sử dụng buồng vi cộng hưởng tinh thể quang tử ...[Report-Optical System] Bộ lọc sử dụng buồng vi cộng hưởng tinh thể quang tử ...
[Report-Optical System] Bộ lọc sử dụng buồng vi cộng hưởng tinh thể quang tử ...
 
[Report] Cửa thông minh dựa trên công nghệ RFID và giao tiếp WiFi
[Report] Cửa thông minh dựa trên công nghệ RFID và giao tiếp WiFi[Report] Cửa thông minh dựa trên công nghệ RFID và giao tiếp WiFi
[Report] Cửa thông minh dựa trên công nghệ RFID và giao tiếp WiFi
 
Breakdown Voltage of Silicon Dioxide
Breakdown Voltage of Silicon DioxideBreakdown Voltage of Silicon Dioxide
Breakdown Voltage of Silicon Dioxide
 
CCD and CMOS Image Sensor
CCD and CMOS Image SensorCCD and CMOS Image Sensor
CCD and CMOS Image Sensor
 
Giao tiếp TTL-CMOS
Giao tiếp TTL-CMOSGiao tiếp TTL-CMOS
Giao tiếp TTL-CMOS
 
Hướng dẫn viết báo cáo chuẩn
Hướng dẫn viết báo cáo chuẩnHướng dẫn viết báo cáo chuẩn
Hướng dẫn viết báo cáo chuẩn
 
[BestProject2014] BigBird Team
[BestProject2014] BigBird Team[BestProject2014] BigBird Team
[BestProject2014] BigBird Team
 
[Intro] Best Project 2014
[Intro] Best Project 2014[Intro] Best Project 2014
[Intro] Best Project 2014
 

Thiết kế đồng hồ lịch vạn niên sử dụng VĐK AVR

  • 1. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN VI XỬ LÝ ĐỀ TÀI: THIẾT KẾ MẠCH ĐỒNG HỒ LỊCH VẠN NIÊN SỬ DỤNG VI ĐIỀU KHIỂN AVR Giảng viên hướng dẫn: TS. Nguyễn Hoàng Dũng Sinh viên thực hiện: Hoàng Tuấn Linh – 20132263 Nguyễn Văn Long – 20132393 Lớp: KSTN – ĐTVT – K58 Hà Nội, 4-2016
  • 2. 2 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN VI XỬ LÝ ĐỀ TÀI: THIẾT KẾ MẠCH ĐỒNG HỒ LỊCH VẠN NIÊN SỬ DỤNG VI ĐIỀU KHIỂN AVR Giảng viên hướng dẫn: TS. Nguyễn Hoàng Dũng Sinh viên thực hiện: Hoàng Tuấn Linh – 20132263 Nguyễn Văn Long – 20132393 Lớp: KSTN – ĐTVT – K58 Hà Nội, 4-2016
  • 3. 3 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Nhận xét của giáo viên ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... .......................................................................................................................................
  • 4. 4 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Mục lục Nhận xét của giáo viên....................................................................................................................... 3 Danh mục hình vẽ .............................................................................................................................. 5 Danh mục bảng biểu .......................................................................................................................... 6 Lời mở đầu......................................................................................................................................... 7 Chương I. Mô tả đề tài............................................................................................................. 8 1. Đặt vấn đề .............................................................................................................................. 8 2. Phân tích yêu cầu thiết kế....................................................................................................... 9 2.1 Yêu cầu chức năng......................................................................................................... 9 2.2 Yêu cầu phi chức năng................................................................................................... 9 Chương II. Lập kế hoạch ........................................................................................................ 10 1. Bảng phân tích nhân lực....................................................................................................... 10 2. Bảng phân công công việc ................................................................................................... 11 3. Bảng kế hoạch thực hiện...................................................................................................... 12 Chương III. Thiết kế hệ thống.................................................................................................. 13 1. Thiết kế sơ đồ khối............................................................................................................... 13 2. Thiết kế sơ đồ khối chi tiết................................................................................................... 14 2.1 Khối nguồn................................................................................................................... 14 2.2 Khối điều chỉnh ngày giờ và báo thức ......................................................................... 14 2.3 Khối hiển thị................................................................................................................. 15 2.4 Khối thời gian thực ...................................................................................................... 16 2.5 Khối điều khiển............................................................................................................ 18 3 Sơ đồ nguyên lý ................................................................................................................... 20 Chương IV. Hoàn thành sản phẩm........................................................................................... 21 1. Layout mạch in..................................................................................................................... 21 2. Làm mạch, hàn linh kiện...................................................................................................... 22 3. Đo đạc, kiểm tra, đánh giá chất lượng sản phẩm ................................................................. 23 Chương VI. Kết luận................................................................................................................ 25 1. Đánh giá những điều đã làm được và chưa làm được.......................................................... 25 1.1 Những điều đã làm được.................................................................................................... 25 1.2 Những điểm còn hạn chế.................................................................................................... 25 2. Hướng phát triển .................................................................................................................. 26 3. Kết luận................................................................................................................................ 26 Tài liệu tham khảo............................................................................................................................ 27 Phụ lục 1: Source code..................................................................................................................... 28 Phụ lục 2: Hướng dẫn sử dụng......................................................................................................... 44
  • 5. 5 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Danh mục hình vẽ Hình 1. Sơ đồ khối tổng quan mạch đồng hồ lịch vạn niên .....................................13 Hình 2. Adapter 5V – 2A...........................................................................................14 Hình 3 Khối điều chỉnh ngày giờ và báo thức ..........................................................15 Hình 4. Nút bấm ........................................................................................................15 Hình 5. Điện trở ........................................................................................................15 Hình 6. Khối hiển thị................................................................................................16 Hình 7. LCD 16*2....................................................................................................16 Hình 8. Khối thời gian thực ......................................................................................17 Hình 9. Thạch anh 32,768MHz.................................................................................17 Hình 10. IC DS1307.................................................................................................17 Hình 11. Battery 3V...................................................................................................17 Hình 12. Khối điều khiển .........................................................................................18 Hình 13. VĐK ATmega16 .........................................................................................18 Hình 14. Sơ đồ chân VĐK ATmega16 ......................................................................19 Hình 15. Sơ đồ nguyên lý ..........................................................................................20 Hình 16. Mạch in PCB 2D ........................................................................................21 Hình 17. Mạch in PCB 3D ........................................................................................21 Hình 18. Kiểm tra mạch trên board..........................................................................22 Hình 19. Mạch in chưa hàn linh kiện........................................................................22 Hình 20. Hình ảnh mạch thực tế đang hoạt động.....................................................23 Hình 21. Mặt sau mạch hoàn chỉnh ..........................................................................23
  • 6. 6 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Danh mục bảng biểu Bảng 1. Bảng phân tích nhân lực..............................................................................10 Bảng 2. Bảng phân công công việc...........................................................................11 Bảng 3. Bảng kế hoạch thực hiện..............................................................................12
  • 7. 7 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Lời mở đầu Với sự phát triển không ngừng của khoa học kỹ thuật, đặc biệt là ngành điện tử đã được ứng dụng rất nhiều trong công nghiệp. Trong lĩnh vực điều khiển, từ khi công nghệ chế tạo loại vi mạch lập trình phát triển đã đem đến các kỹ thuật điều khiển hiện đại có nhiều ưu điểm hơn so với việc sử dụng các mạch điều khiển lắp ráp bằng các linh kiện rời như kích thước nhỏ, giá thành rẻ, độ làm việc tin cậy, công suất tiêu thụ nhỏ. Ngày nay, trong lĩnh vực điều khiển đã được ứng dụng rộng rãi trong các thiết bị, sản phẩm phục vụ cho nhu cầu sinh hoạt hàng ngày của con người như máy giặt, đồng hồ báo giờ… đã giúp cho đời sống của chúng ta ngày càng hiện đại và tiện nghi hơn. Chúng em đã chọn đề tài “Thiết kế mạch đồng hồ lịch vạn niên sử dụng vi điều khiển AVR” để hoàn thành bài tập lớn môn Vi xử lý, cũng như để đáp ứng mong muốn tìm hiểu và làm một sản phẩm điện tử cụ thể từ một dòng Vi điều khiển của bản thân. Đề tài “Thiết kế mạch đồng hồ lịch vạn niên” là một đề tài quen thuộc, có thể thực hiện trên rất nhiều dòng VĐK. Nhưng đối với chúng em, khi mới tìm hiểu một dòng VĐK mới, và đặc biệt phải thiết kế mạch đồng hồ trên dòng VĐK AVR theo yêu cầu, đó cũng là một thách thức và trải nghiệm rất thú vị. Do kiến thức còn hạn chế nên đề tài chắc chắn còn nhiều thiếu sót. Chúng em rất mong nhận được những ý kiến đóng góp để chúng em hoàn thiện đề tài từ phía thầy cô cũng như các bạn sinh viên. Chúng em xin chân thành cảm ơn thầy Nguyễn Hoàng Dũng và các nhóm trợ giảng đã giúp đỡ chúng em rất nhiều trong tất cả quá trình, từ lúc mới bắt đầu đến lúc hoàn thiện sản phẩm!
  • 8. 8 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Chương I. Mô tả đề tài 1. Đặt vấn đề Bài toán đặt ra là thiết kế mạch đồng hồ lịch vạn niên sử dụng VĐK Atmega16 là VĐK chính. Đây là bài toán khá quen thuộc và có rất nhiều cách giải quyết bài toàn này. Đề tài sử dụng IC thời gian gian thực DS1307, có tác dụng thực hiện việc đếm lên ngày tháng, VĐK AVR chỉ thực hiện đặt ngày giờ để đưa vào DS1307, sau đó thực hiện đọc ngày giờ từ DS1307 ra. VĐK còn có chức năng nhận các tín hiệu đặt ngày giờ và đặt báo thức từ các nút bấm, sau đó xử lý để đưa ra ngày giờ mong muốn rồi gửi dữ liệu vào DS1307. Để hiện thị có 2 lựa chọn là sử dụng LED 7 đoạn và sử dụng LCD. Đề tài đã chọn phương án sử dụng LCD để có thể hiển thị nhiều thông tin so với LED 7 đoạn, hơn nữa việc triển khai lại có phần dễ dàng hơn (nếu sử dụng LED 7 đoạn thì phải tính toán thời gian quét LED). Từ việc phân tích và khảo sát trên đây, nhóm đã đưa ra các vấn đề chính cần giải quyết của bài toán đặt ra là: - Tìm hiều kiến thức cơ bàn về VĐK Atmega16, đặc biệt về phần giao tiếp với DS1307 và LCD. Tìm hiểu về phần mềm CodeVisionAVR C Compiler để thực hiện code cho VĐK Atmega16. - Xây dựng sơ đồ khối, từ đó xây dựng mạch nguyên lý và mô phỏng trên phần mềm Proteus. - Thiết kế mạch in trên phần mềm Altium Designer. - Thực hiện lắp ráp linh kiện trên mạch in. Để nạp code cho VĐK nhóm sử dụng phần mềm Progisp và mạch nạp USB ISP. - Viết báo cáo tổng hợp về quy trình thực hiện đề tài.
  • 9. 9 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên 2. Phân tích yêu cầu thiết kế 2.1 Yêu cầu chức năng Mạch có các yêu cầu chức năng sau: - Hiển thị giờ - phút – giây trên dòng thứ nhất của LCD 16*2 - Hiển thị thứ - ngày - tháng – năm trên dòng thứ 2 của LCD 16*2 - Có thể đặt lại ngày – giờ cũng như thứ - ngày – tháng – năm nhờ vào 3 phím bấm MODE, UP, DOWN - Có chức năng báo thức, thực hiện bằng đèn và còi báo hiệu. Có thể tắt báo thức bằng nút bấm OK, khi đó nếu muốn báo thức lại phải cài đặt lại ngày giờ báo thức rồi xác nhận bằng phím OK. Nếu không tắt báo thức thì đèn và còi sẽ tự động hủy báo thức sau 1 phút, trong trường hợp này báo thức vẫn sẽ hoạt động vào ngày hôm sau. 2.2 Yêu cầu phi chức năng Mạch có các yêu cầu phi chức năng sau: - Sử dụng nguồn 1 chiều 5V - Kích thước mạch thực tế: 5cm * 7cm - Sử dụng VĐK PIC là VĐK chính - Hiển thị trên LCD 16*2 - Sản phẩm được thiết kế phù hợp với việc đặt cố định, lựa chọn sử dụng linh kiện sao cho mức giá thấp nhất có thể - Tổng chi phí dự kiến: 300.000VNĐ
  • 10. 10 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Chương II. Lập kế hoạch Quá trình lập kế hoạch giúp chúng em có cái nhìn tổng quan về mục tiêu, nhiệm vụ cần thực hiện cũng như phân bố thời gian hợp lí cho toàn bộ quá trình thiết kế sản phẩm. Đây là bước giúp chúng em hiểu hơn về từng thành viên trong nhóm, từng công việc cụ thể cần phải thực hiện. 1. Bảng phân tích nhân lực Bảng 1. Bảng phân tích nhân lực Thành viên Ưu điểm Ha ̣n chế Hoàng Tuấn Linh - Kĩ năng thuyết trình báo cáo tốt, tự tin. - Có kiến thứ c cơ bản đề điê ̣n tử , các loại vi điều khiển. - Thành tha ̣o lâ ̣p trình cho Vi điều khiển AVR - Kĩ năng hàn mạch, test mạch tốt, cẩn thận. Chưa thành thạo các công cụ mô phỏng, thiết kế điện tử. Nguyễn Văn Long - Có kiến thức cơ bản về điện tử. - Kĩ năng làm Slide, báo cáo Word Excel tốt. - Kĩ năng thiết kế mạch in nhanh chóng, đẹp. - Kĩ năng lập kế hoạch, quản lí đảm bảo tiến độ công việc. Hạn chế về Code, thuật toán xử lí cho Vi điều khiển.
  • 11. 11 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên 2. Bảng phân công công việc Bảng 2. Bảng phân công công việc Nội dung Công việc Thành viên Tìm hiểu đề tài Xác định đề tài, yêu cầu thiết kế của Mạch đồng hồ Lịch vạn niên. Tuấn Linh Tìm hiểu kiến thức về Vi điều khiển AVR, chip Atmega16. Tuấn Linh + Văn Long Lập kế hoạch chi tiết, phân công công việc cho quá trình thiết kế sản phẩm. Văn Long Thiết kế hệ thống Thiết kế sơ đồ khối Tuấn Linh Thiết kế chi tiết từng khối Tuấn Linh + Văn Long Vẽ mạch nguyên lý và mô phỏng trên Proteus. Tuấn Linh Lập trình cho Vi điều khiển Atmega16 Tuấn Linh + Văn Long Hoàn thành sản phẩm Thiết kế mạch in, đặt mạch in. Văn Long Mua linh kiện, test nguội mạch in Văn Long Hàn linh kiện. Tuấn Linh Đo đạc, kiểm tra, đánh giá sản phẩm Tuấn Linh + Văn Long Báo cáo bài tập lớn Hoàn thành nội dung báo cáo Word, video giới thiệu sản phẩm. Tuấn Linh + Văn Long Thuyết trình, báo cáo trước giảng viên. Tuấn Linh + Văn Long
  • 12. 12 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên 3. Bảng kế hoạch thực hiện Bảng 3. Bảng kế hoạch thực hiện Công việc Thời gian bắt đầu Thời gian kết thúc Yêu cầu đạt được Trạng thái Xác định đề tài Mạch đồng hồ Lịch vạn niên. 10/02 17/02 Xác định được yêu cầu thiết kế về chức năng và phi chức năng của mạch Hoàn thành Tìm hiểu về Vi điều khiển AVR, code cho AVR 18/02 01/03 Hiểu và trình bày được những kiến thức về Vi điều khiển AVR Hoàn thành Thiết kế mạch nguyên lý. 02/03 16/03 Hoàn thành sơ đồ khối chi tiết, mạch nguyên lý Hoàn thành Viết Code, mô phỏng mạch trên Proteus 17/03 02/05 Mô phỏng và chạy đúng với yêu cầu thiết kế trên phần mềm mô phỏng Proteus Hoàn thành Thiết kế mạch in 03/05 10/05 Hoàn thành thiết kế mạch in trên phần mềm Altium Hoàn thành Hoàn thành, kiểm tra, đánh giá sản phẩm 11/05 18/05 Sản phầm hoàn thành, chạy đúng yêu cầu thiết kế đề ra Hoàn thành Kiểm tra, hoàn thiện báo cáo 19/05 03/06 Bản báo cáo Bài tập lớn, video giới thiệu sản phẩm. Hoàn thành
  • 13. 13 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Chương III. Thiết kế hệ thống 1. Thiết kế sơ đồ khối Khối điều khiển chính Khối hiển thị Khối nguồn Khối điều chỉnh ngày giờ và báo thức Khối báo thứcKhối thời gian thực Hình 1. Sơ đồ khối tổng quan mạch đồng hồ lịch vạn niên Hình 1 biểu diễn sơ đồ khối tổng quan của toàn bộ đề tài mạch đồng hồ lịch vạn niên. Có 6 khối chính như trong hình vẽ: - Khối nguồn sẽ cung cấp nguồn vào cho các khối: Khối thời gian thực, Khối báo thức, Khối hiển thị và Khối điều khiển chính. - Khối điều chỉnh ngày giờ và báo thức là 4 nút bấm MODE, UP, DOWN và OK. - Khối điều khiển chính sẽ nhận tín hiệu từ Khối điều chỉnh ngày giờ và báo thức, sau đó thực hiện xử lý tín hiệu rồi giao tiếp với Khối thời gian thực để cài đặt và gọi thời gian. Song song với quá trình đó, Khối điều chỉnh cũng gửi dữ liệu đến các Khối báo thức và Khối hiển thị. Khối điều khiển chính là VXL ATmega16.
  • 14. 14 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên - Khối hiển thị nhận tín hiệu từ Khối điều khiển để hiển thị các thông tin về ngày- giờ và thứ - ngày – tháng – năm như yêu cầu chức năng. Khối hiển thị chính là LCD 16*2. - Khối báo thức gồm 1 đèn LED báo hiệu và một còi chíp. Khi nhận được tín hiệu từ VĐK, đèn và còi sẽ hoạt động để thực hiện chức năng báo thức. 2. Thiết kế sơ đồ khối chi tiết 2.1 Khối nguồn Hình 2. Adapter 5V – 2A Mạch sử dụng nguồn lấy từ adapter 5V-2A như trong hình 2 để cung cấp đủ dòng cho toàn bộ các khối. 2.2 Khối điều chỉnh ngày giờ và báo thức Mạch sử dụng các nút bấm như trong hình 4 để điều chỉnh ngày giờ và đặt báo thức:
  • 15. 15 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Hình 3 Khối điều chỉnh ngày giờ và báo thức Hình 4. Nút bấm Hình 5. Điện trở 2.3 Khối hiển thị Khối hiển thị sử dụng LCD 16*2. LCD có 16 chân. Ta cấp nguồn cho LCD thông qua các chân 1 (VSS) và 2 (VDD). Điều chỉnh đố sáng của LCD thông qua các chân 3 (Contrast Voltage), 15 (Backlight Anode) và 16 (Backlight Cathode). Các chân 7 đến 14 là các chân dữ liệu được nối với VĐK, với đề tài ta chỉ sử dụng các chân dữ liệu từ 11 đến 14. MODE UP DOWN OK VCC R4 10k R3 10k R5 10k R6 10k
  • 16. 16 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Hình 6. Khối hiển thị Hình 7. LCD 16*2 2.4 Khối thời gian thực Khối thời gian thực sử dụng IC DS1307. Ta cấp nguồn cho DS1307 qua trở kéo lên 4.7kΩ vào chân số 4 và 8 của IC. Ngoài ra nguồn pin 3V được nối vào chân 3 là nguồn pin dự trữ khi rút nguồn cấp chính, đảm bảo IC vẫn hoạt động (lúc khởi động lại mạch không bị sai giờ khi mất nguồn nuôi bất chợt). Chân 1 và 2 của IC nối với RS RW ELCD D4 D5 D6 D7 D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LCD1 LM016L
  • 17. 17 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên thạch anh 32,768 để tạo dao động. Hai chân 5 và 6 của IC là chân SCL (Serial Clock) và SDA (Serial Data), nối với 2 cổng của VĐK, các chân này sẽ gửi clock và gửi/nhận dữ liệu cho VĐK. Hình 8. Khối thời gian thực Hình 9. Thạch anh 32,768MHz Hình 10. IC DS1307 Hình 11. Battery 3V SDA SCL VBAT 3 X1 1 X2 2 SCL 6 SDA 5 SOUT 7 U2 DS1307 R2 4K7 R1 4K7 +5V X1 CRYSTAL BAT1 9V
  • 18. 18 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên 2.5 Khối điều khiển Hình 12. Khối điều khiển Hình 13. VĐK ATmega16 SCL SDA RS RW ELCD D4 D5 D6 D7 SPEAKER MODE UP DOWN OK SPEAKER PA0/ADC0 40 PA1/ADC1 39 PA2/ADC2 38 PA3/ADC3 37 PA4/ADC4 36 PA5/ADC5 35 PA6/ADC6 34 PB0/XCK/T0 1 PB1/T1 2 PB2/INT2/AIN0 3 PB3/OC0/AIN1 4 PB4/SS 5 PB5/MOSI 6 PB6/MISO 7 PB7/SCK 8 PA7/ADC7 33 RESET 9 XTAL1 13 XTAL2 12 PC0/SCL 22 PC1/SDA 23 PC2/TCK 24 PC3/TMS 25 PC4/TDO 26 PC5/TDI 27 PC6/TOSC1 28 PC7/TOSC2 29 PD0/RXD 14 PD1/TXD 15 PD2/INT0 16 PD3/INT1 17 PD4/OC1B 18 PD5/OC1A 19 PD6/ICP 20 PD7/OC2 21 AVCC 30 AREF 32 U1 ATMEGA16 +5V
  • 19. 19 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Hình 14. Sơ đồ chân VĐK ATmega16 Khối điều khiển chính là VĐK Atmega16. VĐK này có 40 chân, sơ đồ các chân như trong hình 14. ATmega16 là một lọai Vi điều khiển có nhìều tính năng đặc biệt thíchhợp cho việc giải quyết những bài tóan điều khiển trên nền vi xử lý. ATmega16 là vi điều khiển 8bit dựa trên kiến trúc RISC. Với khảnăng thực hiện mỗi lệnh trong vong một chu kỳ xung clock, Atmega16có thể đạt được tốc độ 1MIPS trên mỗi MHz( 1triệu lệnh/s/MHz),các lệnh được xử lý nhanh hơn,tiêu thụ năng lượng thấp.
  • 20. 20 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên 3 Sơ đồ nguyên lý Hình 15. Sơ đồ nguyên lý SDA SCL RS RW ELCD D4 D5 D6 D7 SCL SDA RS RW ELCD D4 D5 D6 D7 MODE SPEAKER UP DOWN OK MODE UP DOWN OK VCC SPEAKER GND VCC GND SPEAKER VBAT 3 X1 1 X2 2 SCL 6 SDA 5 SOUT 7 U2 DS1307 R2 4K7 R1 4K7 D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LCD1LM016L +5V X1 CRYSTAL BAT1 9V PA0/ADC0 40 PA1/ADC1 39 PA2/ADC2 38 PA3/ADC3 37 PA4/ADC4 36 PA5/ADC5 35 PA6/ADC6 34 PB0/XCK/T0 1 PB1/T1 2 PB2/INT2/AIN0 3 PB3/OC0/AIN1 4 PB4/SS 5 PB5/MOSI 6 PB6/MISO 7 PB7/SCK 8 PA7/ADC7 33 RESET 9 XTAL1 13 XTAL2 12 PC0/SCL 22 PC1/SDA 23 PC2/TCK 24 PC3/TMS 25 PC4/TDO 26 PC5/TDI 27 PC6/TOSC1 28 PC7/TOSC2 29 PD0/RXD 14 PD1/TXD 15 PD2/INT0 16 PD3/INT1 17 PD4/OC1B 18 PD5/OC1A 19 PD6/ICP 20 PD7/OC2 21 AVCC 30 AREF 32 U1 ATMEGA16 +5V R4 10k R3 10k R5 10k R6 10k D1 LED-GREEN R7 330 LS1 SPEAKER Q1 NPN R8 1k
  • 21. 21 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Chương IV. Hoàn thành sản phẩm Quá trình Hoàn thành sản phẩm là bước cuối cùng trong toàn bộ quy trình thiết kế một sản phẩm điện tử. 1. Layout mạch in Hình 16. Mạch in PCB 2D Hình 17. Mạch in PCB 3D
  • 22. 22 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên 2. Làm mạch, hàn linh kiện Sau khi có mạch in và các linh kiện đầy đủ, ta sẽ tiến hành lắp ráp thành mạch hoàn chỉnh. Sử dụng mạch nạp và phần mềm nạp để kết nối giữa máy tính và mạch đã lắp ráp. Tùy từng mạch nạp mà có phần mềm nạp riêng. Sau khi nạp xong chúng ra có thể test mạch thử và cung cấp nguồn cho mạch hoạt động. Hình 18. Kiểm tra mạch trên board Hình 19. Mạch in chưa hàn linh kiện
  • 23. 23 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Hình 20. Hình ảnh mạch thực tế đang hoạt động Hình 21. Mặt sau mạch hoàn chỉnh
  • 24. 24 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên 3. Đo đạc, kiểm tra, đánh giá chất lượng sản phẩm Việc đo nguội là quá trình đo đạc, kiểm tra trước khi cấp nguồn cho mạch. Việc này nhằm kiểm tra kết nối giữa cách đường đi dây, các kết nối trên mạch in, các mối hàn. Sau khi đo nguội mà không có lỗi, ta sẽ cấp nguồn cho mạch hoạt động (Chú ý : cấp nguồn sau cùng khi lắp ráp mạch và ngắt nguồn đầu tiên khi tắt mạch). Kiểm tra các chức năng hoạt động của đồng hồ, LCD hiển thị, chức năng các phím nhấn, led báo hiệu, còi báo thức có hoạt động tốt không. Khi mạch đã hoạt động ổn định, ta cần đo sai số của mạch. Nếu mạch có sai số lớn hơn mức cho phép, cần điều chỉnh lại code. Chúng em đã kiểm tra và đo được sai số trong 1 ngày hoạt động là 35 giây. Trong quá trình hoạt động, cần đánh giá nhiệt độ của mạch để có biện pháp điều chỉnh giúp mạch tản nhiệt tốt, bảo vệ linh kiện và hoạt động ổn định hơn.
  • 25. 25 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Chương VI. Kết luận 1. Đánh giá những điều đã làm được và chưa làm được 1.1 Những điều đã làm được Nhìn chung, sản phẩm hoàn thành đã đạt được yêu cầu thiết kế đã đề ra: - Đồng hồ Lịch vạn niên đếm thời gian một cách chính xác. Có các chức năng chình giờ - phút, thứ - ngày – tháng – năm và cài đặt báo thức. - Sản phẩm đơn giản, gọn nhẹ, dễ dàng sử dụng. Sản phầm sử dụng dòng điện dân dụng và thích hợp với việc đặt cố định một chỗ. Ngoài việc áp dụng những kiến thức đã được học trong môn vi xử lí, chúng em còn được làm quen và thực hành với Vi điều khiển AVR Atmega16. Đây là những kiến thức nền tảng, phục vụ cho ngành học điện tử sau này. Chúng em được làm quen và sử dụng các phần mềm mô phỏng Proteus, phần mềm lập trình CodeVisionAVR C Compilier cho vi điều khiển AVR, phần mềm thiết kế mạch in Altium và thực hiện ráp mạch thực tế. Đây là những kỹ năng rất quan trọng trong quá trình học tập, đặc biệt đối với sinh viên ngành điện tử. Trong quá trình hoàn thành thiết kế sản phầm Mạch đồng hồ Lịch vạn niên sử dụng vi xử lí AVR, chúng em đã học hỏi được thêm rất nhiều kiến thức và kinh nghiệm về điện tử. Chúng em được thực hành, vân dụng các kiến thức đã học để thiết kế nên một sản phẩm theo đúng quy trình thiết kế sản phẩm điện tử chuyên nghiệp. 1.2 Những điểm còn hạn chế Ngoài các chức năng đã đạt được đề tài còn một số hạn chế sau: - Mạch nhìn còn thô, tính thẩm mĩ chưa cao. - Các nút bấm còn chưa nhạy, chưa có nút reset mạch (phải reset mạch bằng cách rút nguồn).
  • 26. 26 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên - Mạch chạy thời gian dài còn tỏa nhiều nhiệt, ảnh hưởng tới độ bền của linh kiện và độ chính xác của sản phẩm. 2. Hướng phát triển Đề tài có thể được tiếp tục phát triển một số chức năng sau: - Thêm phần hiển thị lịch âm. - Thêm phần đo nhiệt độ, độ ẩm của mội trường. - Hệ thống chuống báo là bài hát/đoạn âm thanh. 3. Kết luận Bài tập lớn Vi xử lí đã giúp chúng em hoàn thiện hơn kĩ năng làm việc nhóm, vân dụng các kiến thức đã được học để thiết kế ra một sản phầm điện tử hoàn chỉnh. Đề tài Mạch đồng hồ Lịch vạn niên đã cho em nhiều trải nghiệm bổ ích, mở ra nhiều hướng đi mới cho học tập và công việc sau này. Chúng em xin được gửi lời cảm ơn chân thành tới thầy TS. Nguyễn Hoàng Dũng, anh Thành và các anh trợ giảng đã giúp đỡ chúng em rất nhiều trong các quá trình thiết kế và hoàn thành sản phẩm.
  • 27. 27 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Tài liệu tham khảo [1] ThS. Phạm Hùng Kim Khánh, Giáo trình Vi Điều Khiển [2] ThS. Trần Nhật Khải Hoàn, GS.Trần Hữu Danh, Tài liệu hướng dẫn thực tập Vi Điều Khiển. [3] ThS. Lương Văn Sơn, Giáo trình mạch Xung. [4] ThS. Nguyễn Trung Tập, Giáo trình mạch Số [5] GS. Trương Văn Tám, Giáo trình mạch Tương Tự. [6] http://www.alldatasheet.com [7] http://www.hocavr.com [8] http://www.dientuvietnam.net [9] http://codientu.org
  • 28. 28 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Phụ lục 1: Source code /***************************************************** This program was produced by the CodeWizardAVR V2.05.0 Professional Automatic Program Generator © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Dong ho lich van nien su dung VDK ATmega16 Date : 15-May-2016 Author : HoangTuanLinh & LongNguyenVan Company : Hanoi University of Science and Technology Chip type : ATmega16 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *****************************************************/ #include <mega16.h> #include <delay.h> // I2C Bus functions #asm .equ __i2c_port=0x15 ;PORTC .equ __sda_bit=1 .equ __scl_bit=0 #endasm #include <i2c.h> // DS1307 Real Time Clock functions #include <ds1307.h> // Alphanumeric LCD Module functions #include <alcd.h> // Declare your global variables here #define MODE PINB.0
  • 29. 29 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên #define UP PINB.1 #define DOWN PINB.2 #define OK PINB.3 bit AP; // che do 24h (1), che do 12h(0) bit sb; // sb=1: phim duoc nhan; sb=0; phim khong dc nhan bit alarm_en; unsigned int h_set=0,m_set=0; unsigned char hour,min,sec,day,date,month,year,mode,h,No_date; //Chuong trinh con //Ham hien thi thu (day) void display_day(unsigned char x){ switch(x) { case 1: lcd_putsf(" 2"); break; case 2: lcd_putsf(" 3"); break; case 3: lcd_putsf(" 4"); break; case 4: lcd_putsf(" 5"); break; case 5: lcd_putsf(" 6"); break; case 6: lcd_putsf(" 7"); break; case 7: lcd_putsf(" 8"); break; default: }; } //Ham doi ngay void check_conveter_day(void){ if(day ==8) day=1; if (day == 0) day = 7; rtc_set_date(day, date,month,year); } //Ham doi che do 12h <-> 24h void check_conveter_hour(void){ //kiem tra che do gio hien tai
  • 30. 30 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên if (AP == 0){ //che do 12h (AP = 0) if (hour > 12) h = hour-12; else h = hour; } else h = hour; //che do 24h (AP = 1) } //Ham hien thi time len LCD void display_time_lcd(unsigned char x,unsigned char y){ lcd_gotoxy(x,y); lcd_putchar(48+h/10); //hang chuc lcd_putchar(48+h%10); //hang don vi lcd_putsf(":"); lcd_putchar(48+min/10); lcd_putchar(48+min%10); lcd_putsf(":"); lcd_putchar(48+sec/10); lcd_putchar(48+sec%10); if (alarm_en == 1) lcd_putsf(" *"); //co bao thuc else lcd_putsf(" "); } //Hien thi date len LCD void display_date_lcd(unsigned char x,unsigned char y) { lcd_gotoxy(x,y); lcd_putchar(48+date/10); //hang chuc lcd_putchar(48+date%10); //hang don vi lcd_putsf("/"); lcd_putchar(48+month/10); lcd_putchar(48+month%10); lcd_putsf("/"); lcd_putchar(48+year/10); lcd_putchar(48+year%10); display_day(day); //hien thi thu } //Ham hien thi o che do hen gio void display_hengio_lcd(unsigned char x,unsigned char y) { lcd_gotoxy(x,y);
  • 31. 31 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên lcd_putchar(48+h_set/10); lcd_putchar(48+h_set%10); lcd_putsf(":"); lcd_putchar(48+m_set/10); lcd_putchar(48+m_set%10); if (alarm_en == 1) lcd_putsf(" *"); //co bao thuc else lcd_putsf(" "); } //Ham hien thi len LCD void display_lcd(void){ // Hien thi time len lcd lcd_gotoxy(0,0); lcd_putsf("Time: "); //Hien thi thoi gian display_time_lcd(6,0); // Hien thi date len lcd lcd_gotoxy(0,1); lcd_putsf("Date: "); display_date_lcd(6,1); //display_msg_lcd(); // chay msg tren LCD } //Chuong trinh con kiem tra trang thai cua phim nhan : bit trang thai sb void status_button(void) { if(MODE&&UP&&DOWN&&OK&&sb) { sb=0; // kiem tra phim da nha hay chua? //PORTB.1 = sb; } } //Ham kiem tra so ngay trong thang void Ndate_in_month(void){ if (month == 2){ if (year%4 == 0) No_date = 29; else No_date = 28; } else if (month ==1 || month ==3 || month ==5 || month ==7 || month == 8 || month == 10 || month ==12) No_date = 31; else No_date = 30;
  • 32. 32 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên } //Ham cai dat thoi gian & bao thuc void set_alarm_time (void){ status_button(); //Kiem tra trang thai phim bam da nha hay chua //chuyen doi che do 12h <-> 24h if ((OK == 0) && (sb == 0)){ //phim SET duoc nhan khi cac phim khac khong duoc nhan AP = ~AP; //doi che do gio hien thi sb = 1; //bao co phim nhan //PORTB.1 = sb; } status_button(); //chon che do nguoi dung if (MODE==0 && sb==0){ //chon che do if (mode == 9){ //lcd_clear(); mode = 0; } else { //lcd_clear(); mode++; } sb = 1; //bao co phim nhan //PORTB.1 = sb; } //che do mode = 0 (hien thi thong tin de tai) if (mode == 0) { lcd_gotoxy(0,0); lcd_putsf("BAI TAP LON VXL"); lcd_gotoxy(0,1); lcd_putsf("V.LONG - T.LINH"); delay_ms (1000); //sau 1s tu chuyen sang che do hien thi binh thuong mode++; } //che do mode = 1 (hien thi binh thuong) if(mode==1){
  • 33. 33 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên display_lcd(); if((alarm_en == 1)&&(hour == h_set)&&(min == m_set)) { PORTB.4 = 1; //bao thuc keu status_button(); if (OK == 0 && sb == 0){ //bao thuc alarm_en = 0; //tat bao thuc sb = 1; //PORTB.1 = sb; } } else { PORTB.4 = 0; // tat bao thuc //alarm_en = 0; //tu dong tat bao thuc sau 1 phut } } //che do mode=2 (chinh gio) if (mode == 2){ //che do chinh gio //lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("Set Hour: "); lcd_putsf(" "); display_time_lcd(5, 1); lcd_putsf(" "); status_button(); if (UP == 0 && sb == 0){ //Phim UP duoc nhan if (hour == 23) hour = 0; else hour++; rtc_set_time (hour, min, sec); //dat lai gio cho DS1307 sb = 1; //PORTB.1 = sb; } status_button(); if (DOWN == 0 && sb == 0){ if (hour == 0) hour = 23; else hour--; rtc_set_time(hour, min, sec); sb = 1; //PORTB.1 = sb; } }
  • 34. 34 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên //che do mode = 3 (chinh phut) if (mode == 3){ //che do chinh phut //lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("Set Minute: "); lcd_putsf(" "); display_time_lcd(5, 1); lcd_putsf(" "); status_button(); if (UP == 0 && sb == 0){ if (min == 59) min = 0; else min++; rtc_set_time(hour, min, sec); sb = 1; //PORTB.1 = sb; } status_button(); if (DOWN == 0 && sb == 0){ if (min == 0) min = 59; else min--; rtc_set_time(hour, min, sec); sb = 1; //PORTB.1 = sb; } } //che do mode = 4 (chinh thu(day) dong thoi chinh ngay(date)) if (mode == 4){ //lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("Set Date: "); lcd_putsf(" "); display_date_lcd(6, 1); lcd_putsf(" "); Ndate_in_month(); status_button(); if (UP == 0 && sb ==0){ if (day == 7) day = 1; else day++; //xac dinh ngay (date) khi chinh thu
  • 35. 35 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên if (date == No_date) { if (month == 12){ //Chuyen sang nam moi date = 1; month = 1; year++; } else{ date = 1; month++; //Het thang thi nhay sang thang moi } } else date++; rtc_set_date(day,date,month,year); sb=1; //PORTB.1 = sb; } status_button(); if (DOWN == 0 && sb == 0){ if (day == 1) day = 7; else day--; if (date == 1) { //VD: tu 1/3 chuyen xuong 28(hoac 29)/2 if (month == 1) { month = 12; date =31; year--; } else{ month--; Ndate_in_month(); date = No_date; } } else date--; rtc_set_date(day, date,month,year); sb=1; //PORTB.1 = sb; } } //che do mode = 5 (chinh thang) if (mode == 5){ lcd_gotoxy(0,0); lcd_putsf("Set Month: "); lcd_putsf(" "); display_date_lcd(6, 1);
  • 36. 36 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên lcd_putsf(" "); Ndate_in_month(); status_button(); if (UP == 0 && sb == 0){ //phim UP duoc nhan if (month == 12) { month = 1; if (year==99) year=0; else year++; } else month++; //xac dinh thu (day) khi chinh thang (month) if ( (day + No_date%7) > 7 ) day = day + No_date%7 - 7; else day = day + No_date%7; Ndate_in_month(); //Cap nhat so ngay toi da cua thang vua dat lai if (date > No_date) date = No_date; //VD: tu ngay 31/3 phai chuyen thanh 30/4 khi an UP(month) rtc_set_date(day, date, month, year); sb = 1; //PORTB.1 = sb; } status_button(); if (DOWN == 0 && sb == 0){ if (month == 1) { month = 12; if (year == 0) year=99; else year--; } else month--; Ndate_in_month(); //Kiem tra, phai tinh theo so ngay cua thang truoc de xac dinh thu if (day < No_date%7) day = day - No_date%7 +7; else day = day - No_date%7; if (date > No_date) date = No_date; //VD: tu ngay 31/3 phai chuyen thanh 29/2 khi an DOWN(month) rtc_set_date(day, date, month, year); sb = 1; //PORTB.1 = sb; } }
  • 37. 37 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên //che do moode = 6 (chinh nam) if (mode == 6){ lcd_gotoxy(0,0); lcd_putsf("Set Year: "); lcd_putsf(" "); display_date_lcd(6, 1); //lcd_putsf(" "); Ndate_in_month(); status_button(); if (UP == 0 && sb == 0){ //phim UP duoc nhan //Chinh ngay cua thang 2 khi chuyen tu nam nhuan sang nam khong nhuan if ((year%4==0) && (month==2) && (date==29)){ //ngay 29/2 nam nhuan date = 28; } //Chinh thu(day) khi chuyen nam(year) if (year%4 == 0){ //nam nhuan if ((month == 1) || ((month==2)&&(date<29))){ if (day == 7) //thu CN day = 2; //thu 3 else day = day + 2; } else day = day + 1; //nam nhuan nhung thu chi tang 1 ngay } else day = day + 1; //khong phai nam nhuan //Chuyen nam if (year == 99) year = 0; else year++; rtc_set_date(day, date, month, year); sb = 1; //PORTB.1 = sb; } status_button(); if (DOWN == 0 && sb == 0){ //Chuyen nam if (year%4 == 0) { //nam nhuan
  • 38. 38 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên if ((month > 2) || ((month==2)&&(date==29))){ if (day == 1) //thu 2 day = 6; //thu 7 else day -= 2; } else day-=1; //nam nhuan nhung thu chi lui 1 ngay } else day -= 1; //khong phai nam nhuan //Chinh ngay cua thang 2 khi chuyen tu nam nhuan sang nam khong nhuan if ((year%4==0) && (month==2) && (date==29)){ //ngay 29/2 nam nhuan date = 28; } //Chinh nam if (year == 0) year = 99; else year--; rtc_set_date(day, date, month, year); sb = 1; //PORTB.1 = sb; } } //che do mode = 7 ((chinh gio trong che do hen gio)) if (mode == 7){ lcd_gotoxy(0,0); lcd_putsf("Alarm: "); display_hengio_lcd(8,0); lcd_gotoxy(0,1); lcd_putsf("Hour: "); lcd_gotoxy(8,1); lcd_putchar(h_set/10 + 48); lcd_putchar(h_set%10 + 48); lcd_putsf(" "); status_button(); if(UP == 0 && sb == 0){ if (h_set == 23) h_set = 0; else h_set++; sb = 1; //PORTB.1 = sb; } //status_button();
  • 39. 39 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên if (DOWN == 0 && sb == 0){ if (h_set == 0) h_set = 23; else h_set--; sb = 1; //PORTB.1 = sb; } //status_button(); if(OK == 0 && sb == 0) { alarm_en = ~alarm_en; //xac nhan cai dat xong bao thuc; alarm_en = 1 (0) -> co (khong co) bao thuc //lcd_gotoxy(15,0); //lcd_putsf("*"); sb = 1; } } //che do mode = 8 (chinh phut trong che do hen gio) if (mode == 8) { lcd_gotoxy(0,0); lcd_putsf("Alarm: "); display_hengio_lcd(8,0); lcd_gotoxy(0,1); lcd_putsf("Minute: "); lcd_gotoxy(8,1); lcd_putchar(m_set/10 + 48); lcd_putchar(m_set%10 + 48); lcd_putsf(" "); status_button(); if(UP == 0 && sb == 0){ if (m_set == 59) m_set = 0; else m_set++; sb = 1; //PORTB.1 = sb; } //status_button(); if (DOWN == 0 && sb == 0){ if (m_set == 0) m_set = 59; else m_set--; sb = 1; //PORTB.1 = sb; } //status_button();
  • 40. 40 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên if(OK == 0 && sb == 0){ alarm_en = ~alarm_en; //xac nhan cai dat xong bao thuc; alarm_en = 1 (0) -> co (khong co) bao thuc sb = 1; } //PORTB.1 = sb; } } //_______________________Ham chinh___________________________ void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTB=0xEF; //1111_1111 DDRB=0x10; //1111_0000 // Port C initialization // Func7=Out Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=0 State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0xFF; DDRC=0x80; //1000_0000 // Port D initialization
  • 41. 41 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTD=0x00; DDRD=0xFF; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock
  • 42. 42 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // USART disabled UCSRB=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; // I2C Bus initialization
  • 43. 43 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên i2c_init(); // DS1307 Real Time Clock initialization // Square wave output on pin SQW/OUT: Off // SQW/OUT pin state: 0 rtc_init(0,0,0); // Alphanumeric LCD initialization // Connections specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTD Bit 0 // RD - PORTD Bit 1 // EN - PORTD Bit 2 // D4 - PORTD Bit 4 // D5 - PORTD Bit 5 // D6 - PORTD Bit 6 // D7 - PORTD Bit 7 // Characters/line: 16 lcd_init(16); //cai dat mac dinh rtc_set_time(0, 0, 0); rtc_set_date(1, 16, 5, 16); AP =1; //mac dinh de che do la 24h sb = 0; //mac dinh khong co nut bam //alarm_en = 0; //PORTB.4 = 0; while (1) { // Place your code here rtc_get_time(&hour,&min,&sec); // Doc gio, phut, giay tu ds1307 rtc_get_date(&day, &date,&month,&year); // Doc thu, ngay, thang, nam tu ds1307 check_conveter_day(); // kiem tra va kiem chuyen thu, che do gio ve dang chuan check_conveter_hour(); status_button(); set_alarm_time(); // goi ctc thuc hien cai dat //PORTB.0 = 0; } }
  • 44. 44 Báo cáo BTL Vi xử lý | Mạch đồng hồ lịch vạn niên Phụ lục 2: Hướng dẫn sử dụng Mạch đồng hồ Lịch vạn niên có các chức năng sau: - Hiển thị thời gian : giờ, phút, giây. - Hiển thị thứ, ngày, tháng, năm. - Có thể chỉnh sửa thông số thời gian, ngày tháng năm. - Có chức năng đặt giờ báo thức, sử dụng đèn Led và còi báo hiệu. Sử dụng các phím MODE để vào chế độ Cài đặt và chỉnh sửa: - Cài đặt giờ : ấn phím UP hoặc DOWN để thay đổi - Cài đặt phút : ấn phím UP hoặc DOWN để thay đổi - Cài đặt ngày : ấn phím UP hoặc DOWN để thay đổi - Cài đặt tháng : ấn phím UP hoặc DOWN để thay đổi - Cài đặt năm : ấn phím UP hoặc DOWN để thay đổi. - Chế độ báo thức :  Đặt giờ : ấn phím UP hoặc DOWN để thay đổi.  Đặt phút : ấn phím UP hoặc DOWN để thay đổi.  Xác nhận đặt báo thức bằng phím OK. Khi đó sẽ có kí hiệu * để báo hiệu trên màn hình. Khi đến thời điểm đặt báo thức, sẽ có còi và Led báo hiệu. Người sử dụng sẽ ấn phím OK nếu muốn tắt thông báo trên. Nếu không tắt báo thức thì đèn và còi sẽ tự động hủy báo thức sau 1 phút, trong trường hợp này báo thức vẫn sẽ hoạt động vào ngày hôm sau.