Vi điều khiển khác với các bộ vi xử lý đa năng ở chỗ là nó có thể hoạt động chỉ với vài vi mạch hỗ trợ bên ngoài. Những thành phần này là lõi CPU, bộ nhớ chương trình (thông thường là ROM hoặc bộ nhớ Flash), bộ nhớ dữ liệu (RAM), một hoặc vài bộ định thời và các cổng vào/ra để giao tiếp với các thiết bị ngoại vi và các môi trường bên ngoài - tất cả các khối này được thiết kế trong một vi mạch tích hợp. . | SW4 EQU 3 LED1 EQU 4 LED2 EQU 5 LED3 EQU 6 LED4 EQU 7 Khai báo biến count EQU 0x20 biến dung cho quá trình dịch LED countl EQU 0x21 các biến dung cho chương trình delay counta EQU 0x22 countb EQU 0x23 Chương trình ORG 0x000 GOTO start start vị trí bát đáu chương trình chính BCF STATUS RP1 BCF STATUS RP0 chon BANK0 CLRF PORTB CLRF PORTD BSF STATUS RP0 chon BANK1 MOVLW b 00001111 MOVWF TRISB MOVLW 0x00 MOVWF TRISD BCF STATUS RP0 chon BANK0 loopl CLRF count reset biến count CALL check_key goi chương trình con check_key loop2 MOVF count W đưá gíá trị biến count váo thánh ghi W BTFSC PORTB LED1 kiếm trá trạng thái bit LED1 CALL tablế1 goi chương trình con táble1 nếu bit LED1 máng giá trị báng 1 BTFSC PORTB LED2 tiếp tuc kiếm trá bit LED2 nếu bit LED1 báng 0 CALL tablế2 tháo tác tương tự vơi các bit chỉ thị tráng thái các SW con lái BTFSC PORTB LED3 CALL tablế3 BTFSC CALL MOVWF PORTB LED4 tablề4 PORTD CALL dềlay INCF count 0 XORLW d 14 BTFSC STATUS Z GOTO loop1 INCF count 1 GOTO loop2 đưa giá trị từ thanh ghi W sau khi quay trở về từ bảng dữ liều ra PORTD gọi chương trình con delay tang gia trị biến count đề kiềm tra so sanh biến count vơi gia trị 14 kiềm tra cơ Z Zero nhay tơi labềl loopl nếu Z bang 1 gia trị biến count bang 14 tang gia trị biến count nếu Z bang 0 gia trị biền count khong bang 14 sau đo nhay tơi labềl loop2 tablế1 ADDWF PCL f RETLW b 10000000 RETLW b 01000000 RETLW b 00100000 RETLW b 00010000 RETLW b 00001000 RETLW b 00000100 RETLW b 00000010 RETLW b 00000001 RETLW b 00000010 RETLW b 00000100 RETLW b 00001000 RETLW b 00010000 RETLW b 00100000 RETLW b 01000000 cac bang dữ liều dung cho phan dịch LED tablề2 ADDWF PCL f RETLW b 01111111 RETLW b 10111111 RETLW b 11011111 RETLW b 11101111 RETLW b 11110111 RETLW b 11111011 RETLW b 11111101 RETLW b 11111110 RETLW b 11111101 RETLW b 11111011 RETLW b 11110111 RETLW b 11101111 RETLW b 11011111 RETLW b 10111111 table3 ADDWF PCL f RETLW b 11000000 RETLW b 01100000 RETLW b 00110000 RETLW b 00011000 RETLW b 00001100