基于51单片机的太阳能电加热辅助系统II
来源:互联网 发布:新疆经济发展数据 编辑:程序博客网 时间:2024/06/10 17:22
接着昨天,接下来元器件的选择和原件使用的代码
首先,显示模块选择的是LCD1602;
一块能够接收信息的芯片就必须用时序的要求,要不然数据一通乱传!
LCD1602读操作时序图
LCD1602写操作时序图
LCD1602显示连接图
在接1602或者其他实际电路是,最好在输出电路中加上电阻,作为上拉或者下拉电阻,起到保护作用!
该模块代码如下:
#define Set_dataport_out#define Set_dataport_in
#define LCD_data_out P0
#define LCD_data_in P0
#define Set_ctroport_out
#define LCD_ctro_out P1
#define LCD_RS_ 0
#define LCD_RW_ 1
#define LCD_EN_ 1
#define LCD_RS(x) if(!x) LCD_ctro_out&=~BIT(LCD_RS_);else LCD_ctro_out|=BIT(LCD_RS_);
#define LCD_RW(x) if(!x) LCD_ctro_out&=~BIT(LCD_RW_);else LCD_ctro_out|=BIT(LCD_RW_);
#define LCD_EN(x) if(!x) LCD_ctro_out&=~BIT(LCD_EN_);else LCD_ctro_out|=BIT(LCD_EN_);
void Write_command(uchar com);
void Write_data(uchar Data);
void LCD1602_init();
void LCD1602_display(uchar x,uchar y,uchar n,uchar *p);
/************************************************
*函数名称:write_com
*函数功能:写命令到1602
*函数参数:com
*返回值: 无
************************************************/
void Write_command(uchar com)
{
LCD_RS(0);
LCD_RW(0);
LCD_data_out=com;
delay_ms(1);
LCD_EN(1);
delay_ms(1);
LCD_EN(0);
}
/************************************************
*函数名称:write_data
*函数功能:写数据到1602
*函数参数:data
*返回值: 无
************************************************/
void Write_data(uchar Data)
{
LCD_RS(1);
LCD_RW(0);
LCD_data_out=Data;
delay_ms(1);
LCD_EN(1);
delay_ms(1);
LCD_EN(0);
}
/************************************************
*函数名称:LCD1602_init
*函数功能:1602初始化
*函数参数:无
*返回值: 无
************************************************/
void LCD1602_init()
{
Set_dataport_out;
Set_ctroport_out;
delay_ms(10);
Write_command(0x38);//显示模式指令
delay_ms(5);
Write_command(0x01);//清屏指令
delay_ms(5);
Write_command(0x06);//显示闪烁光标
delay_ms(5);
Write_command(0x0c);//指针加一
delay_ms(5);
}
/************************************************
*函数名称:LCD1602_display
*函数功能:在指定的显示位置显示字符串
*函数参数:
*返回值: 无
************************************************/
void LCD1602_display(uchar x,uchar y,uchar n,uchar *p)
{
uchar i=0;
uchar adress=0;
if(!x)
{
adress=0x80+y;
}
else
{
adress=0xc0+y;
}
Write_command(adress);
for(i=0;i<n;i++)
{
Write_data(p[i]);
}
}
- 基于51单片机的太阳能电加热辅助系统II
- 基于51单片机的太阳能电加热辅助系统
- 辐射电加热管的介绍
- 基于51单片机的门禁系统RFID
- 基于超级电容的太阳能草坪灯设计方案
- 基于51单片机的大气温度采集和记录系统
- 基于51单片机的远程车辆时速监控系统
- 基于51单片机的无线通讯公交报站系统
- 基于51单片机的GPS公交自动报站系统
- 一款基于51单片机与C语言的电子时…
- 基于proteus的51单片机仿真实例九、51单片机的最小工作系统
- 基于单片机的水下机器人定位系统
- 基于单片机的GPS信息处理系统
- 基于单片机的无线数据传输系统设计
- 基于AT89S52单片机的温湿度报警系统
- 单片机-基于消息的优先级任务系统
- 基于MSP430单片机的简单门禁系统
- 基于51单片机-温度监控系统
- 圆心 轮廓 半径
- 缓冲区溢出实验
- I found no \citation commands...(TexLive2016+TexStudio)
- bootstrap模态框自动弹出与手动弹出详解
- C语言实现求两数的最大公约数最小公倍数
- 基于51单片机的太阳能电加热辅助系统II
- 【php基础】mysqli的一些操作
- java处理大数a+b模板
- POJ3233 Matrix Power Series
- [BZOJ4832]抵制克苏恩(概率期望dp)
- Pandas 数据清洗
- 测海老龟博客初体验
- css 列表,导航,样式继承,outline轮廓
- React实战-Flux中嵌套action的解决方法