4周PADS强化班 HOT
林超文手把手教你学!
张飞暑期特训班
教你1000种电路设计思路
年度IP:PFC电源
张飞硬件电路之PFC全集
30天AD项目众筹
参与免费送VIP+原创视频
最全模电系列教程 NEW
运放、ADC、电磁兼容

PIC单片机驱动LCD1602液晶循环显示两行字符串程序

[复制链接]

等待验证会员

发表于 2018-7-9 04:19:15   60 查看 0 回复 显示全部楼层 倒序浏览
分享
#include<pic.h>

__CONFIG(0x1832);
//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡

//LCD控制线宏定义
#define rs RA0  
#define rw RA1
#define e  RA2

char web[ ] = {"www.51hei.com"};
char tel[ ] = {"QQ:776860123 " };

   
void init();                   //申明I/O口初始化函数
void lcd_init();               //申明LCD初始化函数
void write(char x);            //申明显示1字节数据函数
void lcd_enable();             //申明LCD显示设置函数
void delay();                  //申明延时函数
void writelcd(char *pt);       //声明LCD写字符串函数

/****************************************************************************
* 名    称:main()
* 功    能:主函数
* 入口参数:
* 出口参数:
* 说    明:
****************************************************************************/
void main()
{
     init();                //调用I/O口初始化函数
     lcd_init();            //调用LCD初始化函数

     {
         writelcd(web);          //调用显示公司web地址函数
         PORTD = 0XC0;           //设置第2行显示地址
         lcd_enable();           //调用LCD显示设置函数
         writelcd(tel);          //调用显示公司tel函数
     }
     while (1);
}

/****************************************************************************
* 名    称:init()
* 功    能:I/O口初始化
* 入口参数:
* 出口参数:
* 说    明:
****************************************************************************/
void init()
{
     ADCON1 = 0X07;               //设置A口为普通I/O口
     RA1=1;
     TRISA = 0X00;                //设置A口为输出
     TRISD = 0X00;                //设置D口为输出
}

/****************************************************************************
* 名    称:lcd_init()
* 功    能:LCD初始化
* 入口参数:
* 出口参数:
* 说    明:
****************************************************************************/
void lcd_init()
{
     PORTD = 0X1;                 //清除显示
     lcd_enable();
     PORTD = 0X38;                //8位2行5*7点阵
     lcd_enable();
     PORTD = 0X0e;                //显示开,光标开,闪烁
     lcd_enable();
     PORTD = 0X06;                //文字不动,光标右移
     lcd_enable();
     PORTD = 0X80;                //公司web显示地址
     lcd_enable();
}

/****************************************************************************
* 名    称:write()
* 功    能:写一个字节数据到LCD
* 入口参数:char x 字符
* 出口参数:
* 说    明:
****************************************************************************/
void write(char x)
{
     PORTD = x;                   //待显示数据送PORTD口
     rs = 1;                      //该字节数据为数据,而不是命令
     rw = 0;                      //此次操作为写,而不是读
     e = 0;                       //拉低使能信号
     delay();                     //保持使能信号为低一段时间
     e = 1;                       //拉高使能信号,建立LCD操作所需要的上升沿
}

/****************************************************************************
* 名    称:lcd_enable()
* 功    能:LCD显示设置
* 入口参数:
* 出口参数:
* 说    明:
****************************************************************************/
void lcd_enable()
{
     rs = 0;                     //该字节数据为命令,而不是数据
     rw = 0;                     //此次操作为写,而不是读
     e = 0;                      //拉低使能信号
     delay();                    //保持使能信号为低一段时间
     e = 1;                      //拉高使能信号,建立LCD操作所需要的上升沿
}

/****************************************************************************
* 名    称:delay()
* 功    能:延时
* 入口参数:
* 出口参数:
* 说    明:
****************************************************************************/
void delay()
{
     int i;
     for (i = 0;i < 5000;i++);
}

/****************************************************************************
* 名    称: writelcd()
* 功    能: 在LCD上显示字符串
* 入口参数:char *pt 字符串的首地址
* 出口参数:
* 说    明:
****************************************************************************/
void writelcd(char *pt)
{
     while(*pt)
         write(*pt++);
}
标签:PIC单片机 LCD1602

只有小组成员才能发言,加入小组>>

83个成员聚集在这个小组

加入小组

创建小组步骤

4周PADS强化班 HOT
林超文手把手教你学!
张飞暑期特训班
教你1000种电路设计思路
年度IP:PFC电源
张飞硬件电路之PFC全集
30天AD项目众筹
参与免费送VIP+原创视频
最全模电系列教程 NEW
运放、ADC、电磁兼容
关闭

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

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

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

工程师杂谈

项目|工程师创意

招聘|求职}工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

MSP430技术论坛

FPGA|CPLD|ASIC论坛

STM32/STM8技术论坛

NXP MCU 技术论坛

PIC单片机论坛

DSP论坛

瑞萨单片机论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

工程资源中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

电子展览展会专区

芯片求购|供应发布区