سلام ببخشید یه سوال داشتم کد داخلی نام lcd 3.2 اینه DeviceCode=0x8999
اطلاعیه
Collapse
No announcement yet.
DeviceCode lcd 3.2
Collapse
X
-
پاسخ : DeviceCode lcd 3.2
سلام
کدش با 0x8989 فرق چندانی نداره می تونی از همون درایور 8989 استفاده کنی فقط بعدش باید خودت تابع های مخصوص به کار با ال سی دی رو با الهام گرفتن از سایر توابع بنویسی کار زیاد سختی نیست. من قبلا این کارو این طوری انجام دادم که همون کتابخانه ای که برای 8989 داشتم رو برداشتم فقط اونجاهایی که ID ال سی دی رو می خوند من ای دی 8999 رو گذاشتم و یه سری تغییر های کوچیک طبق دیتاشیتش دادم. مثلا کتابخانه ای که داشتم بعضی جاها برخی رجیسترهایی رو از ال سی دی 8989 فراخوانی می کرد که فقط آدرس رجیسترش با 8999 فرق داشت. اینا رو اصلاح کردم. بعدش که ال سی دی راه افتاد توابعی که آماده بودند برای من کار نکرد که مجبور شدم خودم از نو بشینم همه توابع مورد نیازم رو بنویسم.
پیروز و سربلند باشیدآدمی از عالم خاکی نمی آید بدست
عالمی دیگر بباید ساخت و از نو آدمی
پردازش تصویر با FPGA از صفر تا انتها
http://www.eca.ir/forum2/index.php?topic=74299.0
-
پاسخ : 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
دیدگاه
-
پاسخ : DeviceCode lcd 3.2
یه پیشنهادی دارم
معمولا توی کدهایی که برای درایور می نویسند یه بخشی هست که آی دی تراشه درایور ال سی دی رو می خونه به نظرم یه بار برنامه رو کامپایل کن بعدش پروگرام کن بعدش دیباگ کن ببین چه مقداری رو بر می گردونه بعدش برای همون بنویس. مثلا اگه 8989 رو برگردوند درایور برای اون بنویس اگر برای چیز دیگه بود هم به همین ترتیب.
اغلب کدهایی که برای درایور می نویسند یکی هست به غیر از آدرس رجیسترهایی که باید فراخوانی بشه و مقدار دهی بشه همین.
پیروز و سربلند باشیدآدمی از عالم خاکی نمی آید بدست
عالمی دیگر بباید ساخت و از نو آدمی
پردازش تصویر با FPGA از صفر تا انتها
http://www.eca.ir/forum2/index.php?topic=74299.0
دیدگاه
دیدگاه