⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ht1621.c

📁 基于MSP430F20XX系列控制LCD控制器HT1621的代码,带硬件原理图,液晶屏使用周立功的ZY886B IC卡水表LCD液晶显示模块,该程序控制7位数字显示
💻 C
字号:
#include "MSP430X20X3.h"
#include "General.h"
#include "HT1621.h"

const unsigned char Num_Table[10]={0xEB,0x60,0xC7,0xE5,0x6C,0xAD,0xAF,0xE0,0xEF,0xED};
extern unsigned char LCD_buffer[7];
////////////////////////////////////////////////////////////////////////////////
//  向HT1621写入数据                                                          //
//  data:   数据                                                              //
//  dir:    写入方向 0: 高位先发送 1:低位先发送                               //
//  count:  发送位数                                                          //
////////////////////////////////////////////////////////////////////////////////
void Send_Bit_1621(unsigned char data, unsigned char dir, char count)
{
  while(count)
  {
    CLR_WR;
    //Short_Delay(10);
    if(dir)
    {
      //低位先发送
      if(data & 0x01)
        SET_DAT;
      else
        CLR_DAT;
      data>>=1;
    }
    else
    {
      //高位先发送
      if(data & 0x80)
        SET_DAT;
      else
        CLR_DAT;
      data<<=1;
    }
    SET_WR;
    count--;
  }
}

////////////////////////////////////////////////////////////////////////////////
//  向HT1621写入数据                                                          //
//  adr:    RAM地址,6位,高位先发                                              //
//  data:   数据,8位,低位先发                                                 //
//  count:  连续发送数                                                        //
////////////////////////////////////////////////////////////////////////////////
void Write_1621_RAM(unsigned char adr, unsigned char data)
{
  adr<<=2;                        //地址左对齐
  CLR_CS;
  //Short_Delay(10);
  Send_Bit_1621(0x05, LOW, 3);    //发送101
  Send_Bit_1621(adr, HIGH, 6);    //发送6位地址
  Send_Bit_1621(data,HIGH, 8);  //发送数据
  //Short_Delay(10);
  SET_CS;
}

void Update_LCD_Num()
{
  char count=0;
  CLR_CS;
  //Short_Delay(10);
  Send_Bit_1621(0x05, LOW, 3);    //发送101
  Send_Bit_1621(0, HIGH, 6);      //发送6位地址
  while(count<4)                  //更新高4为数字
  {
    Send_Bit_1621(*(Num_Table+LCD_buffer[count]),HIGH, 8);  //发送数据
    count++;
  }
  SET_CS;
  
  CLR_CS;
  //Short_Delay(10);
  Send_Bit_1621(0x05, LOW, 3);    //发送101
  Send_Bit_1621(12<<2, HIGH, 6);      //发送6位地址
  Send_Bit_1621(*(Num_Table+LCD_buffer[4]),HIGH, 8);  //发送数据
  SET_CS;
  
  CLR_CS;
  //Short_Delay(10);
  Send_Bit_1621(0x05, LOW, 3);    //发送101
  Send_Bit_1621(14<<2, HIGH, 6);      //发送6位地址
  Send_Bit_1621(*(Num_Table+LCD_buffer[5]),HIGH, 8);  //发送数据
  SET_CS;
  
  CLR_CS;
  //Short_Delay(10);
  Send_Bit_1621(0x05, LOW, 3);    //发送101
  Send_Bit_1621(8<<2, HIGH, 6);      //发送6位地址
  Send_Bit_1621(*(Num_Table+LCD_buffer[6]),HIGH, 8);  //发送数据
  SET_CS;
}
////////////////////////////////////////////////////////////////////////////////
//  向HT1621发送命令                                                          //
//  cmd:    命令代码,8位,高位先发                                             //
////////////////////////////////////////////////////////////////////////////////
void Send_1621_Cmd(unsigned char cmd)
{
  CLR_CS;
  //Short_Delay(10);
  Send_Bit_1621(0x01, LOW, 3);    //发送100
  Send_Bit_1621(cmd, HIGH, 8);    //发送8位命令代码
  Send_Bit_1621(0x00, HIGH, 1);   //最后一位
  //Short_Delay(10);
  SET_CS;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -