<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.mcselec.com/bavr/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=LCD_DOGS104A_I2C</id>
		<title>LCD DOGS104A I2C - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=LCD_DOGS104A_I2C"/>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=LCD_DOGS104A_I2C&amp;action=history"/>
		<updated>2026-04-06T13:42:31Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<entry>
		<id>http://wiki.mcselec.com/bavr/index.php?title=LCD_DOGS104A_I2C&amp;diff=5475&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;This is a user contributed lbx for the EADOGS104 with the SSD1803A.  &amp;nbsp;  The SAMPLES\LCDGRAPH folder contains the sample&amp;nbsp;:  &lt;br/&gt;&lt;source lang=&quot;bascomavr&quot;&gt; '----------...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=LCD_DOGS104A_I2C&amp;diff=5475&amp;oldid=prev"/>
				<updated>2017-01-17T19:52:23Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;This is a user contributed lbx for the EADOGS104 with the SSD1803A.     The SAMPLES\LCDGRAPH folder contains the sample :  &amp;lt;br/&amp;gt;&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt; &amp;#039;----------...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This is a user contributed lbx for the EADOGS104 with the SSD1803A.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
The SAMPLES\LCDGRAPH folder contains the sample&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'--------------------------------------------------------------&lt;br /&gt;
' DOGS-104.bas&lt;br /&gt;
' Demonstration for DOGS 104-A display&lt;br /&gt;
' (c) R. Müller-Westermann&lt;br /&gt;
' HB9EFQ@yahoo.com&lt;br /&gt;
'--------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
$regfile = &amp;quot;m168def.dat&amp;quot;&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
'$sim&lt;br /&gt;
 &lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
$framesize = 64&lt;br /&gt;
 &lt;br /&gt;
$lib &amp;quot;Lcd_dogs104a_i2c.lbx&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'LCD -----------------------------------------------------------------&lt;br /&gt;
'chipset:DOGS104V3&lt;br /&gt;
'DOGS104 Display can use either &amp;amp;H78 if pin SA0 of module is set to GND&lt;br /&gt;
'or &amp;amp;H7A if SA0 of module is set to VDD for I2C communication.&lt;br /&gt;
'Pullup resistors on SDA and SCL lines of less or equal to 3.9kOhm @3.3V&lt;br /&gt;
'are recommended.&lt;br /&gt;
 &lt;br /&gt;
Const Dogs104_adr_w = &amp;amp;H78 'I2C write address&lt;br /&gt;
Const Dogs104_adr_r = &amp;amp;H79 'I2C read address&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'LCD has 2 view options. If LCD_view is set to 0 characters are being&lt;br /&gt;
'displayed in bottom view (6 o'clock). If set to 1 characters are being&lt;br /&gt;
'displayed in top view (12 0'clock)&lt;br /&gt;
Const Lcd_view = 0 'bottom view&lt;br /&gt;
'Const Lcd_view = 1 'top View&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'configuration is needed for defining start address of LCD RAM&lt;br /&gt;
Config Lcd = 20x2&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'LCD comes with 3 different character sets. These can be accessed by setting&lt;br /&gt;
'LCD_ROM&lt;br /&gt;
Const Lcd_rom = 1 'ROM A&lt;br /&gt;
'Const Lcd_rom = 2 'ROM B&lt;br /&gt;
'Const Lcd_rom = 3 'ROM C&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'there are 2 custom procedures witch provide number of lines switching at&lt;br /&gt;
'runtime. You can either choose 2 line mode with double hight fonts or regular&lt;br /&gt;
'4 line mode. This is the standard mode used by Initlcd.&lt;br /&gt;
$external 2line_mode&lt;br /&gt;
$external 4line_mode&lt;br /&gt;
 &lt;br /&gt;
'LCD -----------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
Declare Sub 2line_mode&lt;br /&gt;
Declare Sub 4line_mode&lt;br /&gt;
 &lt;br /&gt;
'TWI-------------------------------------------------------------------&lt;br /&gt;
Config Scl = Portc.5&lt;br /&gt;
Config Sda = Portc.4&lt;br /&gt;
I2cinit&lt;br /&gt;
'TWI-------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Initlcd&lt;br /&gt;
Waitms 100&lt;br /&gt;
 &lt;br /&gt;
'As with any other LCD module, you can define up to 8 additional characters&lt;br /&gt;
'by using the regular Bascom command&lt;br /&gt;
 &lt;br /&gt;
'-----------------------------------------------------------------&lt;br /&gt;
 Deflcdchar 1 , 32 , 32 , 4 , 10 , 17 , 10 , 4 , 32 ' circle&lt;br /&gt;
