下面是我的程序 原理图在附件里 麻烦各位帮我看一下 为什么就仿不出效果啊 !!急死了。帮我看下是程序错误还是原理图出错了!!!
/********************
1602液晶显示程序
date:11月1号
*********************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar cmde,datas;
sbit RS=P2^4; //定义控制端
sbit RW=P2^5;//定义控制端
sbit EN=P2^6;//定义控制端
sbit busy=P0^7;
void wr_cmd(uchar cmd);
void wr_datas(uchar datas);
void wait_b();
void LCD_ints();
void main()
{
LCD_ints();
wr_datas('A');
wr_cmd(0x80);
while(1);
}
/********************
1602初始化
********************/
void LCD_ints()
{
wr_cmd(0x38);//设置显示模式 16*2显示,5*7点阵,8位数据接口
// delay(1);
wr_cmd(0x0C);//显示器开、光标开、光标允许闪烁
// delay(1);
wr_cmd(0x06);//文字不动,光标自动右移
// delay(1);
wr_cmd(0x01);//清屏
}
/*******************
1602写命令操作
*******************/
void wr_cmd(uchar cmd)
{
wait_b();
// delay(1);
EN=0;
// delay(1);
RS=0;
// delay(1);
RW=0;
// delay(1);
P0=cmd;
// delay(1);
EN=1;
// delay(1);
EN=0;
}
/*******************
1602写数据操作
*******************/
void wr_datas(uchar datas)
{
wait_b();
// delay(1);
RS=1;
// delay(1);
RW=0;
// delay(1);
EN=0;
// delay(1);
P0=datas;
// delay(1);
EN=1;
// delay(1);
EN=0;
}
/*******************
1602判忙操作
*******************/
void wait_b()
{
do
{
RS=0;
// delay(1);
RW=1;
delay(1);
EN=1;
// delay(1);
EN=0;
}
while(busy==1);
EN=0;
}
-
-
-
LCD1602.rar
下载积分: 积分 -1 分
13.48 KB, 下载次数: 4, 下载积分: 积分 -1 分
一周热门 更多>