You are on page 1of 14

B

KHOA CNG NGH I NT MN I N T CNG NGHI P

TI LI U H NG D N TH NGHI M - TH C HNH

K. H TH NG I U KHI N TIMER/COUNTER.

A. M C CH: Th c hnh l p trnh ng d ng trn my tnh, bin d ch chng trnh, n p vo vi i u khi n v s d ng m hnh th nghi m ki m ch ng. i u khi n thi t b ngo i vi b ng cc port c a vi i u khi n. Tm hi u cc ch ho t ng c a Timer v Counter. Kh o st nguyn l ho t ng v phng php l p trnh i u khi n Timer v Counter. Thi t k cc ng d ng th c t c s d ng cc b nh th i gian (Timer) v cc b m s ki n (Counter).

B. YU C U: N m v ng t p l nh c a vi i u khi n MCS-51. N m v ng phng php v n hnh cc Timer v Counter c trong chip vi i u khi n. Bi t cch l p trnh Timer v Counter cc ch khc nhau, cch tnh ton cc kho ng th i gian nh th i mong mu n. Thi t k v i u khi n c cc ng d ng c s d ng Timer v Counter nh: ng h , b m s n ph m,

Gio trnh th c hnh vi x l.

Bin so n: Ph m Quang Tr

K. H TH NG I U KHI N TIMER/COUNTER. Bi 1: Chng trnh i u khi n m lin t c s l ng xung (0000 9999) c a vo chn T1 c a vi i u khi n v hi n th s l ng xung ny ln cc LED 7 o n (PULSE c n i v i chn T1, LED7 LED4 c n i v i Port0, SEL IN1 c n i v i Port1). 1 Trnh t ti n hnh th nghi m: 1.1 K t n i thi t b th nghi m. T t ngu n c p cho m hnh th nghi m. Dng dy bus 4 n i J64 (PORT1) kh i vi i u khi n v i J1 (SEL IN1) kh i LED 7 o n (ch l ta ch n i 4 bit th p c a J64 v i J1). Dng dy bus 8 n i J63 (PORT0 / DATA) kh i vi i u khi n v i J4 (7SEG IN MUL) kh i gi i m. Dng dy bus 1 n i J33 (PULSE) kh i t o xung v i J66 (PORT3 / FUNCTION) kh i vi i u khi n (ch l ta ch n i bit 5 (chn T1) c a J66 v J33 l i v i nhau). Dng dy bus 3 n i J113 (POWER) kh i t o xung v J110 (POWER) kh i LED 7 o n v i ngu n +5V kh i ngu n.
4
PORT 0

POWER

SEL IN2 SEL LED IN SEL IN1

LED 7 OAN
7SEG7 IN 7SEG6 IN 7SEG5 IN 7SEG4 IN

8
7SEG7 IN MUL

VI IEU KHIEN
POWER SW

PORT 3

TAO XUNG
1
POWER PULSE

PORT 2

20 PINS SELECT CHIP CLOCK OUT


P1.1 +5V +5V P1.0

A0..A7

1.2 S

nguyn l c a h th ng:
P1.3 1 +5V +5V P1.2

RP1 C2
33p 2 3 4 5 6 7 8 9 10K P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 AD0 38 AD1 37 AD2 36 AD3 35 AD4 34 AD5 33 AD6 32 AD7 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7

PORT 3
+5V

R2
1K

Q1
A1015

R3
1K

Q2
A1015

R11
1K

Q3
A1015

R12
1K

X1
12MHz

C1
33p

+5V 19

U1
XTAL1

R4 R5 R6 R7 R8 R9 R10
AD0 AD1 AD2 AD3 AD4 AD5 AD6 56 56 56 56 56 56 56 A B C D E F G

18

C3
10uF 9

XTAL2

A B C D E F G

A B C D E F G

A B C D E F G

A B C D E F G

RST

LED7

LED6

LED5

LED4

R1
10k 29 30 31 PSEN ALE EA

MA C H IE U KHIE N TIMER/COUNTER (E M XUNG)

P1.0 P1.1 P1.2 P1.3

1 2 3 4 5 6 7 8

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51

U1(P3.5/T1)

Gio trnh th c hnh vi x l.

Bin so n: Ph m Quang Tr

PORT 1
Q4
A1015

NGUON +5V

40 PINS

PORT 1

K. H TH NG I U KHI N TIMER/COUNTER. Bi 1: Chng trnh i u khi n m lin t c s l ng xung (0000 9999) c a vo chn T1 c a vi i u khi n v hi n th s l ng xung ny ln cc LED 7 o n (PULSE c n i v i chn T1, LED7 LED4 c n i v i Port0, SEL IN1 c n i v i Port1). 1.3 V lu gi i thu t v vi t chng trnh i u khi n.
K1 BEGIN
MAIN: KH I NG TIMER (COUNTER 1, MODE 1) (TMOD) = 50H XA COUNTER 1 (TH1/TL1) = 0000H CHO COUNTER HO T (TR1) = 1 MP1: CS NG

