Đồng hồ số dùng 4 LED 7 đoạn
Collapse
X
-
mình muốn thiết kế đồng hồ số dùng xung 2 Hz từ 4060 và thạch anh 32368 hz để làm bộ đếm còn quét led thì dùng timer của 8051 thì khai báo như thế nào ???????????????????
-
Uh quên mấtNguyên văn bởi demon52 Xem bài viếtMình tưởng phải kiếm 1 con 10 chân chứ! ngoài đời con led 7 đoạn 10 chân đúng không?
Leave a comment:
-
Mình tưởng phải kiếm 1 con 10 chân chứ! ngoài đời con led 7 đoạn 10 chân đúng không?Nguyên văn bởi legosse Xem bài viếtTrong thư viện có LED 7 đoạn chứ:LDS-A50R, nhưng mà không nhất thiết phải dùng chính xác vậy, cư kiếm đại 1 con 7 chân,sữa lại thứ tự các chân cho đúng là được.
Leave a comment:
-
Cám ơn cậu đã trả lời cụ thể, nhưng tại câu hỏi mình chưa rỏ :Nguyên văn bởi legosse Xem bài viết4 chân A,B,C,D của 7447 nối vào 4 chân của 89, thay đổi 0 1 ở các chân này là được, cái bảng mả thì bạn coi trong datasheet ấy
VD:
số 0 -> 0 0 0 0 (A B C D)
số 1 -> 0 0 0 1
...
số 9 -> 1 0 0 1
Các chân B của BJT bạn có thể nối vào các chân của 89, kích bình thường
Còn nếu muốn tiết kiệm chân cho 89 hơn nữa thì dùng thêm 1 chip giải mã 3bit (74138) hoặc 4 bit (74154), các chân đầu ra của chip giải mã thứ 2 này nối vào chận B của transitor để kích.
Nếu dùng con 3 bit (8 đầu ra) thì có thể kích được 8 LED 7 đoạn, 4 bit thì có thể kích được tới 16 LED.
2 con này có bảng trạng thái, trong datasheet ghi rõ lắm
VD con 3 bit
C B A Y8 Y7 ... Y0
0 1 1 1 1 1 0 1 1 1 1 1
3 bit CBA tạo thành số mấy thì đầu ra tương ứng ở mức 0 -> LED tương ứng được cấp nguồn ...
Thử dùng con cỡ 10 bit thì có thể kích được vo số LED mà chỉ dùng có 7 chân của 89 thôi
con chip này có chắc to bằng ngôi nhà quá
Bác nào coi dùm cái chương trình ở trên dùm với
Ý mình là lúc lập trình, nếu bình thường thì mình khai báo
và sử dụng bảng mã dành cho led 7 đoạn để hiển thị LED_DATA này, nhưng bây h thì mình 7447, LED_DATA sẽ được thay bằng 4 cổng A,C,B,D. tương ứng với P0_0,P_01,P0_2,P_03 chẳng hạn. Mục đích của mình là muốn 4 chân này thành một mảng để dùng bảng mã cho tiện, chứ ko thể gán giá trị cho từng chân để hiển thị số cho led 7 đoạn đc. Mình muốn hỏi cách định nghĩa cho kái mảng 4 chân đó.#define LED_DATA = P0
thanxx
Leave a comment:
-
Trong thư viện có LED 7 đoạn chứ:LDS-A50R, nhưng mà không nhất thiết phải dùng chính xác vậy, cư kiếm đại 1 con 7 chân,sữa lại thứ tự các chân cho đúng là được.Nguyên văn bởi demon52 Xem bài viếtHíc các bác toàn dùng orcad em chỉ biết dùng protues thôi! mà sao bạn không dùng 74ls47 cho dễ viết code! mình còn gà quá! nhìn mấy hàm timer choáng thật!
Mà trong thư viện layout của orcad có con 7seg không? còn trong protues phải tạo linh kiện mới chuyển xang layout được!
à còn điều này nữa mạch layout trong protues đẹp hơn orcad nhiều
Leave a comment:
-
Híc các bác toàn dùng orcad em chỉ biết dùng protues thôi! mà sao bạn không dùng 74ls47 cho dễ viết code! mình còn gà quá! nhìn mấy hàm timer choáng thật!
Mà trong thư viện layout của orcad có con 7seg không? còn trong protues phải tạo linh kiện mới chuyển xang layout được!
à còn điều này nữa mạch layout trong protues đẹp hơn orcad nhiều
Leave a comment:
-
4 chân A,B,C,D của 7447 nối vào 4 chân của 89, thay đổi 0 1 ở các chân này là được, cái bảng mả thì bạn coi trong datasheet ấyNguyên văn bởi vns159 Xem bài viếtCho tớ hỏi : nếu thiết kế đồng hồ số 4 led 7đoạn dùng bộ giải mã 7447 thì khi định nghĩa 4 chân A,B,C,D như thế nào ???
VD:
số 0 -> 0 0 0 0 (A B C D)
số 1 -> 0 0 0 1
...
số 9 -> 1 0 0 1
Các chân B của BJT bạn có thể nối vào các chân của 89, kích bình thường
Còn nếu muốn tiết kiệm chân cho 89 hơn nữa thì dùng thêm 1 chip giải mã 3bit (74138) hoặc 4 bit (74154), các chân đầu ra của chip giải mã thứ 2 này nối vào chận B của transitor để kích.
Nếu dùng con 3 bit (8 đầu ra) thì có thể kích được 8 LED 7 đoạn, 4 bit thì có thể kích được tới 16 LED.
2 con này có bảng trạng thái, trong datasheet ghi rõ lắm
VD con 3 bit
C B A Y8 Y7 ... Y0
0 1 1 1 1 1 0 1 1 1 1 1
3 bit CBA tạo thành số mấy thì đầu ra tương ứng ở mức 0 -> LED tương ứng được cấp nguồn ...
Thử dùng con cỡ 10 bit thì có thể kích được vo số LED mà chỉ dùng có 7 chân của 89 thôi
con chip này có chắc to bằng ngôi nhà quá
Bác nào coi dùm cái chương trình ở trên dùm với
Leave a comment:
-
trước tiên bạn phải đưa cái lưu đồ thuật toán lên rồi mọi người mới giải quyết dùm bạn đươc.còn dùng bộ định thời timer 1 hay 0 gì cũng như nhau thôi.chỉ cần tính chính xác thời gian trể là được.ok.
Leave a comment:
-
Cho tớ hỏi : nếu thiết kế đồng hồ số 4 led 7đoạn dùng bộ giải mã 7447 thì khi định nghĩa 4 chân A,B,C,D như thế nào ???
Leave a comment:
-
Đây là chương trình mình viết bằng CNguyên văn bởi Toan.Lv Xem bài viếtĐối với 8051, để nó có thể chạy được bạn cần phải đảm bảo tối thiểu 4 điều kiện sau:
1/Cấp nguồn đầy đủ: Chân 40 nối nguồn +5V, chân 20 nối mass
2/Mạch reset nối đúng, tối thiểu phải nối +5V--->tụ--->tro--->mass, lấy tín hiệu tại cực âm của tụ (giữa tụ và trở) đưa vào chân 9.
3/Mạch dao động nối đúng: dao động thạch anh nối vào chân 18,19, cần thêm hai tụ 33pF.
4/EA nối đúng: EA nối với nguồn thì 8051 sẽ chạy với bộ nhớ chương trình on-chip. EA nối với mass thì 8051 sẽ chạy với bộ nhớ chương trình ngoài, bỏ qua bộ nhớ chương trình on-chip.(Nếu EA nối mass mà không có bộ nhớ chương trình ngoài thì 8051 không chạy được.)
Nạp vào chip -> đồng hồ chỉ hiển thị: 0000
Mọi người xem dùm sai ở đâu nhé
Thanks!
HTML Code:#include <AT89x51.h> #include <intrins.h> //Dinh nghia I/O #define LED_DATA P0 #define key1 P2_3 #define key2 P2_2 #define key3 P2_1 #define key4 P2_0 #define LED1 P2_7 #define LED2 P2_6 #define LED3 P2_5 #define LED4 P2_4 //Khai bao cac chuong trinh con void setup_timer(void); void quet_phim(void); void delay(unsigned int number); //Khai bao bien unsigned char code bang_ma[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; unsigned char count1,count2,sec,h1,h2,m1,m2; char hour,minute; //Ham khai bao dung ngat timer void setup_timer(void) { TMOD=0x11; TH1=0x3C; TL1=0xAF; TH0=0x3C; TL0=0xAF; ET1=1; ET0=1; EA=1; TF1=0; TR1=1; TF0=0; TR0=1; } //Ham ngat timer0 dung de tao clock void T0_ISR(void) interrupt 1 { TR0=0; TH0=0x3C; TL0=0xAF; count1++; if(count1==20) { count1=0; sec++; } if(sec==60) { sec=0; minute++; if(minute==60) { minute=0; hour++; if(hour==24) hour=0; } } TF0=0; TR0=1; } //Ham ngat timer1 dung de quet void T1_ISR(void) interrupt 3 { TR1=0; TH1=0xEC; //5000us TL1=0x77; count2++; LED1=1; LED2=1; LED3=1; LED4=1; if(count2==1) { LED_DATA=bang_ma[h1]; LED1=0; } if(count2==2) { LED_DATA=bang_ma[h2]; LED2=0; } if(count2==3) { LED_DATA=bang_ma[m1]; LED3=0; } if(count2==4) { LED_DATA=bang_ma[m2]; LED4=0; count2=0; //Khoi dong lai bien dem } TF1=0; TR1=1; } //Ham quet phim void quet_phim(void) { if(key1==0) //Neu phim duoc an key1=0 { while(key1==0); //Chong nay phim delay(30); //Chong soc dien hour++; if(hour>23) hour=0; } if(key2==0) //Neu phim duoc an key2=0 { while(key2==0); //Chong nay phim delay(30); //Chong soc dien hour--; if(hour<0) hour=23; } if(key3==0) //Neu phim duoc an key3=0 { while(key3==0); //Chong nay phim delay(30); //Chong soc dien minute++; if(minute>59) minute=0; } if(key4==0) //Neu phim duoc an key4=0 { while(key4==0); //Chong nay phim delay(30); //Chong soc dien minute--; if(minute<0) minute=59; } } //Dinh nghia ham delay void delay(unsigned int number) { unsigned char j; unsigned char i; for(i=0;i<=number;i++) { for(j=0;j<=1000;j++) {} } } //Chuong trinh chinh void main(void){ count1=0; count2=0; sec=0; hour=0; h1=hour/10; h2=hour%10; minute=0; m1=minute/10; m2=minute%10; setup_timer(); while(1) { quet_phim(); m1=minute/10; m2=minute%10; h1=hour/10; h2=hour%10; } }
Leave a comment:
-
Đối với 8051, để nó có thể chạy được bạn cần phải đảm bảo tối thiểu 4 điều kiện sau:cảm ơn bác nha,mình làm được rồi
Cho mình hỏi cách nối dây cho con 89c51, Vcc nối vào chân nào 31 hay 40 hay cả 2, bác xem mạch này đúng không dùm nge
Click vào đây để xem rộng hơn Name: Dong ho.jpg Views: 1 Size: 114.6 KB
1/Cấp nguồn đầy đủ: Chân 40 nối nguồn +5V, chân 20 nối mass
2/Mạch reset nối đúng, tối thiểu phải nối +5V--->tụ--->tro--->mass, lấy tín hiệu tại cực âm của tụ (giữa tụ và trở) đưa vào chân 9.
3/Mạch dao động nối đúng: dao động thạch anh nối vào chân 18,19, cần thêm hai tụ 33pF.
4/EA nối đúng: EA nối với nguồn thì 8051 sẽ chạy với bộ nhớ chương trình on-chip. EA nối với mass thì 8051 sẽ chạy với bộ nhớ chương trình ngoài, bỏ qua bộ nhớ chương trình on-chip.(Nếu EA nối mass mà không có bộ nhớ chương trình ngoài thì 8051 không chạy được.)
Leave a comment:
-
Vấn đề của bạn nằm ở việc đồng bộ giữa biểu tượng nguyên lý của linh kiện và biểu tượng của nó trong layout. Bạn thử kiểm tra điểm này xem:Sao a e vào nhiều mà không thấy chỉ giúp mình với, mình loay hoay mãi mà chưa xử lí được chân cẳng của cái con LED đó, không sữa chân được đâu làm j tiếp được đâu, mấy bác giúp em đi
- Trong sơ đồ nguyên lý bạn muốn nối a với P0.0, b với P0.1 ....Trong biểu tượng nguyên lý của LED 7 thanh, với mỗi chân có 2 thông số là tên, và số thứ tự. Ví dụ chân a - số thứ tự 1, b số thứ tự 2 chẳng hạn...Tuy nhiên trong mạch in, các chân (pad) thường đánh số, các số này tương ứng với số thứ tự chân bên biểu tượng nguyên lý. Vì thế giả sử ở nguyên lý a số thứ tự là 1 và nối với chân P0.0, thì khi sang mạch in, P0.0 sẽ nối với chân (pad) đánh số 1.
- Khi muốn nối đúng chân thì bạn phải kiểm tra con LED thực tế xem chân số mấy là a, chân số mấy là b,...và đánh số cho đúng. Bạn đánh số đúng thì giữa mạch in và mạch nguyên lý sẽ tương thích với nhau. Nhưng láp con LED thực tế vào có đúng hay không lại phụ thuộc vào việc các chân bạn vẽ có phù hợp với con thực hay không. Cho nên khi vẽ bạn hãy kiểm tra con thật trước đã
Leave a comment:
-
Mình nghĩ sẽ giữ nguyên các chân của con LED 7 đoạn thay vào đó nối các chân 89 vào LED cho đúng là được,đang thử làm
Nhân tiện xin hỏi mọi người 1 í
mình đọc lại ly thuyết thấy có nói Port 0 có 2 chức năng
- BUS dữ liệu/địa chỉ
- I/O (bắt buộc nối P0 với 1 điện trở thanh lên Vcc)
Như vậy nếu mình muốn dùng Port 0 để nối với 4 LED 7 đoạn (tạo đồng hồ) thì có phải nối với điện trở thanh không mấy bác? (còn Port 1,2,3 thì không cần trở thanh vì bình thường nó đã làm I/O rồi?)
Leave a comment:
-
theo tôi bạn cứ đo các chân của led 7 thanh đi xem no có thứ tự như thế nào rùi bạn tự tạo ra một linh kiện mới ở trong layoat thế là được rùi vì trên thị trường có rất nhìu loại led 7 thanh mù trong thư viện không có mình phải tự tao thuiNguyên văn bởi legosse Xem bài viếtMình hiểu về điều kiện if(key==0) rồi
Chương trình vậy là ổn
H cho mình hỏi về cái mạch
Khi chuyên qua layout các chân của Port 0 không nối đúng với các chân của LED 7 đoạn theo thứ tự P0_0 -> a,....P0_6 ->g
mà lại P0_0 -> chân số 5 của LED là b ,...
mặc dù mình đã sửa lại các chân trong sơ đồ nguyên lí đúng thứ tự là a-4,b-5,....
Với lại cái LED nó nằm không đúng
10 9 8 7 6
1 2 3 4 5
Đáng lẽ là
1 2 3 4 5
10 9 8 7 6
Mình dùng lệnh xoay ngang(H) xoạy dọc (V) đều không được
Mọi người xem hình vẽ cho dễ hiểu
Sơ đồ nguyên lí
Layout
Leave a comment:
dự án của bạn Tra theo mã, xem datasheet và đặt hàng trực tuyến. MicrochipROHMEpsonTaejin
Đặt hàng & tư vấn
Hà Nội024.3640 8561
TP.HCM028.3811 9870
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Bài viết mới nhất
Collapse
-
Trả lời cho Tìm bạn thân quen cũ.bởi thuaimiVẫn nhớ và kính trọng Bác cũng các cao nhân trên dientuvietnam.net. Tính từ ngày tham gia trên này cũng đã hơn 20 năm rồi. Quá nhiều thay đổi cả trong công việc và cuộc sống. Nhưng được thấy lại các nick cũ vẫn sáng đèn là thấy vui rồi....-
Channel: Tâm tình dân kỹ thuật
26-10-2026, 16:33 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi nhathung1101Còn sống không lão??? Mất một thời gian chữa bệnh nên quên hỏi thăm.......
-
Channel: Tâm tình dân kỹ thuật
25-10-2026, 03:09 -
-
Trả lời cho Công suất truyền qua lõi máy biến ápbởi nhathung1101Thời buổi năng lượng xanh, nhất là xanh cả mặt... Thì Điện mặt giời, điện gió, sẽ lên ngôi.
Nếu không nắm bắt được cái cơ bản đó thì đi làm coder à? Mà coder giờ thất nghiệp cả lũ vì AI rồi!!!









...
-
Channel: Điện tử công suất
25-10-2026, 03:03 -
-
Trả lời cho Công suất truyền qua lõi máy biến ápbởi quangdonguehChà, lâu lắm rồi nhưng diễn đàn vẫn còn những chủ đề cốt lõi của điện tử công suất...-
Channel: Điện tử công suất
24-10-2026, 07:53 -
-
bởi bqvietNếu muốn tăng công suất cần tăng con chip và tăng biến áp lên lớn hơn. Thiết kế ban đầu dùng TNY25x và biến áp EE16 hoặc EE13. Tăng con chip lên TNY268 vẫn mạch nguyên lý đó và biến áp lên EE19 sẽ nâng công suất ra thêm nhiều. Tăng tối đa...-
Channel: Điện tử công suất
24-10-2026, 02:14 -
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
22-10-2026, 14:33 -
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
22-10-2026, 10:49 -
Leave a comment: