You are on page 1of 11

BI TH NGHIM S 3: LEFT AND RIGHT SCROLLING LEDs 3.

1:MC CH -Kim tra kh nng truy xut I/O ca thit b thng qua 1 led n bo hiu c mc ngoi v tr to bi phn mm. 3.2. Yu cu: - S dng c Kit PICDEM2 Plus - S dng c b cng c lp trnh MPLAB - Vit gi thut v chng trnh qut 4 led n t phi sang v t tri sang. - Nm cu trc phn cng ca PIC16F877A. 3.3 S khi chung:

B DAO NG

B X L TRUNG TM

OUTPUT

S nguyn l gin lc cho PIC16F877A OSC1 OSC2 RB0

PIC16f877A

RB1 RB2 RB3

Vcc GND

3.4 Xy dng gii thut: 3.4.1: Tnh ton tr 2s (DELAY) : Chu k dao ng ca thch anh t0 : t0 = f = 1/(4*106) 0 Thi gian thc hin xong mt lnh ti : ti = 4*t0. S dng thch anh 4Mhz, thi gian thc hin xong mt lnh l: ti = 4* Vy 2s = 8*250*(199 + 1)*5*1 s 3.4.2:Gii thut bng ngn ng gi: LSR: -Khi to portB -Khi to bit c bng 1 -Dch tri -Kim tra RB3,nu bng mt th quay li dch t u
1 = 1 s 4 *10 6
1

RSR: -Khi to portB -Khi to bit c bng 1 -Dch tri -Kim tra RB0,nu bng mt th quay li dch t u Delay:-Np gi tr vo count1,count2,count3,count4 -Gim lm lt cc gi tr ca count1,2,3,4 kim tra vi gi tr 0,nu bng 0 th tip tc gim thanh ghi tip theo. 3.4.2: S khi: LSR:

BT U SETUP PORTB SET BIT C DCH TRI PORTB DELAY


RB3=1

?
RSR:

BT U SETUP PORTB SET BIT C DCH PHI PORTB DELAY


RB0=1

DELAY:

DELAY COUNT1 COUNT2 COUNT3 COUNT4 8 250 199 1

GIM COUNT4
COUNT4 =0 ?

GIM COUNT3
COUNT3 =0 ?

GIM COUNT2
COUNT2 =0 ?

GIM COUNT1
COUNT1 =0 ?

RETURN

3.5:Chng tnh ASEMBLY: LSR: list p = 16f877a #include <P16F877A.INC> ORG 0X0000 GOTO START START CLRF PORTB BCF STATUS,RP1 BSF STATUS,RP0 CLRF TRISB BCF STATUS,RP0 BSF STATUS,C LEFT RLF PORTB,1 CALL DELAY BTFSS PORTB,3 GOTO LEFT GOTO START RSL: list p = 16f877a #include <P16F877A.INC> ORG 0X0000 GOTO START START CLRF PORTB BCF STATUS,RP1 BSF STATUS,RP0 CLRF TRISB BCF STATUS,RP0 BSF STATUS,C RIGHT RLF PORTB,1 CALL DELAY BTFSS PORTB,0 GOTO RIGHT GOTO START DELAY: list p = 16f877a #include <P16F877A.INC> COUNT1 EQU 0X20 COUNT2 EQU 0X21 COUNT3 EQU 0X22 COUNT4 EQU 0X23 ORG 0X0000 DELAY MOVLW D'8'

MOVWF COUNT1 LOOP2 MOVLW D'250 MOVWF COUNT2 LOOP1 MOVLW D'199' MOVWF COUNT3 LOOP0 MOVLW D'1' MOVWF COUNT4 DECFSZ COUNT4,1 GOTO $+2 DECFSZ COUNT3,1 GOTO LOOP0 DECFSZ COUNT2,1 GOTO LOOP1 DECFSZ COUNT1,1 GOTO LOOP2 END

BI TH NGHIM S 4: BUTTON CONTROL 4.1MC CH -Kim tra kh nng truy xut I/O ca thit b thng qua 1 led n bo hiu c mc ngoi v tr to bi phn mm. 4.2. Yu cu: - S dng c Kit PICDEM2 Plus - S dng c b cng c lp trnh MPLAB - Vit gii thut v chng trnh dng nt bm chuyn i cc ch qut 4 LED lm bi th nghim s 4. - Nm cu trc phn cng ca PIC16F877A. 4.3 S khi chung:

B DAO NG

B X L TRUNG TM INPUT

OUTPUT

S khi v s nguyn l gin lc cho PIC16F877A


- S khi:

- S nguyn l gin lc

4.4.Xy dng gii thut: 4.4.1. Gii thut bng ngn ng gi:
Khai bo cc thanh ghi cn dung: L EQU 0x20 H EQU 0x21

Chng trnh chnh:


Xa cc bits ca PORTB Chn bank 1 t 4 bits thp ca thanh ghi TRISB l output Set bit 4 ca TRISA l input Chn li bank 0 Nu nt RA4 c nhn + goto RSL Ngc li: goto LSR Quay li kim tra nt nhn Nu khng c nhn th s thc hin chng trnh ny Khi to TRISB ,PORTB, c nh C Dch tri sang phi bit Kim tra bit 3 ca PORTB c bng 1 cha ,nu cha th dch tip Sauk hi dch xong th kim tra li nt nhn Gi Delay Kim tra nt nhn nh hay cha ,nu cha nh th tip tc kim tra Nu nh th tip tuc thc hin khi to TRISB ,PORTB, c nh C Dch phi sang tri bit Kim tra bit 0 ca PORTB c bng 1 cha ,nu cha th dch tip

on chng trnh LSR: -

on chng trnh RSL:

- Sau khi dch xong th quay li kim tra nt nhn Chng trnh DISPLAY:
- Np W vo PORTB - Cho dng - INDEX=INDEX+1 - Np 0x07 vo W - W-INDEX - Kim tra c Z = 0? + Nu ng: Xa INDEX - Kim tra nt RA4 c nhn ? - Nu ng nhy ti LOOP1 - Ngc li nhy ti LOOP2

LU THUT TON: START Setup PORTB and PORTA

Switch bank 1 b11110000 into W Move W->TRISB Set TRISA,4 Switch bank 0

RA4=1 ? Khi to, Dich LSR RA4=0 ?

Khi to, Dich RSL

INDEX++

4.5. Vit chng trnh bng ngn ng Assembly:


LIST p=16f877a #include <p16f877a.inc> L EQU 0x20 H EQU 0x21 START clrf PORTB clrf PORTA bsf STATUS,RP0 movlw b'11110000' movwf TRISB BSF TRISA,4 bcf STATUS,RP0 LOOP btfsc PORTA,4 GOTO LSR GOTO RSL GOTO LOOP RET LSR
CLRF PORTB BCF STATUS,RP1 BSF STATUS,RP0 CLRF TRISB BCF STATUS,RP0 BSF STATUS,C LEFT RLF PORTB,1 CALL DELAY BTFSS PORTB,3 GOTO LEFT GOTO LOOP RET

RSL LOOP2 CALL DELAY BFTSS PORTA,4 GOTO LOOP2


CLRF PORTB BCF STATUS,RP1 BSF STATUS,RP0 CLRF TRISB BCF STATUS,RP0 BSF STATUS,C RIGHT

RRF PORTB,1 CALL DELAY BTFSS PORTB,0 GOTO RIGHT GOTO LOOP RET

DELAY movlw d'4' movwf L movlw d'25' movwf H LOOP3 DECFSZ L,F goto LOOP3 DECFSZ H,F goto LOOP3 return

You might also like