历史上的今天
返回首页

历史上的今天

今天是:2024年11月26日(星期二)

正在发生

2020年11月26日 | HT1621显示屏驱动芯片单片机源程序

2020-11-26 来源:51hei

HT1621是128 点内存映象和多功能的LCD 驱动器 , HT1621 的软件配置特性使它适用于多种 LCD 应用场合,包括 LCD 模块和显示子系统。用于连接主控制器和HT1621 的管脚只有 4 或 5 条, HT1621 还有一个节电命令用于降低系统功耗。在虎风所做的这个系统中 ht1621 用于驱动一个静态的 LCD 液晶显示器。液晶显示的方式分为静态显示和动态显示 。 静态与动态的区别在于静态显示是持续供电的 , 而动态显示是利用人的视觉停留效果 , 快速扫描数码管各个段 , 让人在视觉上感觉到数码管是同时显示的。
0.jpg?imageView2/2/w/550 0.jpg?imageView2/2/w/550

各位大牛下午好,我用STC12C5204单片机控制1621驱动液晶
程序调了几天都没进展,显示的不知道什么乱七八糟的东西,好像命令根本写不进去,COM0和com1是个1v不到的电平,com3为3点几V的电平,com4有时有波形刷我自己写的程序就是这个样子,SEGMENT一部分有波形,其余就是一个电平

打电话咨询合泰技术,让我搞他们的范例,于是我修改了下,还是老样子大家帮我看看是什么问题,谢谢了下面的就是从合泰网上下的范例,我稍微修改了下,基本是原封不动的

单片机源程序如下:

各位大牛下午好,我用STC12C5204单片机控制1621驱动液晶

程序调了几天都没进展,显示的不知道什么乱七八糟的东西,好像命令根本写不进去,COM0和com1是个1v不到的电平,com3为3点几V的电平,com4有时有波形

刷我自己写的程序就是这个样子,SEGMENT一部分有波形,其余就是一个电平


打电话咨询合泰技术,让我搞他们的范例,于是我修改了下,还是老样子

大家帮我看看是什么问题,谢谢了

下面的就是从合泰网上下的范例,我稍微修改了下,基本是原封不动的


//STC12C5204AD单片机控制HT1621B驱动LCD

#include

#include

#include

#define BIAS 0X52             //1/3偏压,4背极

#define RC256K 0X30           //系统时钟选择为片内RC振荡器

#define WDTDIS1 0X0A           //禁止WDT溢出标志输出

#define TIMERDIS 0X08           //时基输出禁止

#define SYSEN 0X02              //打开系统时钟

#define SYSDIS 0X00             //关闭系统时钟和偏压发生器

#define LCDON 0X06            //打开LCD偏压发生器

#define LCDOFF 0X04        //关闭LCD偏压发生器

#define TONEON  0X12       //打开音频输出

#define TONEOFF 0X10       //关闭音频输出  

#define CS P3_2

#define WR P3_4

#define DATA P3_5


#define uchar unsigned char

#define uint unsigned int

/***************************延时子函数******************************/

void delay(uchar i)                   //j=12延时约4.3us

{


  while(i--)

  {

   uchar j=0;

   while(j<8)

   j++;

  }

}

void SendBit_1621(uchar dat ,uchar cnt)

