اطلاعیه

Collapse
No announcement yet.

فونت LCD گرافیکی 240x128 برای Bascom

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    فونت LCD گرافیکی 240x128 برای Bascom

    سلام دوستان
    من دنبال می خواستم اول از فونت 8x8 و 16x16 خود بسکام که قبلا برای KS0108 استفاده کرده بودم استفاده کنم ولی کامپایلر ERROR می دهد به نظر شما چه شکلی میشه از برای این نوع LCD فونت 16x16 درست کنم؟

    #2
    پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

    در منوی بسکام گزینه ای بنام font editor وجود داره که از طریق اون میتونی فونت بسازی
    avr64.ir رو هم نگاه بنداز
    در ضمن فونت ها رو در پوشه پروژه کپی کردی؟
    فونت ساختن در بسکام کار سختیه..
    گزینه دیگه اینکه میتونی در عکس نوشته خودت رو روی تصویر ذخیره کنی و بعد روی ال سی دی بندازی

    دیدگاه


      #3
      پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

      من هر فونتی رو کپی میکنم بعد از include کردن می خوام اون رو فعال کنم بعد Error میده
      با این دستور:
      Setfont Font8x8
      Setfont Font16x16

      نوشته اصلی توسط Rezash86
      در منوی بسکام گزینه ای بنام font editor وجود داره که از طریق اون میتونی فونت بسازی
      تو منو های بسکام همچین گزینه ای وجود نداره فقط LCD designer هست. منظور شما همین هست؟

      دوستان هیچ کسی برای این نوع LCD فونت 8x8 یا 16x16 نداره ؟ :cry: :cry: :cry:

      دیدگاه


        #4
        پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

        از این لابرری تاحالا استفاده کردید؟
        http://www.mikroe.com/download/eng/documents/compilers/mikrobasic/pro/avr/help/t6963c_graphic_lcd_library.htm

        دیدگاه


          #5
          پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

          tools->plugins->font editor
          اون سایتی رو گه گفتم سر زدی؟
          نمونه کد بزار ببینم چه کردی؟

          دیدگاه


            #6
            پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

            آخر اون سایت کد یک لایبرری رو گذاشته ولی وقتی اون رو توی یک فایل lib. ذخیره میکنم . به برنامه اضافه می کنم error میده.
            اگر امکانش هست شما هم یک نگاه بندازید ببینید میشه ازش استفاده کرد؟
            خیلی خیلی کارم لنگ این فونت هست :cry: :cry:

            دیدگاه


              #7
              پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

              نوشته اصلی توسط Homayon
              آخر اون سایت کد یک لایبرری رو گذاشته ولی وقتی اون رو توی یک فایل lib. ذخیره میکنم . به برنامه اضافه می کنم error میده.
              اگر امکانش هست شما هم یک نگاه بندازید ببینید میشه ازش استفاده کرد؟
              خیلی خیلی کارم لنگ این فونت هست :cry: :cry:
              نمونه کد رو بزار
              در ضمن یه pdf هم تو سایت استاد کی نژاد هست که اگه نگاش بندازی خوبه

              دیدگاه


                #8
                پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

                کد:
                program T6963C_240x128
                
                include __Lib_T6963C_Consts
                
                ' T6963C module connections
                dim T6963C_dataPort as byte at PORTD          ' DATA port
                dim T6963C_dataPort_Direction as byte at DDRD      ' DATA direction register
                
                dim T6963C_ctrlwr as sbit at PORTC2_bit         ' WR write signal
                dim T6963C_ctrlrd as sbit at PORTC1_bit         ' RD read signal
                dim T6963C_ctrlcd as sbit at PORTC0_bit         ' CD command/data signal
                dim T6963C_ctrlrst as sbit at PORTC4_bit        ' RST reset signal
                dim T6963C_ctrlwr_Direction as sbit at DDC2_bit    ' WR write signal direction
                dim T6963C_ctrlrd_Direction as sbit at DDC1_bit    ' RD read signal direction
                dim T6963C_ctrlcd_Direction as sbit at DDC0_bit    ' CD command/data signal direction
                dim T6963C_ctrlrst_Direction as sbit at DDC4_bit    ' RST reset signal direction
                
                ' Signals not used by library, they are set in main sub function
                dim T6963C_ctrlce as sbit at PORTC3_bit         ' CE signal
                dim T6963C_ctrlfs as sbit at PORTC6_bit         ' FS signal
                dim T6963C_ctrlmd as sbit at PORTC5_bit         ' MD signal
                dim T6963C_ctrlce_Direction as sbit at DDC3_bit     ' CE signal direction
                dim T6963C_ctrlfs_Direction as sbit at DDC6_bit     ' FS signal direction
                dim T6963C_ctrlmd_Direction as sbit at DDC5_bit     ' MD signal direction
                ' End T6963C module connections
                
                dim  panel as byte     ' current panel
                     i as word     ' general purpose register
                    curs as byte     ' cursor visibility
                   cposx,
                   cposy as word     ' cursor x-y position
                   txtcols as byte    ' number of text coloms
                   txt, txt1 as string[29]
                
                main:
                 txt1 = " EINSTEIN WOULD HAVE LIKED mE"
                 txt = " GLCD LIBRARY DEMO, WELCOME !"
                
                 DDRA = 0x00          ' configure PORTA as input
                
                 DDA0_bit = 0         ' Set PB0 as input
                 DDA1_bit = 0         ' Set PB1 as input
                 DDA2_bit = 0         ' Set PB2 as input
                 DDA3_bit = 0         ' Set PB3 as input
                 DDA4_bit = 0         ' Set PB4 as input
                
                 T6963C_ctrlce_Direction = 1
                 T6963C_ctrlce = 0       ' Enable T6963C
                 T6963C_ctrlfs_Direction = 1
                 T6963C_ctrlfs = 0       ' Font Select 8x8
                 T6963C_ctrlmd_Direction = 1
                 T6963C_ctrlmd = 0       ' Column number select
                
                 panel = 0
                 i = 0
                 curs = 0
                 cposx = 0
                 cposy = 0
                
                 ' Initialize T6369C
                 T6963C_Init(240, 128, 8)
                 
                '  *
                '  * Enable both graphics and text display at the same time
                '  *
                 T6963C_graphics(1)
                 T6963C_text(1)
                
                '  *
                '  * Text messages
                '  *
                 T6963C_write_text(txt, 0, 0, T6963C_ROM_MODE_XOR)
                 T6963C_write_text(txt1, 0, 15, T6963C_ROM_MODE_XOR)
                
                
                '  *
                '  * Cursor
                '  *
                 T6963C_cursor_height(8)    ' 8 pixel height
                 T6963C_set_cursor(0, 0)    ' Move cursor to top left
                 T6963C_cursor(0)       ' Cursor off
                
                '  *
                '  * Draw rectangles
                '  *
                 T6963C_rectangle(0, 0, 239, 127, T6963C_WHITE)
                 T6963C_rectangle(20, 20, 219, 107, T6963C_WHITE)
                 T6963C_rectangle(40, 40, 199, 87, T6963C_WHITE)
                 T6963C_rectangle(60, 60, 179, 67, T6963C_WHITE)
                
                '  *
                '  * Draw a cross
                '  *
                 T6963C_line(0, 0, 239, 127, T6963C_WHITE)
                 T6963C_line(0, 127, 239, 0, T6963C_WHITE)
                
                '  *
                '  * Draw solid boxes
                '  *
                 T6963C_box(0, 0, 239, 8, T6963C_WHITE)
                 T6963C_box(0, 119, 239, 127, T6963C_WHITE)
                
                '  *
                '  * Draw circles
                '  *
                 T6963C_circle(120, 64, 10, T6963C_WHITE)
                 T6963C_circle(120, 64, 30, T6963C_WHITE)
                 T6963C_circle(120, 64, 50, T6963C_WHITE)
                 T6963C_circle(120, 64, 70, T6963C_WHITE)
                 T6963C_circle(120, 64, 90, T6963C_WHITE)
                 T6963C_circle(120, 64, 110, T6963C_WHITE)
                 T6963C_circle(120, 64, 130, T6963C_WHITE)
                  
                 T6963C_sprite(76, 4, @einstein, 88, 119)   ' Draw a sprite
                
                 T6963C_setGrPanel(1)             ' Select other graphic panel
                
                 T6963C_image(@mikroE_240x128_bmp)
                 
                 while TRUE                  ' Endless loop
                  
                
                  '*
                  '* If PA0 is pressed, toggle the display between graphic panel 0 and graphic 1
                  '*
                  if( PINA0_bit <> 0) then
                    Inc(panel) 
                    panel = panel and 1
                    T6963C_setPtr((T6963C_grMemSize + T6963C_txtMemSize) * panel, T6963C_GRAPHIC_HOME_ADDRESS_SET) 
                    Delay_ms(300) 
                
                  '*
                  '* If PA1 is pressed, display only graphic panel
                  '*
                  else
                   if ( PINA1_bit <> 0) then
                     T6963C_graphics(1) 
                     T6963C_text(0) 
                     Delay_ms(300) 
                
                  '*
                  '* If PA2 is pressed, display only text panel
                  '*
                   else
                    if ( PINA2_bit <> 0) then
                      T6963C_graphics(0) 
                      T6963C_text(1) 
                      Delay_ms(300) 
                
                  '*
                  '* If PA3 is pressed, display text and graphic panels
                  '*
                    else
                     if ( PINA3_bit <> 0) then
                       T6963C_graphics(1) 
                       T6963C_text(1) 
                       Delay_ms(300) 
                
                  '*
                  '* If PA4 is pressed, change cursor
                  '*
                     else
                      if( PINA4_bit <> 0) then
                       Inc(curs)
                       if (curs = 3) then
                        curs = 0
                       end if
                       select case curs
                        case 0
                          ' no cursor
                          T6963C_cursor(0) 
                        case 1
                          ' blinking cursor
                          T6963C_cursor(1) 
                          T6963C_cursor_blink(1) 
                        case 2
                          ' non blinking cursor
                          T6963C_cursor(1) 
                          T6963C_cursor_blink(0) 
                       end select
                        Delay_ms(300) 
                
                      end if
                     end if
                    end if
                   end if
                  end if
                
                  '*
                  '* Move cursor, even if not visible
                  '*
                  Inc(cposx)
                  if (cposx = T6963C_txtCols) then
                   cposx = 0 
                   Inc(cposy)
                   if (cposy = T6963C_grHeight / T6963C_CHARACTER_HEIGHT) then
                    cposy = 0
                   end if
                  end if
                  T6963C_set_cursor(cposx, cposy) 
                
                  Delay_ms(100) 
                 wend
                end.
                اون مقاله فارسی نویسی از آقای کی نژاد رو دیدم ولی کار باهاش سخت بود اگر بخوام به انگلیسی تغییر بردم کلا سخت تر هم میشه

                دیدگاه


                  #9
                  پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

                  نوشته اصلی توسط Homayon
                  کد:
                  program T6963C_240x128
                  
                  include __Lib_T6963C_Consts
                  
                  ' T6963C module connections
                  dim T6963C_dataPort as byte at PORTD          ' DATA port
                  dim T6963C_dataPort_Direction as byte at DDRD      ' DATA direction register
                  
                  dim T6963C_ctrlwr as sbit at PORTC2_bit         ' WR write signal
                  dim T6963C_ctrlrd as sbit at PORTC1_bit         ' RD read signal
                  dim T6963C_ctrlcd as sbit at PORTC0_bit         ' CD command/data signal
                  dim T6963C_ctrlrst as sbit at PORTC4_bit        ' RST reset signal
                  dim T6963C_ctrlwr_Direction as sbit at DDC2_bit    ' WR write signal direction
                  dim T6963C_ctrlrd_Direction as sbit at DDC1_bit    ' RD read signal direction
                  dim T6963C_ctrlcd_Direction as sbit at DDC0_bit    ' CD command/data signal direction
                  dim T6963C_ctrlrst_Direction as sbit at DDC4_bit    ' RST reset signal direction
                  
                  ' Signals not used by library, they are set in main sub function
                  dim T6963C_ctrlce as sbit at PORTC3_bit         ' CE signal
                  dim T6963C_ctrlfs as sbit at PORTC6_bit         ' FS signal
                  dim T6963C_ctrlmd as sbit at PORTC5_bit         ' MD signal
                  dim T6963C_ctrlce_Direction as sbit at DDC3_bit     ' CE signal direction
                  dim T6963C_ctrlfs_Direction as sbit at DDC6_bit     ' FS signal direction
                  dim T6963C_ctrlmd_Direction as sbit at DDC5_bit     ' MD signal direction
                  ' End T6963C module connections
                  
                  dim  panel as byte     ' current panel
                       i as word     ' general purpose register
                      curs as byte     ' cursor visibility
                     cposx,
                     cposy as word     ' cursor x-y position
                     txtcols as byte    ' number of text coloms
                     txt, txt1 as string[29]
                  
                  main:
                   txt1 = " EINSTEIN WOULD HAVE LIKED mE"
                   txt = " GLCD LIBRARY DEMO, WELCOME !"
                  
                   DDRA = 0x00          ' configure PORTA as input
                  
                   DDA0_bit = 0         ' Set PB0 as input
                   DDA1_bit = 0         ' Set PB1 as input
                   DDA2_bit = 0         ' Set PB2 as input
                   DDA3_bit = 0         ' Set PB3 as input
                   DDA4_bit = 0         ' Set PB4 as input
                  
                   T6963C_ctrlce_Direction = 1
                   T6963C_ctrlce = 0       ' Enable T6963C
                   T6963C_ctrlfs_Direction = 1
                   T6963C_ctrlfs = 0       ' Font Select 8x8
                   T6963C_ctrlmd_Direction = 1
                   T6963C_ctrlmd = 0       ' Column number select
                  
                   panel = 0
                   i = 0
                   curs = 0
                   cposx = 0
                   cposy = 0
                  
                   ' Initialize T6369C
                   T6963C_Init(240, 128, 8)
                   
                  '  *
                  '  * Enable both graphics and text display at the same time
                  '  *
                   T6963C_graphics(1)
                   T6963C_text(1)
                  
                  '  *
                  '  * Text messages
                  '  *
                   T6963C_write_text(txt, 0, 0, T6963C_ROM_MODE_XOR)
                   T6963C_write_text(txt1, 0, 15, T6963C_ROM_MODE_XOR)
                  
                  
                  '  *
                  '  * Cursor
                  '  *
                   T6963C_cursor_height(8)    ' 8 pixel height
                   T6963C_set_cursor(0, 0)    ' Move cursor to top left
                   T6963C_cursor(0)       ' Cursor off
                  
                  '  *
                  '  * Draw rectangles
                  '  *
                   T6963C_rectangle(0, 0, 239, 127, T6963C_WHITE)
                   T6963C_rectangle(20, 20, 219, 107, T6963C_WHITE)
                   T6963C_rectangle(40, 40, 199, 87, T6963C_WHITE)
                   T6963C_rectangle(60, 60, 179, 67, T6963C_WHITE)
                  
                  '  *
                  '  * Draw a cross
                  '  *
                   T6963C_line(0, 0, 239, 127, T6963C_WHITE)
                   T6963C_line(0, 127, 239, 0, T6963C_WHITE)
                  
                  '  *
                  '  * Draw solid boxes
                  '  *
                   T6963C_box(0, 0, 239, 8, T6963C_WHITE)
                   T6963C_box(0, 119, 239, 127, T6963C_WHITE)
                  
                  '  *
                  '  * Draw circles
                  '  *
                   T6963C_circle(120, 64, 10, T6963C_WHITE)
                   T6963C_circle(120, 64, 30, T6963C_WHITE)
                   T6963C_circle(120, 64, 50, T6963C_WHITE)
                   T6963C_circle(120, 64, 70, T6963C_WHITE)
                   T6963C_circle(120, 64, 90, T6963C_WHITE)
                   T6963C_circle(120, 64, 110, T6963C_WHITE)
                   T6963C_circle(120, 64, 130, T6963C_WHITE)
                    
                   T6963C_sprite(76, 4, @einstein, 88, 119)   ' Draw a sprite
                  
                   T6963C_setGrPanel(1)             ' Select other graphic panel
                  
                   T6963C_image(@mikroE_240x128_bmp)
                   
                   while TRUE                  ' Endless loop
                    
                  
                    '*
                    '* If PA0 is pressed, toggle the display between graphic panel 0 and graphic 1
                    '*
                    if( PINA0_bit <> 0) then
                      Inc(panel) 
                      panel = panel and 1
                      T6963C_setPtr((T6963C_grMemSize + T6963C_txtMemSize) * panel, T6963C_GRAPHIC_HOME_ADDRESS_SET) 
                      Delay_ms(300) 
                  
                    '*
                    '* If PA1 is pressed, display only graphic panel
                    '*
                    else
                     if ( PINA1_bit <> 0) then
                       T6963C_graphics(1) 
                       T6963C_text(0) 
                       Delay_ms(300) 
                  
                    '*
                    '* If PA2 is pressed, display only text panel
                    '*
                     else
                      if ( PINA2_bit <> 0) then
                        T6963C_graphics(0) 
                        T6963C_text(1) 
                        Delay_ms(300) 
                  
                    '*
                    '* If PA3 is pressed, display text and graphic panels
                    '*
                      else
                       if ( PINA3_bit <> 0) then
                         T6963C_graphics(1) 
                         T6963C_text(1) 
                         Delay_ms(300) 
                  
                    '*
                    '* If PA4 is pressed, change cursor
                    '*
                       else
                        if( PINA4_bit <> 0) then
                         Inc(curs)
                         if (curs = 3) then
                          curs = 0
                         end if
                         select case curs
                          case 0
                            ' no cursor
                            T6963C_cursor(0) 
                          case 1
                            ' blinking cursor
                            T6963C_cursor(1) 
                            T6963C_cursor_blink(1) 
                          case 2
                            ' non blinking cursor
                            T6963C_cursor(1) 
                            T6963C_cursor_blink(0) 
                         end select
                          Delay_ms(300) 
                  
                        end if
                       end if
                      end if
                     end if
                    end if
                  
                    '*
                    '* Move cursor, even if not visible
                    '*
                    Inc(cposx)
                    if (cposx = T6963C_txtCols) then
                     cposx = 0 
                     Inc(cposy)
                     if (cposy = T6963C_grHeight / T6963C_CHARACTER_HEIGHT) then
                      cposy = 0
                     end if
                    end if
                    T6963C_set_cursor(cposx, cposy) 
                  
                    Delay_ms(100) 
                   wend
                  end.
                  اون مقاله فارسی نویسی از آقای کی نژاد رو دیدم ولی کار باهاش سخت بود اگر بخوام به انگلیسی تغییر بردم کلا سخت تر هم میشه
                  مهندس جان این پیچیدگی که تو ایجاد کردی کم از پیچیدگی که در اون مقاله هست نیست...سر فرصت کد رو دقیق بررسی میکنم..
                  اکا به لطفpdf استادکی نژاد ، دو تا پروژه تو این ماه اخیر انجام دادم و با رعایت اصول و به لطف خدا هیچ ارروری نداشتم و دستگاه به خبی کار میکنه

                  دیدگاه


                    #10
                    پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

                    شما در اون پروژه ها از فونت فارسی استفاده کردید؟ یا خودتون اون رو به انگلیسی تغییر دادید و فونت 8x8 , 16x16 ساختید؟

                    دیدگاه


                      #11
                      پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

                      نوشته اصلی توسط Homayon
                      شما در اون پروژه ها از فونت فارسی استفاده کردید؟ یا خودتون اون رو به انگلیسی تغییر دادید و فونت 8x8 , 16x16 ساختید؟
                      اره همش فارسی بود
                      کاراکتر های مربوط به هر حرف رو کنار همدیگه چیندم و در ال سی دی قرار دادم
                      به همین سادگی
                      دقیقا همون کارکتر هایی که در سایت استاد کی نژاد قرار داده
                      ساختنش کار فوق ال عاده سختیه
                      روشش سادست
                      اما ایمکه دقیق و رو حساب کتاب حروف رو بسازی سخته
                      پیشنهاد من اینه مه از همون pdf و فونت های استاد کی نژاد استفاده کنی
                      حجم گدت هم خیلی از این که نوشتی پایین تر میاد
                      برای مثال
                      کد:
                      Setfont Font8x8
                      Lcdat 3 , 22 , Chr(165) ; Chr(190) ; Chr(164) ; Chr(197)  'markaz
                      Lcdat 3 , 55 , Chr(145) ; Chr(147)             'ba
                      Lcdat 3 , 75 , Chr(193) ; Chr(145) ; Chr(172) ; Chr(151) ; Chr(144)    'etesal

                      دیدگاه


                        #12
                        پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

                        اون کدها و من ننوشتم از اون لینکی که گذاشته بودم برداشتم
                        در ضمن من به حروف فارسی نباز ندارم فقط دنبال فونت 16x16 انگلیسی می گردم

                        دیدگاه


                          #13
                          پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

                          یا شما منظورت رو درست نمیرسونی یا خیلی داری کار رو سخت
                          برای نوشتن با فونت 16*16:
                          setfont font16x16
                          lcdat,1,1,"salam"
                          فکر نمیکنم کار سختی باشه
                          نیاز به کد برداشتن از جایی هم نیست

                          دیدگاه


                            #14
                            پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

                            نوشته اصلی توسط Rezash86
                            یا شما منظورت رو درست نمیرسونی یا خیلی داری کار رو سخت
                            برای نوشتن با فونت 16*16:
                            setfont font16x16
                            lcdat,1,1,"salam"
                            فکر نمیکنم کار سختی باشه
                            نیاز به کد برداشتن از جایی هم نیست
                            عزیز من مثل اینکه شما کلا پست ها رو درست نمی خونید
                            من از LCD 240x128 دارم استفاده می کنم با چیپست T6963 نه KS0108.
                            این دستورها برای LCD 128x64 کاربرد داره نه این LCD
                            اصلا طراحی فونت برای LCD 240x128 با 128x64 قضیش کلا فرق داره

                            دیدگاه


                              #15
                              پاسخ : فونت LCD گرافیکی 240x128 برای Bascom

                              سلام دوست عزیز من هم همین مشکل رو دارم اگر شما راه حلی پیدا کردید ممنون میشم کمک کنید . چون ظاهراً دیگران زیاد با این نمایشگر کار نکردن ، شاید به خاطر بزرگ بودن و قیمت بالای این نمایشگر .
                              سعود مرداني M4AZ

                              دیدگاه

                              لطفا صبر کنید...
                              X