OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 企业专区 » Renesas » 1602显示问题

共10条 1/1 1 跳转至

1602显示问题

菜鸟
2013-09-01 14:27:32    评分

我用的是今年全国电子设计大赛 瑞萨组委会发的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的程序改的。求大神指导 拜谢!!!!!






关键词: 显示     问题     unsigned     函数     write    

菜鸟
2013-09-01 15:18:54    评分
2楼
还有 就是咱这个论坛有QQ群吗?求群号!!!

菜鸟
2013-09-01 15:42:02    评分
3楼
谢谢 

菜鸟
2013-09-01 15:43:33    评分
4楼
谢谢 

菜鸟
2013-09-01 16:17:49    评分
5楼

额 units * DELAY_TIMING; 这个指针是什么意思?

还有延时不对是什么意思?是我延时的时间不对?还是???这个我仿真了,大概是1ms,我用的是内部32M的时钟,没有改!求指导!!!!


菜鸟
2013-09-01 16:23:17    评分
6楼
直接粘贴的 然后报错了 你前面有定义那个变量?给它赋值了吗? 有点笨 抱歉哈 

菜鸟
2013-09-01 16:39:00    评分
7楼
哦哦 也就是说 我可能延时函数有问题 延时的时间不对???是吗???

菜鸟
2013-09-01 16:41:17    评分
8楼
谢了 灰常感谢     我试试看 

菜鸟
2013-09-01 19:26:44    评分
9楼
我用示波器抓了一下我延时函数的时间 是 1MS  所以应该不是延时的事  

菜鸟
2013-09-01 19:56:28    评分
10楼
额 这个 怎么看呀?我接触这个不太长 示波器也不是太会用,只会简单的用呀 能简单的指导下我吗?谢谢了 

共10条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]