Khi có người cần đo nhiệt độ, người đó sẽ đứng tại vị trí được đánh dấu, cảm biến thân sẽ thu tín hiệu gửi về vi xử lý, sau thời gian khoảng 1 giây, chương trình điều khiển bắt đầu hoạt động
Nguyên lý hoạt động của thiết bị có hai trường hợp:
Trường hợp 1, người đo có chiều cao cao hơn chiều cao của thiết bị đo. Trong trường hợp này, thiết bị đo sẽ tự động nâng lên cao sao cho vị trí nhiệt kế điện tử đúng tâm trán người đo và sau đó sẽ tiến hành đo nhiệt độ. Trường hợp 2, thiết bị sẽ hoạt động ngược lại
4.6.3.1 Hàm ngắt Interrupt
interrupt [EXT_INT0] void ext_int0_isr(void) {
}
Đây là hàm ngắt, là những lời gọi hàm tự động khi hệ thống inh ra một sự kiện. Những sự kiện này được nhà sản xuất vi điểu khiển thiết lập bằng phần cứng và được cấu hình trong phần mềm bằng những tên gọi cố định. Ngắt giúp chương trình gọn nhẹ và xử lý nhanh hơn. Trong đề tài này, hàm ngắt hoạt động khi tín hiệu cảm biến đầu vào thay đổi trạng thái.
4.6.3.2 Switch … case…
Lệnh switch case là một cấu trúc điều khiển và rẽ nhánh hoàn toàn có thể được thay thế bằng cấu trúc if else. Việc sử dụng switch case sẽ giúp việc lập trình dễ viết và cho hiệu năng tốt hơn.
switch ( state) { case 1: câu lệch break; …. case n: câu lệch break; }
Trong đó, state là giá trị hằng, nếu có 1 case nào đó khớp giá trị, các khối lệnh tương ứng sau case đó sẽ được thực hiện khi tới gặp lệnh break;. Do đó, nếu chúng
54 ta không sử dụng break thì tất cả các case kể từ case khớp giá trị đều được thực hiện.
Hình 4. 28 Sơ đồ khối của lệnh switch case
Trong đề tài, lệnh switch… case… được sử dụng nhằm phân loại trường hợp theo giá trị đầu vào.