/*************************************************
designed by weiwei
2011-7-29
*************************************************/
#include<reg52.h>
#include"chip_select.h"
#define uint unsigned int
#define uchar unsigned char
#define LCD_COMMAND 0
#define LCD_DATA 1
//***********************************************
sbit LcdRS =P2^2;
sbit LcdRW =P2^1;
sbit LcdEN =P2^0;
uchar code table[]="LCD1602 check ok"; //要显示的内容1放入数组tablel 直接接地箱
uchar code table1[]="study up"; //要显示的内容2放入数组table1
//***********************************************
//函数声明
void delay_ms(uint);
void Lcd_Write(bit style, uchar input);
void Lcd_Init();
//主函数
void main()
{
uchar m,n;
hc_enable(0); //关闭点阵、数码管、LED的选通信号(避免IO复用引起的错误)
Lcd_Init(); //液晶初始化
/* Lcd_Write(LCD_COMMAND,0x80);
Lcd_Write(LCD_DATA,0x51); */
Lcd_Write(LCD_COMMAND,0x80); //显示地址设为80H(即00H,)上排第一位
for(m=0;m<16;m++) //将table[]中的数据依次写入1602显示
{
Lcd_Write(LCD_DATA,table[m]);
delay_ms(200);
}
Lcd_Write(LCD_COMMAND,0x80+0x44); //显示地址设为0xc4H
for(n=0;n<8;n++) //将table1[]中的数据依次写入1602显示
{
Lcd_Write(LCD_DATA,table1[n]);
delay_ms(200);
}
while(1);
}
//子函数定义:
//***************************************************
void delay_ms(uint k)
{
uint x,y;
for(x=k;x>0;x--)
for(y=123;y>0;y--);
}
//***************************************************
//************************************************************************
void Lcd_Write(bit style, uchar input)
张紧轮{
LcdRS=style; //选择指令寄存器(style==0) 选择数据寄存器(style==1)
P1=input; //把要显示的数据送入P0
delay_ms(5); //延时一小会儿,让1602准备接收数据
LcdEN=1; //使能线电平变化,数据送入1602的8位数据口
LcdEN=0;
电容式触摸开关
}
//************************************************************************
//***************************************************************************************
void Lcd_Init()
{
Lcd_Write(LCD_COMMAND,0x38); //8位数据,双列,5*7字形
Lcd_Write(LCD_COMMAND,0x0c); //开启显示屏,关光标,光标不闪烁 Lcd_Write(LCD_COMMAND,0x06); //显示地址递增,即写一个数据后,显示位置右移一位
Lcd_Write(LCD_COMMAND,0x01); //清屏指令 将DDRAM里的内容全部清空
}
//***************************************************************************************
黄军导航#ifndef _CHIP_SELECT_H__
#define _CHIP_SELECT_H__
#define uchar unsigned char
#define uint unsigned int
sbit U8_EN=P2^3; //定义U8的E引脚与单片机的P2.3连接
sbit U9_EN=P2^4; //定义U9的E引脚与单片机的P2.4连接
sbit U10_EN=P2^6; //定义U10的E引脚与单片机的P2.6连接
//*****************************************************************************************************************************
//****使能要选择的芯片
void hc_enable(unsigned int m)
{
switch(m)
{
case 8: { U8_EN=1;U9_EN=0;U10_EN=0;}; break; //选择点阵 芯片8;
case 9: { U8_EN=0;U9_EN=1;U10_EN=0;}; break; //选择点阵 芯片9
case 10: { U8_EN=0;U9_EN=0;U10_EN=1;}; break; //选择LED、数码管 芯片10
case 0: { U8_EN=0;U9_EN=0;U10_EN=0;}; break; //关闭所有的点阵、数码管、LED 芯片8、9、10全部关闭;
default: break;
}
}
包装内托//*****************************************************************************************************************************
#endif