1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

vi xử lý hệ thống điều khiển bộ đếm

14 720 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 621,72 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

MỤC ĐÍCH: • Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.. • Khảo sát nguyên lý hoạt động và phươ

Trang 1

KHOA CÔNG NGHỆ ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP TÀI LIỆU HƯỚNG DẪN

THÍ NGHIỆM - THỰC HÀNH

Trang 2

K HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER

A MỤC ĐÍCH:

• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng

• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển

• Tìm hiểu các chế độ hoạt động của Timer và Counter

• Khảo sát nguyên lý hoạt động và phương pháp lập trình điều khiển Timer và Counter

• Thiết kế các ứng dụng thực tế có sử dụng các bộ định thời gian (Timer) và các bộ đếm sự kiện (Counter)

B YÊU CẦU:

• Nắm vững tập lệnh của vi điều khiển MCS-51

• Nắm vững phương pháp vận hành các Timer và Counter có trong chip vi điều khiển

• Biết cách lập trình Timer và Counter ở các chế độ khác nhau, cách tính toán các khoảng thời gian định thời mong muốn

• Thiết kế và điều khiển được các ứng dụng có sử dụng Timer và Counter như: đồng hồ, bộ đếm sản phẩm,

Trang 3

K HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER

Bài 1: Chương trình điều khiển đếm liên tục số lượng xung (0000 – 9999) được đưa vào chân T1 của vi điều

khiển và hiển thị số lượng xung này lên các LED 7 đoạn (PULSE được nối với chân T1, LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1)

1 Trình tự tiến hành thí nghiệm:

1.1 Kết nối thiết bị thí nghiệm

• Tắt nguồn cấp cho mơ hình thí nghiệm

• Dùng dây 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)

• Dùng dây 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ã

• Dùng dây 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 (chân T1) của J66 và J33 lại với nhau)

• Dùng dây 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

LED 7 ĐOẠN 7SEG7 IN

SEL IN2

7SEG6 IN 7SEG5 IN 7SEG4 IN 7SEG7 INMUL

A0 A7

CHIP CLOCK OUT

POWER SW

8

NGUỒN

+5V

3

TẠO XUNG

3

1

1.2 Sơ đồ nguyên lý của hệ thống:

AD7

AD0

AD0 AD2 AD4 AD6

AD7 AD5 AD3 AD1

A C E F G

A C E F G

AD0 A AD1 B AD2 C AD3 D AD4 E AD5 F AD6 G

A C E F G

A C E F G

P1.3

P1.2

P1.0

XTAL2 18

XTAL1 19

ALE 30

EA 31

PSEN 29

RST 9

P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32

P1.0 1

P1.1 2

P1.2 3

P1.3 4

P1.4 5

P1.5 6

P1.6 7

P1.7 8

P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28

P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27

U1

AT89C51

C1

33p

C2

33p

X1

12MHz

2 4 6 8

1

RP1

10K

MẠCH ĐIỀU KHIỂN TIMER/COUNTER (ĐẾM XUNG)

LED7

Q1

A1015 +5V

LED6

Q2

A1015

+5V

R2

1K

R3

1K

R4

56

R5

56

R6

56

R7

56

R8

56

R9

56

R10

56

LED5

Q3

A1015 +5V

LED4

Q4

A1015

+5V

R11

1K

R12

1K

C3

10uF

R1

10k

+5V

A B

U1(P3.5/T1)

Trang 4

K HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER

Bài 1: Chương trình điều khiển đếm liên tục số lượng xung (0000 – 9999) được đưa vào chân T1 của vi điều

khiển và hiển thị số lượng xung này lên các LED 7 đoạn (PULSE được nối với chân T1, LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1)

1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển

BCD4TO7SEG

(XEM CTC NÀY TẠI VÍ DỤ B6 M7I)

DISP7SEGMUL4

(XEM CTC NÀY TẠI VÍ DỤ B6 MBI)

DELAYLED

(XEM CTC NÀY TẠI VÍ DỤ B3.1 MBI)

VÙNG DỮ LIỆU CODE7SEG C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H

KHỞI ĐỘNG TIMER (COUNTER 1, MODE 1) (TMOD) = 50H XÓA COUNTER 1 (TH1/TL1) = 0000H CHO COUNTER HOẠT ĐỘNG

(TR1) = 1

MAIN:

MP1:

ĐỌC SỐ XUNG ĐẾM ĐƯỢC

