Giải thuật chương trình ngắt “GIAI_MA_REMOTE_SONY”

Một phần của tài liệu THiết kế lịch vạn niên điện tử (Trang 63 - 64)

II. PHẦN MỀM DO NHIỆT ĐỘ (CODE_1)

1.2.Giải thuật chương trình ngắt “GIAI_MA_REMOTE_SONY”

• Bước 1: Thiết lập giá trị thanh ghi A = 01000000B (40h)

• Bước 2: Chờ cho tín hiệu lên (Đây là bit mã lệnh đầu tiên)

• Bước 3: Chờ tín hiệu đi xuống

• Bước 4: Chờ khoảng 900µs

• Bước 5: Đo mức tín hiệu

• Bước 6: Nếu mức tín hiệu là mức cao thì bit nhận được là bit 0 - Thiết lập bit nhớ C = 0 (bit mã lệnh thu được)

- Quay phải cĩ nhớ A, như vậy C sẽ được gửi vào MSB của A, LSB của A gửi vào C.

- Ban đầu, A = 01000000B thì sau khi quay ta cĩ C = 0 và MSB của A là bit đầu tiên của mã lệnh.

- Như vậy sau 7 lần quay thì C = 1 và 7 bit bên trái của A sẽ chứa mã lệnh - Kiểm tra bit nhớ C, nếu C = 1 nhảy tới bước 8, nếu C = 0 quay lại bước 3

• Bước 7: Nếu mức tín hiệu là mức thấp thì bit nhận được là bit 1 - Thiết lập Bit nhớ C = 1 (bit mã lệnh thu được)

- Quay phải cĩ nhớ A

- Kiểm tra bit nhớ C, nếu C = 1 nhảy tới bước 8, nếu C = 0 quay lại bước 2

• Bước 8: Lúc này 7 bit mã lệnh chứa trong 7 bit bên trái của thanh ghi A : A = D6D5D4D3D2D1D00

Quay phải thanh ghi A thu được 7 bit mã lệnh nằm bên phải thanh ghi A A = 0D6D5D4D3D2D1D0

Tạo trễ dài để chống nhiễu (chọn 0.1s)

• Bước 9: Nhận dạng các phím được ấn:

- Nếu phím được ấn là KEY_ON_OFF thì mở chế độ điều chỉnh ngược lại thì nhảy đến bước 10.

- Nếu phím được ấn là KEY_NEXT hoặc KEY_BACK thì tăng hoặc giảm thanh ghi R0 một đơn vị cho mỗi lần ấn. Kế tiếp gọi chương trình để tạo ra hiệu ứng điều chỉnh tương ứng, sau đĩ nhảy đến bước 10.

- Nếu phím được ấn là các số thì chương trình “xử lý số” được gọi để chuyển các số được ấn vào biến được lựa chọn ở trên, ghi giá trị này vào RTC. Sau đĩ đọc và hiển thị các giá trị ra ngồi, cuối cùng nhảy đến bước 10.

- Nếu phím được ấn là KEY_ON_BELL / KEY_OFF_BELL thì tương ứng với việc mở/tắt chuơng theo từng giờ, sau đĩ nhãy đến bước 10.

• Bước 10: Tạo trể 0.1s và thốt khỏi ngắt

Một phần của tài liệu THiết kế lịch vạn niên điện tử (Trang 63 - 64)