普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 5091|回复: 1

请问谁有普中教材里lcd1602的源程序?

 关闭 [复制链接]

2

主题

4

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2015-12-30 16:29:46 | 显示全部楼层 |阅读模式
教材里只给了hex,我现在总是生成错误!麻烦了!50962918@qq.com
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char

void Delay1us(uint a);
void LCD1602_WriteCom(uchar com);
void LCD1602_WriteData(uchar dat);
void LCD1602_Init();
sbit LCD1602_RS=P2^6;
sbit LCD1602_RW=P2^5;
sbit LCD1602_E=P2^7;
unsigned char LCD1602_DATAPINS;
uchar ENCHAR_PuZh[16]=" Pechin Science ";
void main()
{
uchar i;
LCD1602_Init();
while(1)
{
  LCD1602_WriteCom(0x80);
  for(i=0;i<16;i++)
  {
   LCD1602_WriteData(ENCHAR_PuZh);
  }
}
}

/*******************************************************************************
* 函数名         : Delay1us
* 函数功能     : 延时函数,延时1us
* 输入           : a
* 输出           : 无
*******************************************************************************/
void Delay1us(uint a)
{
uint b,c;
for(c=a;c>0;c--)
  for(b=110;b>0;b--);
}
/*******************************************************************************
* 函数名         : LCD1602_WriteCom
* 函数功能     : 向LCD写入一个字节的命令
* 输入           : com
* 输出           : 无
*******************************************************************************/
void LCD1602_WriteCom(uchar com)   //写入命令
{
LCD1602_E=0;
LCD1602_RS=0;
LCD1602_RW=0;
LCD1602_DATAPINS=com;
Delay1us(10);
LCD1602_E=1;
Delay1us(10);
LCD1602_E=0;
}
/*************************************************************************
* 函数名         : LCD1602_WriteData
* 函数功能     : 向LCD写入一个字节的数据
* 输入           : dat
* 输出           : 无
*******************************************************************************/     
     
void LCD1602_WriteData(uchar dat)   //写入数据
{
LCD1602_E=0;
LCD1602_RS=1;
LCD1602_RW=0;
LCD1602_DATAPINS=dat;
Delay1us(10);
LCD1602_E=1;
Delay1us(10);
LCD1602_E=0;
}
/*******************************************************************************
* 函数名         : LCD1602_Init()
* 函数功能     : 初始化LCD屏
* 输入           : 无
* 输出           : 无
*******************************************************************************/     
void LCD1602_Init()        //LCD初始化子程序
{
  LCD1602_WriteCom(0x38);  //开显示
LCD1602_WriteCom(0x0c);  //开显示不显示光标
LCD1602_WriteCom(0x06);  //写一个指针加1
LCD1602_WriteCom(0x01);  //清屏
LCD1602_WriteCom(0x80);  //设置数据指针起点
}


麻烦看一下哪里错了,只有小方块显示,不能显示prechin

回复

使用道具 举报

2

主题

4

帖子

14

积分

新手上路

Rank: 1

积分
14
 楼主| 发表于 2015-12-30 16:36:15 | 显示全部楼层
不用了,我刚才做出来了,吧unsigned char LCD1602_DATAPINS换成#define LCD1602_DATAPINS P0就行
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-5-2 01:31 , Processed in 0.101512 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表