BCD4TO7SEG
(XEM CTC NY T I V D B6 M7I)

VNG D LI U CODE7SEG C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H

DISP7SEGMUL4
(XEM CTC NY T I V D B6 MBI)

XUNG M C (R7) = TH1 (R6) = TL1 BCD

DELAYLED
(XEM CTC NY T I V D B3.1 MBI)

G I CTC CHUY N I S BIN SANG S BIN16TOBCD

BIN16TOBCD
(XEM CTC NY T I PH N H NG D N C A V D K3)

G I CTC CHUY N I S BCD SANG M 7 O N BCD4TO7SEG G I CTC QUT - HI N TH DISP7SEGMUL4

DIV16TO8
(XEM CTC NY T I PH N H NG D N C A V D K3)

;*************************************************** ;CHUONG TRINH DIEU KHIEN TIMER/COUNTER DEM (0000 - 9999) VA HIEN THI XUNG TAI CHAN T1 ;*************************************************** ;KET NOI: PORT0 -> 7 SEGMENT (DP -> A) ; PORT1 -> SELECT LED ; PULSE -> T1 PIN ;*************************************************** ORG 00H MAIN: MOV TMOD,#50H ;COUNTER 16 BIT (MODE 1) MOV TH1,#0 ;XOA COUNTER 1 MOV TL1,#0 SETB TR1 ;CHO PHEP COUNTER BAT DAU HOAT DONG MP1: MOV R7,TH1 ;CHUYEN SO XUNG DEM DUOC (TH1, TL1) RA HIEN THI MOV R6,TL1 ACALL BIN16TOBCD ;DOI MA BIN SANG MA BCD ACALL BCD4TO7SEG ;DOI MA BCD SANG MA 7 DOAN ACALL DISP7SEGMUL4 ;HIEN THI GIA TRI LEN LED SJMP MP1 ;*************************************************** BIN16TOBCD: ;CTC CHUYEN DOI SO BINARY 16 BIT (<= 9999) SANG SO BCD. PUSH ACC PUSH B MOV B,#10 ACALL DIV16TO8 ;LAY R7,R6 CHIA CHO 10 PUSH B ;CAT SO HANG DON VI MOV B,#10 ACALL DIV16TO8 ;TIEP TUC CHIA CHO 10 PUSH B ;CAT SO HANG CHUC MOV B,#10 MOV A,R6 DIV AB ;TIEP TUC CHIA CHO 10 PUSH B ;CAT SO HANG TRAM, ACC CHUA SO HANG NGAN SWAP A ;DUA SO HANG NGAN LEN 4 BIT CAO POP B ;LAY SO HANG TRAM TU STACK ORL A,B ;KET HOP SO HANG NGAN VA SO HANG TRAM MOV R7,A ;R7 = NGAN - TRAM POP ACC ;LAY SO HANG CHUC TU STACK SWAP A ;DUA SO HANG CHUC LEN 4 BIT CAO POP B ;LAY SO HANG DON VI TU STACK

Gio trnh th c hnh vi x l.

Bin so n: Ph m Quang Tr

K. H TH NG I U KHI N TIMER/COUNTER. Bi 1: Chng trnh i u khi n m lin t c s l ng xung (0000 9999) c a vo chn T1 c a vi i u khi n v hi n th s l ng xung ny ln cc LED 7 o n (PULSE c n i v i chn T1, LED7 LED4 c n i v i Port0, SEL IN1 c n i v i Port1).
ORL A,B ;KET HOP SO HANG CHUC VA SO HANG DON VI MOV R6,A ;R6 = CHUC - DON VI POP B POP ACC RET ;*************************************************** DIV16TO8: ;CTC CHIA SO BINARY 16 BIT CHO SO BINARY 8 BIT. PUSH 02H ;CAT THANH GHI R2 PUSH ACC ;CAT THANH GHI A MOV R2,#16 ;CHO PHEP DICH 16 LAN CLR A DIVIDE: CLR C XCH A,R6 ;DICH BIT 7 CUA R6 VAO RLC A ;CARRY, BIT 0 CUA R6 XCH A,R6 ;BANG 0. XCH A,R7 ;DICH BIT CARRY VAO RLC A ;BIT 0 CUA R7 XCH A,R7 RLC A ;DICH BIT 7 CUA R7 VAO A. CJNE A,B,NOT_EQUAL ;XEM SO BIT DA DICH >= SJMP A_GREATER_EQ_B ;SO CHIA CHUA ? NOT_EQUAL: JC BELOW ;N: THUONG SO = 0 TRONG R6. A_GREATER_EQ_B: SUBB A,B ;Y: SO DU CAT TRONG A. XCH A,R6 ORL A,#1 ;THUONG SO = 1 XCH A,R6 ;CAT TRONG R6 BELOW: DJNZ R2,DIVIDE ;DICH TIEP DEN 16 LAN. XCH A,B ;SAU 16 LAN DICH TA DUOC B = SO DU. POP ACC POP 02H RET ;*************************************************** BCD4TO7SEG: ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (2 SO BCD NEN). PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT BCD HANG TRAM VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG NGAN VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET ;VUNG CHUA MA 7 DOAN (0 -> 9) CODE7SEG: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;*************************************************** DISP7SEGMUL4: ;CTC QUET HIEN THI LED 7 DOAN (4 LED 7 DOAN).

