找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 810|回复: 5
打印 上一主题 下一主题
收起左侧

HT1632C程序烧进去一点反应都没有,问题在哪,有无大神帮忙看看

[复制链接]
跳转到指定楼层
楼主
ID:1128210 发表于 2024-7-25 16:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
50黑币
#include<reg52.h>
#include<string.h>
/******************指令表**********************/
#define SYS_DIS 0x00 //关闭系统震荡
#define SYS_EN 0x01 //打开系统震荡
#define LED_OFF 0x02 //关闭LED显示
#define LED_ON 0x03 //打开LED显示
#define BLINK_OFF 0x08 //关闭闪烁
#define BLINK_ON 0x09 //打开闪烁
#define SLAVE_MODE 0x10 //从模式
#define RC_MASTER_MODE 0x18 //内部RC时钟
#define COM_OPTION 0x28 //20:8COM,NMOS。28:8COM,PMOS。
#define PWM_DUTY 0xaf //PWM亮度控制
/****************引脚定义**********************/
sbit cs1=P1^0;
sbit rd=P3^7;
sbit wr=P3^6;
sbit dat=P1^2;

void HT1632C_Write(unsigned char Data,unsigned char cnt)
{
        unsigned char i;
        for(i=0;i<cnt;i++)
        {
                wr=0;
                if(Data&0x80)        {dat=1;}
                else                       {dat=0;}
                wr=1;
                Data<<=1;
        }
}//MCU向HT1632C写数据函数,高位在前

void HT1632C_Write_CMD(unsigned char cmd)//MCU向HT1632c写命令
{
        cs1=0;
        HT1632C_Write(0x80,3);//ID:100
  HT1632C_Write(cmd,9);//命令数据位,第九位任意
        cs1=1;
}

void HT1632C_Write_DATA(unsigned char Addr,unsigned char D,unsigned char cnt)  //指定起始地址连续写入数据,cnt为写入数据个数,每个数据按位算
{
        unsigned char i;
        cs1=0;
        HT1632C_Write(0xa0,3);   //ID:101
        HT1632C_Write(Addr<<1,7);//地址
        for(i=0;i<cnt;i++)       //连续写入数据
        {
                HT1632C_Write(D,4);
        }
        cs1=1;
}
        
void HT1632C_clr(void) //清屏函数
        {
                unsigned char i;
                cs1=0;
                HT1632C_Write(0xa0,3);
                HT1632C_Write(0x00,7);
                for(i=0;i<48;i++)
                HT1632C_Write(0,8);
                cs1=1;
        }
        
void HT1632C_Init(void) //HT1632C初始化函数
{
        cs1=1;
        wr=1;
        dat=1;
        HT1632C_Write_CMD(SYS_DIS);//关闭HT1632C内部RC时钟
        HT1632C_Write_CMD(COM_OPTION);//选择HT1632C工作模式,COM,NMOS模式
        HT1632C_Write_CMD(RC_MASTER_MODE); //选择内部RC时钟
        HT1632C_Write_CMD(SYS_EN); //打开HT1632C内部RC时钟
        HT1632C_Write_CMD(PWM_DUTY); //PWM亮度设置
        HT1632C_Write_CMD(BLINK_OFF);//关闭闪烁
        HT1632C_Write_CMD(LED_ON);//打开LED显示
}

void lcdwd1(unsigned char num)
{
        unsigned char i;
        unsigned char addr=0;//寄存器起始地址0x00
        for(i=0;i<num;i++)//num有效地址数
        {
                HT1632C_Write_DATA(addr,0xff,8);//addr为地址,0xff为数据,8为8位数据
                addr+=2;//顺延2个4位地址码
        }
}
void main()
        {
                HT1632C_Init();
                HT1632C_clr();
                while(1)
                {
                        lcdwd1(24);
                }
        }

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1116913 发表于 2024-7-26 15:25 | 只看该作者
这个代码看起来没有错误,但需要实际硬件连接以及确保定义的GPIO口被正确配置才能运行。如果在实际使用中遇到问题,确认电路连接、宏定义的指令地址以及GPIO口的正确配置是关键。
回复

使用道具 举报

板凳
ID:1089588 发表于 2024-7-26 17:01 | 只看该作者
有可能主控不行,也有可能接错线
回复

使用道具 举报

地板
ID:1128210 发表于 2024-8-4 15:02 | 只看该作者
用在TM1681上可以正常点亮,用在ITK16Y23不行
回复

使用道具 举报

5#
ID:1128210 发表于 2024-8-4 16:11 | 只看该作者
由于用了两个驱动芯片,因此cs2也要一起连起来,不然就会不显示
回复

使用道具 举报

6#
ID:982617 发表于 2024-8-7 16:06 | 只看该作者
从您给出的代码来看,大部分的逻辑和实现看起来都是正确的。然而,有几个可能引起问题的点:

1. **初始化命令**:在`HT1632C_Init`函数中,您使用了如下命令:

   ```c
   HT1632C_Write_CMD(RC_MASTER_MODE);
   ```

   这个命令是在设置HT1632C使用内部RC振荡器,但它在初始化中被调用两次。通常,只需要在初始化阶段调用一次。可能您是想在初始化时同时设置为从模式(SLAVE_MODE),所以这里我建议您检查您的代码,确保每个初始化命令只调用一次。

2. **显示更新**:`lcdwd1`函数用于写入显示数据。这个函数的目的是将24个字符写入显示器。然而,从您的代码中没有看到数据的内容是如何生成的。确保在调用`lcdwd1`函数之前,您已经设置了显示内容或字符。

3. **时序和兼容性问题**:确保您的代码兼容所使用的硬件。不同的硬件可能需要不同的时钟周期、引脚配置或初始化命令。

4. **检查硬件连接**:检查HT1632C的连接是否正确。确保所有必要的信号(如CS、WR、RD、DATA)都正确连接到微控制器的相应引脚,并确保引脚配置在您的代码中正确。

5. **检查错误处理**:您的代码中没有包含错误处理机制。在实际应用中,可能需要添加错误检查逻辑,比如检查写入数据是否成功。

最后,为了诊断问题,建议您:
使用串行监视器或逻辑分析器来查看数据通信过程,检查是否有数据丢失或错误。
确认硬件设置,如电源电压、频率、引脚拉高/拉低状态等是否符合HT1632C的规格。
清晰地定义显示内容,例如可以使用字符串函数来生成或修改数据。

如果上述建议没有解决问题,可能需要更深入地检查具体的硬件实现或微控制器与HT1632C的通信细节。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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