搜索
bottom↓
回复: 10

HT1621B显示程序

[复制链接]

出0入0汤圆

发表于 2013-6-4 14:13:30 | 显示全部楼层 |阅读模式
#include<avr/io.h>
#include<util/delay.h>

#define uchar unsigned char
#define uint unsigned int

//系统宏定义
#define BIAS                 0x52        //0b100001010010    1/3duty 4com
//#define BIAS                0x42        //0b100001001010        1/3duty 3com
//#define BIAS                0x4a        //0b100001010010        1/3duty 2com
#define SYSDIS                0x00        //关振系统荡振器和LCD偏压发生器
#define SYSEN                0x02        //打开系统振荡漾器

#define LCDOFF                0x04                //关LCD偏压
#define LCDON                0x06                //

#define XTAL                0x28                //外接时钟
#define RC256                0x30                //内部时钟

#define TONEON                0x12                //打开声音
#define TONEOFF                0x10                //关闭声音

#define WDTDIS                0x0a                //禁止看门狗

//引脚置高
#define WR_HIGH                PORTC|=(1<<PC2)
#define        CS_HIGH                PORTC|=(1<<PC1)
#define        DA_HIGH                PORTC|=(1<<PC0)
//引脚置低
#define WR_LOW                PORTC&=~(1<<PC2)
#define        CS_LOW                PORTC&=~(1<<PC1)
#define        DA_LOW                PORTC&=~(1<<PC0)


const uchar HT1621Tab[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                                                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
/***********************************************************
*   函数说明:HT1621写一个字节数据                         *
*   输入:    无                                           *
*   输出:    无                                           *
*   调用函数:_delay_us(int)                               *
***********************************************************/
void HT1621Write_Data(uchar Data,uchar cnt)
{
        uchar i;
        for(i=0;i<cnt;i++)
        {
                WR_LOW;
                _delay_us(10);
                if(Data&0x80)
                {DA_HIGH;}
                else
                DA_LOW;
                _delay_us(10);
                WR_HIGH;
                _delay_us(10);
                Data<<=1;
        }
}
/***********************************************************
*   函数说明:HT1621写命令                                     *
*   输入:    无                                           *
*   输出:    无                                           *
*   调用函数:HT1621write_data(uchar add,uchar data)       *
                          _delay_us(int)                               *
***********************************************************/
void HT1621Write_Cmd(uchar Cmd)
{
        CS_LOW;
        _delay_us(10);
        HT1621Write_Data(0x80,4);
        HT1621Write_Data(Cmd,8);
        CS_HIGH;
        _delay_us(10);
}
/***********************************************************
*   函数说明:HT1621写数据                                      *
*   输入:    无                                           *
*   输出:    无                                           *
*   调用函数:HT1621write_data(uchar add,uchar data)       *
                          _delay_us(int)                               *
***********************************************************/
void HT1621Write0neData(uchar Addr,uchar Data)                       
{
        CS_LOW;
        HT1621Write_Data(0xa0,3);
        HT1621Write_Data(Addr<<2,6);
        HT1621Write_Data(Data<<4,4);
        CS_HIGH;
        _delay_us(10);
}
/***********************************************************
*   函数说明:HT1621全部点亮                               *
*   输入:    无                                           *
*   输出:    无                                           *
*   调用函数:HT1621write_data(uchar add,uchar data)       *
                          _delay_us(int)                               *
***********************************************************/
void HT1621BWrite_AllData(uchar Addr,uchar *p,uchar cnt)
{
        uchar i;
        CS_LOW;
        HT1621Write_Data(0xa0,3);
        HT1621Write_Data(Addr<<2,6);
        for(i=0;i<cnt;i++)
        {
                HT1621Write_Data(*p,8);
                p++;
        }
        CS_HIGH;
        _delay_us(10);
}
/***********************************************************
*   函数说明:HT1621 初始化                                     *
*   输入:    无                                           *
*   输出:    无                                           *
*   调用函数:HT1621write_Cmd(Cmd)                         *
                          _delay_ms(int)                               *
***********************************************************/
void HT1621B_Init()
{
        CS_HIGH;
        WR_HIGH;
        DA_HIGH;
        _delay_ms(2000);
        HT1621Write_Cmd(BIAS);
        HT1621Write_Cmd(RC256);                //内部时钟
        HT1621Write_Cmd(SYSDIS);        //关振系统荡振器和LCD偏压发生器
        HT1621Write_Cmd(WDTDIS);        //禁止看门狗
        HT1621Write_Cmd(SYSEN);                //打开系统振荡漾器
        HT1621Write_Cmd(LCDON);                //关LCD偏压
        HT1621Write_Cmd(0x12);
        _delay_ms(1000);
        HT1621Write_Cmd(0x10);
}

int main()
{
        uchar i,j,t;
        DDRC=0xFF;
        HT1621B_Init();
       
        while(1)
        {
                HT1621BWrite_AllData(0,HT1621Tab,16);
                for(i=0;i<32;i++)
                {       
                        t=0x01;
                        for(j=0;j<4;j++)
                        {
                                HT1621Write0neData(i,t);
                                t<<=1;
                                t++;
                                _delay_ms(100);
                        }
               
                }
        }
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2013-6-5 09:46:18 | 显示全部楼层
ht1621b,比较常用的器件。

出0入0汤圆

发表于 2013-6-29 13:47:16 | 显示全部楼层
ht1621b,比较常用的器件。

出0入0汤圆

发表于 2013-6-29 22:34:05 | 显示全部楼层

出0入0汤圆

发表于 2013-8-31 15:52:42 | 显示全部楼层
学习观摩下

出0入0汤圆

发表于 2013-9-2 10:19:34 | 显示全部楼层
学习

出0入0汤圆

发表于 2014-10-24 01:22:47 | 显示全部楼层
good! The codes are what i want!

出0入0汤圆

发表于 2014-11-21 11:29:20 | 显示全部楼层
懒人要现成的

出0入0汤圆

发表于 2014-11-21 18:29:23 | 显示全部楼层
过来学习一下

出0入0汤圆

发表于 2014-11-25 08:15:26 | 显示全部楼层
有人用过HT1621B的读吗?

出0入0汤圆

发表于 2014-11-28 15:25:30 | 显示全部楼层
谢谢楼主分享
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 06:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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