Hệ thống điều khiển khiển tự động có ứng dụng rộng rãi trong các lĩnh vực như: Kỹ thuật điện tử, Viễn thông, Điều khiển tự động… Trong xu thế phát triển hiện nay mọi hoạt động đều được t
Trang 1LỜI C ẢM ƠN
Ngày nay thế giới đã bước sang kỷ nguyên mới, kỷ nguyên của kỹ thuật công nghệ nói chung, kỹ thuật điều khiển nói riêng Hệ thống điều khiển khiển tự động có ứng dụng rộng rãi trong các lĩnh vực như: Kỹ thuật điện tử, Viễn thông, Điều khiển tự động… Trong xu thế phát triển hiện nay mọi hoạt động đều được tự động hóa bằng các thiết bị điện tử Các thiết bị điện tử đang dần thay thế mọi hoạt động của con người Theo dòng phát triển công nghệ, công nghệ bán dẫn đã và đang phát triển rất mạnh Thành tựu của nó là sự ra đơì của các mạch diều khiển bằng vi xử lý Từ khi ra đời đến nay mạch vi xử
lý đóng góp vai trò hết sức quan trọng trong các hệ thống điều khiển
Sau gần 2 năm học tập và nghiên cứu ở trường, chúng em đã được làm quen với các môn học chuyên ngành.Với mục đích nhằm hiểu rõ, nắm bắt công nghệ dòng vi xử lý vi điều khiển và khai thác các ứng dụng của nó trong cuộc sống, để gắn liền được lý thuyết với thực tế và để thấy được những tính năng ưu
việt của dòng vi xử lý vi điều khiển và chúng em đã chọn đề tài : “lịch vạn niên kết hợp quang báo” để rút kết lại kiến thức mình đã học tại trường trong hai
năm và chuẩn bị kiến thức cho công viêc sau này
Chúng em xin chân thành cảm ơn các thầy cô bộ môn của khoa ĐIỆN TỬ-TIN HỌC trường CĐKT CAO THẮNG và sự hướng dẫn tận tình cùa thầy TỐNG THANH NHÂN đã giúp chúng em hoàn thành đề tài này
Chúng em xin chân thành cảm ơn!
Trang 2CHƯƠNG I - MỤC ĐÍCH YÊU CẦU ĐỀ TÀI
1.Giới Thiệu :
1.1 Lịch Vạn Niên (đồng hồ thời gian thực) :
Trong lĩnh vực công nghệ thông tin, người ta nói về hệ thống thông tin thời gian thực khi hệ thống đó điều khiển một vật thể vật lý với một tốc độ phù hợp với sự tiến triển của tiến trình chủ Một ví dụ dễ hiểu (hệ thống thông tin điều khiển màn hình hiển thị giờ chính xác của các tàu điện ngầm sẽ đến
và đi tại một gare nhất định) Hệ thống thông tin thời gian thực khác với những hệ thống thông tin khác bởi sự gò bó về thời gian, do đó việc tuân thủ các nguyên tắc cũng quan trọng như độ chính xác của kết quả, nói một cách khác, hệ thống không chỉ đơn giản là đưa ra kết quả chính xác mà nó còn phải thực hiện một xử lý trong một thời gian rất ngắn Hệ thống thông tin thời gian thực ngày nay được ứng dụng trong rất nhiều lĩnh vực như: trong ngành công nghiệp sản xuất, kiểm soát tiến trình (trong đời sống hàng ngày ,trong nhà máy, hay trong viện hạt nhân, trong hệ thống hàng không, thông qua các hệ thống dẫn đường tích hợp trên máy bay và vệ tinh) Sự phát triển của hệ thống thông tin thời gian thực yêu cầu mỗi phần tử của hệ thống phải ở thời gian thực.Vì vậy nhóm chúng em đã chọn LỊCH VAN NIÊN (đồng hồ thời gian thực) hiển thị lên led 7 đoạn làm một phần trong đồ án tốt nghiệp của nhóm
1.2 Quang Báo :
Quang báo là hình thức thông báo trên bảng đèn Bảng đèn quang báo gồm nhiều ma trận LED ghép lại, mỗi một ma trận biểu diễn một kí tự Tùy chiều dài của bảng đèn mà có thể hiển thị những bản tin có độ dài khác nhau.Với sự ra đời của máy tính điện tử đặc biệt là máy vi tính, chúng có những tính năng ưu việt như khả năng xử lý dữ liệu nhanh chóng, độ tin cậy cao, lưu trữ lượng thông tin lớn và quan trọng hơn cả là máy tính có thể kết hợp với nhiều thiết bị ngoại vi tùy theo mục đích ứng dụng cụ thể, mà việc trao đổi và điều khiển trở nên đơn giản, chúng phụ thuộc vào phần mềm điều khiển Dựa vào tính đa dạng và mềm dẻo của máy tính người ta tìm cách ứng dụng nó vào mục đích quảng cáo, chẳng hạn như dùng trong quang báo Nhờ vậy, việc thiết kế phần cứng cho quang báo trở thành ít phức tạp hơn, nhưng
Trang 3độ tin cậy cao hơn Trong thực tế để hiển thị các văn bản, người ta dùng các kiểu chữ là các Ma Trận LED 8x32, 8x12 hoặc 8x14 tuỳ thuộc vào mục đích
sử dụng và độ phân giải
Các công nghệ thiết kế quang báo hiện nay gồm nhiều công nghệ ,song thường sủ dụng Led 7 thanh, Led ma trận, LCD, Led đơn.Nhóm chúng em đã chọn quang báo hiển thị lên led ma trận 8 x 32 làm một phần trong đồ án tốt nghiệp của nhóm
2.Mục Đích :
2.1.Lịch Vạn Niên (đồng hồ thời gian thực):
- Đầu vào hệ thống lấy dữ liệu từ DS1307, là IC thời gian thực nhằm cung cấp giờ cho hệ thống,để cập nhật thời gian,ngày tháng năm
-Xử lý,điều khiển dùng viđiều khiển 16F877A.Lập trình viđiều khiển
để xử lý đọc ghi giờ, tính toán hiển thị thời gian
-Để hiển thị dùng led 7 thanh: lấy tín hiệu ra từ vi điều khiển thông báo thời gian,ngày,tháng năm
-Điều chỉnh thời gian thông qua nút bấm: lựa chọn cài đặt giờ, tăng giảm thời gian
Để cấp đủ nguồn cho các LED và cho các LED sáng đều, chúng em sử dụng IC đệm dòng ULN2803
3.Yêu Cầu :
3.1.Lịch Vạn Niên (đồng hồ thời gian thực):
- Đồng hồ thời gian thực hiển thị lịch dương:
-Đầu vào hệ thống lấy dữ liệu từ DS1307, là IC thời gian thực nhằm cung cấp giờ cho hệ thống Đầu ra được hiển thị trên LED 7 thanh
Trang 4- Hiển thị chính xác thời gian thực, ngày tháng năm dương lịch
- Làm việc với điện áp cấp từ nguồn 5v Dc
- Làm việc được lâu dài và ổn định
- Quan sát dễ dàng,có thể quan sát được thời gian ở khoảng cách xa
3.2 Quang Báo :
Hệ thống điều khiển 4 LED ma trận ,bảng led bao gồm 8 cột và 32 hàng
TCDT09C_DATN_GVHD:TONG THANH NHAN_SVTH:VAN DUY QUANG-ANH TUAN "” trên nền led ma trận 8x32
THUA-Dòng chữ chạy từ phải qua trái
CH ƯƠNG II -PHÂN TÍCH VÀ THIẾT KẾ
Tạo thời gian thực
Trang 5-sơ đồ nguyên l ý :
-Nguyên lý hoạt động :
Đây là module cấp nguồn cho hệ thống nhằm cung cấp điện áp chuẩn
+5V
-Yêu cầu đối với khối này:
+Có thể lấy nguồn từ điện áp xoay chiều (hoặc pin) để cấp nguồn cho
hệ thống
+Điện áp đầu ra của khối ( điện áp đầu vào của hệ thống) luôn
ổn định tại mọi thời điểm.Mạch ổn áp cần cho vi điều khiển vì nếu nguồn cho
vi điều khiển không ổn định thì sẽ treo VĐK, không chạy đúng hoặc reset
liên tục thậm chí là chết chíp
Với yêu cầu như trên ta lựa chọn mạch biến đổi điện áp xoay chiều
thành 1 chiều qua máy biến thế.Sử dụng IC7805 để ổn áp
Điện áp xoay chiều qua biến áp hạ xuống theo yeu cầu khoảng 12V qua cầu diot nắng lọc
là :
V U
U U
U d
2 2 2
C2 C
12V
Trang 6Qua IC ổn áp 7805 với V ngõ vào là 10.8V
Giá trị điện áp của I C 7805 là từ 8-35V và điện áp ra là 5
1.1.2khối tạo xung dao động:
-Chức năng : có tác dụng tạo xung nhịp với tần số 12MHz cho VĐK hoạt động
-sơ đồ nguyên l ý :
-Nguyên lý hoạt động : Đây là 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 OSC1 và OSC2 của VĐK
Trang 7-Nguyên lý hoạt động : Khối 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
4 B2 16 A3 5 B3 15A4 6 B4 14A5 7 B5 13A6 8 B6 12A7 9 B7 11
CE 19 VCC 20GND
10 AB/BA1
U2
74HC245
1 2 3 4 5 6 7 8
J1
PIN-DUC-8
D0 D1 D2 D3 D4 D5 RA1 D7
1 2 3 4 5 6 7 8
Trang 8-Nguyên lý hoạt động : Lấy tín hiệu ra từ chân IC để hiển thị thời gian, ngày thángnăm.Khối hiển thị yêu cầu:
+Sử dụng nguồn chung toàn hệ thống,hoặc có thể dùng nguồn riêng tùy người thiết kế
+Độ sáng đủ lớn để có thể quan sát được trong phạm vi trong phòng,góc nhìn rộng.màu sắc của số khi hiển thị dễ quan sát
Lựa chọn hiển thị qua led 7 thanh,màu đỏ
Mỗi thanh của led 7 đoạn để một led sang cần dòng 10mA , ta có thể xem led
7 đoạn như 7 led đơn:
Dòng qua led : I led 10mA770mA
Giá trị trung bình dòng qua led :
chọn thời gian sang T0 là thời gian led sang , T là thời gian led tắt chọn thời
gian sang một led là 100ms thời gian khong có dong qua led là 600ms
mA mA
I
V V V
V
R
led
outpic led
cc
Để sang hết 7 thanh cuả led 7 đoạn cần dòng :
mA mA
I led 10 770
Xét điều kiện BJT bão hoà chọn BJT A1015 có =70
Thông số của vi điều khiển pic ta có
Trang 9003 0
2 8 0 5
0
1.1.5khối điều khiển :
-Chức năng : Gồm 4 nút ấn có tác dụng điều chỉnh thời gian, ngày tháng trong mạch
-sơ đồ nguyên l ý :
1.1.6khối tạo thời gian thực :
-Chức năng : cung cấp thông tin về giờ,phút,giây ,thứ,ngày,tháng, năm
Trang 10-sơ đồ nguyên l ý :
-Nguyên lý hoạt động :
+IC thời gian thực cần hoạt động được với nguồn cung cấp nhỏ, dùng
để cập nhật thời gian và ngày tháng.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
+Khi mất nguồn IC thời gian thực vẫn duy trỳ hoạt động không cần điều chỉnh lại thời gian.IC có thêm nguồn riêng từ pin 3V
+Với điều kiện như trên ta lựa chọn IC thời gian thực là IC DS1307
KHOI DALAS 1307
VBAT 3
X1 1
X2 2
SCL 6 SDA 5
SOUT 7 U2
Trang 11-Nguyên lý hoạt động :
Dùng VDK để lấy tín hiệu từ khối điều khiển, tạo xung giao động, tạo
thời gian thực… và đưa ra khối hiển thị Yêu cầu
+ Tốc độ xử lý nhanh, chính xác
+ Bộ nhớ không cần lớn
Lựa chọn vi điều khiển 16f877a
1.1.8khối đo nhiệt độ :
- Đo và hiển thị nhiệt độ của môi trường một thời điểm bất kỳ trong
RA1/AN1 3
RA2/AN2/VREF-/CVREF 4
RA4/T0CKI/C1OUT 6
RA5/AN4/SS/C2OUT 7
RE0/AN5/RD 8
RE1/AN6/WR 9
RE2/AN7/CS 10
OSC1/CLKIN 13
OSC2/CLKOUT 14
VCC 11 VCC1 32
GND 12 GND1 31
U17
PIC16F877A
LA LB LC LD LE LF LG LP RST1302 SCLK1302 IO1302
RA0 RA1
D0 D1 D2 D3 D4 D5 D6 D7
Trang 12- Sử dụng sensor cảm biến nhiệt
- Hiển thị trên led 7 thanh
1.2 Quang Báo :
1.2.1.khối điều khiển led ma trận:
-Chức năng : Nhận tín hiệu từ khối xử lý trung tâm, giải mã và cung cấp
nguồn ổn định và đủ lớn để chuyển ra khối hiển thị
-Nguyên lý hoạt động :
KHỐI NGUỒN
KHỐI
XỬ LÝ TRUNG
TÂM
KHỐI ĐIỀU KHIỂN LED
MA TRẬN
KHỐI HIỂN THỊ
Trang 13Khối điều khiển LED được kết nối như hình dưới đây Module sử dụng IC chốt dịch 74HC595 và IC đệm dòng ULN2803
Các chân Clock và Latch của IC 74HC595 được mắc song song như hình vẽ Chân Data của IC 74HC595 đầu tiên được nối vào vi điều khiển Các chân Data của 3 IC còn lại được mắc vào chân số 9 của IC 74HC595 trước
đó
Trang 14Các đầu ra của IC chốt dịch 74HC595 được mắc vào các cổng vào của
IC đệm dòng ULN2803, các đầu ra của ULN2803 sẽ được nối trực tiếp với các chân cho phép cột của các LED ma trận trong module hiển thị
1.2.2 kh ối hiển thị:
Nhận tín hiệu từ khối xử lý trung tâm và khối điều khiển LED ma trận
để hiển thị các ký tự theo chương trình đã trong khối xử lý trung tâm
Module hiển thị sử dụng 4 led ma trận 8x8 ghép nối lại với nhau thành một
ma trận 8x32 Các LED ma trận được nối chung các chân cho phép hàng với nhau(H1 đến H8) Các chân cho phép cột được tách riêng và nối vào Module điều khiển LED ma trận (C1 đến C32)
CH ƯƠNG III- LƯU ĐỒ GIẢI THUẬT VÀ CHƯƠNG TR ÌNH
1 Lịch Vạn Niên (đồng hồ thời gian thực):
1.1 lưu đồ chính :
Trang 151.2.lưu đồ chi tiết
1.2.1.Thuật toán giao tiếp với IC thời gian thực DS1307:
CT điều khiển chính
Trang 16#define set pin_c4
#define mod pin_c5
#define tang pin_c6
#define giam pin_c7
Trang 17
byte giay,phut,gio,ngay,thang,nam,ngtuan;
char
displthang1_onlar,displthang1_birler,displthang2_onlar,displthang2_birler,displthang3_onlar,displthang3_birler;
const int
displthang_digit[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; // ortak anotlu için
int i;
int set_degeri=0; // 1=gio 2=ngay
int mod_degeri=0; // 1=gio,ngay 2=phut,thang 3=giay
unsigned long int sicaklik_bilgisi;
float sicaklik_degeri,sicaklik_voltaj;
int sicaklik_ekrani=0;
1.2.2 Thuật toán điều chỉnh thời gian:
-Chỉnh giờ:
Trang 18-chỉnh phút :
Chỉnh giờ
Nhả phím giờ+1
10giờ=0 Giờ=0
Nhả phím giờ-1
10 giờ =-1 giờ =9
S
S
10giờ=2 giờ =4
Trang 19*chương trình:
Chỉnh phút
Nhả phím phút+1
10phút=6 phút=0
Nhả phím phút-1
10 phút = -1 phút =9
S
S
10phút=51 phút =9
Trang 20void thangarlar()
{
if (input(set))
{
while(input(set))
{
if(sicaklik_ekrani==1){ sicaklik_tara(); }
else { displthang_tara(); }
output_low(pin_a1);output_low(pin_a2);
}
set_degeri=1;
} else { goto thangardan_cik; } while(set_degeri==1)
{ output_e(0b001); rtc_get_time(gio,phut,giay); displthang1_birler=gio%10;
displthang1_onlar=gio/10; displthang2_birler= phut%10; displthang2_onlar=phut/10; displthang3_birler=giay%10; displthang3_onlar=giay/10; set_konumunda_displthang_tara(); if(input(set)){ while(input(set)){displthang_tara();} set_degeri=2; goto set1_den_cik; }
if(input(mod)){ while(input(mod)){displthang_tara();} mod_degeri=1; }
while(mod_degeri==1) {
for(;;)
{
displthang1_birler=gio%10;
displthang1_onlar=gio/10;
displthang1_tara();
Trang 21if(input(tang)){gio++; while(input(tang)){displthang1_tara();} if(gio==24){gio=0;} }
if(input(giam)){gio ; while(input(giam)){displthang1_tara();} if(gio==-1){gio=23;} }
if(input(mod)){while(input(mod)){displthang1_tara();} mod_degeri=2; goto
mod1s_cik;}
write_ds1307(0x84,get_bcd(gio)); //lay gia tri gio 0-23 delay_ms(5); } //for smod1 } //trong khi mode = 1 mod1s_cik:
while(mod_degeri==2)
{
for(;;)
{
displthang2_birler=phut%10;
displthang2_onlar=phut/10;
displthang2_tara(); if(input(tang)){phut++; while(input(tang)){displthang2_tara();} if(phut==60){phut=0;} } if(input(giam)){phut ; while(input(giam)){displthang2_tara();} if(phut==-1){phut=59;} } if(input(mod)){while(input(mod)){displthang2_tara();} mod_degeri=3; goto mod2s_cik;}
write_ds1307(0x82,get_bcd(phut)); //lay gia tri phut 00-59 delay_ms(5); } //for smod2 } //trong khi mod = 2 mod2s_cik:
while(mod_degeri==3)
{
for(;;) { displthang3_birler=giay%10;
displthang3_onlar=giay/10;
displthang3_tara();
Trang 22if(input(tang)){giay++; while(input(tang)){displthang3_tara();} if(giay==60){giay=0;} }
if(input(giam)){giay ; while(input(giam)){displthang3_tara();} 1){giay=59;} }
if(input(mod)){while(input(mod)){displthang3_tara();} mod_degeri=0; goto mod3s_cik;}
write_ds1307(0x80,get_bcd(giay)); //lay gia tri giay 00-59
Trang 23Chỉnh năm
Nhả phím năm +1
năm =0
10 năm +1
Quét LED hiển thị 10 năm, năm
=1
10 năm=1
Nút 1 =0
S
10 năm =9
Trang 24-chỉnh ngày:
-chỉnh tháng:
Chỉnh ngày
Nhả phím ngày +1
Quét LED hiển thị 10
Nút =3
Trang 25Chỉnh tháng
Nhả phím tháng +1
Quét LED hiển thị 10 tháng, tháng
Kết thúc
Đ
10 năm =1 tháng =0
10tháng =0 tháng=9
Nút 1 =0
10 tháng =0 tháng =0
10 năm =1 tháng =0
S
Trang 29if(input(mod)){while(input(mod)){displthang3_tara();} mod_degeri=0; goto mod3t_cik;}
write_ds1307(0x8C,get_bcd(nam)); //lay gia tri nam 00-99
Trang 302.2.Lưu đồ chi tiết:
2.2.1.Sơ đồ thuật toán khối hiển thị:
Begin
Lấy độ dài chuỗi ký tự Kiểm tra chuỗi ký tự
End Hiển thị
Trang 31*chương trình font chữ :
Ký tự = 0
Cột > 5 Copy font ký tự vào bộ đệm
Ký tự ++
Hiển thị ra cột Cột = 0
Cột ++
Ký tự > Độ dài chuỗi Đ
S
Đ