MỤC LỤC..................Trang A. PHẦN MỞ ĐẦU................ 6 1. Đặt vấn đề.................6 2. lý do chọn đề tài................6 3. giớ hạn của đề tài...............6 3. 1 Phân tích.................6 3. 2 Xây dựng phương án............. 7 3. Phạm vi của đồ án và phương hướng mở rộng......7 B. PHẦN ỘI DUNG................8 CHƯƠNG I : SƠ ĐỒ KHỐI.............. 8 1. Sơ đồ tổng quát................ 8 2. Chức năg cá khối............... 8 2. 1 Khối nguồn.................8 2. Chức năg của khối RTC............8 2. 3 Chức năg của khối đ ều chỉn........... 9 2. 4 Khối âm thanh............... 9 2. 5 Khối hển thị................9 2. 6 khối xử lý (vi đ ều khiển 89c51)........... 9 CHƯƠNG I: THIẾT KẾ HỆ THỐNG...........10 1. Sơ đồ calgraph................ 10 2. Sơ đồặc tả................. 1 3. cá linh kiện sử dụng trong mạch...........1 3. 1 giớ thiệu cấu trúc ủa vi đ ều khiển MCS51.......1 3. 1 . Mô tả cá chân..............14 3. 1 2 Cáchế độặc biệt.............17 3. 1 3 Các bít khoá bộ nhớ chương trình........ 19 3. 1 4 . Tóm tắ tập lệnh của AT89c51.........20 3. 2 Tìm hiểu IC thời gan thực DS1307.........20ĐAMH ệ Thống Nhúng GVHD Nguyễn Văn Huy Bộ môn Kỹ thuật máy tính 5 3. 2 1 Giớ thiệu chung về DS1307..........21 3. 2 Cơ chếoạt động và chức năg của DS1307......21 3. 2 3 Sơ đồịa chỉ RAM và RTC.......... 24 3. Giớ thiệu LCD............... 25 3. 1 Chức năg cá chân của Module LCD 16x2...... 26 3. 2 cá bit vết ắtrong mã lệnh.......... 37 3. 3 Mã Hex LCD..........
Trang 1TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Giáo viên hướng dẫn: Nguyễn Văn Huy
Thái Nguyên – 2011
Trang 2
Thái Nguyên, Ngày Tháng Năm 20 .
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 20 .
Giáo Viên hướng dẫn
(Ký ghi rõ họ tên)
Trang 3LỜI MỞ ĐẦU
bằng các thiết bị điện tử có độ tự động rất cao, tiết kiệm công sức cho con người.Hiện nay với sự phát triển của vi điều khiển thì chỉ cần động tác nhẹ nhàng cácthiết bị đã được điều khiển một cách nhanh chống
- Người ta thường nói: “Học đi đôi với hành, vì thế để tạo nền tảng, tăngthêm hiểu biết cũng như đi vào thực tế em đã lựa chọn đề tài “Chuông Báo TiếtHọc”
- Trong quá trình thực hiện đề tài này, chúng em đã rất cố gắng,nhưng có lẽ do vốn kiến thức cũng như những nguyên nhân chủ quan khác mà đềtài chắc chắn sẽ không tránh khỏi thiếu sót Chúng em rất mong sự đóng góp ýkiến, phê bình và hướng dẫn thêm của thầy cô và các bạn đọc
Sinh viên thực hiện
Chu Anh NguyễnTrần Đức HoàngNguyễn Thị Nhung
Trang 4MỤC LỤC Trang
A PHẦN MỞ ĐẦU 6
1 Đặt vấn đề 6
2 lý do chọn đề tài 6
3 giới hạn của đề tài 6
3 1 Phân tích 6
3 2 Xây dựng phương án 7
3 3 Phạm vi của đồ án và phương hướng mở rộng 7
B PHẦN NỘI DUNG 8
CHƯƠNG I : SƠ ĐỒ KHỐI 8
1 Sơ đồ tổng quát 8
2 Chức năng các khối 8
2 1 Khối nguồn 8
2 2 Chức năng của khối RTC 8
2 3 Chức năng của khối điều chỉnh 9
2 4 Khối âm thanh 9
2 5 Khối hiển thị 9
2 6 khối xử lý (vi điều khiển 89c51) 9
CHƯƠNG II: THIẾT KẾ HỆ THỐNG 10
1 Sơ đồ callgraph 10
2 Sơ đồ đặc tả 11
3 các linh kiện sử dụng trong mạch 11
3 1 giới thiệu cấu trúc của vi điều khiển MCS-51 11
3 1 1 Mô tả các chân 14
3 1 2 Các chế độ đặc biệt 17
3 1 3 Các bít khoá bộ nhớ chương trình 19
3 1 4 Tóm tắt tập lệnh của AT89c51 20
3 2 Tìm hiểu IC thời gian thực DS1307 20
Trang 53 2 1 Giới thiệu chung về DS1307 21
3 2 2 Cơ chế hoạt động và chức năng của DS1307 21
3 2 3 Sơ đồ địa chỉ RAM và RTC 24
3 3 Giới thiệu LCD 25
3 3 1 Chức năng các chân của Module LCD 16x2 26
3 3 2 các bit viết tắt trong mã lệnh 37
3 3 3 Mã Hex LCD 30
CHƯƠNG III : THIẾT KẾ MẠCH 31
1 Sơ đồ nguyên lý 31
2 Khối nguồn 32
3 Khối hiển thị LCD 32
4 Khối xử lý AT89C51 33
5 Khối thời gian thực 34
6 khối thao tác 35
7 Khối chấp hành 35
8 Sơ đồ thuật toán 36
Chương IV :Thi công mạch 37
1 Sơ đồ mạch in 37
2 Sơ đồ bố trí linh kiện 37
Chương V : Thiết kế phần mềm 38
1 Các phần mềm dùng trông đồ án 38
2 Chương trình cho vi điều khiển 38
C KẾT LUẬN 40
1 Kết luận 40
2 Tài liệu tham khảo 40
Trang 61.Đặt vấn đề
- Hiện nay với sự phát triển của vi điều khiển Các hệ thống cần thiết đều
được hoạt động một cách tự động Đơn giản như hệ thống chuông hẹn giờ, hệthống báo động, báo giờ trường học, báo giờ công sở
Vấn đề báo tiết học là vấn đề cần thiết ở bất cứ trường học nào, giúp thầy cô điềuchỉnh được thời gian dạy học của mình Sẽ mất thời gian khi ta phải canh thời giancho tiết học Chính vì thế chúng em thiết kế mạch chuông báo tiết học tự động chocác trường học
2 Lý do chọn đề tài
- Đây là vấn đề thực tế, được ứng dụng nhiều trong các trường học
Nhằm để củng cố kiến tức lập trình vi xử lý vừa mới học và rèn luyện khảhọc hỏi nên em đã chọn đề tài này
3 Giới hạn của đề tài
3.1 Phân tích
- Trước tiên chúng ta phải xác định rõ mục đích và yêu cầu của bài toán
Mục đích:
- Hệ thống báo chuông tại các thời điểm vào, ra của tiết học của trường
+ Hệ thống có khả năng chỉnh lại giờ
+ Thời gian kéo dài chuông vào tiết và nghỉ giải lao là khác nhau.+ Hệ thống chuông được dùng đi dây điện đồng bộ 220V
Yêu cầu:
-Hệ thống làm việc ổn định
-Có khả năng đưa vào ứng dụng trong thực tế
Với thực tế bài toán này chúng ta phải thiết kế 2 thành phần cơ bản:
-Hệ thống điều khiển và đồng hồ số
-Mạch đi dây và chuông báo
Trang 73.2 Xây dựng phương án
- Sau khi nghiên cứu thực tế các thời điểm vào ra của các tiết học trường học,chúng ta có những nhận xét sau
- Mỗi ngày có 2 buổi học mỗi buổi kéo dài 6 tiết Thời gian của mỗi tiết là
45 phút Thời gian nghỉ giải lao là 5 phút Sau tiết thứ 3 của mỗi buổi nghỉ giải lao
10 phút từ đó ta xây dựng được thời khóa biểu như sau:
- Thời gian báo:
+ Thời gian báo là 10 giây đối với những tiết bắt đầu, ra tiết thứ 3 vào tiết thứ
tư của mỗi buổi, kết thúc của mỗi buổi
+ Còn lại thời gian báo cho các thời điểm khác là 5 giây
- Cách báo: sử dụng chuông điện 220V
- Phạm vi báo: Tất cả khu vực trong trường bằng cách xây dựng hệ thốngchuông đến từng khu nhà, từng giảng đường
3.3 Phạm vi của đồ án và phương hướng mở rộng
- Vì đồ án môn học nên chúng em mới chỉ xây dựng mô phỏng và thiết kế hệ
thống trong phạm vi hẹp cố định một thời khóa biểu
- Phương hướng mở rộng đồ án môn học thành đồ án tốt nghiệp:
+ Thiết kế hệ thống chuông báo cho thời khóa biểu 2 mùa mùa đông
và mùa hè Trong đó giờ mùa hè buổi sáng vào sớm hơn 15 phút, buổi chiều vào
Trang 8trường học theo hệ thống tín chỉ.
+ Thiết kế Module điều chỉnh bằng quét phím ma trận hoặc giao tiếpbàn phím máy tính có thể lập trình thời khóa biểu theo ý muốn và giờ giấc củatừng trường cũng như nơi làm việc
+ Xây dựng Hệ thống chuông báo không dây sử dụng bộ thu phátsóng
B PHẦN NỘI DUNG
CHƯƠNG I : SƠ ĐỒ KHỐI
1 Sơ đồ tổng quát
-Sơ đồ khối tổng quát
Hình 1: Sơ đồ khối tổng quát
2 Chức năng các khối
2 1 Khối nguồn
-Cung cấp nguồn nuôi tất cả linh kiện trong mạch
2 2 Chức năng của khối RTC
- Khối này thực chất là một chíp thời gian thực (Real Time Clock), được
sử dụng với ý nghĩa thời gian tuyệt đối mà con người đang sử dụng Nó có pin cấpriêng, như vậy nếu như mất nguồn điện thì RTC vẫn có thể hoạt động bình thường
và chính xác theo thời gian đã được thiết lập ban đầu Trong sơ đồ này nó sẽ đảm
Vi XỬ LÝ AT89C51
Hiển Thị LCD 16x2
Nút nhấn
Thời Gian Thực DS1307
Khối nguồn
alam
Trang 9nhiệm chức năng cấp time chính xác cho vi điều khiển xử lý các công việc màngười sử dụng yêu cầu.
2 3 Chức năng của khối điều chỉnh
-Chức năng của khối này là sử dụng ngắt của 89c51 để yêu cầu việc điều chỉnh time theo ý của người sử dụng, cài đặt time ban đầu cho đồng hồ thời gian thực RTC Tác động bởi các phím bấm (BUTTON).
2 4 Khối âm thanh
-Khối này gồm có transistor thông dòng cho loa kêu khi có mức điện ápthay đổi liên tục ở chân ra của vi điều khiển
2 5 Khối hiển thị
- Khối này thực chất là LCD 16x2 để hiển thị time và các thông tin
mà lập trình viên cần hiển thị .
2 6 khối xử lý (vi điều khiển 89c51)
-Vi điều khiển 89C51 là trung tâm xử lý các thông tin của mạch
Cụ thể là :
AT89C51 đảm nhiệm việc đọc thời gian từ DS1307,chuyển đổi dữ liệu qua lại giữa RTC với LCD để có thể hiểnthị lên LCD, đồng thời cập nhật time từ DS1307
Điều khiển LCDKiểm tra phím bấmĐiều khiển loa
- Nói tóm lại là, VĐK làm nhiệm vụ đọc time trên DS1307 sau đó nókiểm tra xem ngắt được tác động hay không? nếu có thì điều chỉnh time, hiển thịtime lên LCD, kiểm tra xem giờ hiện tại có bằng giờ báo chuông hay không? nếu
có thì gọi chương trình điều khiển chuông kêu !
Trang 10CHƯƠNG II: THIẾT KẾ HỆ THỐNG
1 Sơ đồ callgraph
Hình 2: Sơ đồ Callgraph
2 Sơ đồ đặc tả
Chương Trình Điều Khiển
Module Xử
Lý Điều Chỉnh
Module xử lý chương trình
Trang 11Hình 3: Sơ đồ Đặc tả
3 Các linh kiện sử dụng trong mạch
3 1Giới thiệu cấu trúc của vi điều khiển MCS-51
-Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn toàn tương
tự như nhau Ở đây giới thiệu IC8951 là một họ IC vi điều khiển do hãng Intel của
Mỹ sản xuất Chúng có các đặc điểm chung như sau:
+ 4K Bytes Flash rom
+ 128 Bytes Ram
+ 4 port 8 bit
+ 2 bộ định thời 16 bit
+ Có port nối tiếp
+ Có thể mở rộng bộ nhớ chương trình ngoài 64 K Byte
Hiển Thị
Bật/Tắt Chuông
Điều Chỉnh
Kiểm Tra thời gian thực
Gửi dữliệuĐiều
khiển
Tácđộng
Gửi thôngtinGửi thông
tin
Trang 12- 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.
20 29
30 31
40
1 2 3 4 5 6 7 8
21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
39 38 37 36 35 34 33 32
RST
XTAL2 XTAL1
GND PSEN
ALE/PROG EA/VPP
VCC
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
Trang 13Hình 5: Sơ đồ khối của AT89C51
3 1 1 Mô tả các chân
Trang 14Port 0 là port xuất nhập 8-bit hai chiều Port 0 còn được cấu hình làm bus
địa chỉ (byte thấp) và bus dữ liệu đa hợp trong khi truy xuất bộ nhớ dữ liệu ngoài
và bộ nhớ chương trình ngoài Port 0 cũng nhận các byte mã trong khi lập trình
cho Flash và xuất các byte mã trong khi kiểm tra chương trình (Các điện trở kéolên bên ngoài được cần đến trong khi kiểm tra chương trình)
- Port 1(1-8): Port 1 là port xuất nhập 8-bit hai chiều Port 1 cũng nhận byte
Trang 15địa chỉ thấp trong thời gian lập trình cho Flash.
- Port 2 (21-28): Port 2 là port xuất nhập 8-bit hai chiều Port 2 tạo ra các
byte cao của bus địa chỉ trong thời gian tìm nạp lệnh từ bộ nhớ chương trình ngoài
và trong thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 16-bit Trong
thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 8-bit, Port 2 phát các nội dung của thanh ghi chức năng đặc biệt P2 Port 2 cũng nhận các bít địa chỉ cao
và vài tín hiệu điều khiển trong thời gian lập trình cho Flash và kiểm tra chươngtrình
- Port 3 (10-17): 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:
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
Trang 16- 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ộ
trình cho Flash
Khi hoạt động bình thường, xung ngõ ra ALE luôn có tần số không đổi là1/6 tần số của mạch dao động, có thể được dùng cho các mụch đích định thời từ
bên ngoài vµ tạo xung clock Tuy nhiên, lưu ý là một xung ALE sẽ bị bỏ qua trong
mỗi một chu kỳ truy xuất bộ nhớ dữ liệu ngoài
Khi cần, hoạt động ALE có thể được vô hiệu hoá bằng cách set bit 0 của thanh ghi chức năng đặc biệt có địa chỉ 8Eh Khi bit này được set, ALE chỉ tích
cực trong thời gan thực hiện lệnh MOVX hoặc MOVC Ngược lại, chân này sẽ
được kéo lên cao Việc set bit không cho phép hoạt động chốt byte thấp của địa chỉ
sẽ không có tác dụng nếu bộ vi điều khiển đang ở chế độ thực thi chương trìnhngoài
- PSEN (29) : PSEN (Program Store Enable) là xung điều khiển truy xuất
bộ nhớ chương trình ngoài Khi AT89C52 đang thực thi chương trình từ bộ nhớ
- 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)
thực thi chương trình bên trong chip
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)
Trang 17- 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ạchdao độ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 ápcực tiểu và cực đại cần phải được xem xét
3 1 2 Các chế độ đặc biệt
3 1 2 1Chế độ nghỉ
1 Trong chế độ nghỉ, CPU tự đi vào trạng thái ngủ trong khi tất cả các ngoại
vi bên trong chip vẫn tích cực Chế độ này được điều khiển bởi phần mềm Nội dung của RAM trên chip và của tất cả các thanh ghi chức năng đặc biệt
vẫn không đổi trong khi thời gian tồn tại chế độ này Chế độ nghỉ có thể
được kết thúc bởi một ngắt bất kỳ nào được phép hoặc bằng cách reset cứng.
2 Ta cần lưu ý rằng khi chế độ nghỉ được kết thúc bởi một reset cứng, chip
vi điều khiển sẽ tiếp tục bình thường việc thực thi chương trình từ nơichương trình bị tạm dừng, trong vòng 2 chu kỳ máy trước khi giải thuật
reset mềm nẵm quyền điều khiển.
3 Ở chế độ nghỉ, phần cứng trên chip cẫm truy xuất RAM nội nhưng cho
Trang 18lệnh tiếp theo yêu cầu chế độ nghỉ không nên là lệnh ghi đến chân port hoặc
đến bộ nhớ ngoài
3 1 2 2 Chế độ nguồn giảm
- Trong chế độ này, mạch dao động ngừng hoạt động và lệnh yêu cầu chế độ
nguồn giảm là lệnh sau cùng được thực thi RAM trên chip và các thanh ghi chức
năng đặc biệt vẫn duy trì các giá trị của chúng cho đến khi chế độ nguồn giảm kết
thúc Chỉ có một cách ra khỏi chế độ nguồn giảm, đó là reset cứng Việc reset sẽ
xác định lại các thanh ghi chức năng đặc biệt nhưng không làm thay đổi RAM trên
chip Việc reset không nên xảy ra (chân reset ở 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ồngiảm được cho trong bảng sau:
Chế độ
Bộ nhớ Chương trình
Nguồn
giảm
3 1 3 Các bít khoá bộ nhớ chương trình
- Trên chip có ba bit khoá, các bít này có thể không cho phép lập trình hoặc
cho phép lập trình, các bit này cho ta thêm một số đặc trưng nữa của AT89C51
mẫu và được chốt trong khi reset Nếu việc cấp nguồn cho chip không có
Trang 19công dụng reset, mạch chốt được khởi động bằng một giá trị ngẫu nhiên và giá trị này được duy trì cho đến khi có tác động reset Điều cần thiết là giá trị
Chế
độ
trình ngoài không được phép tìm nạp lệnh từ bộ
reset, hơn nữa việc lập trình trên Flash bị cấm
ADD A, soure; cộng toán hạng vào A
SUBB A, soure; trừ bớt A bởi toán hạng nguồn
INC A; tăng giá trị A lên 1
DEC A; giảm A xuống 1
MUL AB; nhân A với B
DIV AB; chia A bởi B
Trang 20Nhóm lệnh logic.
ANL A, soure ; lệnh nhân logic
ORL A, soure; lệnh cộng logic
XRL A, soure; lệnh xor logic
RL A; quay trái
RR A; quay phải
CLR A; xóa A
Nhóm lệnh di chuyển dữ liệu:
MOV A, soure; di chuyển toán hạng nguồn đến đích
MOVC A, @A+DPTR; di chuyển từ bộ nhớ chương trình
MOVX A, @Ri; di chuyển từ bộ nhớ dữ liệu
PUSH direct; cất vào stack
POP direc; lấy ra stack
XCH A, soure; trao đổi các byte
XCHD A, @Ri; trao đổi các digit thấp
Nhóm lệnh rẽ nhánh:
ACALL addr; gọi chương trình con
RET ; quay chương trình con
RETI ; quay về từ chương trình phục vụ ngắt
JMP addr; lệnh nhảy
CJNE A, direct, rel; so sánh và nhảy
3 2 Tìm hiểu IC thời gian thực DS1307
3 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 dalatDS1307 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ờigian và ngày tháng
- SRAM: 56bytes