Sơ đồ mạch: dùng portD kết nối với 1 led 7 đoạn anode chung. Mức logic 1 làm led tắt, mức logic 0 làm led sáng, điện trở hạn dòng cho led là 330Ω. Hình 1. Sơ đồ mạch đếm từ 0 đến 9 dùng led 7 đoạn anode chung Chương trình: #INCLUDE <16F887.H> #FUSES NOWDT,PUT,HS,NOPROTECT,NOLVP #USE DELAY(CLOCK=20M) CONST UNSIGNED CHAR MA7DOAN [10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; SIGNED INT DEM; UNSIGNED INT MA_DEM; VOID MAIN() { SET_TRIS_D(0x00); WHILE(TRUE) { FOR (DEM=0;DEM<10;DEM++) { MA_DEM = MA7DOAN[DEM]; OUTPUT_D(MA_DEM); DELAY_MS(1000); } } } Giải thích chương trình: Sau các lệnh khai báo thư viện, cấu hình và khai báo tần số sử dụng là khai báo mảng chứa mã 7 đoạn và các biến đếm, biến chứa mã. Chương trình chính khởi tạo các portB là xuất, cho vòng lặp for với biến “DEM” chạy từ 0 đến 9, tiến hành giải mã và gởi mã led 7 đoạn tương ứng với biến DEM ra port để hiển thị, delay và lặp lại. Tài liệu tham khảo: