Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
644,34 KB
Nội dung
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA KỸ THUẬT ĐIỆN – ĐIỆN TỬ
-----------------------------
Báo cáo
Đồ án hệ thống nhúng
MẠCH CHUÔNG BÁO TIẾT HỌC
Nhóm sinh viên thực hiện:
Lưu Thị Tuyết Nhung
Nguyễn Minh Phú
Nguyễn Anh Tú
1
CƠ SỞ LÝ THUYẾT
Nguyên lý hoạt động:
Bộ RTC nếu có xung nhịp đầu vào là 32.768 thì giá trị sẽ tăng một đơn vị
sau mỗi một giây. Giá tị này được lưu vào biến đếm TimeVar. Dựa vào biến đếm
và các công thức tính thời gian ta có thể tính toán và hiện thị lên màn hình LCD.
Khởi động mạch bằng nút nguồn, đợi LCD hiển thị sau đó cài đặt giá trị thời
gian tương ứng.Phím bấm PA0 dùng cài đặt giá trị. Phím bấm PC13 chuyển sang
giá trị cài đặt tiếp theo.Sau khi các giá trị được cài đặt xong, LCD sẽ hiển thị ngày
và giờ. Thời gian báo chuông được cố định sẵn trong code.Tín hiệu xuất ra chân
PA7.
Các thành phần mạch :
Linh kiện
Vi điều khiển
LCD 16x2
Biến trở
Nút bấm
Bộ Báo chuông
Chức năng
Thành phần chính.
Vai trò là khối xử lý trung tâm.
Cấu hình RTC, điều khiển tín hiệu ra cho bộ hiển
thị và Pin báo chuông.
Khối hiển thị
Thông tin : Giờ :
Ngày:
Điều chỉnh độ tương phản của LCD
Cài đặt thời gian
Báo chuông
2
Sơ đồ khối
VĐK
(Hỗ trợ RTC)
Bộ báo chuông
(Demo sử dụng
sang Led)
RTC và các thanh ghi backup:
3
Ngắt ngoại (EXTI)
4
5
LCD
Giao tiếp tương tự như mode 8 bit, chỉ cần chú ý một số khác biệt so với
mode 8 bit như sau:
* Chỉ dùng 4 đường dữ liệu ( D4, D5, D6, D7), 4 đường kia bỏ trống 4 bit cao
được xử lý trước, sau đó đến 4 bit thấp.
6
Trước khi đưa LCD vào mode 4 bit cần tạo một lệnh giả lập để cho LCD
hiểu ta đang muốn giao tiếp với nó ở Mode 4 bit. Nghĩa là trước khi gửi lệnh
0x28 thì cần gửi lệnh với giá trị 0x2- (- :tùy định). Và điều này còn tùy vào loại
LCD cũng như thời gian hiển thị chữ.
Phần 2 Một số cấu hình code cần lưu ý
Công thức Giờ, Phút, Giây:
TimerVar = biến đếm thời gian đơn vị “s”
THH = TimeVar / 3600; //Công thức tính giờ:
TMM = (TimeVar % 3600) / 60; // Công thức tính phút:
TSS = (TimeVar % 3600) % 60; // Công thức tính giây
if(THH==24) THH=00; // khi THH=24 thì đặt về 00
Nguyên lý đếm ngày tháng
1.Với những tháng 31 ngày 1,3,5,7,8,10,12 thì biến ngày
“date_s.day” chạy đến ngày 31 thì biến tháng “date_s.month”
Sẽ tăng 1 đơn vị. Với các tháng còn lại trừ tháng 2 ,
“date_s.day” chỉ chạy đến 30.
7
2.Tháng 2 của năm không nhuận thì “date_s.day” chạy đến 28
thì chuyển tháng. Năm nhuận thì chạy đến 29.
/*Hàm thiết lập đếm ngày tháng năm*/
void Calendar_DateUpdate(void)
{
if (date_s.month == 1 || date_s.month == 3 || date_s.month == 5
|| date_s.month == 7 ||
date_s.month == 8 || date_s.month == 10 || date_s.month ==
12)
{
if (date_s.day < 31)
{
date_s.day++;
}
/* Date structure member: date_s.day = 31 */
else
{
if (date_s.month != 12)
{
8
date_s.month++;
date_s.day = 1;
}
/* Date structure member: date_s.day = 31 & date_s.month
=12 */
else
{
date_s.month = 1;
date_s.day = 1;
date_s.year++;
}
}
}
else if (date_s.month == 4 || date_s.month == 6 || date_s.month
== 9 ||
date_s.month == 11)
{
if (date_s.day < 30)
{
date_s.day++;
9
}
/* Date structure member: date_s.day = 30 */
else
{
date_s.month++;
date_s.day = 1;
}
}
else if (date_s.month == 2)
{
if (date_s.day < 28)
{
date_s.day++;
}
else if (date_s.day == 28)
{
/* Leap year */
if (((date_s.year)%4)==0)
{
10
date_s.day++;
}
else
{
date_s.month++;
date_s.day = 1;
}
}
else if (date_s.day == 29)
{
date_s.month++;
date_s.day = 1;
}
}
}
11
... tín hiệu cho hiển thị Pin báo chuông Khối hiển thị Thông tin : Giờ : Ngày: Điều chỉnh độ tương phản LCD Cài đặt thời gian Báo chuông Sơ đồ khối VĐK (Hỗ trợ RTC) Bộ báo chuông (Demo sử dụng sang... xong, LCD hiển thị ngày Thời gian báo chuông cố định sẵn code.Tín hiệu xuất chân PA7 Các thành phần mạch : Linh kiện Vi điều khiển LCD 16x2 Biến trở Nút bấm Bộ Báo chuông Chức Thành phần Vai trò... biến đếm TimeVar Dựa vào biến đếm công thức tính thời gian ta tính toán thị lên hình LCD Khởi động mạch nút nguồn, đợi LCD hiển thị sau cài đặt giá trị thời gian tương ứng.Phím bấm PA0 dùng cài đặt