OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5335|回复: 15

移植51单片机12864串行程序到ZET6,但是不显示,求大神指教那里出了错误

[复制链接]

10

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
817
金钱
817
注册时间
2016-2-5
在线时间
163 小时
发表于 2016-4-14 14:25:55 | 显示全部楼层 |阅读模式
15金钱
本帖最后由 夜乄歌 于 2016-4-14 14:27 编辑

[size=15.5555562973022px]这是我的12864的.c和.h文件
#ifndef __12864C_H_
#define __12864C_H_


#include"sys.h"


#define SID PEout(2)
#define SCLK PEout(3)
void lcd_init(void);


void LCD12864_SendByte(u8 zdata);
void LCD12864_WriteCom(u8 com);
void LCD12864_WriteDate(u8 date);
void LCD12864_Init(void);
//void LCD12864_CleanScans(void);
void LCD12864_SetPos(u8 x,u8 y);
void LCD12864_DisplayString(u8 *s);
void display(u8 x_add,u8 y_add,u8 *ptr);
#endif

#include"12864c.h"
#include"delay.h"

void lcd_init()
{
        RCC->APB2ENR|=1<<6;
        GPIOE->CRL&=0XFFF000FF;
        GPIOE->CRL|=0X00033300;
        SID=1;
        SCLK=1;
}

void LCD12864_SendByte(u8 zdata)
{
        u8 i;

        for(i = 0;i < 8;i ++)
        {
                if((zdata<<i) & 0x80)
                {
                        SID = 1;
                }
                else
                {
                    SID = 0;
                }
                SCLK = 0;
                delay_us(50);
                SCLK = 1;       
        }
}

void  LCD12864_WriteCom(u8 com)
{
          LCD12864_SendByte(0xf8); //第一字节
          LCD12864_SendByte(com & 0xf0);         //第二字节
          LCD12864_SendByte((com << 4) & 0xf0);//第三字节
}

void LCD12864_WriteDate(u8 date)
{
        LCD12864_SendByte(0xfa);//第一字节
    LCD12864_SendByte(date & 0xf0);         //第二字节
        LCD12864_SendByte((date << 4) & 0xf0);//第三字节
}

void LCD12864_Init()
{
//         LCD12864_PSB = 0;
//         REST = 0;
//         delay_us(50);
//         REST = 1;
//         delay_us(50);
         //LCD12864_WriteCom(0x34);//扩充指令集动作 ,绘图不显示
         LCD12864_WriteCom(0x30);//基本指令集动作, 绘图不显示
         LCD12864_WriteCom(0x0c);//开显示,不显示游标和游标位置
         LCD12864_WriteCom(0x06);
         LCD12864_WriteCom(0x01);//清屏
         delay_us(50);
                  
}

//void LCD12864_CleanScans()
//{
//          LCD12864_WriteCom(0x01);//清屏
//}

void LCD12864_SetPos(u8 x,u8 y)
{
        u8 pos;
        if(x == 0)
                x = 0x80;
        else if(x == 1)
                x = 0x90;
        else if(x == 2)
                x = 0x88;
        else if(x == 3)
                    x = 0x98;
        pos = x + y;
        LCD12864_WriteCom(pos);//显示地址               
}

void LCD12864_DisplayString(u8 *s)
{  
        u8  i = 0;
        while(s != '\0')
    {
                LCD12864_WriteDate(s);
                i++;
                 delay_us(50);
    }
}

void display(unsigned char x_add,u8 y_add,unsigned char *ptr)
{
        LCD12864_SetPos(x_add,y_add);//1xxx,xxxx 设定DDRAM 7位地址xxx,xxxx到地址计数器AC
        while(*ptr != '\0')
        {
                LCD12864_WriteDate(*ptr);
                ++ptr;
        }
}


#include"12864c.h"
#include"delay.h"

u8 dis1[]="组别:";
u8 dis2[]="组别:";
u8 dis3[]="组别:";
u8 dis4[]="组别:";
u8 dis5[]="组别:";
u8 dis8[]="已绕圈:";
u8 dis12[]="速度";

int main()
{
        Stm32_Clock_Init(9);
        delay_init(72);
        lcd_init();
        LCD12864_Init();
        while(1)
        {
                display(0,0,dis1);

                LCD12864_SetPos(1,0);
                LCD12864_DisplayString(dis3);
//               
//                LCD12864_SetPos(2,0);
//                LCD12864_DisplayString(dis8);
//               
//                LCD12864_SetPos(3,0);
//                LCD12864_DisplayString(dis4);

//                LCD12864_SetPos(3,3);
//                LCD12864_DisplayString(dis12);

        }
}


刚买板子不久开始学,不知道那里有错误调试了好几天了,看了别人的程序感觉好多都看得不是太懂,所以就移植自己的C51程序,但是什么都不显示啊,用的绘晶科技的12864液晶


最佳答案