(R7) = TH1 (R6) = TL1 GỌI CTC CHUYỂN ĐỔI SỐ BIN SANG SỐ BCD

BIN16TOBCD GỌI CTC CHUYỂN ĐỔI SỐ BCD SANG MÃ 7 ĐOẠN

BCD4TO7SEG GỌI CTC QUÉT - HIỂN THỊ DISP7SEGMUL4

BIN16TOBCD

(XEM CTC NÀY TẠI PHẦN HƯỚNG DẪN CỦA VÍ DỤ K3)

DIV16TO8

(XEM CTC NÀY 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

;***************************************************

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 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

MOV B ,#10

ACALL DIV16TO8 ;TIEP TUC CHIA CHO 10

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

Trang 5

K HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER

Bài 1: Chương trình điều khiển đếm liên tục số lượng xung (0000 – 9999) được đưa vào chân T1 của vi điều

khiển và hiển thị số lượng xung này lên các LED 7 đoạn (PULSE được nối với chân 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

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

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).

Trang 6

K HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER

Bài 1: Chương trình điều khiển đếm liên tục số lượng xung (0000 – 9999) được đưa vào chân T1 của vi điều

khiển và hiển thị số lượng xung này lên các LED 7 đoạn (PULSE được nối với chân T1, LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1)

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

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

1.4 Lưu chương trình và biên dịch chương trình

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 vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động

1.7 Nạp chương trình vào vi điều khiển

1.8 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển

1.9 Bật nguồn cho mô hình thí nghiệm Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9

2 Bài tập:

(xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)

Trang 7

K HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER

Bài 2: Chương trình điều khiển đo tần số của xung (0000 – 9999, đơn vị là Hz) được đưa vào chân T1 của vi

điều khiển và hiển thị tần số của xung này lên các LED 7 đoạn (PULSE được nối với chân T1, LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1)

1 Trình tự tiến hành thí nghiệm:

1.1 Kết nối thiết bị thí nghiệm

• Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1

1.2 Sơ đồ nguyên lý của hệ thống:

AD7

AD0

AD0 AD2 AD4 AD6

AD7 AD5 AD3 AD1

A C E F G

A C E F G

AD0 A AD1 B AD2 C AD3 D AD4 E AD5 F AD6 G

A C E F G

A C E F G

P1.3

P1.2

P1.0

XTAL2 18

XTAL1 19

ALE 30

EA 31

PSEN 29

RST 9

P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32

P1.0 1

P1.1 2

P1.2 3

P1.3 4

P1.4 5

P1.5 6

P1.6 7

P1.7 8

P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28

P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27

U1

AT89C51

C1

33p

C2

33p

X1

12MHz

2 4 6 8

1

RP1

10K

MẠCH ĐIỀU KHIỂN TIMER/COUNTER (ĐO TẦN SỐ XUNG) LED7

Q1

A1015 +5V

LED6

Q2

A1015

+5V

R2

1K

R3

1K

R4

56

R5

56

R6

56

R7

56

R8

56

R9

56

R10

56

LED5

Q3

A1015 +5V

LED4

Q4

A1015

+5V

R11

1K

R12

1K

C3

10uF

R1

10k

+5V

A B

U1(P3.5/T1)

1.3 Vẽ lưu đồ giải thuật và viết chương trình đ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)

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

Trang 8

K HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER

Bài 2: Chương trình điều khiển đo tần số của xung (0000 – 9999, đơn vị là Hz) được đưa vào chân T1 của vi

điều khiển và hiển thị tần số của xung này lên các LED 7 đoạn (PULSE được nối với chân 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

MOV B ,#10

ACALL DIV16TO8 ;TIEP TUC CHIA CHO 10

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

XCH A , R7

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

Trang 9

K HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER

Bài 2: Chương trình điều khiển đo tần số của xung (0000 – 9999, đơn vị là Hz) được đưa vào chân T1 của vi

điều khiển và hiển thị tần số của xung này lên các LED 7 đoạn (PULSE được nối với chân T1, LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1)

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

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

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

Trang 10

K HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER

Bài 2: Chương trình điều khiển đo tần số của xung (0000 – 9999, đơn vị là Hz) được đưa vào chân T1 của vi

điều khiển và hiển thị tần số của xung này lên các LED 7 đoạn (PULSE được nối với chân 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 các bước từ 1.3 đến 1.8 tương tự như bài trên

2 Bài tập:

(xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)

Ngày đăng: 09/05/2014, 21:13

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm