PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   Giúp em hiển thị lên led 7 đoạn với các pác!!! (http://www.picvietnam.com/forum/showthread.php?t=5276)

a7xuantien 10-11-2009 12:58 PM

Giúp em hiển thị lên led 7 đoạn với các pác!!!
 
2 Attachment(s)
Em đang viết code bằng CSS về bộ đếm xung rồi hiển thị lên 2 led 7 đoạn nhưng phần code thì em cảm thấy là đúng rồi nhưng khi mô phỏng thì nó không chịu chạy. Ở đây em sử dung ngắt ngoài RB0 để đếm xung rồi dung port D xuất ra led, dung RA0 và RA1 để điều khiển cho led hiển thị số hàng chục và hàng đơn vị. Pác nào có kinh nghiệm giúp em với, em mới vào nghề nên gà lắm, hic hic!!! Em post cả code với phần mô phỏng của em bằng Protues, LED ở phía trên là LED đơn vị, LED phía dưới là LED hàng chục

Delfy_Coltech 10-11-2009 03:49 PM

Góp ý cho bạn
 
Chào bạn!
Mình vừa tải File mô phỏng của bạn về chạy thử.
Nó vẫn chạy bình thường theo như ý bạn viết trong code mà.

Tuy nhiên, mình đã sửa lại đôi chút để số đếm hàng đơn vị không bị xóa sau mỗi lần bấm nút.
Ở đây dùng PIC6F877A thì nên để clock là 20MHz.

Bạn thử lại với code sau xem:

Code:

#include <16f877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#byte portb=0x06
#byte portd=0x08
unsigned int16 dem=0, hang_chuc, hang_dvi;
const unsigned char digital[]={0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110,\
0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111};

#int_ext
void dem_xung()
{
  dem++;
  if(dem<=30)
      {
        hang_dvi= dem%10;
        hang_chuc= dem/10;
 
        output_a(0);
        portd=digital[hang_chuc];
        delay_ms(100);
 
        output_a(1);
        portd=digital[hang_dvi];
        delay_ms(10);
      }
  if(dem>30)
      {
        dem=0; // Reset bien dem neu lon hon 30
      }
 }
void main()
{
  while(true)
  {
      set_tris_B(0b00000001);
      set_tris_d(0);
      set_tris_a(0);
      enable_interrupts(global);
      enable_interrupts(int_ext);
      ext_int_edge(H_to_L);
  }
}


Mình cũng mới ngâm cứu về Pic nên còn gà mờ lắm.
Theo như sơ đồ nguyên lý của bạn thì 2 LED 7 thanh của bạn nối chung với PORTD của Pic.
Do vậy, để hiển thị được cả hai LED thì phải dùng phương pháp quét (đánh lừa đôi mắt!). (Hình như là dùng ngắt timer để quét).

Bác nào có thể trợ giúp tiếp không ạ?

- Làm thế nào để khi LED hàng đơn vị đếm. LED hàng chục vẫn hiển thị?

Delfy_Coltech 11-11-2009 02:41 AM

Up hộ cái nào!

a7xuantien 11-11-2009 11:50 AM

Em cảm ơn a delfy_coltech! A cho em hỏi la bây giờ em ko dùng phương pháp quét led nữa mà em dùng IC 74LS573 để chốt led thì code o trên có phù hợp ko ạ! em vẫn dùng 2 chân RA0 và RA1 để nối với 2 chân LE của IC 74573( vì có 2 led 7 đoạn nên dùng 2 IC chốt led)??? Thanks!

Delfy_Coltech 11-11-2009 10:22 PM

Quét led bằng IC ghi dịch
 
1 Attachment(s)
Trích:

Nguyên văn bởi a7xuantien (Post 31109)
Em cảm ơn a delfy_coltech! A cho em hỏi la bây giờ em ko dùng phương pháp quét led nữa mà em dùng IC 74LS573 để chốt led thì code o trên có phù hợp ko ạ! em vẫn dùng 2 chân RA0 và RA1 để nối với 2 chân LE của IC 74573( vì có 2 led 7 đoạn nên dùng 2 IC chốt led)??? Thanks!

Không có gì bạn ạ.Tôi cũng đang làm project cần đến module hiển thị LED nên chúng ta cùng tìm hiểu. :)
Tất nhiên là code trên không phù hợp rồi!
Nếu bạn dùng IC thì sẽ tiết kiệm chân PIC hơn. Và phải code lại cho phù hợp.
Bạn có thể tham khảo quét led dùng IC 74HC595 như file đính kèm sau( Sưu tầm)

