You are on page 1of 3

BÀI TẬP VI XỬ LÝ

SV : Nguyễn Bá Cường
Lớp : 06DT4
Nhóm : 10B
PIC16F877A giao tiếp với thiết bị ngoại vi.

Chương trình hiển thị 1 số trên 2 LED 7 đoạn.


Ta dùng LED 7 đoạn là loại Anode chung.
Em nối sơ đồ mạch như sau :

Ta nối sơ đồ chân cụ thể như sau :


Pin a nối vào pin RD0
Pin b nối vào pin RD1
Pin c nối vào pin RD2
Pin d nối vào pin RD3
Pin e nối vào pin RD4
Pin f nối vào pin RD5
Pin g nối vào pin RD6
Pin dp nối vào pin RD7
Sử dụng 2 BJT (chọn con A1015) hoạt động như các công tắc để chọn cho
LED7 hoạt động. Các công tắc này sẻ được điều khiển bởi PORTB. Ta nối chân
của BJT như sau:
Chân B của Q1 nối vào RB1 (điều khiển LED hàng chục).
Chân B của Q2 nối vào RB0 (điều khiển LED hàng đơn vị).
Khi port điều khiển ở mức logic 0,có dòng đổ từ cực E sang cực B của BJT làm
cho BJT dẫn bão hòa.Khi đó nguồn cung cấp được nối với LED7.

Chương trình hiển thị một số trên 2 led7:

;chuong trinh hien thi so 79 tren 2 Led7 doan


Processor 16f877a
Include <p16f877a.inc>
__CONFIG _CP_OFF &_WDT_OFF &_BODEN_OFF &_PWRTE_ON &_XT_OSC
&_WRT_OFF &_LVP_ON &_CPD_OFF

count1 EQU 0x20 ; cac tham so su dung cho chuong trinh con
counta EQU 0x21 ; delay_1ms
countb EQU 0x22

ORG 0x000
GOTO start
start
BCF STATUS,RP1
BSF STATUS,RP0 ; chon BANK1
MOVLW 0x000
MOWF TRISD ; PORTD <- OUTPUT
MOVLW 0x000
MOWF TRISB ; PORTB <- OUTPUT
BCF STATUS,RP0 ; chon BANK0
CLRF PORTB
CLRF PORTD
loop
MOVLW 0xF8 ; hien thi so 7 hang chuc
MOVWF PORTD
MOVLW b’11111101’ ; cho Q1 dan, Q2 tat
MOVWF PORTB
CALL delay_1ms

MOVLW 0x90 ; hien thi so 9 hang don vi


MOVWF PORTD
MOVLW b’11111110’ ; cho Q1 tat, Q2 dan
MOVWF PORTB
CALL delay_1ms

GOTO loop
delay_1ms
MOVLW d’1’
MOVWF count1
d1 MOVLW 0XC7 ; 199
MOVWF counta ;
MOVLW 0x01
MOVWF countb
delay_0
DECFSZ counta,1
GOTO $+2
DECFSZ counta,1
GOTO delay_0
DECFSZ count1,1
GOTO d1
RETURN
END

You might also like