查看完整内容[请看2#楼]

说了让你上5V 试试
不甘黄土掩枯骨,宁化寒光映碧霄。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2016-4-14 14:25:56 | 显示全部楼层
夜乄歌 发表于 2016-4-15 10:29
时序是没问题的,我也认为是配置有些问题,如果我接的是5V的液晶,我是不是得用开漏外接上拉,而不能用推 ...

说了让你上5V 试试
1-1
回复

使用道具 举报

10

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
817
金钱
817
注册时间
2016-2-5
在线时间
163 小时
 楼主| 发表于 2016-4-14 17:30:26 | 显示全部楼层
大神有空帮忙看一下啊
不甘黄土掩枯骨,宁化寒光映碧霄。
回复

使用道具 举报

10

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
817
金钱
817
注册时间
2016-2-5
在线时间
163 小时
 楼主| 发表于 2016-4-14 21:34:13 | 显示全部楼层
。。。。。没人么
不甘黄土掩枯骨,宁化寒光映碧霄。
回复

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2016-4-14 22:53:43 | 显示全部楼层
好像记得要5V供电
1-1
回复

使用道具 举报

10

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
817
金钱
817
注册时间
2016-2-5
在线时间
163 小时
 楼主| 发表于 2016-4-15 07:15:06 | 显示全部楼层
mygod 发表于 2016-4-14 22:53
好像记得要5V供电

.....但是这块液晶看来资料说支持3.3v的啊,5v供电是不是我要接FT管脚开漏输出外接上拉电阻?
不甘黄土掩枯骨,宁化寒光映碧霄。
回复

使用道具 举报

56

主题

520

帖子

0

精华

高级会员

Rank: 4

积分
964
金钱
964
注册时间
2014-11-18
在线时间
160 小时
发表于 2016-4-15 09:06:46 | 显示全部楼层
1.检查时序。
2.检查配置。
3.检查io配置。
4.检查代码。
5.检查电压。
6.是否有刷新函数。就是更新显存。
自己选择的路,成家前走完。
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-4-15 09:29:28 | 显示全部楼层
移植的驱动里,所有需要延时的地方使用粗略且较为足够的软件延时试试
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

10

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
817
金钱
817
注册时间
2016-2-5
在线时间
163 小时
 楼主| 发表于 2016-4-15 10:29:51 | 显示全部楼层
aiyeba 发表于 2016-4-15 09:06
1.检查时序。
2.检查配置。
3.检查io配置。

时序是没问题的,我也认为是配置有些问题,如果我接的是5V的液晶,我是不是得用开漏外接上拉,而不能用推挽?
不甘黄土掩枯骨,宁化寒光映碧霄。
回复

使用道具 举报

10

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
817
金钱
817
注册时间
2016-2-5
在线时间
163 小时
 楼主| 发表于 2016-4-15 16:28:25 | 显示全部楼层
mygod 发表于 2016-4-15 11:42
说了让你上5V 试试

终于好了,之前的跳背光亮暗的没接,还有就是都接5V兼容但是VDD接了3.3
不甘黄土掩枯骨,宁化寒光映碧霄。
回复

使用道具 举报

6

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2013-3-20
在线时间
11 小时
发表于 2016-4-15 19:15:56 来自手机 | 显示全部楼层
直接找我要代码不就好了?
回复

使用道具 举报

10

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
817
金钱
817
注册时间
2016-2-5
在线时间
163 小时
 楼主| 发表于 2016-4-16 15:22:13 | 显示全部楼层
杨胡 发表于 2016-4-15 19:15
直接找我要代码不就好了?

- -..刚开始学学这个单片机,别人的不一定能看的懂,而且自己移植的话映像更深刻点
不甘黄土掩枯骨,宁化寒光映碧霄。
回复

使用道具 举报

47

主题

212

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
292
金钱
292
注册时间
2016-1-2
在线时间
80 小时
发表于 2016-9-23 20:19:53 | 显示全部楼层
哥们 能把你的做的给我发一下吗 我参考看看
回复

使用道具 举报

10

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
817
金钱
817
注册时间
2016-2-5
在线时间
163 小时
 楼主| 发表于 2016-9-24 15:02:08 | 显示全部楼层
2938690046 发表于 2016-9-23 20:19
哥们 能把你的做的给我发一下吗 我参考看看

你+我QQ吧454730034,我把我写的发给你参考下,不过写的很简略,但是能用
不甘黄土掩枯骨,宁化寒光映碧霄。
回复

使用道具 举报

47

主题

212

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
292
金钱
292
注册时间
2016-1-2
在线时间
80 小时
发表于 2016-9-25 17:57:01 | 显示全部楼层
夜乄歌 发表于 2016-9-24 15:02
你+我QQ吧454730034,我把我写的发给你参考下,不过写的很简略,但是能用

谢了 哥们
回复

使用道具 举报

1

主题

12

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-4-14
在线时间
5 小时
发表于 2017-4-14 21:16:01 | 显示全部楼层
杨胡 发表于 2016-4-15 19:15
直接找我要代码不就好了?

你的代码能给我看一下吗,我小白,弄了好久了,还有,我的管脚只有5个,(老师叫我用串行给我连了5个管脚,除了vcc和grd 还有3个)
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-9-23 12:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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