Welcome & Happy Holidays!
Trang 3 của 7 Đầu tiênĐầu tiên 12345 ... CuốiCuối
Kết quả 21 đến 30 của 63
  1. #21
    Ngày tham gia
    Apr 2016
    Bài viết
    0
    hướng dẫn e code hiển thị chữ ABCD lên mạch này ạk

  2. #22
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi demon52
    Dear all,
    Buổi chiều đang ngồi buồn bị một người buzz bắt viết cái tut về led matrix :-". Tìm khắp máy mà mấy cái code ngày xưa viết không hiểu sao không chạy nữa :-s. Thôi thì cũng đang rảnh nên ngồi viết code luôn.
    Project này viết với PIC 16F877A một con vô cùng cơ bản, sử dụng 4 led matrix 8*8 => Matrix LED 8*32. Code demo đã chạy ngon lành, code dịch chữ tầm 5 tới 7 dòng anh em nào chưa làm về ledmatrix đọc sẽ hiểu ngay, cực ngắn gọn và xúc tích.
    CODE:


    Mã nguồn PHP:
    [COLOR=#000000]
    [/COLOR][COLOR=#FF8000]//==============================================================================// Ten chuong trinh : Mach Ledmatrix Run Text// Nguoi thuc hien : demon52// Ngay thuc hien : 24/10/2012// Phien ban : Demo// Mo ta phan cung : Dung PIC16F877A - thach anh 20MHz// : 74HC595// : PortB dung dieu khien!//------------------------------------------------------------------------------// Notes:// : dung che do Power On Reset//==============================================================================#include <16F877A.h>#include <def_877a.h>#device *=16 adc=10#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT#use delay(clock=20000000)#include <string.h>#include "font.c"#define ic595_sclk1 PIN_B0#define ic595_data1 PIN_B1#define ic595_lclk1 PIN_B2#define ic595_sclk2 PIN_B3#define ic595_data2 PIN_B4#define ic595_lclk2 PIN_B5[/COLOR][COLOR=#0000BB]unsigned int8 next[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]lengh_STR[/COLOR][COLOR=#007700];[/COLOR][COLOR=#0000BB]unsigned char count[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700];[/COLOR][COLOR=#0000BB]unsigned char welcome[/COLOR][COLOR=#007700][]=[/COLOR][COLOR=#DD0000]" http://************* "[/COLOR][COLOR=#007700];[/COLOR][COLOR=#0000BB]unsigned char [/COLOR][COLOR=#007700]*[/COLOR][COLOR=#0000BB]str[/COLOR][COLOR=#007700];[/COLOR][COLOR=#FF8000]#int_timer0[/COLOR][COLOR=#0000BB]void ngat_time0[/COLOR][COLOR=#007700]() { [/COLOR][COLOR=#0000BB]set_timer0[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]8[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]count[/COLOR][COLOR=#007700]++; if([/COLOR][COLOR=#0000BB]count[/COLOR][COLOR=#007700]==[/COLOR][COLOR=#0000BB]25[/COLOR][COLOR=#007700]){ [/COLOR][COLOR=#0000BB]count[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000BB]next[/COLOR][COLOR=#007700]++; if([/COLOR][COLOR=#0000BB]next[/COLOR][COLOR=#007700]>=[/COLOR][COLOR=#0000BB]lengh_STR[/COLOR][COLOR=#007700])[/COLOR][COLOR=#0000BB]next[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700]; } }[/COLOR][COLOR=#0000BB]void Ic74595_Write[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]char data[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]char ic[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]char bits[/COLOR][COLOR=#007700]) { [/COLOR][COLOR=#0000BB]signed char count[/COLOR][COLOR=#007700]; if([/COLOR][COLOR=#0000BB]ic[/COLOR][COLOR=#007700]==[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) { for([/COLOR][COLOR=#0000BB]count[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]bits[/COLOR][COLOR=#007700]-[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700];[/COLOR][COLOR=#0000BB]count[/COLOR][COLOR=#007700]>=[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700];[/COLOR][COLOR=#0000BB]count[/COLOR][COLOR=#007700]--) { if((( [/COLOR][COLOR=#0000BB]data[/COLOR][COLOR=#007700]>>[/COLOR][COLOR=#0000BB]count[/COLOR][COLOR=#007700]) & [/COLOR][COLOR=#0000BB]0x01[/COLOR][COLOR=#007700]) ==[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]output_high[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ic595_data1[/COLOR][COLOR=#007700]); else [/COLOR][COLOR=#0000BB]output_low[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ic595_data1[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]output_high[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ic595_sclk1[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]output_low[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ic595_sclk1[/COLOR][COLOR=#007700]); } [/COLOR][COLOR=#0000BB]output_high[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ic595_lclk1[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]output_low[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ic595_lclk1[/COLOR][COLOR=#007700]); } if([/COLOR][COLOR=#0000BB]ic[/COLOR][COLOR=#007700]==[/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) { for([/COLOR][COLOR=#0000BB]count[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]bits[/COLOR][COLOR=#007700]-[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700];[/COLOR][COLOR=#0000BB]count[/COLOR][COLOR=#007700]>=[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700];[/COLOR][COLOR=#0000BB]count[/COLOR][COLOR=#007700]--) { if((( [/COLOR][COLOR=#0000BB]data[/COLOR][COLOR=#007700]>>[/COLOR][COLOR=#0000BB]count[/COLOR][COLOR=#007700]) & [/COLOR][COLOR=#0000BB]0x01[/COLOR][COLOR=#007700]) ==[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]output_high[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ic595_data2[/COLOR][COLOR=#007700]); else [/COLOR][COLOR=#0000BB]output_low[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ic595_data2[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]output_high[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ic595_sclk2[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]output_low[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ic595_sclk2[/COLOR][COLOR=#007700]); } [/COLOR][COLOR=#0000BB]output_high[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ic595_lclk2[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]output_low[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ic595_lclk2[/COLOR][COLOR=#007700]); } }[/COLOR][COLOR=#0000BB]void Run_str_RtoL[/COLOR][COLOR=#007700]() { [/COLOR][COLOR=#0000BB]lengh_str[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]strlen[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]str[/COLOR][COLOR=#007700])*[/COLOR][COLOR=#0000BB]6[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000BB]unsigned char j[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]temp_font[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000BB]Ic74595_Write[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]); for([/COLOR][COLOR=#0000BB]j[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]next[/COLOR][COLOR=#007700];[/COLOR][COLOR=#0000BB]j[/COLOR][COLOR=#007700]<[/COLOR][COLOR=#0000BB]32[/COLOR][COLOR=#007700]+[/COLOR][COLOR=#0000BB]next[/COLOR][COLOR=#007700];[/COLOR][COLOR=#0000BB]j[/COLOR][COLOR=#007700]++){ [/COLOR][COLOR=#0000BB]Temp_font[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]font[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]str[/COLOR][COLOR=#007700][([/COLOR][COLOR=#0000BB]j[/COLOR][COLOR=#007700]%[/COLOR][COLOR=#0000BB]lengh_STR[/COLOR][COLOR=#007700])/[/COLOR][COLOR=#0000BB]With_of_font[/COLOR][COLOR=#007700]] -[/COLOR][COLOR=#0000BB]32[/COLOR][COLOR=#007700]][[/COLOR][COLOR=#0000BB]j[/COLOR][COLOR=#007700]%[/COLOR][COLOR=#0000BB]With_of_font[/COLOR][COLOR=#007700]]; [/COLOR][COLOR=#0000BB]Ic74595_Write[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]temp_font[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]8[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]delay_us[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]500[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]Ic74595_Write[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]); } }[/COLOR][COLOR=#0000BB]void main [/COLOR][COLOR=#007700](){ [/COLOR][COLOR=#0000BB]TRISB[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]0x00[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000BB]enable_interrupts[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]int_timer0[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]setup_timer_0[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]RTCC_INTERNAL[/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]RTCC_DIV_256[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]enable_interrupts[/COLOR][COLOR=#007700](global); [/COLOR][COLOR=#0000BB]set_timer0[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]8[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]str[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]welcome[/COLOR][COLOR=#007700]; while([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]){ [/COLOR][COLOR=#0000BB]Run_str_RtoL[/COLOR][COLOR=#007700](); }}[/COLOR] 
    DEMO PROTEUS 7.10sp0


    [IMG]http://*************/attachments/11402/[/IMG]


    Code và file mô phỏng được đính kèm.
    Chú ý: Mình viết code theo kiểu lib, file font chứa mã hex các kí tự hiển thị ( viết theo bảng mã ASCII), sử dụng con trỏ để quét led vì vậy khi muốn hiển thị chữ khác các bạn chỉ cần sửa dòng unsigned char welcome[]= " http:/ / codientu. org" ; ( viết rời ra để khỏi bị bắt link tới 4rum) thành dòng cần hiển thị, hoặc add thêm biến khác và sửa ở dòng str=welcome; Cách viết này mình viết với mục đích phát triển lên giao tiếp với PC ( từ ngày xưa) nên rất tiện. Tuy nhiên đây là phiên bản public nên code mình chưa tối ưu hết cơ, có thể làm mạch thật sẽ có hiệu ứng giật, nhấp nháy led... bảng mã font ASCII mình add vào chỉ đủ hiển thị dòng chữ " http:/ / codientu. org" , nếu muốn hiển thị dòng chữ khác các bạn sẽ phải tự tạo mã cho mình. Vì mình muốn các bạn tự học tự làm nên ko public hết!
    Chúc mọi người buổi tối vui vẻ .
    Link down: Project
    chào bạn!
    mình đang bắt đầu tìm hiểu về pic và c mình cũng biết 1 chút nhưng mình vẫn không hiểu
    sao mình cần phải dùng hàm "string.h" ở đây để làm gì ạ
    cám ơn bạn đã chia sẻ

  3. #23
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi linhnn93
    chào bạn!
    mình đang bắt đầu tìm hiểu về pic và c mình cũng biết 1 chút nhưng mình vẫn không hiểu
    sao mình cần phải dùng hàm "string.h" ở đây để làm gì ạ
    cám ơn bạn đã chia sẻ
    string.h là thư viện chuẩn của C, bài chia sẻ ở trên bạn này sử dụng ccs chính vì vậy khi làm việc với các ký tự trong ledmatrix bạn đó sử dụng đến nó.
    Để tìm hiểu kỹ hơn bạn thử bỏ string.h để xem trình biên dịch báo lỗi gì bạn sẽ thấy tại sao phải dùng .

  4. #24
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi sgesvn
    string.h là thư viện chuẩn của C, bài chia sẻ ở trên bạn này sử dụng ccs chính vì vậy khi làm việc với các ký tự trong ledmatrix bạn đó sử dụng đến nó.
    Để tìm hiểu kỹ hơn bạn thử bỏ string.h để xem trình biên dịch báo lỗi gì bạn sẽ thấy tại sao phải dùng .
    chào bạn!
    mình cũng mới vào nghề thôi như minh vẫn trưa hiểu ý bạn công dụng thực sự của strinh.h la gì trong khi minh chay chương trinh có strinh.h hay không có thì chúng đều có lỗi

  5. #25
    Ngày tham gia
    Mar 2016
    Bài viết
    0
    Trích dẫn Gửi bởi linhnn93
    chào bạn!
    mình cũng mới vào nghề thôi như minh vẫn trưa hiểu ý bạn công dụng thực sự của strinh.h la gì trong khi minh chay chương trinh có strinh.h hay không có thì chúng đều có lỗi
    Bạn chụp hình cái lỗi lên đây.

  6. #26
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi sgesvn
    Bạn chụp hình cái lỗi lên đây.
    mình mới sửa được lỗi có "string.h" nhưng mình thực sự không hiểu "string.h" ở đây có công dụng là gì là 1 chương trình khai bao cho ic 595 hay là gì.
    bạn có thể giải thích rõ để mình hiểu được không ạ
    mail mình la; linhnguyen93nb@gmail.com

  7. #27
    Ngày tham gia
    Mar 2016
    Bài viết
    25
    Sao mình chạy mô phỏng trên Proteus nó chỉ chạy từng chữ một mà không chạy một lúc nhiều chữ như của bạn vậy?

  8. #28
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi mr_Anh
    Chắc mua rẻ hơn, và chuyên nghiệp hơn bạn à. Tuy nhiên tự mình cũng làm được, nhưng chắc đắt hơn và không đẹp bằng. Có một cái hơn là tự hào vì tự tay mình làm ra nó.:-q

  9. #29
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    AI cho mình xin layout orcad con matrix 8*8 với. chưa thấy mặt mũi nó với lười tạo quá. pro nào có cho xin kuem0912@gmail.com. thank!

  10. #30
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    bạn ơi bạn giúp mình với, mjh copy code trên của bạn về chạy thì nó hiện như thế này
    mjh k biết vì sao bị như như vậy !!! 

 

 
Trang 3 của 7 Đầu tiênĐầu tiên 12345 ... CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 03:58 PM. Diễn đàn sử dụng vBulletin® Phiên bản 4.2.5.
Bản quyền của 2018 vBulletin Solutions, Inc. Tất cả quyền được bảo lưu.
Ban quản trị không chịu trách nhiệm về nội dung do thành viên đăng.