Lập Trình Quét Led 7 Đoạn Dùng 74Hc595, Lập Trình Quét Led 7 Đoạn 74Hc595 Avr

Thêm một thanh ghi dịch song song / nối tiếp như 74HC595 phổ cập vào screen led 7 đoạn để giúp đỡ giảm con số chân quan trọng để tinh chỉnh và điều khiển nó (màn hình).

Bạn đang xem: Quét led 7 đoạn dùng 74hc595

Về cơ bản, screen led 7 đoạn buộc phải 9 chân: 8 chân phân đoạn (A, B, C, D, E, F, G cùng DP) + chân chung. Bằng phương pháp nối toàn bộ các chân phân đoạn với cùng một thanh ghi vậy đổi, con số chân cần thiết sẽ giảm còn 3: chân clock với chân tài liệu (đối cùng với thanh ghi dịch) + chân chung.

Vì vậy, so với màn hình led 7 đoạn gồm 4 led 7 đoạn, chúng ta chỉ yêu cầu 6 chân: clock, tài liệu và 4 chân chung (mỗi led gồm chân chung riêng).

Dự án này cho thấy thêm cách xây dựng bộ đếm digital dễ dàng và đơn giản bằng Arduino, hiển thị 7 đoạn anode thông thường với 4 led 7 đoạn cùng thanh ghi 74HC595.

*

Yêu cầu phần cứng:

Board UNOLed 7 đoạn loại tất cả 4 led chung74HC5954 x Transistor PNP ( 2SA1015 , 2S9015 , 2N3906 >)8 x Điện trở 100 ohm4 x Điện trở 4,7k ohm
Nút ấn
Breadboard
Dây dẫn

Sơ thứ mạch của dự án:

Hình ảnh dưới đây cho thấy sơ đồ mạch ví dụ của chúng tôi.

*

Như được hiển thị vào sơ đồ vật mạch ở trên, tất cả các chân phân đoạn được nối với các chân đầu ra output 74HC595, từng chân qua năng lượng điện trở 100 ohm, trong đó:

Đoạn A … G được nối với chân 74HC595 q.7 … q1 và DP phân đoạn được nối với chân Q0.