Gio trnh th c hnh vi x l.

Bin so n: Ph m Quang Tr

K. H TH NG I U KHI N TIMER/COUNTER. Bi 1: Chng trnh i u khi n m lin t c s l ng xung (0000 9999) c a vo chn T1 c a vi i u khi n v hi n th s l ng xung ny ln cc LED 7 o n (PULSE c n i v i chn T1, LED7 LED4 c n i v i Port0, SEL IN1 c n i v i Port1).
PUSH PUSH MOV MOV DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LEM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END ACC 00H A,#0F7H R0,#63H ;CAT TAM THOI GIA TRI CAC THANH GHI ;MA QUET ;DIA CHI VUNG MA HIEN THI

1.4 Lu chng trnh v bin d ch chng trnh. 1.5 Ki m tra l i v hi u ch nh l i n u c. 1.6 G n chip vi i u khi n th nghi m vo socket tng ng trn kh i n p chip v b t ngu n cho kh i n p chip ho t ng. 1.7 N p chng trnh vo vi i u khi n. 1.8 S d ng vi i u khi n v a n p g n vo socket tng ng trn kh i vi i u khi n. 1.9 B t ngu n cho m hnh th nghi m. Quan st k t qu ho t ng, n u k t qu ho t ng khng ng yu c u c a bi th ph i quay l i ki m tra vi c k t n i m ch, hi u ch nh chng trnh v lm l i cc b c t b c 3 n b c 9. 2 Bi t p: (xem thm trong ph n h ng d n v ph n bi t p c a Bi 3)

Gio trnh th c hnh vi x l.

Bin so n: Ph m Quang Tr

K. H TH NG I U KHI N TIMER/COUNTER. Bi 2: Chng trnh i u khi n o t n s c a xung (0000 9999, n v l Hz) c a vo chn T1 c a vi i u khi n v hi n th t n s c a xung ny ln cc LED 7 o n (PULSE c n i v i chn T1, LED7 LED4 c n i v i Port0, SEL IN1 c n i v i Port1). 1 Trnh t ti n hnh th nghi m: 1.1 K t n i thi t b th nghi m. Qu trnh k t n i thi t b th nghi m tng t nh Bi 1. 1.2 S nguyn l c a h th ng:
P1.3 P1.2 P1.1 1

C2
33p

X1
12MHz

C1
33p

2 3 4 5 6 7 8 9 10K P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD

AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7

+5V

+5V

+5V

+5V

P1.0

RP1

+5V

R2
1K

Q1
A1015

R3
1K

Q2
A1015

R11
1K

Q3
A1015

R12
1K

Q4
A1015

+5V 19

U1
XTAL1

18

C3
10uF 9

XTAL2

RST

39 AD0 38 AD1 37 AD2 36 AD3 35 AD4 34 AD5 33 AD6 32 AD7 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17

R4 R5 R6 R7 R8 R9 R10
AD0 AD1 AD2 AD3 AD4 AD5 AD6 56 56 56 56 56 56 56 A B C D E F G

A B C D E F G

A B C D E F G

A B C D E F G

A B C D E F G

LED7

LED6

LED5

LED4

R1
10k 29 30 31 PSEN ALE EA

MA CH IEU KHIE N TIMER/COUNTER (O TA N SO XUNG)

P1.0 P1.1 P1.2 P1.3

1 2 3 4 5 6 7 8

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51

U1(P3.5/T1)

1.3 V lu

gi i thu t v vi t chng trnh i u khi n.

