原创 51 LCD12232实验 实验(十八)

2009-5-24 10:31 5280 11 11 分类: MCU/ 嵌入式

点击下载


这个实验主要介绍12232液晶的使用,详情见附件


平台:FDR51开发板


主程序代码:


#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define LCD_DB P0 //数据口
sbit LCD_E=P1^2; //时钟端(CLK)
sbit LCD_RW=P1^1;//读写信号端
sbit LCD_RS=P1^0;//片选端
void LCD_Init();//初时化函数
void LCD_sendIN(uchar i_data);//地址(命令)发送
void LCD_sendDA(uchar i_data);//数据发送
void LCD_PlayNum(uchar line,uchar num);//在指定地址显示一个数字
void LCD_PlayLine(uchar line,char t[]);//在指定地址显示一行汉字
void delay_ms(uint t); //延时t ms函数
//12MHz晶振下
void delay_ms(uint t)
{
 uchar i;
 uint j;
 for(j=0;j<t;j++)for(i=0;i<110;i++);
}
/*---------------显示一行文字---------------
参数:line 要显示的地址(0x80-0x87或者0x90-0x97)
t[] 数据存放数组
-------------------------------------------*/
void LCD_PlayLine(uchar line,char t[])
{
 uchar i;
 LCD_sendIN(line); //跳转到指定地址
 for(i=0;t!=0;i++) //清屏
 {
  LCD_sendDA(0x20);
 }
 LCD_sendIN(line); //跳转到指定地址
 for(i=0;t!=0;i++)
 {
  LCD_sendDA(t);
 }
}
/*---------------显示一个数字---------------
参数:line 要显示的地址(0x80-0x87或者0x90-0x97)
num 要显示的数据
-------------------------------------------*/
void LCD_PlayNum(uchar line,uchar num)
{
 LCD_sendIN(line);//跳转到指定地址
 LCD_sendDA(0x20);//清空一个地址
 LCD_sendDA(0x20);//再清空一个地址
 LCD_sendIN(line);//跳转到指定地址
 LCD_sendDA(num/100+'0');//显示百位数字
 LCD_sendDA(num/10%10+'0');//显示十位数字
 LCD_sendDA(num%10+'0'); //显示个位数字
}
/*---------------LCD初始化------------*/
void LCD_Init()
{
 delay_ms(1);
 LCD_sendIN(0x04);//设定游标移动方向
 LCD_sendIN(0x0C);//整体显示开,游标及反白关
 LCD_sendIN(0x01);//清屏
 LCD_sendIN(0x02);//地址归位
 LCD_sendIN(0x80);//设定DDRAM 地址
 return;
}
/*--------------LCD指令发送子程序------------*/
void LCD_sendIN(uchar i_data)
{
 LCD_RS=0; //写命令
 LCD_RW=0;//写选通
 LCD_E=1;//下降移入数据
 LCD_DB= i_data;
 LCD_E=0;
 delay_ms(1);
 return;
}
/*----------------LCD数据发送子程序----------------*/
void LCD_sendDA(uchar i_data)
{
 LCD_RS=1; //写数据
 LCD_RW=0; //写选通
 LCD_E=1; //下降移入数据
 LCD_DB= i_data;
 LCD_E=0;
 delay_ms(1);
 return;
}
void main()
{
 LCD_Init();
 while(1)
 {
  LCD_sendIN(0x01);//清屏
  LCD_PlayLine(0x80," 51/avr 开发板");
  LCD_PlayLine(0x90,"www.scutradio.com");
  delay_ms(5000);
  LCD_sendIN(0x01);//清屏
  LCD_PlayLine(0x90,"学海无涯苦作舟");
  LCD_PlayLine(0x80,"书山有路勤为径");
  delay_ms(5000);
  LCD_PlayNum(0x80,3);
 };
}


12232中文资料:https://static.assets-stash.eet-china.com/album/old-resources/2009/5/24/c07289e3-655e-4176-a1a7-c3b5824b4395.rar

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
11
关闭 站长推荐上一条 /1 下一条