CHƯƠNG 3: XÂY DỰNG HỆ THỐNG 8.1Thiết kế phần cứng

Một phần của tài liệu Hệ thống bật tắt đèn thông minh dành cho các phòng họp sử dụng thu phát hồng ngoại và vi xử lý (Trang 39 - 42)

M CCP1.2 Synchrcnous Serial Pũrt USART Ccmparaìcr Reterence Vbl&age

7 Các cổng xuất nhập của PIC16F8A

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG 8.1Thiết kế phần cứng

8.1Thiết kế phần cứng

Với đồ án môn học Hệ thống nhúng với đề tài là ‘‘Hệ thống bật tắt đèn thông minh dùng cho các phòng họp’’, việc thiết kế phần cứng của mạch hệ thống cụ thể được chia làm 5 khối cơ bản là :

- Khối nguồn

- Khối cảm biến hồng ngoại - Khối hiển thị

- Khối rơle chấp hành - Khối điều khiển

8.2Thiết kế phần mềm

❖ Mã lập trình :

#include<16f877A.h> //thu vien cho Pic

#use delay(clock=20M) // khai bao su dung tre int8 const

LED7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //mang hien thi cac so tu 0 den 9

long i,L1,L2,ng,x,y,vao,ra; //khai bao cac bien

//============================================// void den(ng){

if (ng==0) output_a(0); //xuat ra cong a gia tri 0 : tat den else output_a(1); //xuat ra cong a gia tri 1 : bat den }

output_c(LED7[L2]); output_d(1); delay_ms(1); output_d(0); // dua ma so hang chuc ra cong C, bat LED 1, tre 1ms roi tat output_c(LED7[L1]); output_d(2); delay_ms(1); output_d(0);

// dua ma so hang don vi ra cong C, bat LED 2, tre 1ms roi tat }

}

//============================================// int dauvao(){ //ctr con dau vao

if ((x==0)&&(y==0)){ //neu bat dau di vao thi thuc hien x=1; //ghi nhan da qua senso 1

if (ng!=99) ng++; //neu so nguoi con nho hon 99 thi dem tang }

else if ((x==0)&&(y==1)){ //neu la cuoi cua qua trinh di ra x=1; //ghi nhan da qua senso 1

}

}

//============================================// int daura(){ //ctr con dau ra

if ((x==0)&&(y==0)){ //neu bat dau di ra va con nguoi trong phong y=1; //ghi nhan da qua senso 2

if (ng!=0) ng--; //neu so nguoi con lon hon 0 thi dem giam }

else if((x==1)&&(y==0)){ //neu la cuoi cua qua trinh vao y=1; //ghi nhan da qua senso 2 } } //============================================// void led(ng) { L1=(ng/ 1) % 10; L2=(ng/ 10) % 10; for(i=0;i<100;i++) {

// Lay so hang don vi // Lay so hang chuc

//khai bao ngat thay doi trang thai cong B //ctr ngat cong B

//gan bien vao doc du lieu vao chan B4 tu senso 1 //gan bien vao doc du lieu vao chan B5 tu senso 2 //neu co tin hieu vao thi cho chay ctr con dau vao //neu co tin hieu ra thi cho chay ctr con dau ra if ((x==1)&&(y==1)&&(vao==1)&&(ra==1)){

//khi ca 2 sense deu da co tin hieu thi cai dat lai x=0; y=0; } return ng; } //============= void main() { x=y=0; ng=0; set_tris_a(0); set_tris_b(0xff); set_tris_c(0); set_tris_d(0);

enable_interrupts(INT_rb); //cho phep ngat ngoai dem vach enable_interrupts(GLOBAL); //cho phep ngat toan cuc

while (1){ //lien tuc kiem tra senso va dieu khien den led(ng); //goi ham hien thi den led

den(ng); //goi ham bat tat den } } #INT_rb long vaora(){ vao=input(pin_b4); ra=input(pin_b5); if (vao==0) dauvao(); else if (ra==0) daura();

//Gan cac gia tri ban dau //Cong A la cong ra //Cong B la cong vao //Cong C la cong ra //Cong D la cong ra

Một phần của tài liệu Hệ thống bật tắt đèn thông minh dành cho các phòng họp sử dụng thu phát hồng ngoại và vi xử lý (Trang 39 - 42)

Tải bản đầy đủ (DOCX)

(46 trang)
w