我用的是今年全国电子设计大赛 瑞萨组委会发的RL78/G13(R5F100LEA)的板子,然后在写1602的程序时,我先用使用CubeSuite+自带的Code Generator (Design Tool)功能,生产例程框架及驱动程序,
下面是我生彻骨例程框架时的步骤
1.
2.
3.
设置 P5.3 P5.4 P5.5 P1 因为P5.4接的是1602的RW,所以我默认给低。
5.
剩下的是自己的程序:
#include "r_cg_macrodriver.h"
#include "r_cg_cgc.h"
#include "r_cg_port.h"
#include "r_cg_userdefine.h"
#define lcde P5.5
#define rs P5.3
#define rw P5.4
unsigned char table[]="012345678"; //定义字符串表格,即阵列
unsigned char table1[]="I LOVE YOU";
unsigned char num;
void R_MAIN_UserInit(void);
void delay_1ms(void)
{
unsigned int i;
for(i=0; i<3552; i++);
}
void delay_nms(unsigned int n)
{
unsigned int i;
for(i=0; i<n; i++)
{
delay_1ms();
}
}
/*
********************************************************************************
** 函数名称 : write_com(unsigned char com)
** 函数功能 : 写指令函数
********************************************************************************
*/
void write_com(unsigned char com) //写指令函数
{
rs=0;
P1=com;
delay_nms(5);
lcde=1;
delay_nms(5);
lcde=0;
}
/*
********************************************************************************
** 函数名称 : write_data(unsigned char date)
** 函数功能 : 写数据函数
********************************************************************************
*/
void write_data(unsigned char date) //写数据函数
{
rs=1;
P1=date;
delay_nms(5);
lcde=1;
delay_nms(5);
lcde=0;
}
/*
********************************************************************************
** 函数名称 : init(void)
** 函数功能 : 初始化函数。向写指令、数据函数送初值
********************************************************************************
*/
void init(void) //初始化函数。向写指令、数据函数送初值。
{
rw=0;
write_com(0x38); //指令初始化 显示模式设置
write_com(0x0c); //显示开关设置
write_com(0x06); //光标设置
write_com(0x80+0x10); //数据指针位置设置(初始值为0x80)
// write_com(0x01); //清屏1接在相应数据指针地址后 去除第一行
}
void main(void)
{
// R_MAIN_UserInit();
/* Start user code. Do not edit comment generated here */
init(); //调用初始化函数
write_com(0x80);
for(num=0;num<9;num++) //循环显示table表格的字符
{
write_data(table[num]);
delay_nms(20);
}
write_com(0x80+0x40); //重新设置数据指针 显示第二行
for(num=0;num<15;num++) //循环显示table1表格的字符
{
write_data(table1[num]);
delay_nms(20);
}
while(1);
// while (1U)
// {
// ;
// }
}
然后我下载了 它什么都不显示,我这个程序是按照1602的时序图写的,大多都是按照以前51的程序改的。求大神指导 拜谢!!!!!