数码之家

 找回密码
 立即注册
搜索
查看: 3314|回复: 8

[AVR] 点亮一块HT1623的段码屏

[复制链接]
发表于 2020-9-21 10:50:43 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
偶得一块段码屏,吃灰多日,整理屋子又翻出来想利用一下,今日终于点亮,分享给初学者,无奈本人编辑能力太差,又懒的记录,:lol:所以强打精神写一下,也是第一次发帖:loveliness:




正面全部点亮

正面全部点亮

背面,原机上是排线,不好焊接,幸好带了排针孔

背面,原机上是排线,不好焊接,幸好带了排针孔

最小系统

最小系统

Atmega128 HT1623.zip

3.61 MB, 下载次数: 2, 下载积分: 家元 -55

开发环境ICCAVR7.12

打赏

参与人数 1家元 +40 收起 理由
家睦 + 40

查看全部打赏

 楼主| 发表于 2020-9-21 11:29:57 | 显示全部楼层
为了没有M币的伙伴,贴出一些代码
#include "ht1623.h"
#include "delay.h"
                                                                  
/////////////////////////////////////////////////////       
//HT1623端口初始化
void Lcd_GPIO_init(void)
{
        HT1623DDR|= CS_SET|WR_SET|DA_SET;//端口方向设置为输出
        HT1623Port|= CS_SET|WR_SET|DA_SET;//端口初始化高电平
}
/*****************************************************************************
                              写地址函数
*****************************************************************************/
void SendBit_1623(u8 byte,u8 cnt) //add 的高cnt 位写入HT1623,高位在前
{
        u8 i;
        for(i=0;i<cnt;i++)
        {       
                if(byte&0x80) HT1623_DATA=1;
                else HT1623_DATA=0;
                HT1623_WR=0;
                delay_us(2); //速度快的单片机必须加延时
                HT1623_WR=1;
                byte<<=1;
        }
}
/*****************************************************************************
函数名称:void Ht1623WrCmd(u8 command)
功能描述: HT1623命令写入函数
参数说明:command为写入命令数据
说    明:写入命令标识位100
****************************************************************************/
void Ht1623WrCmd(u8 command)
{
        HT1623_CS=0;
        SendBit_1623(0x80,4);    //写入标志码“100”和9 位command 命令,由于
        SendBit_1623(command,8); //没有使有到更改时钟输出等命令,为了编程方便
        HT1623_CS=1;              //直接将command 的最高位写“0”
}
/*****************************************************************************
函数名称:void Ht1623WrData(u8 addr,u8 sdata)
功能描述: HT1623在指定地址写入数据函数
参数说明:addr为写入初始地址,sdata为写入数据
说    明:因为HT1623的数据位4位,所以实际写入数据为参数的后4位
调用方法:  Ht1623WrData(9,0x10);
****************************************************************************/
void Ht1623WrData(u8 addr,u8 sdata)
{
        HT1623_CS=0;
        SendBit_1623(0xa0,3);     //写入标志码“101”
        SendBit_1623(addr<<1,7);  //写入addr 的高6位
        SendBit_1623(sdata<<4,4);    //写入data 的4位
        HT1623_CS=1;
}
/*****************************************************************************
             Name: all_off(清除1623显示)
****************************************************************************/
void HT1623_all_off(void)
{
        u8 addr;
        for(addr=0;addr<96;addr++)
                Ht1623WrData(addr,0x00);
}
/****************************************************************************
              Name: all_on(全部点亮1623)
****************************************************************************/
void HT1623_all_on(void)
{
        u8 addr;
        for(addr=0;addr<96;addr++)
                Ht1623WrData(addr,0xff);
}
/****************************************************************************
                  Name: Init_1623(初始化1623)
*****************************************************************************/
void Lcd1623_Init(void)
{
        Lcd_GPIO_init();    //管脚初始化
        delay_ms(100);

        Ht1623WrCmd(BIAS);        //0x50  //4COM,1/3bias 0x50 对比度比0x52大
    Ht1623WrCmd(RC256); //0X30 //使用内部振荡器
    Ht1623WrCmd(SYSDIS);//0X00 //关振系统荡器和LCD偏压发生器
    Ht1623WrCmd(WDTDIS);//0X0A //禁止看门狗
    Ht1623WrCmd(SYSEN); //0x02 //系统振荡器开
    Ht1623WrCmd(LCDON); //0x06 //打开LCD 偏压发生器
}
回复 支持 反对

使用道具 举报

发表于 2020-9-21 13:12:53 | 显示全部楼层
厉害厉害,支持折腾!:praise:
回复 支持 反对

使用道具 举报

发表于 2020-9-21 16:09:49 | 显示全部楼层
点亮后还有很长的路要走呢,看你还没有弄出字符的引脚关联。
回复 支持 反对

使用道具 举报

发表于 2020-9-23 10:32:54 来自手机浏览器 | 显示全部楼层
刚好前几天玩过段式液晶,HT1621驱动的
IMG_20200916_140623.jpg
回复 支持 反对

使用道具 举报

发表于 2020-9-23 14:18:54 来自手机浏览器 | 显示全部楼层
aqxgm 发表于 2020-9-23 10:32
刚好前几天玩过段式液晶,HT1621驱动的

全新的?哪里撸的?
回复 支持 反对

使用道具 举报

发表于 2020-9-23 20:00:40 | 显示全部楼层
触景情伤 发表于 2020-9-23 14:18
全新的?哪里撸的?

电子称上拆的屏,PCB是自己在JLC打的
回复 支持 反对

使用道具 举报

发表于 2020-9-23 20:28:58 来自手机浏览器 | 显示全部楼层
aqxgm 发表于 2020-9-23 20:00
电子称上拆的屏,PCB是自己在JLC打的

不对…电子秤上的屏乱七八糟的东西占一堆…哪有那么干净的…
回复 支持 反对

使用道具 举报

发表于 2020-9-24 10:37:11 | 显示全部楼层
触景情伤 发表于 2020-9-23 20:28
不对…电子秤上的屏乱七八糟的东西占一堆…哪有那么干净的…

确定是在电子称上拆的
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-30 08:48 , Processed in 0.140401 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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