[PIC®/AVR®/dsPIC®产品] HT1621B读数据问题

[复制链接]
 楼主| 黑洞不黑 发表于 2016-10-10 09:38 | 显示全部楼层 |阅读模式
/*****ht1621写字节函数*****/
void sendbit(unsigned char data,unsigned char cnt)//data的高cnt位写入,高位在前
{
    unsigned char i;
    for(i=0;i<cnt;i++)
    {
        WR=0;
        if(data&0x80)
            DATA=1;
        else
            DATA=0;
        WR=1;
        data<<=1;
    }
}
/*****ht1621读字节函数*****/
unsigned char readbit()
{
    unsigned char i;
    unsigned char data;
    for(i=0;i<4;i++)
    {
        data<<1;
        RD=0;
        __delay_us(5);
        if(DATA==1)
            data|=0x01;
        else
            data|=0x00;
        RD=1;
    }
    return data;
}
/*****ht1621写命令函数*****/
void sendcmd(unsigned char command)
{
    CS=0;//打开片选使能
    sendbit(0x80,4);//写入标识码“100”+9位command命令
    sendbit(command,8);//由于没有使用到更改时钟输出命令,直接将command最高位写0
    CS=1;//关闭片选使能
}
/*****ht1621读数据函数*****/
unsigned char readdata(unsigned char addr)
{
    unsigned char data;
    addr<<=2;//地址左移2位
    CS=0;//打开片选使能
    sendbit(0xc0,3);//写入标识码“110”
    sendbit(addr,6);//写入6位地址
    data=readbit();
    CS=1;
    return data;
}
/*****ht1621写地址+数据函数*****/
void write1621(unsigned char addr,unsigned char data)
{
    addr<<=2;//地址左移2位
    data<<=4;//数据左移4位
    CS=0;//打开片选使能
    sendbit(0xa0,3);//写入标识码“101”
    sendbit(addr,6);//写入6位地址
    sendbit(data,4);//写入4位数据
    __delay_us(10);  //延时
    CS=1;//关闭片选使能
}
程序功能是读写HT1621B操作函数,先写入所有地址的数据是0,再读出来某一个地址的数据,结果不是0,请大家看一下读操作是否正确
JY-DX-JY 发表于 2016-10-10 12:52 | 显示全部楼层
你把液晶折腾亮了就正确了

评论

非常精P!楼主你这样写一堆程序上来让别人帮你找错,是木有人接招滴。  发表于 2016-10-10 14:39
freeelectron 发表于 2016-10-10 13:02 | 显示全部楼层
HT1621B读数据,没多大用啊
我最近就在用HT1621B,读引脚直接没有接
QQ178960471 发表于 2016-10-13 23:45 | 显示全部楼层
HT1621B专家来了
xushuo888 发表于 2018-8-3 15:54 | 显示全部楼层
可以试试VK1621B ,我有资料跟驱动程序,发给你看看,性价比更高

本帖子中包含更多资源

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

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

本版积分规则

14

主题

110

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部