📄 ht1621.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 + -