{

uchar i;

for(i =0; i {

  if((dat&0x80)==0)

  DATA=0;

  else DATA=1;

  WR=0;

  delay(2);  

  WR=1;

        dat=dat<<1;

}

}


void SendDataBit_1621(uchar dat,uchar cnt)

{

uchar i;

for(i =0; i {

  if((dat&0x01)==0) DATA=0;

  else DATA=1;

  WR=0;

  delay(2);

  WR=1;

  dat=dat>>1;

}

}

void SendCmd(uchar command)

{

CS=0;

_nop_();

_nop_();

SendBit_1621(0x80,4);

SendBit_1621(command,8);

CS=1;

}

void Write_1621(uchar addr,uchar dat)

{

CS=0;

_nop_();

_nop_();

SendBit_1621(0xa0,3);

SendBit_1621(addr,6);

SendDataBit_1621(dat,4);

CS=1;

}

void WriteAll_1621(uchar addr,uchar *p,uchar cnt)

{

uchar i;

CS=0;

_nop_();

_nop_();

SendBit_1621(0xa0,3);

SendBit_1621(addr,6);

for(i =0; i {

  SendDataBit_1621(*p,8);

}

CS=1;

}

/*******************************主函数******************************/

main()                                    

{

uchar a[10];

a[0]=0xFF;a[1]=0xFF;a[2]=0xFF;a[3]=0xFF;a[4]=0xFF;

a[5]=0xFF;a[6]=0xFF;a[7]=0xFF;a[8]=0xFF;a[9]=0xFF;

a[10]=0xFF;a[11]=0xFF;a[12]=0xFF;a[13]=0xFF;a[14]=0xFF;

a[15]=0xFF;


SendCmd(BIAS);

SendCmd(SYSEN);

SendCmd(LCDON);

// SendCmd(RC256K);

WriteAll_1621(0,a,16);

// SendCmd(LCDOFF);  



}

LCD驱动程序 适用于HT1621

//=============================================================================

#define Lcd_Delay _nop_();_nop_();_nop_();_nop_();_nop_();_nop_()

void  Lcd_Data(uchar Start,uchar cData)

//将数据当中的字节与LCD上的进行同步

// Start    --要开始同页面地址,每个页面为4个有效位,总其为32X4字节

// Length   --要同步的页面数量

{

        uchar i;

        LCD_CS=0;

        Lcd_Delay;

        Lcd_Delay;

        Lcd_Delay;

          //Send ID 101B

          LCD_CLK=0;

          Lcd_Delay;

          LCD_IO=1;

          Lcd_Delay;

          LCD_CLK=1;

          Lcd_Delay;

          LCD_CLK=0;

          Lcd_Delay;

          LCD_IO=0;

          Lcd_Delay;

          LCD_CLK=1;

          Lcd_Delay;

          LCD_CLK=0;

          Lcd_Delay;

          LCD_IO=1;

          Lcd_Delay;

          LCD_CLK=1;

          Lcd_Delay;

          //Send Address 6bit

          Start=Start*2;

          for(i=0;i<6;i++)

    {

              if(Start&0x20) LCD_IO=1;

              else LCD_IO=0;

              Lcd_Delay;

              LCD_CLK=0;

              Lcd_Delay;

              Start=Start<<1;

              LCD_CLK=1;

              Lcd_Delay;

    }

    //Send data 8bit

    for(i=0;i<8;i++)

    {

              if(cData&0x01) LCD_IO=1;

              else LCD_IO=0;

              Lcd_Delay;

              LCD_CLK=0;

              Lcd_Delay;

              cData=cData>>1;

              LCD_CLK=1;

              Lcd_Delay;

    }

        LCD_CS=1;

        Lcd_Delay;

}

//=============================================================================

void  Lcd_Command(uchar Command)

//向指定的LCD当中写入一个命令

//每个命令应以100三个位为起始,命令长度为9位,实际有效位为8位,因此在最后补一个0

// LcdSelect--LCD的片选确定,取值为0,1,2

// Command----要写入的8位命令

{

        uchar i;

        LCD_CS=0;

        Lcd_Delay;

        Lcd_Delay;

        Lcd_Delay;

          //Send ID 100B

          LCD_CLK=0;

          Lcd_Delay;

          LCD_IO=1;

          Lcd_Delay;

          LCD_CLK=1;

          Lcd_Delay;

          LCD_CLK=0;

          Lcd_Delay;

          LCD_IO=0;

          Lcd_Delay;

          LCD_CLK=1;

          Lcd_Delay;

          LCD_CLK=0;

          Lcd_Delay;

          LCD_IO=0;

          Lcd_Delay;

          LCD_CLK=1;

        Lcd_Delay;

          for(i=0;i<8;i++)

    {

            LCD_CLK=0;

            Lcd_Delay;

              if(Command&0x80) LCD_IO=1;

              else LCD_IO=0;

              Command=Command<<1;

              Lcd_Delay;

              LCD_CLK=1;

              Lcd_Delay;

    }

    ///最后补一个0

           LCD_CLK=0;

           Lcd_Delay;

          LCD_IO=0;

          Lcd_Delay;

          LCD_CLK=1;

          Lcd_Delay;

        LCD_CS=1;

        Lcd_Delay;

}

//=============================================================================

void  Lcd_Refresh(void)        //重新对LCD进行刷屏

{

        uchar i;

        for(i=0;i                Lcd_Data(i,lcd.buff[i]);

……………………



推荐阅读

史海拾趣

Econais公司的发展小趣事

自成立以来,Econais一直致力于技术创新。XXXX年,公司成功推出了一款具有里程碑意义的单芯片IEEE802.11b/g/n Wi-Fi系统级封装(SiP)模块——EC19D01。这款模块在业界引起了广泛关注,因为它不仅体积小、易于集成,而且待机功耗极低。这一突破性的创新使得Econais在物联网领域树立了技术领先的地位。

GC Electronics公司的发展小趣事
定期检查传感器的工作状态,确保其能够准确监测水量或水温。
ELNA(依娜)公司的发展小趣事

进入电子领域后,ELNA迅速在电子元件领域取得了突破。公司凭借其在材料科学和制造工艺方面的专长,成功开发出了一系列高性能的电子元件产品。这些产品广泛应用于通信、计算机、消费电子等领域,为ELNA赢得了广泛的客户群。

为了保持技术领先,ELNA不断投入研发资源,加强技术创新。公司积极引进国际先进的生产设备和检测手段,提升产品品质和可靠性。同时,ELNA还加强了与国内外科研机构和高校的合作,共同推动电子元件技术的发展。

Hittite Microwave(ADI)公司的发展小趣事

在数字化转型和智能化升级的趋势下,ELNA开始积极探索新技术和新模式。公司加强了与互联网和人工智能技术的融合,推动产品和服务的智能化升级。同时,ELNA还加强了对大数据和云计算技术的应用,提升生产效率和管理水平。

以上是对ELNA公司在电子行业中的部分发展历程的概述。您可以根据这些故事的开头进一步扩展和完善内容以满足字数要求。

Hanghsing Enterprise Co Ltd公司的发展小趣事

进入电子领域后,ELNA迅速在电子元件领域取得了突破。公司凭借其在材料科学和制造工艺方面的专长,成功开发出了一系列高性能的电子元件产品。这些产品广泛应用于通信、计算机、消费电子等领域,为ELNA赢得了广泛的客户群。

为了保持技术领先,ELNA不断投入研发资源,加强技术创新。公司积极引进国际先进的生产设备和检测手段,提升产品品质和可靠性。同时,ELNA还加强了与国内外科研机构和高校的合作,共同推动电子元件技术的发展。

Greenlee公司的发展小趣事

GREEGOO公司深知品牌建设对于企业发展的重要性。因此,公司投入大量资源用于品牌宣传和推广,通过赞助行业活动、举办产品发布会、开展公益活动等方式,不断提升品牌知名度和美誉度。同时,GREEGOO还注重产品质量的提升和售后服务的完善,以优质的产品和服务赢得消费者的信任和忠诚。这些努力使得GREEGOO在电子行业中树立了良好的品牌形象,品牌价值不断提升。

问答坊 | AI 解惑

最复杂的问题……

  看过"五号特工组"吗?其中有一段说:一位特工冒名顶替日本围棋高手宫本太郎打入敌人内部,窃取机密...这位有正义感的日本围棋高手在掩护我们的特工撤退时候手里拿着一本<围棋入门>小册子说过这样一段话:"最复杂的东西往往要从最简单的 ...…

查看全部问答>

pads的原理图文件和pcb文件是不是 .SCH和.PCB后缀的?

本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata 问下用过pads的朋友 pads的原理图文件和pcb文件是不是 .SCH和.PCB后缀的?…

查看全部问答>

想买本VxWorks嵌入式开发的书,希望大家推荐一本

     想买本VxWorks嵌入式开发的书,希望大家推荐一本。内容是VxWorks下的图形界面系统开发,如VxWorks+QT。感觉还是需要一本纸质的书啊!…

查看全部问答>

如何在wince image中创建层次结构文件夹?并把文件拷贝到每个文件夹中?

如何在wince image中创建层次结构文件夹?并把文件拷贝到每个文件夹中?也就是说,在编译完后,nk.bin中就包含了这些东东。…

查看全部问答>

版主,STM32UART多机通信,1主多从,从机最多可支持多少个啊?

版主,请问STM32 UART 多机通信,1主多从,从机最多可支持多少个啊? datasheet上 配置寄存器(USART_CR2)节点地址只有4位,也就是说最多只能有15个从机吗? 可不可以1个主机带100多个从机啊?…

查看全部问答>

如何评估需要的SRAM大小

打算用MSP430系列,在选型阶段,C程序也已经写完了,需要确定SRAM的大小,请问各位如何评估,IAR软件中能看得出来吗。…

查看全部问答>

有关红外编码接收和发射的程序问题

/********学习型遥控器程序*********/#include<reg52.h>#include<intrins.h>   //延时函数#include<rradwrite.h>#define uchar unsigned char#define uint unsigned intsbit remoteout=P3^5;sbit turkey=P3^1;sbit IR=P3^2;& ...…

查看全部问答>

USB D+与D-数据线上的波形是哪一个

如下图所示,请问USB D+与D-数据线上的波形是哪一个? …

查看全部问答>

Hercules DIY 十:蜂鸣器发音

这个很简单,但我用中断,用一个旗标指示,当旗标为一时,蜂鸣器发音。 难点在中断,我以前就这个问题曾问过网友。现在我自己总结一下: 主要有两点,一个是在GPIO那里设对如图所示: 我设的是GPIOA第2脚中断。上升沿。 最重要的是把中断打 ...…

查看全部问答>

炼狱传奇—二进制到 BCD 之战

炼狱传奇-二进制到BCD之战经过前面的学习,相信大家已经掌握了软件的基本操作和设计的基本流程,接下来我们尝试从顶层至底层来设计一个BCD转换器。 在本次设计中,我们使用逐步移位法来实现BCD的转换,在设计FPGA之前,我们先来了解一下BCD转换-逐 ...…

查看全部问答>