Điều khiển nhiều led 7 thanh

Một phần của tài liệu Điện từ chương trình điều khiển LED (Trang 30 - 38)

2. Thực hành điều khiển các thiết bị vào ra

2.3.6Điều khiển nhiều led 7 thanh

Trong phần này bài học sẽ hướng dẫn cách điều khiển nhiều led 7 thanh cùng lúc

Xây dựng mạch điều khiển mô tả như hình 2.3.5. Trong ví dụ này, các chân P2.0 đến P2.7 điều khiển việc cấp nguồn cho các led 7 thanh. Các chân P0.0 đến P0.6 được nối với các chân của led 7 thanh để điều khiển việc cấp đất cho các thanh led.

Hình 2.3.5 Sơ đồ nguyên lý điều khiển nhiều led 7 thanh

Bước 2:

Lập trình điều khiển Led theo ngôn ngữ lập trình Assembly (có thể dùng chương trình Reads51) Tuy nhiên, cách hiển thị bằng ngôn ngữ lập trình ở phần này khác phân trước ở chỗ dùng cách tra bảng để hiển thị led

Nội dung chương trình:

=============================================================== org 0h

start: mov dptr, #word ;để con trỏ dữ liệu vào đấu bảng mov R6,#8 ; số led cần hiển thị, 8 led

mov R1,#01111111b; khởi đầu ở led 8 Again: clr A ; xóa thanh ghi acc

movc A,@A+dptr ; đưa số đầu tiên ở bảng vào acc inc dptr ; tăng vị trí con trỏ

mov P0,A ; đưa mã cần hiển thị ra P0 mov A,R1 ; thứ tự led cần hiển thị mov P2,A ; hiển thị led

rr A ; dịch vi trí led cần hiển thị mov R1,A ; lưu vào thanh ghi R1 call delay ; gọi hàm trễ

mov P0,#11111111b; xóa

djnz R6,Again ; lặp lại 8 lần sjmp start ; trở về vị trí ban đầu

;============================================= ;subroutine delay created to rise delay time ;============================================= delay: mov R1,#255 del1: mov R2,#255 del2: djnz R2,del2 djnz R1,del1 ret ;

word: DB 00111111b, 01000111b, 00001000b, 00000011b DB 01000110b, 01000000b, 01001000b, 00111111b end

===============================================================

Bước 3:

Biên dịch chương trình trên bằng các chương trình biên dịch chuyên dụng cho vi điều khiển như Reads51. Sau khi biên dịch, chươn trình sẽ tạo ra file mã máy mà vi điều khiển dựa vào đó để hoạt động. Thông thường file đó sẽ có dạng tên_file.hex. Việc đặt tên file là do người dùng tự đặt.

Bước 4

Nạp file mã máy mà chương trình biên dịch vừa tạo ra bằng các công cụ và mạch nạp như trong trang web này hướng dẫn làm như: mạch nạp 89xxxx, mạch nạp 89Cxx, mạch nạp 89Sxxxx, mạch nạp 89Sxx và AVR

Sau khi nạp file mã máy vào vi điều khiển 89S51. Gắn vi điều khiển vào mạch ứng dụng, sẽ thấy kết quả của bài học.

Trang trước - Trang

]

1. Mạch LED sáng dần thay đổi kiểu rồi tắt

Chương trình mạch điện viết bằng assembly: ORG 0H

AJMP START

INITIALIZE : ; ; ; ;SET UP CONTROL REGISTERS ;

MOV TCON,#00H MOV TMOD,#00H MOV PSW,#00H

MOV IE,#00H ; ; ; ;DISABLE INTERRUPTS RET DELAYMS: ; MOV R7,#00H LOOPA: INC R7 MOV A,R7 CJNE A,#0FFH,LOOPA RET

DELAYHS: MOV R6,#00H LOOPB: INC R6 ACALL DELAYMS MOV A,R6 JNZ LOOPB RET START: ACALL INITIALIZE LOOP: INC P1 ACALL DELAYHS AJMP LOOP END (adsbygoogle = window.adsbygoogle || []).push({});

Mở rộng bộ sắp sếp thứ tự 16LED

Bộ sắp sếp thứ tự 18 LED dùng 4017

The LED sequencer below shows a possible solution using a few extra parts. When power is applied, the 15K resistor and 10uF cap at pin 15 will reset the counters to the zero count where pin 3 is at +12 and all other outputs are at zero. The 2 diodes (1n914) and 15 resistor form a AND gate so the clock pulse will be passed to the right side counter when the sequence starts.

C1 2.2uF 25V Electrolytic Capacitor C2, C3 0.1uF Ceramic Disc Capacitor R1, R3 1K 1/4W Resistor R2 : 10K 1/4W Resistor R4 :100K 1/4W Resistor R5 :1M 1/4W Resistor D1 :1N914 Silicon Diode Q1 :2N3906 PNP Transistor

LED1-LED10 : Standard LED or LED Array U1 : LM3915 Audio Level IC

MISC : Board, Wire, Socket For U1 Nguồn aaroncake.net

1. V+ can be anywhere from 3V to 20V.

2. The input is designed for standard audio line voltage (1V P-P) and has a maximum input voltage of 1.3V.

3. Pin 9 can be disconnected from +V to make the circuit use a moving dot display instead of a bar graph display.

Một phần của tài liệu Điện từ chương trình điều khiển LED (Trang 30 - 38)