Chân dữ liệu của thanh ghi 74HC595 được đặt tên là DS (# 14) với nó được nối với chân Arduino 6.

ST_CP (hoặc RCLK) cùng SH_CP (hoặc SRCLK) được nối với nhau, tiếp đến được nối với chân Arduino 7. Đây là chân clock.

Vì screen có 4 led 7 đoạn nên có 4 chân chung: 1 (hầu hết mặt trái), 2, 3 và 4. Từng chân bình thường được nối cùng với đầu rất collector của một transistor. Điểm mút cực phát của 4 transistor được nối với + 5V từ bỏ board Arduino. Điểm mút cửa hàng của bốn transistor được nối cùng với Arduino thông qua điện trở 4,7k.

Xem thêm: Con Người Sinh Ra Không Phải Để Tan Biến Như Một Hạt Cát Vô Danh

4 transistor cùng loại (PNP).

Nút ấn được nối với chân analog Arduino 0 (A0) được áp dụng để tăng con số hiển thị.

Code dự án:

Code Arduino dưới không sử dụng bất kỳ thư viện nào cho màn hình 7 đoạn.

Khai báo nút ấn được xác định trong code là:

// counter button definition

#define button A0

Khai báo chân clock và chân dữ liệu được khẳng định là:

// shift register chân definitions

#define clock
Chân 7 // chân clock

#define data
Chân 6 // chân data

Màn hình cần được thiết kế mới định kỳ, vày tôi đã thực hiện mô-đun Timer1 ngắt với thông số kỹ thuật sau:

// Timer1 module overflow interrupt configuration

TCCR1A = 0;

TCCR1B = 1; // enable Timer1 with prescaler = 1 ( 16 ticks each 1 µs)

TCNT1 = 0; // set Timer1 preload value to 0 (reset)

TIMSK1 = 1; // enable Timer1 overflow interrupt

Với cỗ đếm trước Timer1 = 1, cửa hàng chúng tôi sẽ ngắt mỗi 4096 micro giây. Điều đó tức là mỗi led 7 đoạn được hiển thị 4096 us. 4096 us = 65536 / (16 * prescaler)

Lưu ý rằng mô-đun Timer1 là bộ định thời 16 bit và tần số xung Arduino là 16 MHz.

Các hàm được thực hiện trong code:

ISR(TIMER1_OVF_vect): là chức năng ngắt Timer1, khi vi điều khiển bị cách quãng bởi Timer1, nó sẽ trực tiếp triển khai ‘chức năng’ này.

void disp(byte number, bool dec_point = 0): tác dụng này là dành cho dữ liệu hiển thị trên screen 7-segment, nó in vươn lên là số gồm thể thay đổi giữa 0 cùng 9. Trở thành dec_point đưa ra quyết định liệu các DP sẽ được in hay là không , quý hiếm mặc định là 0 (không in), ví như dec_point = 1, phân đoạn DP sẽ BẬT.

void dist_off () : công dụng này đang tắt cục bộ màn hình.

Tôi sẽ sử dụng tác dụng Arduino shift
Out (built-in) để gửi dữ liệu một cách an toàn đến thanh ghi chuyển đổi 74HC595.

74hc595 là IC ghi dịch 8 bit kết hợp chốt dữ liệu, đầu vào thông liền đầu ra song song. IC này thường thực hiện để mở rộng Port của vi tinh chỉnh để quét LED 7 đoạn....2. Phương pháp hoạt động:
*
IC74HC595 với đầu vào nhận tài liệu nối tiếp, đầu ra tuy nhiên song. Lúc 1 bit được đưa đến chân nhận dữ liệu DS, hy vọng đẩy bit này vào thanh ghi dịch ta bắt buộc kích một xung vào chân SHCP (xung sườn dương từ 0->1). Cứ theo lần lượt vậy sau khi đưa không còn hết 8 bit vào thanh ghi dịch, 8 bit này vẫn phía trong bụng của 74HC595 (trong 8-bit storage register). Mong xuất cùng một lúc cả 8 bit này ra những chân ngõ ra (từ Q0 -> Q7) ta cần tạo ra một xung lên chân STCP (xung sườn dương tự 0->1). Bởi thanh ghi dịch chỉ tàng trữ tối nhiều 8 bit nên những lúc bit dữ liệu thứ 9 liên tục được gửi vào thanh ghi dịch thì bit dữ liệu đầu tiên được bán ra chân Q7S.Nếu liên kết chân Q7S này cho chân DS của IC 74HC595 tiếp theo. Ta rất có thể mở rộng tương đối nhiều port xuất.Chân MR (chân số 10): lúc chân này tại mức thấp, dữ liệu chứa vào thanh ghi dịch bị xóa hết. Lúc chân này ở tầm mức cao 74HC595 vận động bình thường
Chân OE (chân số 13): lúc OE=0 có thể chấp nhận được xuất ngõ ra.
*
3. Giao tiếp led 7 đoạn + IC74HC595
#include #device *=16 ADC=10#use delay(clock=20000000)#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRTunsigned char Code7Seg<> = 0x
C0, 0x
F9, 0x
A4, 0x
B0, 0x99, 0x92, 0x82, 0x
F8, 0x80, 0x90;/* Dinh nghia cac chan cua IC74HC595 */#define SHCP_PIN PIN_C0#define DS_PIN PIN_C1#define STCP_PIN PIN_C2void IC_74hc595(int data)int i;output_low(SHCP_PIN);for(i=0;iif((data và 0x80)==0)output_low(DS_PIN);elseoutput_high(DS_PIN);data=dataoutput_high(SHCP_PIN);output_low(SHCP_PIN);void IC_74HC595_Output()output_low(STCP_PIN);delay_us(5);output_high(STCP_PIN);output_low(STCP_PIN);void main(void)IC_74hc595(Code7Seg<9>);IC_74hc595(Code7Seg<8>);IC_74hc595(Code7Seg<7>);IC_74hc595(Code7Seg<6>);IC_74HC595_Output();
*
*
( Full Code+ tế bào phỏng)Khi nhận nút "Tải Về Máy", các bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút
*
hiện ra ởgóc nên phía trên, nhấn vào để cho trang downloadTheo ytuongnhanh.vn

Leave a Reply

Your email address will not be published. Required fields are marked *

x

Welcome Back!

Login to your account below

Retrieve your password

Please enter your username or email address to reset your password.