a7xuantien 11-11-2009 10:55 PM

Led 7 đoạn
 
1 Attachment(s)
Ma a Delfy_Coltech ơi, em làm đc rồi nhưng làm bằng cách dung IC74LS373 để chốt led(chốt ở chân LE của IC này)! E mun hỏi a là mô phỏng chạy thì rất là ok nhưng ko biết làm mạch thực tế thì có như zậy ko? Em co gửi bài mô phỏng, a coi giúp em nhé! Thanks!!!

Delfy_Coltech 11-11-2009 11:46 PM

Mach OK rồi đó!
 
Trích:

Nguyên văn bởi a7xuantien (Post 31147)
Ma a Delfy_Coltech ơi, em làm đc rồi nhưng làm bằng cách dung IC74LS373 để chốt led(chốt ở chân LE của IC này)! E mun hỏi a là mô phỏng chạy thì rất là ok nhưng ko biết làm mạch thực tế thì có như zậy ko? Em co gửi bài mô phỏng, a coi giúp em nhé! Thanks!!!

Uh mạch thế là ổn rồi đó. Tuy nhiên bạn cần xem thông số con LED 7 mình mua về (Dùng dòng bao nhiêu? Để điều chỉnh cho đạt độ sáng đẹp nhất)
Nếu cẩn thận hơn có thể cắm board thử sẽ bít ngay thối!
Chúc bạn thành công!

Delfy_Coltech 20-11-2009 05:29 PM

Help! help! LED cỡ bự! ^^
 
1 Attachment(s)
Mình đang làm cái bảng hiện số đếm gồm 3 LED 7 segs loại 5 inch dùng nguồn 12V.
Các bác xem hộ cách mắc mạch thế này ổn chưa ah?

Bác nào đã "chơi" với mấy chú này rồi xin chia sẻ chút kinh nghiệm!
Thanks alot!

Delfy_Coltech 22-11-2009 01:27 PM

Up cái nào! Không có bác nào quan tâm sao?

HAI1817 31-05-2010 03:59 PM

tôi cảm thấy thú vị tiếp nữa đi

HAI1817 31-05-2010 04:10 PM

có thế chứ

HAI1817 05-06-2010 03:14 PM

code điếm từ 000-999
 
1 Attachment(s)
mong các bạn góp ý cảm ơn

buiminhquy 17-07-2010 10:01 PM

Trích:

Nguyên văn bởi Delfy_Coltech (Post 31143)
Không có gì bạn ạ.Tôi cũng đang làm project cần đến module hiển thị LED nên chúng ta cùng tìm hiểu. :)
Tất nhiên là code trên không phù hợp rồi!
Nếu bạn dùng IC thì sẽ tiết kiệm chân PIC hơn. Và phải code lại cho phù hợp.
Bạn có thể tham khảo quét led dùng IC 74HC595 như file đính kèm sau( Sưu tầm)

sao mình cũng dùng ic 74hc595 mà led nhìn mờ thế nhỉ?
có ai giải thích hộ mình được ko?

huuquynh08 20-07-2010 11:54 PM

led 7 doan su dung 4 led
 
1 Attachment(s)
2 led dau dem tu 00-99 led sau dem tu 99-00

phamtrongvn 20-09-2010 03:14 AM

Cho em hỏi về mạch giao tiếp led 7 đoạn với PIC
 
Các bác có ai có sơ đồ nguyên lí mạch giao tiếp của PIC với led 7 thanh không ? t6hif post lên giúp em với, em mối học về nó mà không biết cách giao tiếp thế nào.
Thanks!


Múi giờ GMT. Hiện tại là 02:54 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam