Welcome & Happy Holidays!
Trang 2 của 7 Đầu tiênĐầu tiên 1234 ... CuốiCuối
Kết quả 11 đến 20 của 63
  1. #11
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bài viết của bạn hay quá, cảm ơn bạn đã chia sẽ....

  2. #12
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    a có thể giải thích cái đoạn này giúp e với:



    Mã:
    void Ic74595_Write(char data,char ic,char bits)
      {
      signed char count;     
      if(ic==1)       
          {
          for(count=bits-1;count>=0;count--)
            {
            if((( data>>count) & 0x01) ==1)
                output_high(ic595_data1);
            else
                output_low(ic595_data1);
            output_high(ic595_sclk1);
            output_low(ic595_sclk1);
            }
          output_high(ic595_lclk1);
          output_low(ic595_lclk1);
          }
      if(ic==2)       
          {
          for(count=bits-1;count>=0;count--)
            {
            if((( data>>count) & 0x01) ==1)
                output_high(ic595_data2);
            else
                output_low(ic595_data2);
            output_high(ic595_sclk2);
            output_low(ic595_sclk2);
            }
          output_high(ic595_lclk2);
          output_low(ic595_lclk2);
          }
      }
    void Run_str_RtoL()
      {
      lengh_str=strlen(str)*6;
      unsigned char j,temp_font;
      Ic74595_Write(1,1,1);
      for(j=next;j<32+next;j++){
          Temp_font=font[str[(j%lengh_STR)/With_of_font] -32][j%With_of_font];
          Ic74595_Write(temp_font,2,8);
          delay_us(500);
          Ic74595_Write(0,1,1);
          }
      }

  3. #13
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi demon52
    Có code có mô phỏng bạn còn muốn hướng dẫn gì nữa?
    em tải project của anh về build code thì báo lỗi thư viện "string" thế này sửa thế nào đây?

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

  4. #14
    Ngày tham gia
    Apr 2016
    Bài viết
    6
    không ai xem giúp em với .

  5. #15
    Ngày tham gia
    Feb 2016
    Bài viết
    0
    anh ơi em đang lập trình bằng assembly anh có code ASM cho em tham khảo với

  6. #16
    Ngày tham gia
    Jun 2016
    Bài viết
    0
    Mình không học ASM bạn à, bạn cũng nên làm quen C vì đi làm không ai dùng ASM nữa đâu và cả các project lớn đều dùng C, ít người dùng ASM lập trình các ứng dụng lớn lắm

  7. #17
    Ngày tham gia
    Apr 2016
    Bài viết
    0
    Trích dẫn Gửi bởi phamennho
    em tải project của anh về build code thì báo lỗi thư viện "string" thế này sửa thế nào đây?

    [IMG]http://*************/attachments/4999/[/IMG]
    bạn thay biến c trong thư viên string đó bằng một biến bất kì không phải là c là hết lỗi thôi mà

  8. #18
    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
    a ơi e mún thay đổi cái tên chạy mà sao đổi mà chạy ko dc gì hết lâu giờ sài toàn 89 PIC mù tịt! help thanks!

  9. #19
    Ngày tham gia
    Jan 2016
    Bài viết
    0
    ủa sao mình down về k được bạn

  10. #20
    Ngày tham gia
    May 2016
    Bài viết
    2
    Có anh nào rành về Pic giúp e đoạn code thêm hiệu ứng chạy ngược với. e mù tịch thanks

 

 
Trang 2 của 7 Đầu tiênĐầu tiên 1234 ... 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à 01:09 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.