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
443 KB
Nội dung
Phần II: THIẾT KẾ PHẦN CỨNG VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN I Sơ đồ nguyên lý theo khối Khối hiển thị IC 16F877A Led Khối tín hiệu điều khiển Tín hiệu IC 16F877A Khối điều khiển đèn IC 16F877A Led đơn II Sơ đồ mạch nguyên lý chung Nguyên lý hoạt động: Khi IC 16F877A khởi động chương trình tự động điều khiển đếm lùi mặc định: - Đèn đỏ sáng 30s - Đèn xanh rẽ trái sáng 10s - Đèn xanh sáng 15s - Đèn vàng sáng 3s IC16F877A tự động đưa liệu để hiển thị LED đồng thời đợi tín hiệu điều khiển từ bên Để điều khiển thời gian đếm lùi ta chọn công tắc SW2 sang mức sau ấn nút điều khiển thời gian để tăng thời gian đếm lùi lên, chuyển SW2 lại mức để thực điều khiển - SW1=1: chế độ Reset - SW2=0: chế độ bắt đầu - SW3=1: chế độ tăng thời gian lên 10 đơn vị - SW4=0: chế độ tăng thời gian lên đơn vị III Chương trình điều khiển #include "D:\PIC-Robocon\PICCCS\DoAn3\Dengt1.h" int8 count,time,l1,l2,i,t2,t3,t1,d; unsigned char LED[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //Ma led unsigned char den[6]={0x81,0x82,0x84,0x18,0x28,0x48}; //Chuong trinh ngat TIMER0 theo chu ki 1s giam thoi gian xuong don vi #int_timer0 void timer0() { set_timer0(0); //Set timer khoang tu 0-255 ++count; if(count == 76) // Tan so timer0 = 20MHz/(256*4)=19531 -> So lan tran =19531/(2^8) = 76 { count=0; time ; if(time==-1) time=t3; } } //Chuong trinh hien thi thoi gian dem nguoc tren led void led7() { if(time>t1) { l1=((time-t1-1)/ 1) % 10; // Lay so hang don vi l2=((time-t1-1)/ 10) % 10; // Lay so hang chuc } else{ l1=(time/ 1) % 10; // Lay so hang don vi l2=(time/ 10) % 10; // Lay so hang chuc } output_b(LED[l2]); output_high(pin_c0);// bat led hien thi hang don vi delay_us(0.001); output_low(pin_c0); output_b(LED[l1]); output_high(pin_c1);// bat led hien thi hang chuc delay_us(0.001); output_low(pin_c1); } void hienthi() { while(1) { output_d(den[d]); led7(); if(time = t3-t2) d=0; //re trai nhanh' do? nhanh' if(time < t3-t2&&time > t1+4) d=1; // di thang nhanh' do? nhanh' if(time t1) d=2; // vang nhanh' do? nhanh' if(time = t1-t2) d=3; //re trai nhanh' do? nhanh' if(time < t1-t2&&time > 3) if(time [...]... đi đường của người điều khiển phương tiện Chế độ đèn vàng được đặt từ 23h đêm đến 5h sáng hôm sau Tuy nhiên trong thời gian đó vẫn sẽ có phương tiện tham gia giao thông Vì vậy em nghĩ cần thiết phải đặt hệ thống cảm biến cách xa đèn một đoạn và cho cảm biến hoạt động trong chế độ đèn vàng để phát hiện phương tiện đang đi tới Cảm biến sẽ tác động lên vi xử lí để tắt chế độ đèn vàng và chuyển sang chế... sẽ tác động lên vi xử lí để tắt chế độ đèn vàng và chuyển sang chế độ nhảy tự động Trong những điều kiện cần thiết các cột đèn giao thông có thể làm việc độc lập với nhau Các cột đèn giao thông trên cùng tuyến đường có thể được nối với nhau để cùng nhận một tín hiệu điều khiển trong những trường hợp cần thiết ( đường một chiều, hay những khi tổ chức các sự kiện quan trọng…)