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 ohmNú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.
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úthiện ra ởgóc nên phía trên, nhấn vào để cho trang downloadTheo ytuongnhanh.vn