Sơ đồ mạch: Hình 1. Sơ đồ mạch điều khiển 8 led đơn sáng dần tắt dần từ phải sang trái Chương trình: #INCLUDE <16F887.H> #FUSES NOWDT,PUT,HS,NOPROTECT,NOLVP #USE DELAY(CLOCK=20M) UNSIGNED INT8 I, X; VOID MAIN() { SET_TRIS_D(0x00); X=0X00; OUTPUT_D(X); DELAY_MS(500); WHILE(TRUE) { FOR (I=0;I<8;I++) { X = (X<<1)+0X01; OUTPUT_D(X); DELAY_MS(500); } FOR (I=0;I<8;I++) { X = (X<<1); OUTPUT_D(X); DELAY_MS(500); } } } Giải thích chương trình: Khởi tạo portD là xuất dữ liệu, gán biến X bằng 0x00, xuất giá trị của X ra portD làm 8 led tắt, delay. Vòng lặp for thứ nhất thực hiện 8 lần: tiến hành xoay trái dữ liệu của X và cộng với 0x01. Khi xoay trái dữ liệu thì số 0 được đẩy vào, cộng với 0x01 là để đẩy số 1 vào X. Dữ liệu biến X được xuất ra portD điều khiển led sáng dần, sau 8 lần thì X sẽ bằng 1111_1111 – 8 led sáng hết. Vòng lặp for thứ hai thực hiện
Comments
Post a Comment