带 USB Toolstick c8051 的 LCD
带 USB Toolstick c8051 的 LCD
- 下载桌面应用程序(类似于USB超级终端)- 11.85 KB
- 下载定时器 - 'toolstick F330'(LCD控制器)的固件 - 18 KB
- 下载'调试适配器'(USB-UART)的固件 - 82.76 KB
引言
这是一个LCD (MC20E2D-SYL) 8位2x20 LCD模块,使用Silabs 'toolstick dauther (F330)',并更新了新的固件(在'timer.zip'中 - LCD控制器)和'调试适配器(F321)'(也称为'toolstick EK')制作的单元。
通过它,你可以通过USB调试适配器发送文本到显示屏。
原型板
要使用'usbhidio',你必须更新'调试适配器'的固件。
Toolstick --实际上在下载部分顶部的固件中被称为'调试适配器'。
(要更新,请使用'toolstick base adapter')。
在桌面上,运行usbhidio2.exe (VB6)并在屏幕上输入文本。确保波特率为9600,你就可以准备好了。
软件可以修改并在供电的情况下独立运行。
连接关系可以在此页面上看到:http://www.8051projects.net/lcd-interfacing/introduction.php。
我这样做的
<------------------ 'Toolstick F330'-----------------> <---显示屏--->
P1.0 to P1.7 P0.6 P0.7 P0.4(TX) P0.5(RX) VDD(3V) GRD&RW 5V
^ ^ ^ ^ ? ^ ^ ^ ^
DB0 to DB7 EN RS RX(25) TX(26) PIN6 GRD USB
<--------显示屏-------> <------------- 'Debug adapter F321'------------>
要调整背景,请替换LCD上GRD和VEE(PIN3)之间的1.5K电阻。
另外,LCD输入端RW(PIN5)连接到GRD。
请参阅下面的图片了解连接方式

这是一个非常小且精确的工作 - 因此如果无法焊接,就不要费心了。
背景
请查看之前的文章基于计数器的c8051和CodeProject文章使用并行端口的LCD。
请查看下一篇文章使用c8051的USB IR。
Using the Code
在桌面应用程序中,只需在文本框中按Enter键即可在LCD上显示数据 - 对于那些对代码感兴趣的人 - 这是主例程
void main (void)
{
uchar i;
uchar j;
uchar dummy;
PCA0MD &= ~0x40; // Clear watchdog timer enable
Timer0_Init (); // Initialize the Timer0
Port_Init (); // Init Ports
//SYSCLK_Init (); // Initialize Oscillator
UART0_Init();
EA = TRUE; // Enable global interrupts
LED=0;
LCD_RS = 0;
LCD_RW = 0;
TimerStart( SYS_TIMER, 500 ); // wait for display to wake up
while( !TimerReady( SYS_TIMER ));
LCD_init();
LCD_Home();
LCD_sendstring("Start");
/*
move_to_specific(2, 1);
LCD_sendstring("LCD second string");
TimerStart( SYS_TIMER, 1000 ); // wait for display to wake up
while( !TimerReady( SYS_TIMER ));
LCD_Home();
LCD_sendstring("UART");
*/
while(1)
{
if(TX_Ready == 1 && UART_Buffer_Size != 0 && Byte == 13)
{
LCD_Clear();
j=0;
//--------------
for(i = 0; i < (UART_Buffer_Size - 1); i++ ){ // Initialize software timers.
if(j>19)
{ //line full
move_to_specific(2, 1);
j -= 20; } LCD_senddata(UART_Buffer[i]); j++;
}
//--------------
TX_Ready = 0; // Set the flag to zero
TI0 = 1; // Set transmit flag to 1
}
} // Loop forever
}
关注点
互联网上有大量的示例,但很难找到一篇关于通过USB显示文本并使用像MC20E2D-SYL这样的8位LCD的文章。
历史
- 2009年2月27日:初始发布
- 2009年3月19日:文章已更新