Lưu đồ thuật toán và code đồng hồ thực trong 8051, nhận kí tự được nhấn từ bàn phím, cảnh báo

11 2.3K 5
Lưu đồ thuật toán và code đồng hồ thực trong 8051, nhận kí tự được nhấn từ bàn phím, cảnh báo

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nội dung tài liệu bao gồm: Lưu đồ thuật toán và code khối đồng hồ thực .Lưu đồ thuật toán và code khối nhận kí tự nhấn từ bàn phím.Lưu đồ thuật toán và code báo động.Đề tài nằm trong chương trình thực tập công nhân khoa Điện tử Viễn Thông, Đại học Bách Khoa Đà Nẵng.

I Nội dung báo cáo - Lưu đồ thuật toán code khối đồng hồ thực - Lưu đồ thuật toán code khối nhận kí tự nhấn từ bàn phím - Lưu đồ thuật toán code báo động  Lưu đồ thuật toán khối đồng hồ thực START TIMER HOẠT GIÂY ++ S GIÂY>60 Đ PHÚT ++ S PHÚT>60 Đ GIỜ ++ GIỜ =24, GIỜ = KIỂM TRA PHÚT S Đ Lưu đồ bàn phím : KIỂM TRA GIỜ START S QUÉT PHÍM Đ TÍN HIỆU ĐIỀU KHIỂN CHỌN CHẾ ĐỘ RST Đ QUÉT PHÍM THAY ĐỔI NHIỆT ĐỘ Đ CHẾ ĐỘ S THAY ĐỔI ĐỘ ẨM Đ CHẾ ĐỘ S THAY ĐỔI GIỜ HẸN Đ CHẾ ĐỘ S LƯU TẠM VÀ XỬ LÝ SỐ HIỂN THỊ Đ THOÁT CHẾ ĐỘ S Đ LƯU GIÁ TRỊ MỚI RST Báo Động: Nhập điều kiện báo động: nhiệt độ, độ ẩm, Vch(V cửa hở) Đọc liệu Nhiệt độ = điều kiện Loa, S led-red S Đ Hiển thị lên LCD Nhiệt độ=? Độ ẩm = điều kiện S Loa,led-green Đ Hiển thị lên LCD Độ ẩm=? Loa, led-yellow S Vch = điều kiện Đ Hiển thị lên LCD Vch=? Kết thúc Chương trình thiết lập thời gian thực: #include unsigned char cnt0 = 100,cnt1=5; // bien chay counter unsigned int gio=0, phut=0, giay=0; // khoi tao gio phut giay unsigned int TIMEs[6]= {0,0,0,0,0,5}; /// gia lap thoi gian unsigned int j =0; void DongHo_SoSanh_DieuKhien() { if (giay >=60) { phut++; giay = ; } if (phut >=60) gio++; if (gio == 24) gio = 0; if ((gio == TIMEs[0]*10 +TIMEs[1] )&&(phut == TIMEs[2]*10 + TIMEs[3] ) &&(giay == TIMEs[4]*10 + TIMEs[5] )) { // gia su luc 00:00:05 P1_4 = 1; P1_5 = 1; P1_6 = 1; P1_7 = 1; } } void timer_hoat_dong(void) interrupt { // Nap lai gia tri cho TH0 va TL0 TH0 = 0xD8; TL0 = 0xF0; 10ms // chay tu 55536 - 65536 : du 10000 xung la cnt0 ; if(cnt0==0) { cnt0 = 100; giay++; P1_0 =! P1_0; // dao gia tri cong sau 1s P1_1 =! P1_1; P1_2 =! P1_2; P1_3 =! P1_3; } } void main() { P1_0 = 1; P1_1 = 1; P1_2 = 1; P1_3 = 1; P1_4 = 1; P1_5 = 1; P1_6 = 1; P1_7 = 1; TMOD = 0x11; // Cau hinh cho timer0 hoat dong o muc TH0 = 0xD8; TL0 = 0xF0; // timer0_ đồng hồ 55536 - 65536 : 10ms/ chu ky ET0 = 1; // Cho phep ngat timer EA = 1; // Cho phep ngat toan cuc TR0 = 1; // Cho phep timer0 hoat dong while(1) {} } Chương trình nhấn bàn phím unsigned char code ma_nut[12]={ //Khaibaomang nut nhan '1','2','3', '4','5','6', '7','8','9', '*','0','#' }; /*******Ham quet matrix phimnhan 4x3******/ unsigned char check_but(){ //Kiemtra nut nhan row0=row1=row2=row3=0; if(!col1 || !col2 || !col3 )return 1; return 0; } void scan_row(unsigned char r){ //Quet hang row0=row1=row2=row3=1; if(r==0) row0=0; else if(r==1)row1=0; else if(r==2)row2=0; else if(r==3)row3=0; } unsigned char check_col(){ //Kiemtra cot unsigned char c=0; if(!col1)c=1; else if(!col2)c=2; else if(!col3)c=3; return c; } unsigned char get_key(){ //Ham trave vi tri nut 1-16, =0 la khongnhan unsigned char row,col; unsigned char last_key; unsigned char kq_key; unsigned char nhan_nut=0; unsigned char call_key; kq_key='\0'; do{ for(call_key=0;call_keydoam>82) {Ledxanh = bat; delay(1000); Ledxanh=tat ; delay(1000); Ledxanh = bat; delay(1000); loa = bat; delay(1000);} else Ledxanh=tat; if( cuaho < 3.6) {Ledvang = bat; delay(1000); Ledvang=tat; delay(1000); Ledvang = bat; delay(1000); loa = bat; delay(1000); else Ledvang=tat; } }

Ngày đăng: 03/07/2016, 12:23

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan