找回密码
 立即注册

QQ登录

只需一步,快速开始

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

CT1642数码管驱动实例

[复制链接]
跳转到指定楼层
楼主
  手上有一台报废机顶盒,拆下显示及控制电路板,研究其电路原理。显示部分是三位共阴数码管,由CT1642驱动。经查阅CT1642数据手册,其内部集成18Bit移位寄存器、恒流驱动,采用CMOS工艺制作,可满足5V和3.3V供电要求。广泛应用于各种家用电器(如机顶盒、DVD播放机)等各种设备的数码显示驱动电路。
  CT1642采用串行(CLK、DATA)通信,驱动方式与74HC164芯片相似,不同之处是74HC164为8位数据传送,可联级,CT1642是18位数据传送,可同时传送段码和位码。
  CT1642功能图如下:其中Q2-Q9为段码数据,C1-C4为位码数据。

     CT1642时序:CLK上升沿依次传送DATA数据,在CLK第18个脉冲后,通过DATA的两个上升沿将数据输出。


  研究任务:显示“315”。焊接上Vcc、CLK、DATA、GND四根线,开始编程。


参考程序:
#include <reg52.h>
sbit CLK=P1^1;  //时钟
sbit DIO=P1^0;  //数据
unsigned char code SEG[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0-9共阴代码
unsigned char code COM[]={0xfe,0xfd,0xfb}; //位代码,对应CT1642的C1-C3,本例只驱动3位数码管,C4未用到
/**************************************************************************
   CT1642写数据函数  [数据结构:段码8位+空码2位+位码8位(共18位)]
**************************************************************************/
void wr_1642(unsigned char seg_dat, unsigned char seg_com)
{
   unsigned char i;
   unsigned long dat;
   dat=(unsigned long)seg_dat<<10 | COM[seg_com];  //整合数据,使之为18位
   for(i=0;i<18;i++)         //发送18位数据
   {
      CLK=0 ;
      DIO=(dat>>i)&0x01;    //右移方式,先发送低位数据
      CLK=1;           //上升沿移入1位,循环18次
   }
   CLK=1;       //CLK置1
   DIO=0;
DIO=1;  //模拟第1个上升沿
   CLK=0;       //CLK置0
   DIO=0;
DIO=1;  //模拟第2个上升沿,输出数据
}


/**************************************************************************
   主程序
**************************************************************************/
void main()
{  
   while(1)
   {
      wr_1642(SEG[3],0);   //c1位
      wr_1642(SEG[1],1);   //c2位
      wr_1642(SEG[5],2);   //c3位
    }
}




评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的奖励!

查看全部评分

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

使用道具 举报

沙发
ID:151348 发表于 2025-10-19 14:43 来自触屏版 | 只看该作者
不错不错,又降服了一款芯片。话说板子上还有几个按键和红外头,就六条线,难道用的ad按键
回复

使用道具 举报

板凳
ID:619259 发表于 2025-10-19 16:25 | 只看该作者
imxuheng 发表于 2025-10-19 14:43
不错不错,又降服了一款芯片。话说板子上还有几个按键和红外头,就六条线,难道用的ad按键

板上还有两线未用到,一是红外接收头、二是按键接收key端。板上有6个按键,并非AD识别,而是6个按键分别接到数码管的A-F端,在数码管消隐间隙,快速轮流输出按键码,若单片机key端接收到信号,即通过程序解析按键码,识别是哪个按键被按下。这种按键识别在HC164的电路中经常用到。
回复

使用道具 举报

地板
ID:1064915 发表于 2025-10-20 09:42 | 只看该作者
请大师写一个74HC164解析按键码程序,学习学习
或给个链接
回复

使用道具 举报

5#
ID:619259 发表于 2025-10-21 09:24 | 只看该作者
joyb 发表于 2025-10-20 09:42
请大师写一个74HC164解析按键码程序,学习学习
或给个链接

应你的要求,做了一个实例,仅供参考。
http://www.51hei.com/bbs/dpj-241394-1.html
回复

使用道具 举报

6#
ID:433219 发表于 2025-10-27 17:27 | 只看该作者
   推荐ic要说一下大致价格,,,tb价大约0.24元零售。。。凑合吧
回复

使用道具 举报

7#
ID:433219 发表于 2025-11-1 15:59 | 只看该作者
纯显示几个数码管,就还凑合。如果要加几个按键,性价比就不如vk1650这ic无敌了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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