OpenEdv-开源电子网

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

HT1621驱动段码屏没有任何显示

[复制链接]

2

主题

6

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2016-7-9
在线时间
4 小时
发表于 2019-1-5 17:40:11 | 显示全部楼层 |阅读模式
调了一个多星期的LCD段码屏,还是没有任何显示,只能热线求助了希望路过各位给点意见,谢谢了。
HT1621部分的代码如下:
#include "LCD.h"
#include "delay.h"


#define                SYSEN                        0x02        //打开系统振荡器
#define                LCDON                        0x06        //打开LCD偏压发生器
#define              LCDOFF                     0x04        //关闭LCD
#define                 BIAS                                 0x52        //1/3偏压,4个公共口
#define                TIMERDIS                        0X08        //禁止时基输出
#define                WDTDIS1                        0X0a        //禁止WDT输出


const unsigned char num[10]={0xeb,0x0a,0xad,0x8f,0x4e,0xc7,0xe7,0x8a,0xef,0xcf}; //0--9
extern _Bool dian;

__asm void nop(void)
{
    NOP
}

void LCD_GPIO_Configuration(void)
{
       
        //LCD_CS--PB3         
        //LCD_DATA---PB4  
        //LCD_WR---PB6(In)         

        GPIO_InitTypeDef        GPIO_InitStructure;                //声明一个结构体变量
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

        //LCD三个引脚,PB3--LCD_CSB4--LCD_DATA; PB6--LCD_WR;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_4|GPIO_Pin_3|GPIO_Pin_0;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //管脚频率为50MHZ
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //输出模式为
        GPIO_Init(GPIOB,&GPIO_InitStructure);                                 //初始化PB3,PB4,PB5

}

//*********HT1621写入开机命令***********//

void ht1621_init(void)
{
        write_com(SYSEN);
        write_com(BIAS);
        write_com(LCDON);
        write_com(TIMERDIS);
        write_com(WDTDIS1);
}

//*********HT1621开始***********//

void start(void)
{
        GPIO_SetBits(GPIOB,GPIO_Pin_3);//CS=1;
        GPIO_SetBits(GPIOB,GPIO_Pin_6);//WR=1;
        GPIO_SetBits(GPIOB,GPIO_Pin_4);//DATA=1;
        delay_us(10);
        GPIO_ResetBits(GPIOB,GPIO_Pin_3);//CS=0;
        delay_us(10);
        GPIO_ResetBits(GPIOB,GPIO_Pin_6);//WR=0;
}

//*********HT1621写命令***********//

void write_com(unsigned char com)
{
        start();
        write(0x80,4);          //写命令模式,命令长度为12位
        write(com,8);                        //写入命令
}

//*********HT1621写地址***********//

void write_data(unsigned char data)
{
        start();
        write(0xa0,3);                //写数据命令
        write(data,6);                //写入RAM 地址0--31
}

//*********HT1621写数据***********//

void write(unsigned char dat,unsigned char m)               
{
        unsigned char        x;
        for(x=0;x<m;x++)
        {
                if((dat&0x80)==0x00)
                GPIO_ResetBits(GPIOB,GPIO_Pin_4);//DATA=0;
                else
                GPIO_SetBits(GPIOB,GPIO_Pin_4);//DATA=1;
                delay_us(10);
                GPIO_SetBits(GPIOB,GPIO_Pin_6);//WR=1;
                delay_us(10);
                GPIO_ResetBits(GPIOB,GPIO_Pin_6);//WR=0;
                delay_us(10);
                dat=(unsigned char)(dat<<1);
        }
}

//*********HT1621显示***********//

void display(unsigned int data)       
{
        unsigned char i,y;
       
        write_data(0);                //从RAM  0开始装入
       
        i=(unsigned char)(data/1000);
        y=num[i];
        if(dian)
        write(y+0x10,8);        //千位
        else
        write(y,8);                                //千位
       
        i=(unsigned char)((data%1000)/100);
        y=num[i];
        if(dian)
        write(y+0x10,8);        //百位
        else
        write(y,8);                                //百位
       
        i=(unsigned char)((data%100)/10);
        y=num[i];
        if(dian)
        write(y+0x10,8);        //十位
        else
        write(y,8);                                //十位
       
        i=(unsigned char)(data%10);
        y=num[i];
        if(dian)
        write(y+0x10,8);        //个位
        else
        write(y,8);                                //个位
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10570
金钱
10570
注册时间
2017-2-18
在线时间
1913 小时
发表于 2019-1-6 18:24:08 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2019-4-24
在线时间
9 小时
发表于 2019-6-22 10:37:44 | 显示全部楼层
不知道问题是否解决
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2020-4-30
在线时间
0 小时
发表于 2020-4-30 08:01:22 来自手机 | 显示全部楼层
我遇到问题是Stm8上显示ok,STM32上不显示,
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-28 06:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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