Thông báo

Collapse
No announcement yet.

Hiển thị hình ảnh chụp lên GLCD (128x64)

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Hiển thị hình ảnh chụp lên GLCD (128x64)

    Mình có cái GLCD và muốn hiển thị khuôn mặt của mình lên đó
    * tuy nhiên lên diễn đàn thì thấy cũng nhiều người hỏi quá do đó tự mày mò cách làm và có kết quả
    * hôm nay chia sẽ cho anh em nào có sở thích giống mình ^^
    ( hình lưu vào flash memory của MCU )
    Đồ nghề :
    Phần mềm : Paint, MSword, CCS, RTB ( của Bui Viet Hoang - bvhoang )
    [link đây] http://www.dientuvietnam.net/forums/...-va-lcd-30025/
    Phần cứng : máy chụp hình, kitPIC

    Bước 1: chụp hình -> chép vào PC -> insert vào MSword -> cắt khung hình nhỏ lại (128x64)
    chọn Picture -> chọn grayscale -> chỉnh Contract và Brightness cho vừa ý...( đừng tắt )
    -> copy hình vào paint -> save as "Monochrome Bitmap" -> nếu chưa vừa ý vào MSWord chỉnh lại
    (nếu có Photoshop - Filter -> Filter Gallery -> Sketch -> Stamp); thêm Text vào
    *Cắt hình (128x64) thành 4 mảnh - mỗi mảnh (32x64)
    Bước 2:
    Dùng chương trình RTB (link ở trên) chuyển mỗi ảnh nhỏ thành 4 mảng (mổi mảng 256 phần tử)
    -Copy mã sinh từ RTB vào CCS - đặt tên - khai báo cho mỗi mảng
    ( nếu ko cắt hình thành 4 mảnh thì cắt mảng thành 4 mảng )
    CONST byte BITMAP_0[32][8]={
    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
    ...};

    CONST byte BITMAP_1[32][8]={...};
    CONST byte BITMAP_2[32][8]={...);
    CONST byte BITMAP_3[32][8]={...);
    Bước 3 :coding trên CCS
    Code này lấy giá trị từng bit của mảng để hiển thị lên GLCD
    #include <16F887.h>
    #fuses HS,NOWDT,NOPROTECT,NOLVP
    #use delay(clock=20000000)
    #include <HDM64GS12.C>
    INT8 I,J;
    INT8 BIT;
    INT8 SEG;
    INT8 ROW;
    INT8 COLUMM;
    INT8 BITMAP;
    INT1 COLOR;
    // Khai báo 4 mảng chổ này
    void main() {
    Glcd_init(ON);
    COLUMM=0;
    BITMAP=0;
    // Code hiển thị
    FOR (I=0;I<=31;I++){
    FOR(J=0;J<=7;J++){
    IF (BITMAP==0) SEG = BITMAP_0[I][J];
    IF (BITMAP==1) SEG = BITMAP_1[I][J];
    IF (BITMAP==2) SEG = BITMAP_2[I][J];
    IF (BITMAP==3) SEG = BITMAP_3[I][J];
    FOR (BIT=0;BIT<=7;BIT++)
    {IF (SEG>=0X80) COLOR=1;
    ELSE COLOR=0;
    ROW= (J*8)+BIT;
    GLCD_PIXEL(COLUMM, ROW ,COLOR);
    SEG=SEG<<1;
    }};
    COLUMM++;};
    BITMAP++;
    IF (BITMAP==4) GOTO EXIT; ) // <- HIỂN THỊ XONG - LÀM VIỆC KHÁC
    Attached Files
    Đang thất nghiệp 0988-010-486

  • #2
    Đẹp đấy bác
    Đối với Tôi Đam mê là yếu tố không thể thiếu để quyết định sự Thành Công ...!
    Gmail: -Mobile: 0989.194.472

    Comment


    • #3
      tại sao phải cắt mảng 128x64 thành 4 mảng nhỏ ? phải chăng động tác cắt này là do code CCS ? Thế có người k muốn cắt thành 4 mảng nhỏ thì u sử lí như thế nào ? (<---câu hỏi ngoài lề ) .

      Comment


      • #4
        màn hình GLCD 128x64 -> có 8192 bit (cũng là pixel) -> 1024 byte
        Một mảng trong C tối đa là 256 phần tử ( mỗi phần tử là một byte)
        => do đó phải cắt thành 4 tối thiếu : 256x4 = 1024
        - cắt tối đa là 256
        Có thể cắt ra làm nhiều mảnh hơn để làm hiệu ứng khi hiển thị ( giống như chiếu slide trong PowerPoint)
        Đang thất nghiệp 0988-010-486

        Comment


        • #5
          Bác Tay mơ post dùm em cái project này đi. hay đó bác
          Be quan. Plz contact through email:

          Comment


          • #6
            Code here

            Toàn bộ code mình copypast ra phía trên rồi mà - tuy nhiên origin here
            Attached Files
            Đang thất nghiệp 0988-010-486

            Comment


            • #7
              quá ọkie. ^^ thanks bác nha.
              Bác có thử làm với LCD màu không? Em đang định làm thử giai diện điện thoại với LCD màu mua của China ( Màn hình IPhone hình như chỉ có hơn 100k thôi), sắc nét hết ý.
              Be quan. Plz contact through email:

              Comment


              • #8
                hay đấy.bác có mạch không gủi mình với thank nhiều

                Comment


                • #9
                  [phatcddt] bạn chưa dùng CCS àh - <HDM64GS12.C> có sẳn trong thư viện của CCS - upload lên đây làm gì
                  còn mạch điện thì ko có gì để nói luôn - vì còn tuỳ theo bạn dùng PIC nào - xài Port nào - bạn sẽ cấu hình nó trong <HDM64GS12.C>
                  Đang thất nghiệp 0988-010-486

                  Comment


                  • #10
                    Wow cái LCD màu rẻ vậy.Làm giao diện điện thoại với pic sợ tốc độ rÙa quá.
                    , , ,

                    Comment


                    • #11
                      Thân chào và cảm ơn toàn thể anh em. anh em cho mình hỏi phần mềm Phần mềm RTB có hổ trợ xoay chữ ngược giống như soi gương ko > anh em nào biết giúp mình với.Chân thành cảm ơn toàn thể anh em.

                      Comment


                      • #12
                        huynh nào biết giúp em với!

                        Comment


                        • #13
                          dùng mspaint mirror bitmap chứ mirror font làm gì - chưa xài àh
                          Đang thất nghiệp 0988-010-486

                          Comment


                          • #14
                            e đang làm đề tài hiển thị nhiệt độ lên LCD 128x64 dùng pic 16f877a . bác cho em xin những thứ liên quan đến LCD 128x64

                            Comment

                            Về tác giả

                            Collapse

                            tay mơ Tìm hiểu thêm về tay mơ

                            Bài viết mới nhất

                            Collapse

                            Đang tải...
                            X