;*************************************************** ;CHUONG TRINH DIEU KHIEN TIMER/COUNTER DO TAN SO XUNG TAI CHAN T1 ;*************************************************** ;KET NOI: PORT0 -> 7 SEGMENT (DP -> A) PORT1 -> SELECT LED; PULSE -> T1 PIN ;*************************************************** ORG 00H ;DIEM NHAP RESET SJMP MAIN ORG 0BH ;DIEM NHAP ISR TIMER0 LJMP T0ISR ORG 30H ;DIEM NHAP CHUONG TRINH CHINH MAIN: MOV TMOD,#51H ;TIMER1: COUNTER 16 BIT (MODE 1), TIMER0: TIMER 16 BIT (MODE 1) MOV TH0,#HIGH(-50000) ;NAP GIA TRI THOI GIAN TRE 50 MS MOV TL0,#LOW(-50000) SETB TR0 ;CHO TIMER BAT DAU CHAY MOV IE,#82H ;CHO PHEP NGAT TIMER0 HOAT DONG MP1: MOV 40H,#0 ;NAP GIA TRI BIEN DEM SO LAN NGAT TIMER0 MOV R7,TH1 ;CHUYEN SO XUNG DEM DUOC (TH1, TL1) RA HIEN THI MOV R6,TL1 MOV TH1,#0 ;XOA COUNTER 1, CHUAN BI CHO LAN DEM XUNG TIEP THEO MOV TL1,#0 SETB TR1 ;COUNTER BAT DAU DEM ACALL BIN16TOBCD ;DOI MA BIN SANG MA BCD ACALL BCD4TO7SEG ;DOI MA BCD SANG MA 7 DOAN MP2: ACALL DISP7SEGMUL4 ;HIEN THI GIA TRI LEN LED MOV A,40H CJNE A,#20,MP2 ;KIEM TRA DU 20 LAN NGAT = 1S CLR TR1 ;DUNG COUNTER SAU 1S -> SO XUNG TRONG 1S = TAN SO XUNG SJMP MP1

Gio trnh th c hnh vi x l.

Bin so n: Ph m Quang Tr

K. H TH NG I U KHI N TIMER/COUNTER. Bi 2: Chng trnh i u khi n o t n s c a xung (0000 9999, n v l Hz) c a vo chn T1 c a vi i u khi n v hi n th t n s c a xung ny ln cc LED 7 o n (PULSE c n i v i chn T1, LED7 LED4 c n i v i Port0, SEL IN1 c n i v i Port1).
;*************************************************** BIN16TOBCD: ;CTC CHUYEN DOI SO BINARY 16 BIT (<= 9999) SANG SO BCD. PUSH ACC PUSH B MOV B,#10 ACALL DIV16TO8 ;LAY R7,R6 CHIA CHO 10 PUSH B ;CAT SO HANG DON VI MOV B,#10 ACALL DIV16TO8 ;TIEP TUC CHIA CHO 10 PUSH B ;CAT SO HANG CHUC MOV B,#10 MOV A,R6 DIV AB ;TIEP TUC CHIA CHO 10 PUSH B ;CAT SO HANG TRAM, ACC CHUA SO HANG NGAN SWAP A ;DUA SO HANG NGAN LEN 4 BIT CAO POP B ;LAY SO HANG TRAM TU STACK ORL A,B ;KET HOP SO HANG NGAN VA SO HANG TRAM MOV R7,A ;R7 = NGAN - TRAM POP ACC ;LAY SO HANG CHUC TU STACK SWAP A ;DUA SO HANG CHUC LEN 4 BIT CAO POP B ;LAY SO HANG DON VI TU STACK ORL A,B ;KET HOP SO HANG CHUC VA SO HANG DON VI MOV R6,A ;R6 = CHUC - DON VI POP B POP ACC RET ;*************************************************** DIV16TO8: ;CTC CHIA SO BINARY 16 BIT CHO SO BINARY 8 BIT. PUSH 02H ;CAT THANH GHI R2 PUSH ACC ;CAT THANH GHI A MOV R2,#16 ;CHO PHEP DICH 16 LAN CLR A DIVIDE: CLR C XCH A,R6 ;DICH BIT 7 CUA R6 VAO RLC A ;CARRY, BIT 0 CUA R6 XCH A,R6 ;BANG 0. XCH A,R7 ;DICH BIT CARRY VAO RLC A ;BIT 0 CUA R7 XCH A,R7 RLC A ;DICH BIT 7 CUA R7 VAO A. CJNE A,B,NOT_EQUAL ;XEM SO BIT DA DICH >= SJMP A_GREATER_EQ_B ;SO CHIA CHUA ? NOT_EQUAL: JC BELOW ;N: THUONG SO = 0 TRONG R6. A_GREATER_EQ_B: SUBB A,B ;Y: SO DU CAT TRONG A. XCH A,R6 ORL A,#1 ;THUONG SO = 1 XCH A,R6 ;CAT TRONG R6 BELOW: DJNZ R2,DIVIDE ;DICH TIEP DEN 16 LAN. XCH A,B ;SAU 16 LAN DICH TA DUOC B = SO DU. POP ACC POP 02H RET ;*************************************************** BCD4TO7SEG: ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (2 SO BCD NEN). PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN

