上個月,我回顧了Amicus18開發(fā)板,它是具有PIC微控制器的Arduino風(fēng)格的平臺。 Amicus18板與Arduino屏蔽板物理兼容。但是,板上的默認(rèn)PIC處理器為3.3 V類型,在連接一些嚴(yán)格在+ 5V電壓下運行的屏蔽時可能會出現(xiàn)問題。作為對Amicus18開發(fā)板用戶的支持,來自荷蘭的Gevo Electronics設(shè)計了一種特殊的防護罩,名為 AmiPIC18 LCD 。雖然名稱說它是LCD屏蔽,但實際上它提供了許多功能,我們將在本文中進(jìn)行探討。
Gevo的AmiPIC18 LCD屏蔽電子產(chǎn)品
下圖顯示了AmiPIC18 LCD防護罩。除LCD顯示屏外,該防護罩還提供了四個輕觸開關(guān),一個溫度開關(guān)。傳感器(TC74),串行EEPROM(24LC256)和帶有備用電池(CR1220)支架的實時時鐘IC(DS1307Z),使其成為在Amicus18板上進(jìn)行實驗的理想選擇。利用板上提供的所有這些功能,您可以輕松地將此屏蔽層變成溫度數(shù)據(jù)記錄器項目。
AmiPIC18 LCD屏蔽PCB
屏蔽層共有24個母頭插針,用于接收LCD顯示屏。您可能想知道為什么它有這么多用于LCD連接的引腳。這是因為用于此屏蔽的LCD顯示器是Electronic Assembly DOG系列LCD模塊中的一種,該模塊使用ST7036控制器/驅(qū)動器芯片。這是我對此盾牌最喜歡的功能之一。 ST7036的指令集與HD44780兼容。此外,它還提供了基于HD44780的LCD所沒有的許多其他功能。例如,可以將其配置為通過與微控制器的串行(SPI)接口驅(qū)動點矩陣LCD。同樣,ST7036驅(qū)動程序提供LCD命令以調(diào)整顯示對比度。這不是很酷的功能嗎?有關(guān)ST7036顯示驅(qū)動器的更多詳細(xì)信息,請參見數(shù)據(jù)表。
帶有16x2字符LCD的AmiPIC18 LCD防護板
板上的連接
下圖顯示了堆疊在Amicus18板上的AmiPIC18 LCD屏蔽層。屏蔽層上的LCD引腳經(jīng)過硬接線,以4位模式工作。數(shù)據(jù)引腳(D4-D7)連接到RB4-RB7端口引腳,而控制信號RS(寄存器選擇)和E(使能)分別由PIC18F25k20微控制器的RB2和RB3引腳驅(qū)動。屏蔽板上的TC74、24LC256和DS1307Z器件均兼容I2C,并連接到I2C端口引腳RC3(SCL)和RC4(SDA)。四個輕觸開關(guān)轉(zhuǎn)到PORTA引腳(RA0-RA3)。 RB1引腳用于控制LCD背光。 RB1的邏輯高電平打開背光,邏輯低電平將其關(guān)閉。可以通過在RB1端口引腳上生成PWM(脈沖寬度調(diào)制)信號來改變背光強度。
LCD屏蔽已插入進(jìn)入Amicus18開發(fā)板
如果您在Amicus18板上使用5.0 V器件(PIC18F25K22),則仍可以使用此LCD屏蔽,因為它還提供了板上跳線(JP1 ),以選擇3.3 V和5.0 V之間的電源。
軟件
在這里,我已經(jīng)在 Proton BASIC中編寫了一些演示程序 strong》測試ST7036顯示驅(qū)動器的LCD對比度設(shè)置命令。程序從TC74傳感器讀取環(huán)境溫度并將其顯示在LCD上。連接到RA0和RA1引腳的兩個輕觸開關(guān)將允許您增加或減小LCD顯示屏的對比度。
‘ Program for testing LCD contrast adjustment through firmware
’ using AmiPIC18 LCD Shield
Contrast var Byte
ContrastSet var Byte
Symbol Backlight = PORTB.1 ‘ Backlight ON/OFF switch
Symbol Sw_1 = PORTA.0 ’ DOWN contrast
Symbol Sw_2 = PORTA.1 ‘ UP Contrast
Symbol SDA = PORTC.4 ’ I2C Data line
Symbol SCL = PORTC.3 ‘ I2C Clk line
Symbol TC74_Address = %10011000 ’ Address for TC74A4
Dim Temperature As Byte
LCD_DTPin = PORTB.4 ‘ LCD’s Data lines (D4 to D7)
LCD_ENPin = PORTB.3 ‘ LCD’s EN line
LCD_RSPin = PORTB.2 ‘ LCD’s RS line
LCD_Interface = 4 ‘ 4-bit interface to LCD
LCD_Lines = 2 ’ LCD contains 2 lines
LCD_Type = Alphanumeric ‘ LCD type is alphanumeric
DelayMS 500
’ ST7036 controller has slightly different initialization
Print $FE, $29 ‘ 4-bit mode,
Print $FE, $14 ’ Bias set
Print $FE, $55 ‘ Power/ICON/Control
Print $FE, $6D ’ Follower Control
Print $FE, $78 ‘ Contrast set : C3,C2,C1,C0 bits of contrast
Contrast = 5
ContrastSet = $70 + Contrast
Print $FE, ContrastSet
High Backlight
Cls ’ Clear the LCD‘s screen
Print At 1, 1, “Ami18 LCD Shield”
Start:
I2cIn SDA, SCL, TC74_Address, [Temperature]
Print At 2, 1, “T = ”, Dec Temperature,“ ”, %11011111, “C”
If Sw_1 = 0 Then
If Contrast 》 0 Then Contrast = Contrast - 1;
ContrastSet = $70 + Contrast
Print $FE, ContrastSet
EndIf
If Sw_2 = 0 Then
If Contrast 《 10 Then Contrast = Contrast + 1;
ContrastSet = $70 + Contrast
Print $FE, ContrastSet
EndIf
DelayMS 300
GoTo Start
編譯以上程序,并使用Amicus18將其加載到Amicus18 MCU中IDE。重置后,您將在屏幕上看到溫度讀數(shù),如下所示。按S1減小,按S2增強顯示對比度。顯示質(zhì)量真的很棒。
從TC74傳感器讀取的溫度(全對比度)
通過固件進(jìn)行LCD對比度調(diào)整
責(zé)任編輯:wv
-
lcd
+關(guān)注
關(guān)注
34文章
4437瀏覽量
167967 -
防護罩
+關(guān)注
關(guān)注
0文章
4瀏覽量
6624
發(fā)布評論請先 登錄
相關(guān)推薦
評論