1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

12 2,4K 5

Đ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

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 149,02 KB

Nội dung

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.

Trang 1

I Nội dung báo cáo

- 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.

Lưu đồ thuật toán khối đồng hồ thực

START

TIMER HOẠT ĐỘNG

S

S

Đ

Đ GIÂY>60

GIỜ ++

PHÚT>60 PHÚT ++

GIÂY ++

Trang 2

GIỜ =24, GIỜ = 0

S

KIỂM TRA PHÚT

Trang 3

Lưu đồ bàn phím :

S

RST

TÍN HIỆU ĐIỀU KHIỂN

Đ

Đ

KIỂM TRA GIỜSTART

QUÉT PHÍM

Đ

Đ

Đ Đ Đ

HIỂN THỊ

THAY ĐỔI GIỜ HẸN

THAY ĐỔI ĐỘ ẨM

THAY ĐỔI NHIỆT

ĐỘ

LƯU TẠM VÀ XỬ LÝ SỐ

S S S

CHẾ ĐỘ 3

CHẾ ĐỘ 2

CHẾ ĐỘ 1 QUÉT PHÍM CHỌN CHẾ ĐỘ

Trang 4

Báo Động:

S S

Đ

S

THOÁT CHẾ ĐỘ

S

Đ LƯU GIÁ TRỊ MỚI

RST

Nhập điều kiện báo động: nhiệt độ, độ ẩm, Vch(V cửa hở)

Đọc dữ liệu

Nhiệt độ = điều kiện Loa, led-red

Hiển thị lên LCD Nhiệt độ=?

Độ ẩm = điều kiện

Loa,led-green

Trang 5

Đ

S

Đ

Chương trình thiết lập thời gian thực:

#include <regx52.h>

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()

Hiển thị lên LCD

Độ ẩm=?

Vch = điều kiện Loa, led-yellow

Hiển thị lên LCD Vch=?

Kết thúc

Trang 6

{

if (giay >=60) { phut++; giay = 0 ; }

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 1

{

// Nap lai gia tri cho TH0 va TL0

TH0 = 0xD8;

TL0 = 0xF0; // chay tu 55536 - 65536 : du 10000 xung la 10ms.

cnt0 ;

if(cnt0==0)

{

cnt0 = 100;

giay++;

P1_0 =! P1_0; // dao gia tri cong sau 1s.

P1_1 =! P1_1;

Trang 7

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 1

TH0 = 0xD8;

TL0 = 0xF0; // timer0_ đồng hồ 55536 - 65536 : 10ms/ chu ky.

ET0 = 1; // Cho phep ngat timer 0

EA = 1; // Cho phep ngat toan cuc

TR0 = 1; // Cho phep timer0 hoat dong

while(1) {}

}

Trang 8

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;

Trang 9

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_key<=10;call_key++)

{

if(nhan_nut==1) {

if(!check_but()) {

kq_key=last_key;

nhan_nut=0;

last_key='\0';

} else {

for(row=0;row<4;row++) //ktphimnao dc nhan {

scan_row(row); //Quet hang col=check_col(); //Lay vi tri cot if(col>0)

{

last_key = ma_nut[((row*3)+col)-1]; //Trave vi tri nut duocnhan

nhan_nut=1;

} }

} }

Trang 10

else { if(check_but()){

// delay_ms(5);

// if(check_but()){

for(row=0;row<4;row++){

scan_row(row); //Quet hang

col=check_col(); //Lay vi tri cot if(col>0)

{ last_key=ma_nut[((row*3)+col)-1]; //Trave vi tri nut duocnhan

nhan_nut=1;

} } // }

} } }

}while(check_but());

return kq_key; //Khong co nut naoduocnhanhoac nut da nha

Chương trình cảnh báo:

#include "regx51.h"

#define bat 0

#define tat 1

#define nhietdo P1^0

#define doam P1^1

#define cuaho P1^2 sbit Leddo = P2^7;

sbit Ledxanh = P2^6;

sbit Ledvang = P2^5;

sbit loa = P2^0;

void delay(unsigned int time) {

unsigned int i,j;

Trang 11

{for(j=0;j<125;j++);}

}

void main(void)

{

while(1) {

P3_6 = 0;

if(28 >nhietdo> 24)

{Leddo = bat;

delay(1000);

Leddo = bat;

delay(1000);

Leddo= tat;

delay(1000);

loa = bat;

delay(1000);}

else Leddo= tat;

if(78 >doam>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);

Trang 12

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

w