MOV A,R6 ANL A,#0FH MOVC A,@A+DPTR

;LAY SO BCD CAN GIAI MA ;XOA 4 BIT CAO ;LAY MA 7 DOAN TUONG UNG

Gio trnh th c hnh vi x l.

Bin so n: Ph m Quang Tr

K. H TH NG I U KHI N TIMER/COUNTER. Bi 2: Chng trnh i u khi n o t n s c a xung (0000 9999, n v l Hz) c a vo chn T1 c a vi i u khi n v hi n th t n s c a xung ny ln cc LED 7 o n (PULSE c n i v i chn T1, LED7 LED4 c n i v i Port0, SEL IN1 c n i v i Port1).
MOV MOV ANL SWAP MOVC MOV MOV ANL MOVC MOV MOV ANL SWAP MOVC MOV 60H,A A,R6 A,#0F0H A A,@A+DPTR 61H,A A,R7 A,#0FH A,@A+DPTR 62H,A A,R7 A,#0F0H A A,@A+DPTR 63H,A ;CAT BCD HANG DON VI VAO O NHO ;LAY SO BCD CAN GIAI MA ;XOA 4 BIT THAP ;HOAN CHUYEN CAO - THAP ;LAY MA 7 DOAN TUONG UNG ;CAT BCD HANG CHUC VAO O NHO ;LAY SO BCD CAN GIAI MA ;XOA 4 BIT CAO ;LAY MA 7 DOAN TUONG UNG ;CAT BCD HANG TRAM VAO O NHO ;LAY SO BCD CAN GIAI MA ;XOA 4 BIT THAP ;HOAN CHUYEN CAO - THAP ;LAY MA 7 DOAN TUONG UNG ;CAT BCD HANG NGAN VAO O NHO

POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;*************************************************** DISP7SEGMUL4: ;CTC QUET HIEN THI LED 7 DOAN (4 LED 7 DOAN). PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#0F7H ;MA QUET MOV R0,#63H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LEM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;*************************************************** T0ISR: ;ISR TIMER0 - 50MS CLR TR0 CLR TF0 MOV TH0,#HIGH(-50000) ;NAP GIA TRI THOI GIAN TRE 50 MS MOV TL0,#LOW(-50000) INC 40H ;TANG BIEN DEM SO LAN NGAT - 1 LAN = 50MS SETB TR0 RETI END

Gio trnh th c hnh vi x l.

Bin so n: Ph m Quang Tr

K. H TH NG I U KHI N TIMER/COUNTER. Bi 2: Chng trnh i u khi n o t n s c a xung (0000 9999, n v l Hz) c a vo chn T1 c a vi i u khi n v hi n th t n s c a xung ny ln cc LED 7 o n (PULSE c n i v i chn T1, LED7 LED4 c n i v i Port0, SEL IN1 c n i v i Port1).

1.4 Th c hi n l n l t cc b c t 1.3 n 1.8 tng t nh bi trn. 2 Bi t p: (xem thm trong ph n h ng d n v ph n bi t p c a Bi 3)

Gio trnh th c hnh vi x l.

10

Bin so n: Ph m Quang Tr

K. H TH NG I U KHI N TIMER/COUNTER. Bi 3: Chng trnh i u khi n o r ng c a xung ( n v l ms) c a vo chn INT0 c a vi i u khi n v hi n th r ng c a xung ny ln cc LED 7 o n (PULSE c n i v i chn INT0, LED7 LED4 c n i v i Port0, SEL IN1 c n i v i Port1). 1 Trnh t ti n hnh th nghi m: 1.1 K t n i thi t b th nghi m. T t ngu n c p cho m hnh th nghi m. Dng dy bus 4 n i J64 (PORT1) kh i vi i u khi n v i J1 (SEL IN1) kh i LED 7 o n (ch l ta ch n i 4 bit th p c a J64 v i J1). Dng dy bus 8 n i J63 (PORT0 / DATA) kh i vi i u khi n v i J4 (7SEG IN MUL) kh i gi i m. Dng dy bus 1 n i J33 (PULSE) kh i t o xung v i J66 (PORT3 / FUNCTION) kh i vi i u khi n (ch l ta ch n i vo bit 2 (chn INT0) c a J66). Dng dy bus 3 n i J113 (POWER) kh i t o xung v J110 (POWER) kh i LED 7 o n v i ngu n +5V kh i ngu n.
4
PORT 0 PORT 1