'-----------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
Cls&lt;br /&gt;
 &lt;br /&gt;
Waitms 100&lt;br /&gt;
 &lt;br /&gt;
Cursor Off&lt;br /&gt;
 &lt;br /&gt;
Locate 1 , 1 : Lcd Chr(1)&lt;br /&gt;
 &lt;br /&gt;
Wait 2&lt;br /&gt;
 &lt;br /&gt;
'standard initialization of LCD is set to 4 line mode&lt;br /&gt;
 &lt;br /&gt;
Cls&lt;br /&gt;
 &lt;br /&gt;
Locate 1 , 1 : Lcd &amp;quot;line 1&amp;quot;&lt;br /&gt;
Locate 2 , 1 : Lcd &amp;quot;line 2&amp;quot;&lt;br /&gt;
Locate 3 , 1 : Lcd &amp;quot;line 3&amp;quot;&lt;br /&gt;
Locate 4 , 1 : Lcd &amp;quot;line 4&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Wait 2&lt;br /&gt;
 &lt;br /&gt;
'-----------------------------------&lt;br /&gt;
 &lt;br /&gt;
Cls&lt;br /&gt;
 &lt;br /&gt;
'if needed LCD can be switched to 2 line mode&lt;br /&gt;
2line_mode&lt;br /&gt;
 &lt;br /&gt;
Locate 1 , 3 : Lcd &amp;quot;line 1&amp;quot;&lt;br /&gt;
Locate 2 , 3 : Lcd &amp;quot;line 2&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Wait 2&lt;br /&gt;
 &lt;br /&gt;
' ... and back to 4 line mode&lt;br /&gt;
 &lt;br /&gt;
4line_mode&lt;br /&gt;
 &lt;br /&gt;
Cls&lt;br /&gt;
 &lt;br /&gt;
Locate 1 , 3 : Lcd &amp;quot;line 1 &amp;quot;&lt;br /&gt;
Locate 2 , 3 : Lcd &amp;quot;line 2&amp;quot;&lt;br /&gt;
Locate 3 , 3 : Lcd &amp;quot;line 3&amp;quot;&lt;br /&gt;
Locate 4 , 3 : Lcd &amp;quot;line 4&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Wait 2&lt;br /&gt;
 &lt;br /&gt;
'if desired you can put the LCD module in power down mode. This saves some&lt;br /&gt;
'400µA.&lt;br /&gt;
'Any other command applicable for DOGS104A using SSD1803A controller can be&lt;br /&gt;
'issued by using regular Rcall _Lcd_control command with preloaded&lt;br /&gt;
'R24 register.&lt;br /&gt;
 &lt;br /&gt;
Display Off&lt;br /&gt;
Waitms 100&lt;br /&gt;
 &lt;br /&gt;
'power down ----------------&lt;br /&gt;
 &lt;br /&gt;
R24 = &amp;amp;B00111010 '8 bit data RE1, REV0&lt;br /&gt;
Lcdcmd R24&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
R24 = &amp;amp;B00000011 'power down&lt;br /&gt;
Lcdcmd R24&lt;br /&gt;
 &lt;br /&gt;
R24 = &amp;amp;B00111000 '8 bit data RE0, IS0&lt;br /&gt;
Lcdcmd R24&lt;br /&gt;
 &lt;br /&gt;
'power down ----------------&lt;br /&gt;
 &lt;br /&gt;
Wait 2&lt;br /&gt;
 &lt;br /&gt;
'... and power up again. LCD RAM remains unchanged.&lt;br /&gt;
 &lt;br /&gt;
'power up -----------------&lt;br /&gt;
 &lt;br /&gt;
R24 = &amp;amp;B00111010 '8 bit data RE1, REV0&lt;br /&gt;
Lcdcmd R24&lt;br /&gt;
 &lt;br /&gt;
R24 = &amp;amp;B00000010 'power up&lt;br /&gt;
Lcdcmd R24&lt;br /&gt;
 &lt;br /&gt;
R24 = &amp;amp;B00111000 '8 bit data RE0, IS0&lt;br /&gt;
Lcdcmd R24&lt;br /&gt;
 &lt;br /&gt;
'power up -----------------&lt;br /&gt;
 &lt;br /&gt;
Waitms 100&lt;br /&gt;
Display On&lt;br /&gt;
 &lt;br /&gt;
Locate 4 , 1 : Lcd &amp;quot;powered up&amp;quot;&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;{{Languages}}&lt;br /&gt;
&lt;br /&gt;
[[Category:ASM Libraries and Add-Ons]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>