Giáo viên hướng dẫn : TS Vũ Chiến Thắng
7/7/2014
ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP
MÔN : THIẾT KẾ MẠCH ĐIỆN BẰNG MÁY TÍNH
ĐỀ TÀI:
Thiết kế chuông báo lớp học
Giáo Viên HD : ThS Vũ Chiến Thắng
Sinh viên thực hiện :
1. Nguyễn Thị Cẩm Nhung
2. Bàn Thị Trang
3. Hoàng Thị Phúc
4. Nguyễn Hồng Trang
Thái Nguyên ngày 16 tháng 10 năm 2010
Đề tài : Thiết kế hệ thống chuông báo lớp học
Thiết kế mạch điện bằng máy tính Page 1
Giáo viên hướng dẫn : TS Vũ Chiến Thắng
7/7/2014
Giáo viên hướng dẫn : Vũ Chiến Thắng
Danh sách nhóm thực hiện
STT Họ và tên Phân Công Nhiệm vụ
1 Nguyễn Thị Cẩm Nhung Hoàn thiện code chương trình , mô
phỏng ,phân tích và kiểm tra các
module. Phối hợp cùng các thành viên
hoàn thành báo cáo đề tài .
2 Bàn Thị Trang Tìm hiểu và lập trình ghép nối LCD với
vi điều khiển
3 Nguyễn Hồng Trang Tìm hiểu thuật toán điều khiển loa, và
giao tiếp phím bấm với vi điều khiển
4 Hoàng Thị Phúc Tìm hiểu DS1307 và giao tiếp với vi
điều khiển
MỤC LỤC
Thiết kế mạch điện bằng máy tính Page 2
Giáo viên hướng dẫn : TS Vũ Chiến Thắng
7/7/2014
1. Kh i l ng công vi c:ố ượ ệ 4
1.1. L p trình giao ti p RTC v i vi i u khi n 89c51ậ ế ớ đề ể 4
1.2. L p trình ghép n i LCD v i vi i u khi n 89c51ậ ố ớ đề ể 4
1.3. L p trình ghép n i phím b m v i vi i u khi n 89c51ậ ố ấ ớ đề ể 4
1.4. L p trình ghép n i Loa v i vi i u khi n 89c51ậ ố ớ đề ể 4
2. Mô t s n ph m :ả ả ẩ 4
2.1. S kh i :ơđồ ố 4
2.2. ch c n ng các kh i:ứ ă ố 4
2.2.1. Ch c n ng c a kh i RTC:ứ ă ủ ố 4
2.2.2. Ch c n ng c a kh i i u ch nh :ứ ă ủ ố đề ỉ 5
2.2.3. Kh i âm thanhố 5
2.2.4. Kh i hi n thố ể ị 5
2.2.5. kh i x lý (vi i u khi n 89c51)ố ử đề ể 5
2.3. S nguyên lý :ơđồ 5
3. K t lu nế ậ 8
4. Ph l cụ ụ 8
4.1 . Code ch ng trình v gi i thích các câu l nh :ươ à ả ệ 8
4.2. Mã cho LCD: 12
4.3.T i li u tham kh o & công c l p trình thi t k m ch :à ệ ả ụ ậ ế ế ạ 13
4.3.1.T i li u tham kh o :à ệ ả 13
4.3.2.Công c l p trình :ụ ậ 13
4.3.3. Trang web tham kh o :ả 13
Thiết kế mạch điện bằng máy tính Page 3
Giáo viên hướng dẫn : TS Vũ Chiến Thắng
7/7/2014
1. Khối lượng công việc:
1.1. Lập trình giao tiếp RTC với vi điều khiển 89c51
1.2. Lập trình ghép nối LCD với vi điều khiển 89c51
1.3. Lập trình ghép nối phím bấm với vi điều khiển 89c51
1.4. Lập trình ghép nối Loa với vi điều khiển 89c51
2. Mô tả sản phẩm :
2.1. Sơ đồ khối :
2.2. chức năng các khối:
2.2.1. 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ấp riê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 nhiệ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.
Thiết kế mạch điện bằng máy tính Page 4
Giáo viên hướng dẫn : TS Vũ Chiến Thắng
7/7/2014
2.2.2. 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.2.3. 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 áp
thay đổi liên tục ở chân ra của vi điều khiển .
2.2.4. 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.2.5. 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ển thị lên
LCD , đông thời cập nhật time từ DS1307
Điều khiển LCD
Kiể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 !
2.3. Sơ đồ nguyên lý :
Thiết kế mạch điện bằng máy tính Page 5
Giáo viên hướng dẫn : TS Vũ Chiến Thắng
7/7/2014
2.4. Nguyên lý hoạt động:
Khi đã đảm bảo cấp nguồn cho các mạch ổn định , mạch sẽ hoạt đông
như sau:
Ban đầu khi khởi động nó sẽ thực hiện việc đọc dữ liêu treeb DS1307 và
hiển thị ngày giờ hiện tại lên LCD.
Kế tiếp nếu có ngắt gọi đến tức tác động vào phím KEY_TIME để điều
chỉnh thời gian (Tăng-INC_KEY button, Giảm-DEC_KEY button) cho
RTC , khi đó vi điều khiển sẽ điều khiển việc tăng hay giảm time (ngày ,
tháng , năm , thứ , giờ , phút ), theo ý muốn của người sử dụng, bằng cách
nhấn phím INC_KEY hoặc phím DEC_KEY. Set xong thì LCD sẽ trở về
màn hình lúc trước và hiển thị thời gian theo time đa cài đặt và hoạt động.
Thiết kế mạch điện bằng máy tính Page 6
Giáo viên hướng dẫn : TS Vũ Chiến Thắng
7/7/2014
Trong quá trình time hiện tại được hiển thị trên LCD mà ta thấy thì vi
điều khiển luôn thực hiển kiểm tra (lặp lại việc kiểm tra ) time hiện tại xem
xem có trùng với mốc thời gian vào tiết học hay kết thúc tiết học hay không
? Nếu có , thì nhảy tới chương trình báo chuông và đổ chuông báo , thời
gian chuông dài hay ngắn có thể thay đổi trên code, là do người lập trình
thiết lập, thiết lập mốc thời gian theo ý muốn. Tức là, cứ thỏa mãn điều
kiện time hiện tại bằng với time hẹn trước sẽ có chuông reo.
2.5. Lưu đồ thuật toán điều khiển :
Thiết kế mạch điện bằng máy tính Page 7
Giáo viên hướng dẫn : TS Vũ Chiến Thắng
7/7/2014
3. Kết luận
Đề tài đã nghiên cứu đã hoàn thành bao gồm : nguyên tắc hoạt động của mạch, sơ
đồ khối và chức năng từng khối được sử dụng, sơ đồ nguyên lý. Thiết kế mang tính thực
tiễn cao, có thể đưa vào thi công làm mạch thật chứ không chỉ dừng lại ở mức độ mô
phỏng.Có thể dựa vào đề tài này để phát triển thêm các ứng dụng thực tế khác như:
Đồng hồ số có chuông báo thức , có thể thay khối âm thanh bằng một IC chuyên
dụng (thu âm ) , và khi đó ta có thể thay những tiếng chuông nhạt nhẽo bằng những bản
nhạc yêu thích chẳng hạn….
Do thời gian có hạn , mặc dù nhóm đã hết sức cố gắng để hoàn thành với kết quả tốt
nhất , song cũng không thể tránh khỏi những vấp váp , thiếu xót trong thiết kế.Vì vậy
nhóm xin chân thành lắng nghe những đóng góp từ phía giáo viên và các bạn trong lớp
để thiết kế được hoàn thiện và thực tế hơn.Nhóm xin chân thành cảm ơn!
4. Phụ lục
4.1 . Code chương trình và giải thích các câu lệnh :
//====Các thư viện sử dụng trong chương trình =========
/* at89c51.h */
/* RTC.h */
/* LCD.h */
/* intrins.h */
/* port.h */
//====Các file tự định nghĩa ,được sử dụng trong chương trình
/* LCD.c */
/* RTC.c */
/* port.c */
//=================main () trong thu file project.c =========
Thiết kế mạch điện bằng máy tính Page 8
Giáo viên hướng dẫn : TS Vũ Chiến Thắng
7/7/2014
#include "ports.h"
#include "lcd.h"
#include "rtc.h"
/*============================================== */
/*= DE TAI : Thiet ke he thong chuong bao lop hoc =*/
/*= GVHD : Ths Thay Vu Chien Thang =*/
/*= Nhóm Thuc Hien : =*/
/*= 1. Nguyen Thi Cam Nhung =*/
/*= 2. Bàn Thi Trang =*/
/*= 3. Hoang Thi Phuc =*/
/*= 4. Nguyen Hong Trang =*/
/*= =*/
/*============================================*/
/*=======Khai bao bien ========*/
bit flag=0,aon=0,aoff=0;
void main()
{
alarm_port=0;
LCD_INI(); //khoi tao cho LCD
rtc_check();//kiêm tra RTC
disp_intro();//hien thi time len LCD
ENABLE_INT//cho phep ngat
wrt_cmd(0x1);//xoa man hinh LCD
wrt_cmd(0x1);
start_rtc();//dieu kien START cho RTC
Thiết kế mạch điện bằng máy tính Page 9
Giáo viên hướng dẫn : TS Vũ Chiến Thắng
7/7/2014
send_adr(0xd0);//dia chi ghi cho RTC
send_adr(0x00);//gui dia chi bat dau
start_rtc();
send_adr(0xd1);//gui dia chi doc RTC
recv_data();//nhan du lieu tu vi dieu khien
while(1)
{
start_rtc();
send_adr(0xd0);
send_adr(0x00);
start_rtc();
send_adr(0xd1);
recv_data();
disp_rtc();
if(_testbit_(flag)) //kiem tra co ngat
{
DISABLE_INT //cam ngat
rtc_set(); //goi chuong trinh set cho rtc
ENABLE_INT //cho phep ngat
flag=0; //xoa co ngat
}
aon=1;//dieu kien de luon so sanh time hen voi time hien tai
if(aon)
check_alarm(); // kiem tra
if(aoff) //bao chuong
Thiết kế mạch điện bằng máy tính Page 10
Giáo viên hướng dẫn : TS Vũ Chiến Thắng
7/7/2014
ring_alarm();
}
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
****chuong trinh phuc vu ngat ngoai 0 ****
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
void set_flag() interrupt 0 //chuong trinh ngat cho rtc_set
{
flag=1;
}
/*========================THE_END====================*/
Thiết kế mạch điện bằng máy tính Page 11
Giáo viên hướng dẫn : TS Vũ Chiến Thắng
7/7/2014
4.2. Mã cho LCD:
Thiết kế mạch điện bằng máy tính Page 12
Giáo viên hướng dẫn : TS Vũ Chiến Thắng
7/7/2014
4.3.Tài liệu tham khảo & công cụ lập trình thiết kế mạch :
4.3.1.Tài liệu tham khảo :
Cấu trúc-lập trình –Ghép nối và ứng dụng vi điều khiển_TS Nguyễn
Mạnh Giang
Giáo trình 8051_DKS
Giáo trình họ vi điều khiển 8051_Tống Văn On
Vi điều khiển với lập trình C_Ngô Diên Tập
4.3.2.Công cụ lập trình :
Phần mềm Keil C 8.05
proteus 7.01
4.3.3. Trang web tham khảo :
/> />
/>Thiết kế mạch điện bằng máy tính Page 13