PORT 3

40 PINS

POWER

PULSE

PORT 2

20 PINS
P1.2 P1.1

1.2 S

nguyn l c a h th ng:
P1.3 1 +5V +5V +5V +5V P1.0

RP1 C2
33p 2 3 4 5 6 7 8 9 10K P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 AD0 38 AD1 37 AD2 36 AD3 35 AD4 34 AD5 33 AD6 32 AD7 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7

PORT 3

PORT 1

+5V

R2
1K

Q1
A1015

R3
1K

Q2
A1015

R11
1K

Q3
A1015

R12
1K

Q4
A1015

X1
12MHz

C1
33p

+5V 19

U1
XTAL1

R4 R5 R6 R7 R8 R9 R10
AD0 AD1 AD2 AD3 AD4 AD5 AD6 56 56 56 56 56 56 56 A B C D E F G

18

C3
10uF 9

XTAL2

A B C D E F G

A B C D E F G

A B C D E F G

A B C D E F G

RST

LED7

LED6

LED5

LED4

R1
10k 29 30 31 PSEN ALE EA

MA CH IE U KHIE N TIMER/COUNTER (O O RO NG XUNG)

P1.0 P1.1 P1.2 P1.3

1 2 3 4 5 6 7 8

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51

U1(P3.5/T1)

1.3 V lu

gi i thu t v vi t chng trnh i u khi n. n 1.8 tng t nh bi trn. 11 Bin so n: Ph m Quang Tr

1.4 Th c hi n l n l t cc b c t 1.3 Gio trnh th c hnh vi x l.

K. H TH NG I U KHI N TIMER/COUNTER. Bi 3: Chng trnh i u khi n o r ng c a xung ( n v l ms) c a vo chn INT0 c a vi i u khi n v hi n th r ng c a xung ny ln cc LED 7 o n (PULSE c n i v i chn INT0, LED7 LED4 c n i v i Port0, SEL IN1 c n i v i Port1). 2 Bi t p: Bi 1: Hy vi t chng trnh i u khi n t o xung 1 Hz (s d ng Timer) t i chn P1.0 v hi n th m c logic t i chn ny ln LED. T l a ch n phng php k t n i LED. Bi 2: Hy vi t chng trnh i u khi n t o xung 3 Hz (s d ng Timer) t i chn P1.0 v hi n th m c logic t i chn ny ln LED. T l a ch n phng php k t n i LED. Bi 3: Hy vi t chng trnh i u khi n t o xung 1 Hz ho c 3 Hz (s d ng Timer) t i chn P1.0 ty thu c vo ta nh n hay nh nt nh n KEY0 v hi n th m c logic t i chn ny ln LED. T l a ch n phng php k t n i LED v nt nh n. Bi 4: Hy vi t chng trnh i u khi n m lin t c s l ng xung c a vo chn T0 c a vi i u khi n v hi n th s l ng xung ny ln cc LED 7 o n. T l a ch n phng php k t n i thi t b t o xung v cc LED 7 o n. Bi 5: Hy vi t chng trnh i u khi n o t n s c a xung ( n v tnh l Hz) c a vo chn T0 c a vi i u khi n v hi n th gi tr t n s ln LED 7 o n. T l a ch n phng php k t n i thi t b t o xung v cc LED 7 o n. Bi 6: Hy vi t chng trnh i u khi n o r ng xung ( n v tnh l ms) c a vo chn T0 c a vi i u khi n v hi n th gi tr r ng xung ln LED 7 o n. T l a ch n phng php k t n i thi t b t o xung v cc LED 7 o n. Bi 7: Th c hi n thay i t n s c a thi t b t o xung (b ng cch i u ch nh bi n tr trn thi t b ) ho c thay i ngu n t o xung khc vo. Th c hi n l i cc bi t p trn v quan st trn LED 7 o n nh n xt s thay i c a chng trnh. Bi 8: Sinh vin t mnh suy ngh v pht tri n thm chng trnh. H ng d n: Ch Counter: o S d ng Timer1 ch 1 counter. o Khi cho Timer1 ch y, c lin t c cc gi tr c a TH1 v TL1. o i qua m BCD nn v hi n th ln LED 7 o n. ot ns : o Vi t chng trnh m s xung trong 1s v hi n th ln LED 7 o n (trong khi th s m m v n hi n th gi tr t n s tr c ). o r ng xung (ch Gate = 1): o Vi t chng trnh s d ng Timer0 ch Gate = 1. i i m th khng hi n

Ch

Ch

