Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

code điều khiển Led 7 thanh

Code:

; a,b,c,d,e,f,g -> Port 2

; P3.0 -> LED1

; P3.1 -> LED2

; P3.2 -> LED3

; P3.3 -> LED4

ORG 0H ;bắt đầu từ địa chỉ 00h

MOV P3,#00H ;đưa cả port p3 về mức 0

MOV DPTR,#LED7SEG ;ghi LED7SEG vào DPTR

BEGIN:

MOV A,#1 ;gán 1 vào A

MOVC A,@A+DPTR ;đọc tại vị trí thứ 1 của DPTR lưu vào A

MOV 40H,A ;gán A vào ngăn nhớ 40H

MOV A,#2 ;tương tự như thế

MOVC A,@A+DPTR

MOV 41H,A

MOV A,#3

MOVC A,@A+DPTR

MOV 42H,A

MOV A,#4

MOVC A,@A+DPTR

MOV 43H,A

MOV A,#5

MOVC A,@A+DPTR

MOV 44H,A

LCALL DISPLAY ; gọi chương trình con hiển thị

SJMP BEGIN ;lặp lại BEGIN

DISPLAY: ; chương trình con hiển thị

; LED1

MOV P2,40H ; đọc ngăn nhớ 40H xuất ra portp2

SETB P3.0 ;setb p3.0 lên 1 để tích cực led 1 sáng

ACALL DELAY_25 ; gọi chương trình con delay để lưu sáng

CLR P3.0 ; clr p3.0 về 0 để chông hiện tượng bóng ma

; LED2 ; led 2 ->5 làm tương tự

MOV P2,41H

SETB P3.1

ACALL DELAY_25

CLR P3.1

; LED 3

MOV P2,42H

SETB P3.2

ACALL DELAY_25

CLR P3.2

; LED 4

MOV P2,43H

SETB P3.3

ACALL DELAY_25

CLR P3.3

; LED 5

MOV P2,44H

SETB P3.4

ACALL DELAY_25

CLR P3.4

RET

DELAY_25: PUSH 1 ; chương trình con tạo trễ

PUSH 0 ; cất dữ liệu vào ngăn xếp

MOV R1,#10 ;gán r1=10

LOOP1

MOV R0,#10 ;gán r0=10

LOOP: DJNZ R0,LOOP ;lăp 10 lần =2*10=20us

DJNZ R1,LOOP1 ;lặp 10 lần nữa = 2*20=400us

POP 0 ;lấy dữ liệu ra khỏi ngăn xếp

POP 1

RET

LED7SEG:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H

DB 88H,0C6H,86H,8EH,82H,89H

END

Bạn đang đọc truyện trên: Truyen247.Pro

Tags: