#include
//调用头文件,可以去PICC18软件下去查找PIC18FXX2.H
__CONFIG(1,XT) ; //晶振为外部4M
__CONFIG(2,WDTDIS) ; //看门狗关闭
__CONFIG(4,LVPDIS) ; //禁止低电压编程
#define uint unsigned int
#define uchar unsigned char
#define en RB3
#define rw RB4
#define rs RB5
#define D PORTD
void delayms(uint x)
{
int i,j;
for(i=0;i<=110;i++)
for(j=0;j<=x;j++);
}
void write_com(uchar com)
{
rs=0;
rw=0;
delayms(5);
en=1;
delayms(5);
D=com;
en=0;
delayms(5);
}
void write_dat(uchar dat)
{
rs=1;
rw=0;
delayms(5);
en=1;
delayms(5);
D=dat;
en=0;
delayms(5);
}
void init()
{
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80+1);
write_dat('I');
write_com(0x80+3);
write_dat('a');
write_com(0x80+4);
write_dat('m');
write_com(0x80+6);
write_dat('I');
write_com(0x80+7);
write_dat('r');
write_com(0x80+8);
write_dat('o');
write_com(0x80+9);
write_dat('n');
write_com(0x80+11);
write_dat('m');
write_com(0x80+12);
write_dat('a');
write_com(0x80+13);
write_dat('n');
}
void main(void)
{
ADCON1=0X06; //所有IO均为数字口,模拟量输入禁止
TRISB=0B11000111;
TRISD=0x00;
init();
while(1)
{
}
}
LCD1602使用的方法都是一样的,不管在51单片机,还是PIC,就简单带过
PS:有一点不一样,就是在51中,可以利用编译器在一个位置之后直接写入一连串字符,但是PIC不行,必须一个一个写入,并且一个一个标注好索要的显示位置
关键字:PIC LCD1602显示
引用地址:
PIC LCD1602显示
推荐阅读最新更新时间:2024-03-16 14:49
PIC16F917 EEPROM测试程序
/*************PIC16F917单片机程序******************************/ /****************************************************************/ /*****File Function : EEPROM测试程序 *****/ /*****Program Author : ZhengWen(ClimberWin) *****/ /*****MCU : PIC16F917 内部晶振 *****/ /*****Compile Date : 2010/08/16 *****/ /**
[单片机]
基于PIC单片机与串行闪存的SPI接口设计
引 言 PIC单片机以性能稳定、品种众多等特点在工业控制、仪器仪表、家电、通信等领域得到广泛应用。虽然很多型号自身集成了存储器,但在很多情况下难以满足系统对大容量存储的要求,需要外扩非易失性的存储器。与并行Flash存储器相比,串行Flash存储器占用MCU引脚少,体积小,易于扩展,接线简单,工作可靠,故而越来越多地应用在各类电子产品和工业测控系统中。本文主要讨论PIC16F877A单片机与串行闪存M25P16之间的SPI通信,在要求大容量数据存储且MCU引脚资源有限的情况下具有实用价值。 1 SPI工作原理 SPI(Serial Peripheral Interface)是一种常用的串行通信协议,用于MCU系统与外围设备的通信,
[单片机]
PIC单片机程序转换至EM78XX
一、PIC单片机程序转换至EM78XX单片机 1、芯片对照 答:PIC其中一些单片机与EM78系列单片机管脚相兼容,对照如下: PIC12C508/509 EM78P152/153 PIC16C54/56/84 EM78P156/256/456 PIC16C55/57 EM78P447 以上单片机转换可以在不用改动PCB情况便可完成,具体硬件资源对照如表1所示。 2、指令对照表 答:指令对照表如表2所示 3、转换软件使用说明 答:现有转换软件X156M.EXE可以将PIC编写的程序目标码转成EM78单片机可用的源代码。 文件名:X156M.EXE 说明:PI
[单片机]
时钟芯片DS1302的PIC程序
include p16f877.inc CBLOCK 20H SEC ;秒 MIN ;分 HOU ;小时 DATE ;日期 MON ;月 DAY ;日 YERR ;年 DDD ;写使能位 TIME_TX ;1302发送寄存器 TIME_RX ;1302接收寄存器 COUNT1 ; COUNT2 ; DELAY1 DELAY2 ENDC ;================================= ;1302子程序说明 ; DS1302INI ;1302初始化,先禁止RST,设定充电方式 ; SET_TIME ;一次发送7个数据设定时间,包含写使能寄存器,8个数据 ; GET
[单片机]
PIC16F877A单片机的PWM输出程序
//////////////////////////////////////// //在PICC编译器主,调试通过,PIC16F877A的PWM信号输出 #include pic.h #define uchar unsigned char #define uint unsigned int __CONFIG(0x1832); void delay() { uint k; for(k=0;k 5000;k++); } void main() { uchar k; T2CON=0X04; //开定时器2 CCPR1L=0X0F; //PWM匹配初值 CCP1CON=0X3C; //设置CCP1 模块为PWM 工作
[单片机]
PIC16位单片机CAN(7)定时器
定时器相对来说是最简单的了,也没有什么说的, 每个定时器模块都是 16 位定时器 / 计数器,由以下可读 / 写寄存器组成: ? TMRx:16 位定时器计数寄存器 ? PRx:与定时器相关的 16 位定时器周期寄存器 ? TxCON:与定时器相关的 16 位定时器控制寄存器 需要注意的是: 1:定时器是16位了,也可以配置为32位的,具体看文档,这里使用16位的定时器。 2:PRx:与定时器相关的 16 位定时器周期寄存器。也就是TMRx的值和PRx值相等时产生中断。】 下面看程序: /***********************************************************
[单片机]
PIC16F874在喷织机控制系统中的应用
正在运行的纺织机因故障、交班等其他原因需要停机后,再开机时就会出现纬线之间不均匀现象,不是2条纬线之间间隙过大,就是间隙太小,结果都会使所织布匹出现次品,虽然一次停机造成损失不太大,但由于停机是经常性的,积累起来的损失就大了。所以需要在每次重新开机前对纬线进行松紧调整,由于其精度高,手动调整很难调到最佳状态,且费时费力。本控制器基于PIC16F874单片机设计了纺织机松紧度调整控制器,成功地解决了该问题。具有精度高、运行可靠方便、性价比高等优点。 1 控制器工作原理 松紧度调整控制器是一个独立的控制部件,安装在纺织机的机身上,其控制系统由检测电路、输出控制电路、设定显示电路等几部分组成。控制器原理框图如图1所示。
[应用]
PIC单片机的四种振荡方式及设置
P IC 单片机有四种振荡方式可供选择,振荡方式经配置寄存器CONFIG的F0SC1,F0SC0位加以选择,并在EPROM编程时写入。 晶体振荡器/陶瓷振荡器: XT、LP、HS三种方式中,需一晶体或陶瓷谐振器连接到单片机的OSC1/CLKIN和OSC2/CLKOUT引脚上,以建立振荡,如图1所示。电阻RS常用来防止晶振被过分驱动。在晶体振荡下,电阻RF≈10MΩ。对于32KHz以上的晶体振荡器,当VDD 4.5V时,建议C1=C2≈30PF。(C1:相位调节电容;C2:增益调节电容。) 表1:振荡器类型选择 F0SC1 F0SC0 振荡方式 0 0 低功耗振荡LP(Low Pow
[单片机]