i s nh phn 16 bit thnh m BCD nn: o Cng vi c th c hi n tng t nh i v i s nh phn 8 bit l l n l t chia gi tr c n chuy n cho 10. Tuy nhin, c n ph i t o ra m t chng trnh con th c hi n vi c chia s 16 bit cho 10 (v gi tr c n lc ny l s 16 bit). o Chng trnh m u:
;*************************************************** ;CTC CHUYEN DOI SO BINARY 16 BIT (<= 9999) SANG SO BCD. ;*************************************************** ;NAME: BIN16TOBCD. ;INPUT: R7 = SO BIN 16 BIT (BYTE CAO). ; R6 = SO BIN 16 BIT (BYTE THAP). ;OUTPUT: R7,R6 = SO BCD (NGN-TRAM - CHUC - DON VI). ;*************************************************** BIN16TOBCD: ;CTC CHUYEN DOI SO BINARY 16 BIT (<= 9999) SANG SO BCD. PUSH ACC PUSH B MOV B,#10 ACALL DIV16TO8 ;LAY R7,R6 CHIA CHO 10 PUSH B ;CAT SO HANG DON VI MOV B,#10 ACALL DIV16TO8 ;TIEP TUC CHIA CHO 10 PUSH B ;CAT SO HANG CHUC MOV B,#10 MOV A,R6 DIV AB ;TIEP TUC CHIA CHO 10

Gio trnh th c hnh vi x l.

12

Bin so n: Ph m Quang Tr

K. H TH NG I U KHI N TIMER/COUNTER. Bi 3: Chng trnh i u khi n o r ng c a xung ( n v l ms) c a vo chn INT0 c a vi i u khi n v hi n th r ng c a xung ny ln cc LED 7 o n (PULSE c n i v i chn INT0, LED7 LED4 c n i v i Port0, SEL IN1 c n i v i Port1).
PUSH B ;CAT SO HANG TRAM, ACC CHUA SO HANG NGAN SWAP A ;DUA SO HANG NGAN LEN 4 BIT CAO POP B ;LAY SO HANG TRAM TU STACK ORL A,B ;KET HOP SO HANG NGAN VA SO HANG TRAM MOV R7,A ;R7 = NGAN - TRAM POP ACC ;LAY SO HANG CHUC TU STACK SWAP A ;DUA SO HANG CHUC LEN 4 BIT CAO POP B ;LAY SO HANG DON VI TU STACK ORL A,B ;KET HOP SO HANG CHUC VA SO HANG DON VI MOV R6,A ;R6 = CHUC - DON VI POP B POP ACC RET ;*************************************************** ;CTC THUC HIEN PHEP CHIA SO BINARY 16 BIT CHO SO BINARY 8 BIT. ;*************************************************** ;NAME: DIV16TO8. ;INPUT: R7 = SO BIN 16 BIT (BYTE CAO) SO BI CHIA. ; R6 = SO BIN 16 BIT (BYTE THAP) SO BI CHIA. ; B = SO BIN 8 BIT SO CHIA. ;OUTPUT: R7 = THUONG SO (BYTE CAO) C A PHP CHIA. ; R6 = THUONG SO (BYTE THAP) C A PHP CHIA. ; B = SO DU CUA PHEP CHIA. ;*************************************************** DIV16TO8: ;CTC CHIA SO BINARY 16 BIT CHO SO BINARY 8 BIT. PUSH 02H ;CAT THANH GHI R2 PUSH ACC ;CAT THANH GHI A MOV R2,#16 ;CHO PHEP DICH 16 LAN CLR A DIVIDE: CLR C XCH A,R6 ;DICH BIT 7 CUA R6 VAO RLC A ;CARRY, BIT 0 CUA R6 XCH A,R6 ;BANG 0. XCH A,R7 ;DICH BIT CARRY VAO RLC A ;BIT 0 CUA R7 XCH A,R7 RLC A ;DICH BIT 7 CUA R7 VAO A. CJNE A,B,NOT_EQUAL ;XEM SO BIT DA DICH >= SJMP A_GREATER_EQ_B ;SO CHIA CHUA ? NOT_EQUAL: JC BELOW ;N: THUONG SO = 0 TRONG R6. A_GREATER_EQ_B: SUBB A,B ;Y: SO DU CAT TRONG A. XCH A,R6 ORL A,#1 ;THUONG SO = 1 XCH A,R6 ;CAT TRONG R6 BELOW: DJNZ R2,DIVIDE ;DICH TIEP DEN 16 LAN. XCH A,B ;SAU 16 LAN DICH TA DUOC B = SO DU. POP ACC POP 02H RET ;***************************************************

Lu

Gio trnh th c hnh vi x l.

13

Bin so n: Ph m Quang Tr

