Hiển thị Led:

Một phần của tài liệu Xây dựng hệ thống báo cháy và khóa điện tử (Trang 25)

VIII. Khối nguồn:

1. Hiển thị Led:

1.1.Led 7 thanh:

• Led bảy đoạn là bảy con led đơn ghép lại với nhau tạo thành một con số . Bảy con led này nối chung với nhauAnode hoặc Catode. Mỗi thanh led có một chân đưa ra để điều khiển.

• Ví dụ led loại A chung có chân chung được nối lên mức cao khi hiển thị. Các thanh led muốn sáng thì chân điều khiển phải có mức áp thấp. Nếu sáng số 3 thì chân chung câu lên Vcc, các chân còn lại có mức áp tương ứng: abcdefg = 0000110 (mức 0 là thanh led sáng).

Led loại K chung tương tự nhưng khi chọn led thì chân chung nối xuống GND, thanh led sáng tương ứng tín hiệu điều khiển có mức thấp.

1.2.Phương pháp quét:

Dựa trên độ lưu ảnh của mắt, một hình ảnh mắt ta thấy nhưng phải mất 40ms mới xử lý xong (cỡ 24-25 hình trong 1 giây), do đó nếu các hình xuất hiện trước mắt ta mà chớp tắt nhanh hơn 25 hình/ giây thì ta không thấy nó chớp nữa, có thể hiểu như mắt ta bị thừa thông tin.

Như vậy nếu bằng cách nào đó ta cho một con led đơn chớp tắt thật nhanh (trên 25 Hz, nhanh hơn nữa càng tốt, vài trăm Hz, thậm chí vài KHz càng tốt miễn là con led có thể chớp tần số đó) ta sẽ thấy con led sáng luôn, mà thực chất là nó đang sáng_ tắt_sáng_tắt…. rất nhanh.

Bây giờ ta điều khiển một led bảy đoạn (loại A chung), cho chân chung lên nguồn, điều khiển sáng tắt nhanh cho hai thanh b,c của nó (5 thanh còn lại nhớ tắt) ta thấy nó sáng lên số 1, thực chất là đang chớp số 1.

Bằng cách cho luân phiên nhiều led hiển thị thông tin khác nhau ta có cảm giác nhiều led bảy đoạn đang sáng đồng thời, với cách này ta chỉ cần một bus dữ liệu nối song song cho tất cả các led (gồm 7 dây a,b,c,d,e,f,g) mỗi led được điều khiển bằng một tín hiệu khác sao cho tại một thời điểm chỉ có duy nhất một led bảy đoạn được phép hiển thị và lúc này bus cũng đang truyền dữ liệu ứng với Led này. Nếu có quá nhiều led bảy đoạn ta phải kết hợp thêm các IC giải mã chọn kênh như 74138, 74154

Đôi khi để đơn giản trong lập trình người ta không dùng vi xử lý điều khiển trực tiếp cho led bảy đoạn mà dùng thêm IC giải mã từ BCD sang 7 đoạn (loại A chung) là 74247 cũng rất tốt. (Lúc này chỉ cần dùng 4 chân của vi xử lý để đưa mã BCD cho IC 74247 thay vì dùng 7 chân để cấp tín hiệu a,b,c,d,e,f,g cho led 7 đoạn )

Xem các hình dưới, nếu cho các led luân phiên sáng tắt, thời gian mỗi led khá lâu (lâu hơn thời gian lưu ảnh của mắt) ta sẽ thấy từng led một sáng như sau:

Nếu tăng tần số quét (giảm thời gian dành cho mỗi led) ta sẽ thấy kết quả 4 led cùng sáng như sau:

Phương pháp này tiện dụng ở phần cứng lẫn phần mềm, tuy nhiên nếu số lượng led quá nhiều thì thời gian sáng trung bình dành cho mỗi led là T lại giảm đi (T =1/n với là số led bảy đoạn, số đối tượng được quét ), Điều này kéo theo các led

sẽ suy giảm độ sáng. Mặt khác phải tích hợp thêm IC giải mã, nhiều việc phát sinh cho thiết kế mạch lẫn lập trình. Tóm lại, phương pháp này ứng dụng cho các hiển thị thông tin ít ít, cỡ 20 led bảy đoạn trở xuống thì tuyệt vời nhưng thông tin nhiều như bảng tỉ giá ngoại tệ cần vài trăm led thì không ổn.

1.3.Chương trình:

void LED7_out(uint16_t val) // Khai báo hàm con hiển thị led 7 đoạn {

uint16_t dvi, chuc , temp_val; temp_val=val;

chuc=temp_val/10; dvi=temp_val-(10*chuc);

PORTD=0x02; xuất tín hiệu ra chân PD2 cho đèn led1 sáng PORTA=tram; hiển thị chữ số hàng trăm lên led7 đoạn _delay_ms(10); tạo thời gian trễ là 10ms

PORTD=00x04; xuất tín hiệu ra chân PD3 cho đèn led2 sáng PORTA=dvi; hiện thị chữ số hàng đơn vị lên led 7 đoạn _delay_ms(10)

}

Trong chương trình chính :

vin=((float)ADC_val*5000)/1023; biến nhiệt độ vin

LED7_out(vin); Hàm gọi chương trình con hiển thị ra led 7 đoạn _delay_ms(100); tạo hàm trễ 100ms

Một phần của tài liệu Xây dựng hệ thống báo cháy và khóa điện tử (Trang 25)

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

(59 trang)
w