TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
KHOA ĐIỆN TỬ
BỘ MÔN: KỸ THUẬT MÁY TÍNH
ĐỒ ÁN MÔN HỌC
MÔN HỌC
HỆ THỐNG NHÚNG
Nhóm sinh viên : Trần Quang Hợp
Nguyễn Viết Hiền
Nguyễn Văn Hồng
Lớp : K43ĐĐK
Giáo viên hướng dẫn : Ths.Nguyễn Văn Huy
Bộ môn Kỹ Thuật Máy Tính Đại học Kỹ Thuật Công
Nghiệp
Thái Nguyên – 2011
Nhận xét của giáo hướng dẫn
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
Thái Nguyên, Ngày Tháng Năm 2011
Giáo Viên hướng dẫn
(Ký ghi rõ họ tên)
Nhận xét của giáo viên chấm
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
………………………………………………………………………
Thái Nguyên, Ngày Tháng Năm 2011
Giáo Viên chấm
2.6.1.Vi điều khiển AT89C51 16
2.6.2.IC thời gian thực DS1307 23
2.6.3. LCD 16x2 31
2.6.4.IC ổn áp 7805 34
2.6.5. Tụ điện 35
Đồ án Hệ Thống Nhúng Trang 3
Bộ môn Kỹ Thuật Máy Tính Đại học Kỹ Thuật Công
Nghiệp
2.6.6.Điện trở 36
2.6.7.Nút bấm button 36
2.6.8.Biến trở 36
2.6.9.Thạch anh 37
2.6.10.Pin CMOS 3V 37
CHƯƠNG 3. XÂY DỰNG HỆ THỐNG 38
3.1.Thiết kế phần cứng 38
3.2.Thiết kế phần mềm 40
3.3.Kết quả mô phỏng 50
3.4.Mạch thi công thực tế 50
KẾT LUẬN 51
Danh mục tài liệu tham khảo 51
Đồ án Hệ Thống Nhúng Trang 4
Bộ môn Kỹ Thuật Máy Tính Đại học Kỹ Thuật Công
Nghiệp
Lời nói đầu
Ngày nay, các hệ thống nhúng trở nên phổ biến và đóng vai trò
quan trọng trong đời sống con người. Ví dụ quanh ta có rất nhiều sản
phẩm nhúng như lò vi sóng, nồi cơm điện, điều hòa, điện thoại di động, ô
tô, máy bay, tàu thủy, các đầu đo, cơ cấu chấp hành thông minh, robot
v.v ta có thể thấy hiện nay hệ thống nhúng có mặt ở mọi lúc mọi nơi
trong cuộc sống của chúng ta.
Đồng hồ cơ thể hiện thời gian sử dụng các góc. Mặt đồng hồ có
những con số từ 1 đến 12 và sử dụng kim để chỉ giờ và cả phút. Từ
một số đến một con số kế cận là 5 phút (đối với kim phút), 1 giờ (đối
với kim giờ) hay 5 giây (đối với kim giây).
Một loại đồng hồ cơ khác được sử dụng là đồng hồ mặt trời. Nó hoạt
động nhờ theo dọi thường xuyên ánh sáng Mặt Trời, và người ta theo
dõi bằng cách nhìn bóng của chúng.
Đồng hồ điện tử:
Đồng hồ điện tử sử dụng hệ thống số để thể hiện thời gian. Thông
thường có 2 cách thể hiện:
• 24 giờ để đếm giờ từ 00-23
• 12 giờ với kí hiệu AM / PM (chủ yếu ở Mĩ)
Những đồng hồ điện tử sử dụng màn hình LCD hay LED, ống catode
để thể hiện hình ảnh những con số. Khi những đồng hồ điện tử thay
pin, chúng thường "quên" dữ liệu về thời gian trước đó.
Đồng hồ âm thanh:
Để tiện lợi hơn, có một số đồng hồ sử dụng âm thanh để bào hiệu giờ.
Âm thanh có thể được sử dụng như ngôn ngữ tự nhiên ("Bây giờ là
mười sáu giờ ba mươi phút) hay một mã (số tiếng chuông báo hiệu số
giờ).
Đồng hồ chữ:
Loại đồng hồ này hiện thời gian ở dạng chữ. Nếu như ở đồng hồ điện
tử chúng ta đọc được những con số 12:35 thì ở đồng hồ chữ, chúng ta
có thể đọc được "Mười hai giờ ba mươi lăm phút". Một số loại đồng
hồ khác sử dụng cơ chế gần đúng khiến người sử dụng cảm thấy dễ
chịu hơn khi sử dụng đồng hồ (ví dụ "Khoảng mười hai giờ rưỡi").
Đồ án Hệ Thống Nhúng Trang 6
Bộ môn Kỹ Thuật Máy Tính Đại học Kỹ Thuật Công
Nghiệp
1.1.2.Mục đích
DS1307 và DS12887.
Các IC này đều có chức năng chạy thời gian thực và lưu giờ khi mất
điện, với DS1307 cần có thêm nguồn nuôi là một pin cmos 3V, với
DS12887 có sẵn pin tích hợp ở bên trong.
Thực hiện giao tiếp với vi điều khiển để hiện thị thời gian và cài đặt
giờ…
Trên cơ sở đó thì chúng ta có thể sử dụng cả 2 loại IC này, nhưng với
nhóm em thì việc lựa chọn sẽ là DS1307 vì nó cũng thực hiện được
yêu cầu mà giá thành thì rẻ hơn.
Vi điều khiển:
Có rất nhiều loại vi điều khiển khác nhau có thể sử dụng trong mạch
đồng hồ này như vi điều khiển pic, avr, 8051…
Các loại vi điều khiển pic hay avr có nhiều ưu điểm hơn so với 8051
như hỗ trợ kết nối ngoại vi tốt hơn, tốc độ xử lý nhanh hơn, lập trình
đơn giản hơn. Nhưng giá thành thì lại cao hơn nhiều so với 8051 mà
trong mạch này chúng em sử dụng AT89C51. Việc sử dụng quá tốn
kém cho 1 mạch là không cần thiết trong khi đó một chip cũng có thể
làm được điều này mà giá thành rẻ hơn thì đó là lựa chọn tối ưu hơn.
Hiển thị:
Chúng ta có 2 cách hiển thị đó là : sử dụng led 7 thanh và sử dụng lcd.
Led 7 thanh :
• Ưu điểm: hiển thị rõ ràng và thu hút được sự chú ý vì có thể
nhìn ở xa.
• Nhược điểm: mạch điện phức tạp cần thêm các IC chốt.
LCD 16x2:
• Ưu điểm: hiển thị dễ dàng, có thể linh động hơn trong việc hiển
thị thời gian,kết nối đơn giản mạch điện không phức tạp…
• Nhược điểm: không thu hút được sự chú ý bằng led 7 thanh,giá
thành cao…
Xét trên điều kiện để làm mạch này thì số led 7 thanh tương đối nhiều
Trong thực tế hiện nay lịch vạn niên là một sản phẩm tương tự đồng
hồ thời gian thực và rất gần gũi với mọi người.
1.2.3.Các yêu cầu
Với sản phẩm đồng hồ thời gian thực đòi hỏi các yêu cầu:
• Hiển thị đúng thời gian:ngày, tháng, năm, giờ, phút, giây.
• Điều chỉnh và thay đổi được thời gian.
• Đảm bảo đúng về thời gian sau khi mất điện.
• Khả năng thực thi:Thời gian đáp ứng, độ chính xác…
• Đảm bảo về kích thước và trọng lượng cho phép.
• Độ an toàn, khả năng chống lại sự phá hoại hay xâm nhập…
1.2.4.Giới hạn cho hệ thống
• Sử dụng nguồn điện 5V.
Đồ án Hệ Thống Nhúng Trang 9
Bộ môn Kỹ Thuật Máy Tính Đại học Kỹ Thuật Công
Nghiệp
• Làm việc liên tục.
• Kích thước phù hợp với người sử dụng.
• Hệ thống nhỏ gọn.
• Hệ thống lưu được thời gian khi mất nguồn cấp (có nguồn dự trữ).
• Nguồn nuôi (pin CMOS) cho IC thời gian thực đảm bảo.
• Làm việc trong điều kiện môi trường bình thường.
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG
2.1. Sơ đồ tổng quát
• Khối Nguồn: cung cấp nguồn cho hệ thống.
• Khối Thời gian thực: lưu trữ thời gian thực, thời gian cài đặt.
• Khối Xử lý: Dùng vi điều khiển AT89C51 để lấy dữ liệu từ khối thời
gian thực, lưu trữ và đưa ra khối hiển thị và nhận tín hiệu từ khối giao
tiếp.
• Khối Hiển thị: lấy tín hiệu ra từ vi điều khiển, thực hiện giao tiếp với vi
điều khiển để hiển thị giờ và ngày.
trình
IC thời gian
thực
Bàn phím
Hiển thị
Cài
đặt
Xử lý
Thời gian
trong
RTC
Có ngắt &
ấn phím
Kiểm tra
ngắt ngoài 0
Đọc
Ghi
Hiể
n
thị
Bộ môn Kỹ Thuật Máy Tính Đại học Kỹ Thuật Công
Nghiệp
2.4. Sơ đồ thuật toán
Đồ án Hệ Thống Nhúng Trang
12
Bắt
đầu
Kiểm tra dữ liệu thời
gian trong rtc
Có
S
Đ
Đ
S
Khối cài đặt +hiển thị thời gian cài đặt trên LCD:
:
Đ
(1)
Kiểm tra tăng
Kiểm tra giảm
con trỏ LCD tại
vị trí phút
menu
=0
tăng =0
giảm =0
phút+1
phút-1
S
Đ
Đ
S
Kiểm tra tăng
Kiểm tra giảm
con trỏ LCD tại
vị trí giấy
menu
=0
tăng =0
giảm =0
S
Đ
Đ
S
Kiểm tra tăng
Kiểm tra giảm
con trỏ LCD tại
vị trí năm
menu
=0
tăng =0
giảm =0
năm+1
năm-1
S
Đ
Đ
S
Kiểm tra tăng
Kiểm tra giảm
con trỏ LCD tại
vị trí thứ
menu
=0
tăng =0
giảm =0
thứ+1
thứ-1
S
Đ
đưa vào bộ Diode cầu để cho ra dòng điện một chiều ( lúc này điện áp
nằm trong khoảng từ 7->10V). Sau khi đi qua IC ổn áp 7805 sẽ tạo ra
nguồn điện áp chuẩn +5V cung cấp cho mạch.
2.5.2.Khối điều khiển trung tâm
Khối điều khiển trung tâm sử dụng vi điều khiển AT89C51, qua chương
trình đã lập trình được nạp cho chip, vi điều khiển sẽ điều khiển việc
đọc, ghi thời gian thực, hiển thị thời gian lên khối hiển thị là LCD.
Bộ dao động thạch anh có tác dụng tạo xung nhịp với tần số 12MHz cho
VĐK hoạt động. Hai đầu này được nối vào 2chân XTAL1 và XTAL2
của VĐK.
Bộ RESET có tác dụng đưa vi điều khiển về trạng thái ban đầu. Khi nút
Reset được ấn điện áp +5V từ nguồn được nối vào chân Reset của vi
điều khiển được chạy thẳng xuống đất lúc này điện áp tại chân vi điều
khiển thay đổi đột ngột về 0, VĐK nhận biết được sự thay đổi này và
khởi động lại trạng thái ban đầu cho hệ thống.
Đồ án Hệ Thống Nhúng Trang
14
Bộ môn Kỹ Thuật Máy Tính Đại học Kỹ Thuật Công
Nghiệp
2.5.3.Khối tạo thời gian thực
DS1307 là một IC thời gian thực với nguồn cung cấp nhỏ, dùng để cập
nhật thời gian và ngày tháng với 56 bytes SRAM. Địa chỉ và dữ liệu được
truyền nối tiếp qua 2 đường bus 2 chiều. Nó cung cấp thông tin về giờ,
phút, giây , thứ, ngày , tháng, năm. Ngày cuối tháng sẽ tự động được điều
chỉnh với các tháng nhỏ hơn 31 ngày,bao gồm cả việc tự động nhảy năm.
Đồng hồ có thể hoạt động ở dạng 24h hoặc 12h với chỉ thị AM/PM.
Để không phải điều chình lại thời gian vào những lúc bị mất nguồn, có thể
nối thêm 1pin 3V vào chân số 3 của IC DS1307 (sao cho chân(+) của pin
nối vào IC và chân (–) của pin nối xuống đất). Hai chân 1 và 2 của
+ Có port nối tiếp.
+ Có thể mở rộng bộ nhớ chương trình ngoài 64 K Byte.
+ Bộ xử lý bit.
• AT89C51 là một bộ vi xử lý 8 bit, loại CMOS, có tốc độ cao và công
suất thấp với bộ nhớ Flash có thể lập trình được. Nó được sản xuất với
công nghệ bộ nhớ không bay hơi mật độ cao của hãng Atmel, và tương
thích với họ MCS-51
TM
về chân ra và tập lệnh.
• AT89C51 có các đặc trưng cơ bản như sau: 4 K byte Flash, 128 byte
RAM, 32 đường xuất nhập, hai bộ định thời/đếm 16-bit, một cấu trúc
ngắt hai mức ưu tiên và 5 nguyên nhân ngắt, một port nối tiếp song
công, mạch dao động và tạo xung clock trên chip.
• AT89C51 được thiết kế với logic tĩnh cho hoạt động có tần số giảm
xuống 0 và hỗ trợ hai chế độ tiết kiệm năng lượng được lựa chọn bằng
phần mềm. Chế độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các
bộ định thời/đếm, port nối tiếp và hệ thống ngắt tiếp tục hoạt động.
Chế độ nguồn giảm duy trì nội dung của RAM nhưng không cho mạch
dao động cung cấp xung clock nhằm vô hiệu hoá các hoạt động khác
của chip cho đến khi có reset cứng tiếp theo.
Hình ảnh AT89C51
Đồ án Hệ Thống Nhúng Trang
17
Bộ môn Kỹ Thuật Máy Tính Đại học Kỹ Thuật Công
Nghiệp
Sơ đồ khối của AT89C51
2.6.1.1. Mô tả các chân
Đồ án Hệ Thống Nhúng Trang
18
Bộ môn Kỹ Thuật Máy Tính Đại học Kỹ Thuật Công
Port 3 là Port xuất nhập 8-bit hai chiều. Port 3 cũng còn làm các chức
năng khác của AT89C51. Các chức năng này được liệt kê như sau:
Chân Tên Chức năng
3.0 RxD Ngõ vào Port nối tiếp
3.1 TxD Ngõ ra Port nối tiếp
3.2
INT0
Ngõ vào ngắt ngoài 0
3.3
INT1
Ngõ vào ngắt ngoài 1
3.4 T0 Ngõ vào bên ngoài của bộ định thời 1
3.5 T1 Ngõ vào bên ngoài của bộ định thời 0
3.6
WR
Điều khiển ghi bộ nhớ dữ liệu ngoài
3.7
RD
Điều khiển đọc bộ nhớ dữ liệu ngoài
Port 3 cũng nhận một vài tín hiệu điều khiển cho việc lập trình Flash và
kiểm tra chương trình.
• RST (9):
Ngõ vào reset. Mức cao trên chân này trong 2 chu kỳ máy trong khi bộ
dao động đang hoat động sẽ reset AT89C51.
Mạch reset tác động bằng tay và tự động reset khi khởi động máy
• ALE/
PROG
(30):
ALE là một xung ngõ ra để chốt byte thấp của địa chỉ trong khi truy
xuất bộ nhớ ngoài. Chân này cũng làm ngõ vào xung lập trình (
sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ
liệu ngoài.
•
EA
/Vpp (31):
EA
(External Access Enable) là chân cho phép truy xuất bộ nhớ
chương trình ngoài (bắt đầu từ địa chỉ từ 0000H đến FFFFH).
EA
= 0 cho phép truy xuất bộ nhớ chương trình ngoài, ngược lại
EA
=1 sẽ thực thi chương trình bên trong chip.
Tuy nhiên, lưu ý rằng nếu bit khoá 1 (lock-bit 1) được lập trình,
EA
sẽ
được chốt bên trong khi reset.
Chân này cũng nhận điện áp cho phép lập trình Vpp=12V khi lập trình
Flash (khi đó điện áp lập trình 12V được chọn).
• XTAL1 và XTAL2:
XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại đảo của
mạch dao động, được cấu hình để dùng như một bộ dao động trên chip.Hình 8: Xung clock
Không có yêu cầu nào về chu kỳ nhiệm vụ của tín hiệu xung clock bên
ngoài do tín hiệu này phải qua một flip-flop chia hai trước khi đến
mạch tạo xung clock bên trong, tuy nhiên các chi tiết kỹ thuật về thời
gian mức thấp và mức cao, điện áp cực tiểu và cực đại cần phải được
mức tích cực) trước khi Vcc được khôi phục lại mức điện áp bình thường
và phải kéo dài trạng thái tích cực của chân reset đủ lâu để cho phép
mạch dao động hoạt động trở lại và đạt trạng thái ổn định.
• Trạng thái của các chân trong thời gian tồn tại chế độ nghỉ va chế độ
nguồn giảm được cho trong bảng sau:
Chế
độ
Bộ nhớ
chương
trình
ALE PSEN PORT 0
PORT
1
PORT
2
PORT 3
Nghỉ Bên trong 1 1 Dữ liệu Dữ liệu Dữ
liệu
Dữ liệu
Nghỉ Bên ngoài 1 1 Thả nổi Dữ liệu Dữ
liệu
Dữ liệu
Nguồn
giảm
Bên trong 0 0 Dữ liệu Dữ liệu Dữ
liệu
Dữ liệu
Bên ngoài 0 0 Thả nổi Dữ liệu Dữ
liệu
Dữ liệu
4 P P P Như chế độ 3, cấm thêm việc thực thi
chương trình ngoài
2.6.2.IC thời gian thực DS1307
2.6.2.1.Giới thiệu chung về DS1307:
IC thời gian thực là họ vi điều khiển của hãng dalat. DS1307 có một số
đặc trưng cơ bản sau:
DS1307 là IC thời gian thực với nguồn cung cấp nhỏ dùng để cập nhật
thời gian và ngày tháng .
- SRAM : 56 bytes.
- Địa chỉ và dữ liệu được truyền nối tiếp qua 2 đường bus 2 chiều.
- DS1307 có một mạch cảm biến điện áp dùng để dò các điện áp lỗi
và tự động đóng ngắt với nguồn pin cung cấp 3V:
+ DS1307 có 7 bytes dữ liệu nằm từ địa chỉ 0x00 tới 0x06, 1
byte điểu khiển, và 56 bytes lưu trữ ( dành cho người sủ dụng ).
Đồ án Hệ Thống Nhúng Trang
23
Bộ môn Kỹ Thuật Máy Tính Đại học Kỹ Thuật Công
Nghiệp
+ Khi xử lý dữ liệu từ DS1307, họ đã tự chuyển cho ta về dạng
số BCD, ví dụ như ta đọc được dữ liệu từ địa chỉ 0x04 (tương ứng với
Day- ngày trong tháng) và tại 0x05 (tháng) là 0x15, 0x11.
+ Lưu ý đến vai trò của chân SQW/OUT. Đây là chân cho xung
ra của DS1307 có 4 chế độ 1Hz, 4.096HZ, 8.192Hz, 32.768Hz các chế
độ này đuợc quy định bởi các bít của thanh ghi Control Register (địa chỉ
0x07 ).
+ Địa chỉ của DS1307là 0xD0.
Cơ chế hoạt động : DS1307 hoạt động với vai trò slave trên đường bus
nối tiếp.Việc truy cập được thi hành với chỉ thị start và một mã thiết bị
nhất định được cung cấp bởi địa chỉ các thanh ghi. Tiếp theo đó các
thanh ghi sẽ được truy cập liên tục đến khi chỉ thị stop đươc thực thi.
Đồ án Hệ Thống Nhúng Trang
25