K. H TH NG I U KHI N TIMER/COUNTER. Bi 3: Chng trnh i u khi n o r ng c a xung ( n v l ms) c a vo chn INT0 c a vi i u khi n v hi n th r ng c a xung ny ln cc LED 7 o n (PULSE c n i v i chn INT0, LED7 LED4 c n i v i Port0, SEL IN1 c n i v i Port1).
BIN16TOBCD
NAME: INPUT: BIN16TOBCD. R7 = S NH PHN C N CHUY N I (BYTE CAO). R6 = S NH PHN C N CHUY N I (BYTE TH P) OUTPUT: R7 = HNG NGN/TRM C A S BCD. R6 = HNG CH C/ N V C A S BCD. MODE: CHUY N I S NH PHN 16 BIT THNH S BCD C GI TR TRONG KHO NG (0 9999).

BIN16TOBCD: C T T M GI TR C A ACC, B VO STACK N P H NG S CHO PHP CHIA (B) = 10 G I CTC CHIA S NH PHN 16 BIT CHO S NH PHN 8 BIT DIV16TO8 C T T M GI TR C A HNG (B) VO STACK N V

DIV16TO8
NAME: INPUT: DIV16TO8. R7 = S NH PHN 16 BIT (BYTE CAO) - S B CHIA. R6 = S NH PHN 16 BIT (BYTE TH P) - S B CHIA. B = S NH PHN 8 BIT - S CHIA. OUTPUT: R7 = THNG S (BYTE CAO) C A PHP CHIA. R6 = THNG S (BYTE TH P) C A PHP CHIA. B = S D C A PHP CHIA. MODE: PHP CHIA S NH PHN 16 BIT CHO S NH PHN 8 BIT (PHNG PHP D CH BIT V TR ).

N P H NG S CHO PHP CHIA (B) = 10 G I CTC CHIA S NH PHN 16 BIT CHO S NH PHN 8 BIT DIV16TO8 C T T M GI TR C A HNG CH C (B) VO STACK N P H NG S CHO PHP CHIA (B) = 10 N PS NH PHN C N CHUY N (A) = (R6) I

DIV16TO8: C T T M GI TR C A ACC, R2 VO STACK N PS L N D CH BIT (R2) = 16

XA THANH GHI A (A) = 00H DIVIDE: XA C CY (BIT TRUNG GIAN) (CY) = 0 D CH TRI 16 BIT THANH GHI R7-R6 (C CY MSB V LSB 0) XCH A,R6 RLC A XCH A,R6 XCH A,R7 RLC A XCH A,R7 D CH MSB VO THANH GHI A RLC A
SO SNH TH C HI N TR C A PHP CHIA (A) (B) (B) (A) (B)

TCH HNG NGN V HNG TRM DIV AB (A) : 10 (A) = HNG NGN (B) = HNG TRM C T T M GI TR C A HNG TRM (B) VO STACK I V TR GI TR C A HNG NGN TRONG BYTE SWAP A (A) = 0XH / X: GI TR C A HNG NGN I V TR THNH (A) = X0H / X: GI TR C A HNG NGN L Y L I GI TR C A HNG TRM (B) T STACK K T H P GI TR C A HNG NGN V HNG TRM VO TRONG BYTE (A) = (A) OR (B) (A) = X0H / X: GI TR C A HNG NGN (B) = 0YH / Y: GI TR C A HNG TRM K T H P THNH (A) = XYH LU GI TR HNG NGN/TRM C A S (R7) = (A) L Y L I GI TR C A HNG CH C (A) T STACK I V TR GI TR C A HNG CH C TRONG BYTE SWAP A (A) = 0XH / X: GI TR C A HNG CH C I V TR THNH (A) = X0H / X: GI TR C A HNG CH C L Y L I GI TR C A HNG N V (B) T STACK K T H P GI TR C A HNG CH C V HNG N V VO TRONG BYTE (A) = (A) OR (B) (A) = X0H / X: GI TR C A HNG CH C (B) = 0YH / Y: GI TR C A HNG N V K T H P THNH (A) = XYH LU GI TR HNG CH C/ N V C A S (R6) = (A) L Y L I GI TR CHO ACC, B T STACK BCD BCD

(A) < (B)

L Y PH N TRCH RA T S B CHIA (A) TR CHO S CHIA (B) (A) = (A) (B) - PH N D PH N THNG B NG 1 LSB 1 BELOW: GIM S L N D CH BIT

CHA D CH XONG 16 BIT

S CHUY N S D VO THANH GHI B (B) (A)

THNG S S D B

R7-R6

L Y L I GI TR CHO ACC, R2 T STACK

RET

RET

Gio trnh th c hnh vi x l.

14

Bin so n: Ph m Quang Tr

You might also like