发新帖本帖赏金 100.00元(功能说明)我要提问
返回列表
打印
[通用8051核FLASH系列]

芯圣样品开发板 试用小记, 点个ST7567的12864点阵屏

[复制链接]
4586|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
skygz|  楼主 | 2018-3-8 21:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 芯圣电子官方QQ 于 2023-7-25 14:27 编辑

摸索中........不习惯51的方式写程序...
搞了一下午....一直都点不亮这屏,  换着方法找坛友的例程LED跑一下, 结果也不亮...晕死....
难怪我搞一下午都不行..........肯定那搞错了............特么的是我脑抽了, 没拔对供电方式....


程序初始化部份如下, 详细 见附件中的程序代码

#define ALLOCATE_EXTERN
#include "lcd.h"


void main()
{

        WDTCCR = 0x00;                                                //关闭看门狗

        while((CLKCON & 0x20) != 0x20);                        //等待内部高频RC起振

        CLKSWR = 0x51;                                                //选择内部高频时钟为主时钟,内部高频RC2分频,Fosc=16MHz

        while((CLKSWR & 0xC0) != 0x40);                        //等待内部高频切换完成

        CLKDIV = 0x01;                                                //Fosc1分频得到Fcpu,Fcpu=16MHz

        P0M1 = P0M1 & 0xF0 | 0x08;          //P02推挽输出 MISO_DC_A0
        P0M0 = P0M0 & 0xF0 | 0x08;          //P00推挽输出 MOSI_SDI_SDA
        P2M0 = P2M0 & 0xF0 | 0x08;          //P20推挽输出 SCK_SCL
        P0M3 = P0M3 & 0x0F | 0x80;                                //P07推挽输出 CS
        P2M0 = P2M0 & 0x0F | 0x80;                                //P21推挽输出 BL_LED
        P2M1 = P2M1 & 0xF0 | 0x08;                                //P22推挽输出 LCD_RST

        LCD_Init();

        LCD_Print(32, 8, "芯圣MCU", TYPE16X16, TYPE8X16);
        LCD_Print(24, 24, "HC89S003F4", TYPE16X16, TYPE8X16);
        LCD_Print(24, 40, "By: SkyGz", TYPE16X16, TYPE8X16);
        while (1)
        {

        }
}





点屏效果如图


DEMO.rar (19.64 KB)

2.JPG (199.69 KB )

2.JPG

打赏榜单

芯圣电子官方QQ 打赏了 100.00 元 2019-04-08
理由:001P试用二等奖

评论
21ic小管家 2019-4-30 23:47 回复TA
厉害 
沙发
海迹天涯| | 2018-3-9 11:51 | 只看该作者
不错,收藏了

使用特权

评论回复
板凳
mochunhan| | 2018-3-30 21:18 | 只看该作者
我的现在也遇到问题了,写数据的时候使用for循环就出现错误,直接写数据就可以的
char LCD12864_Write16Data(unsigned char x,unsigned char y,unsigned char j, unsigned char mod)
{
        unsigned char k, x1, x2 ;
        if(y>7)
        {
                return 0;
        }
        if(x>98)
        {
                return 0;
                }       
        y = y+ 0xB0;  //ÇóYµÄ×ø±ê
        LcdSt7565_WriteCmd(y);   ///дYµÄ×ø±êÖµ
       
        x1 = (x >> 4) & 0x0F;   //ÓÉÓÚX×ø±êÒªÁ½¾äÃüÁ·Ö¸ßµÍ4룬ËùÒÔÕâÀïÏÈÈ¡³ö¸ß4λ
    x2 = x & 0x0F;          //È¥µÍËÄλ
     //--ÉèÖÃX×ø±ê--//
    LcdSt7565_WriteCmd(0x10 + x1);   //¸ß4λ
    LcdSt7565_WriteCmd(0x00 + x2); //µÍ4λ  
    for(k=0;k<16;k++)
    {
            if(k==8)    //ÓÉÓÚ8 X16Óõ½Á½¸öY×ø±ê£¬µ±´óÓÚµÈÓÚ16ʱ£¬Çл»×ø±ê   Õâ¸ö´¦ÀíÓÐÎÊÌâ
            {
              
               LcdSt7565_WriteCmd(y+1);    //--ÉèÖÃX×ø±ê--//   
               LcdSt7565_WriteCmd(0x10 + x1);   //¸ß4λ   
               LcdSt7565_WriteCmd(0x00 + x2); //µÍ4λ  }        

            }
                        if(mod == 1)
                        {
       LcdSt7565_WriteData( DATA1[j][k] );  
                        }
                        if(mod ==0)
                        {
                                LcdSt7565_WriteData(~DATA1[j][k] );
      }

    }       
        return 1;
}
这样写数据就不好用,直接写16个 LcdSt7565_WriteData( DATA1[j][k] );  就可以

使用特权

评论回复
地板
dqqqqqq| | 2019-3-27 15:33 | 只看该作者
赞一个

使用特权

评论回复
5
抹茶妹妹| | 2019-4-30 23:45 | 只看该作者
看看,路过顶一下!

使用特权

评论回复
发新帖 本帖赏金 100.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

5511

帖子

2

粉丝