اطلاعیه

Collapse
No announcement yet.

DeviceCode lcd 3.2

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

    DeviceCode lcd 3.2

    سلام ببخشید یه سوال داشتم کد داخلی نام lcd 3.2 اینه DeviceCode=0x8999

    #2
    پاسخ : DeviceCode lcd 3.2

    سلام
    کدش با 0x8989 فرق چندانی نداره می تونی از همون درایور 8989 استفاده کنی فقط بعدش باید خودت تابع های مخصوص به کار با ال سی دی رو با الهام گرفتن از سایر توابع بنویسی کار زیاد سختی نیست. من قبلا این کارو این طوری انجام دادم که همون کتابخانه ای که برای 8989 داشتم رو برداشتم فقط اونجاهایی که ID ال سی دی رو می خوند من ای دی 8999 رو گذاشتم و یه سری تغییر های کوچیک طبق دیتاشیتش دادم. مثلا کتابخانه ای که داشتم بعضی جاها برخی رجیسترهایی رو از ال سی دی 8989 فراخوانی می کرد که فقط آدرس رجیسترش با 8999 فرق داشت. اینا رو اصلاح کردم. بعدش که ال سی دی راه افتاد توابعی که آماده بودند برای من کار نکرد که مجبور شدم خودم از نو بشینم همه توابع مورد نیازم رو بنویسم.

    پیروز و سربلند باشید
    آدمی از عالم خاکی نمی آید بدست

    عالمی دیگر بباید ساخت و از نو آدمی
    پردازش تصویر با FPGA از صفر تا انتها
    http://www.eca.ir/forum2/index.php?topic=74299.0

    دیدگاه


      #3
      پاسخ : DeviceCode lcd 3.2

      الان از 8999 استفاده کنم یا 8989 من ال سی دی سایت رو دارم

      دیدگاه


        #4
        پاسخ : DeviceCode lcd 3.2

        این برناممه
        کد:
        $regfile = "m16def.dat"
        $crystal = 8000000
        Datalsb Alias Portd
        Datamsb Alias Portc
        Lcd_Cs Alias Portb.0
        Lcd_Rs Alias Portb.1
        Lcd_Wr Alias Portb.2
        Lcd_Rd Alias Portb.3
        Config Datalsb = Output
        Config Datamsb = Output
        Config Lcd_Cs = Output
        Config Lcd_Rs = Output
        Config Lcd_wr = Output
        Config Lcd_Rd = Output
        Const Black =&H0000
        Const Navy = &H000F
        Const Darkgreen = &H03E0
        Const Darkcyan = &H03EF
        Const Maroon = &H7800
        Const Purple = &H780F
        Const Olive = &H7BE0
        Const Lightgrey = &HC618
        Const Darkgrey = &H7BEF
        Const Blue = &H001F
        Const Green = &H07E0
        Const Cyan = &H07FF
        Const Red = &HF800
        Const Magenta = &HF81F
        Const Yellow =&Hffe0
        Const White = &HFFFF
        '###############################################################################
        CONFIG SUBMODE = NEW
        Declare Sub Wr_cmd(byval Address As Byte)
        Declare Sub Wr_data(byval Dat As Word)
        Declare Sub Wr_reg(byval Address As Byte , Byval Dat As Word)
        Declare Sub Lcd_setcursor(byval X As Word , Byval Y As Word )
        Declare Sub Lcd_windowmax()
        Declare Sub Wr_dat_start()
        Declare Sub Wr_dat_stop()
        Declare Sub Lcd_send(byval Dat As Word)
        Declare Sub Wr_dat_only(byval Dat As Word)
        Declare Sub Init()
        Init
        
        '###############################################################################
        Dim I As Long
        Do
        Lcd_windowmax
        Lcd_setcursor 0 , 0
        Lcd_cs = 0
        Wr_cmd &H22
        Wr_dat_start
        For I = 0 To 76599
        Wr_dat_only Red
        NOP
        Next For
        Wr_dat_stop
        Loop
        'write commend##################################################################
        Sub Wr_cmd
        Lcd_rs = 0
        Lcd_rd = 1
        Datalsb = ADDRESS
        Datamsb = &H00
        Lcd_wr = 0
        Nop
        Lcd_wr = 1
        End Sub
        'write data ##################################################################
        Sub Wr_data
        Lcd_rs = 1
        Lcd_rd = 1
        Lcd_send Dat
        Lcd_wr = 0
        nop
        Lcd_wr = 1
        End Sub
        'write reg #####################################################################
        Sub Wr_reg
        Lcd_cs = 0
        Wr_cmd Address
        Wr_data Dat
        Lcd_cs = 1
        End Sub
        'set cursor'####################################################################
        Sub Lcd_setcursor
        Wr_reg &H004E , X
        Wr_reg &H004F , Y
        End Sub
        'lcd maximum####################################################################
        Sub Lcd_windowmax()
        Wr_reg &H50 , 0
        Wr_reg &H51 , 319
        Wr_reg &H52 , 0
        Wr_reg &H53 , 239
        End Sub
        'Wr_dat_start###################################################################
        Sub Wr_dat_start
        Lcd_rs = 1
        End Sub
        'Wr_dat_stop###################################################################2
        Sub Wr_dat_stop
        Lcd_cs = 1
        End Sub
        'Wr_dat_only###################################################################2
        Sub Wr_dat_only(byval Dat As Word)
        Lcd_send Dat
        Lcd_wr = 0
        nop
        Lcd_wr = 1
        End Sub
        'LCD SEND#######################################################################
        Sub Lcd_send(byval Dat As Word)
        Datalsb = Low(dat)
        Datamsb = High(dat)
        End Sub
        'lcd init#######################################################################
        Sub init
         '//************* Start Initial Sequence **********//
        Wr_reg &H00 , &H0001                    '// Start internal OSC.
        Wr_reg &H01 , &H3B3F                    '// Driver output control, RL=0;REV=1;GD=1;BGR=0;SM=0;TB=1
        Wr_reg &H02 , &H0600                    '// set 1 line inversion
         '//************* Power control setup ************/
        Wr_reg &H0C , &H0007                    ' // Adjust VCIX2 output voltage
        Wr_reg &H0D , &H0006                    ' / / Set Amplitude Magnification Of Vlcd63
        Wr_reg &H0E , &H3200                    ' / / Set Alternating Amplitude Of Vcom
        Wr_reg &H1E , &H00BB                    ' / / Set Vcomh Voltage
        Wr_reg &H03 , &H6A64                    '// Step-up factor/cycle setting 7b30
         ' //************ RAM position control **********/
        Wr_reg &H0F , &H0000                    '// Gate scan position start at G0.
        Wr_reg &H44 , &HEF00                    '// Horizontal RAM address position
        Wr_reg &H45 , &H0000                    '// Vertical RAM address start position
        Wr_reg &H46 , &H013F                    ' Vertical RAM address end position
         ' // ----------- Adjust the Gamma Curve ----------//
        Wr_reg &H30 , &H0000
        Wr_reg &H31 , &H0706
        Wr_reg &H32 , &H0206
        Wr_reg &H33 , &H0300
        Wr_reg &H34 , &H0002
        Wr_reg &H35 , &H0000
        Wr_reg &H36 , &H0707
        Wr_reg &H37 , &H0200
        Wr_reg &H3A , &H0908
        Wr_reg &H3B , &H0F0D
        '//************* Special command **************/
        Wr_reg &H28 , &H0006                    '; // Enable test command
        Wr_reg &H2F , &H12EB                    '; // RAM speed tuning
        Wr_reg &H26 , &H7000                    '; // Internal Bandgap strength
        Wr_reg &H20 , &HB0E3                    '; // Internal Vcom strength
        Wr_reg &H27 , &H0044                    '; // Internal Vcomh/VcomL timing
        Wr_reg &H2E , &H7E45                    '; // VCOM charge sharing time
        '//************* Turn On display ******************/
        Wr_reg &H10 , &H0000                    '; // Sleep mode off.
        Waitms 30
        Wr_reg &H11 , &H6870                    '; // Entry mode setup. 262K type B, take care on the data bus with 16it only
        Wr_reg &H07 , &H0033                    '; // Display ON */
        End Sub
        برای بسکام نوشتم با الهام از برنامه سایت ولی نمویدونم از کدون استفاده کنم موندم چیکار کنم مشکلم چیه نمیدونم

        دیدگاه


          #5
          پاسخ : DeviceCode lcd 3.2

          یه پیشنهادی دارم
          معمولا توی کدهایی که برای درایور می نویسند یه بخشی هست که آی دی تراشه درایور ال سی دی رو می خونه به نظرم یه بار برنامه رو کامپایل کن بعدش پروگرام کن بعدش دیباگ کن ببین چه مقداری رو بر می گردونه بعدش برای همون بنویس. مثلا اگه 8989 رو برگردوند درایور برای اون بنویس اگر برای چیز دیگه بود هم به همین ترتیب.
          اغلب کدهایی که برای درایور می نویسند یکی هست به غیر از آدرس رجیسترهایی که باید فراخوانی بشه و مقدار دهی بشه همین.

          پیروز و سربلند باشید
          آدمی از عالم خاکی نمی آید بدست

          عالمی دیگر بباید ساخت و از نو آدمی
          پردازش تصویر با FPGA از صفر تا انتها
          http://www.eca.ir/forum2/index.php?topic=74299.0

          دیدگاه

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