51单片机光敏电阻lcd12864显示
时间: 2023-07-02 12:03:30 浏览: 151
要使用51单片机控制光敏电阻和LCD12864的显示,需要进行以下步骤:
1. 连接电路:将光敏电阻和LCD12864分别连接到51单片机的IO口和数据总线上。
2. 编写程序:使用C语言编写程序,通过IO口读取光敏电阻的数值,并将其转换为需要显示的信息,然后通过数据总线将信息发送给LCD12864进行显示。
以下是一个简单的示例代码:
```c
#include <reg51.h>
#include <intrins.h>
#define LCD_DATA P0
sbit LCD_RS = P2^0;
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;
sbit LDR = P1^0;
void delay(int ms)
{
int i, j;
for(i = 0; i < ms; i++)
for(j = 0; j < 114; j++);
}
void write_cmd(unsigned char cmd)
{
LCD_RS = 0;
LCD_RW = 0;
LCD_DATA = cmd;
LCD_EN = 1;
_nop_();
_nop_();
_nop_();
LCD_EN = 0;
delay(5);
}
void write_data(unsigned char dat)
{
LCD_RS = 1;
LCD_RW = 0;
LCD_DATA = dat;
LCD_EN = 1;
_nop_();
_nop_();
_nop_();
LCD_EN = 0;
delay(5);
}
void init_lcd()
{
write_cmd(0x38);
write_cmd(0x08);
write_cmd(0x01);
write_cmd(0x06);
write_cmd(0x0c);
}
void main()
{
unsigned char str[16];
unsigned int ldr_val;
init_lcd();
while(1)
{
ldr_val = AD0;
sprintf(str, "LDR:%d", ldr_val);
write_cmd(0x80);
for(i = 0; i < strlen(str); i++)
write_data(str[i]);
delay(100);
}
}
```
在这个示例代码中,我们使用P1口上的0号引脚连接光敏电阻,使用P0口连接LCD12864。我们使用AD0来读取光敏电阻的值,并将其转换为需要显示的信息,然后通过LCD12864进行显示。
注意:这仅仅是一个简单的示例代码,需要根据具体情况进行修改和优化。