OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7433|回复: 6

HT1632C控制四位数码管,如何使四位数码管动态显示。

[复制链接]

6

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2012-5-5
在线时间
7 小时
发表于 2013-8-20 20:11:30 | 显示全部楼层 |阅读模式
问题如题,程序该怎么写才能是四位数码管同时动态显示,本人能力有限试了好多次只能显示一位数码管,求各位大神帮忙。万分感谢



HT1632C中文资料.pdf

1.37 MB, 下载次数: 1282

黑白风云谁是主,旁人笑看输赢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

557

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165047
金钱
165047
注册时间
2010-12-1
在线时间
2102 小时
发表于 2013-8-20 22:41:40 | 显示全部楼层
你这关键在控制COM12~COM15的循环扫描啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

156

主题

1201

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1413
金钱
1413
注册时间
2014-5-21
在线时间
335 小时
发表于 2014-6-5 13:54:02 | 显示全部楼层
能分享一下程序吗?我用的国产天微芯片驱动的,相互分享啊
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2013-5-8
在线时间
0 小时
发表于 2014-6-7 10:51:46 | 显示全部楼层
谢谢分享 互相学习
回复 支持 反对

使用道具 举报

6

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2012-5-5
在线时间
7 小时
 楼主| 发表于 2015-1-22 21:15:23 | 显示全部楼层
好久没上了,分享下HT1632驱动和数码管代码
//
//详细地址如下
//      COM15 COM14 COM13 COM12 地址 ........COM3 COM2 COM1 COM0 地址
//ROW0   D15 D14   D13   D12 |03H|   D3 D2 D1 D0 |00H|
//ROW1   D15     D14   D13   D12 |07H|   D3 D2 D1 D0 |04H|
//ROW2   D15 D14   D13   D12 |0BH|   D3 D2 D1 D0 |08H|
//ROW3   D15 D14   D13   D12 |0FH|   D3 D2 D1 D0 |0CH|
//ROW4   D15 D14   D13   D12 |13H|   D3 D2 D1 D0 |10H|
//ROW5   D15 D14   D13   D12 |17H|   D3 D2 D1 D0 |14H|
//ROW6   D15 D14   D13   D12 |1BH|   D3 D2 D1 D0 |18H|
//ROW7   D15 D14   D13   D12 |1FH|   D3 D2 D1 D0 |1CH|
//ROW8   D15 D14   D13   D12 |23H|   D3 D2 D1 D0 |20H|
//ROW9   D15 D14   D13   D12 |27H|   D3 D2 D1 D0 |24H|
//ROW10   D15 D14   D13   D12 |2BH|   D3 D2 D1 D0 |28H|
//ROW11   D15 D14   D13   D12 |2FH|   D3 D2 D1 D0 |2CH|
//ROW12   D15 D14   D13   D12 |33H|   D3 D2 D1 D0 |30H|
//ROW13   D15 D14   D13   D12 |37H|   D3 D2 D1 D0 |34H|
//ROW14   D15 D14   D13   D12 |3BH|   D3 D2 D1 D0 |38H|
//ROW15   D15 D14   D13   D12 |3FH|   D3 D2 D1 D0 |3CH|
[mw_shl_code=c,true]//指令表 #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 EXT_CLK_MASTER_MODE 0x1C //外部时钟 #define COM_OPTION 0x24 //16COM,NMOS模式 //#define PWM_DUTY 0XA0 //PWM亮度控制 #define PWM_DUTY 0xAf //PWM亮度控制 //数码管段选 dp-a方式:0-9,A,b,c,u unsigned char tab[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x3e}; //数码管段选0-9,带小数点 unsigned char tab1[] = {0xbf, 0x86, 0xdb, 0xcf, 0xe6, 0xed, 0xfd, 0x17, 0xff, 0xef}; /**************************************** *函数名:HT1632C_Writer *描 述:HT1632C发送数据函数,高位在前 *参 数ata,cnt *返 回: ****************************************/ void HT1632C_Writer(unsigned char Data,unsigned char cnt) { unsigned char i; for(i=0;i<cnt;i++) { GPIOEX_BitClr(HT_WR); if(Data&0x80) GPIOEX_BitSet(HT_DATA); else GPIOEX_BitClr(HT_DATA); Data<<=1; GPIOEX_BitSet(HT_WR); } } /******************************* *函数名:HT1632C_Writer_CMD *描 述:发送命令函数 *参 数:cmd *返 回: ********************************/ void HT1632C_Writer_CMD(unsigned char cmd) { GPIOEX_BitClr(HT_CS); HT1632C_Writer(0x80,3); //命令码100 HT1632C_Writer(cmd,9); //命令数据,第9位为0 GPIOEX_BitSet(HT_CS); } /******************************* *函数名:HT1632C_Writer_DATA *描 述:指定地址写入数据 *参 数:Addr,Data *返 回: ********************************/ void HT1632C_Writer_DATA(unsigned char Addr,unsigned char Data) { GPIOEX_BitClr(HT_CS); HT1632C_Writer(0xa0,3); //命令码101 HT1632C_Writer(Addr<<1,7); //写入7位地址 HT1632C_Writer(Data,4); //写入4位数据 GPIOEX_BitSet(HT_CS); } /************************************************************ *函数名:HT1632C_Writer_AllDATA *描 述:指定地址写入连续数据,cnt为写入数据个数,按8位算 *参 数:Addr,*p,cnt *返 回: *************************************************************/ void HT1632C_Writer_AllDATA(unsigned char Addr,unsigned char *p,unsigned char cnt) { unsigned char i; GPIOEX_BitClr(HT_CS); HT1632C_Writer(0xa0,3); HT1632C_Writer(Addr<<1,7); for(i=0;i<cnt;i++) { HT1632C_Writer(*p,8); p++; } GPIOEX_BitSet(HT_CS); } /******************************* *函数名:HT1632C_clr *描 述:清屏函数 *参 数: *返 回: ********************************/ void HT1632C_clr(void) { unsigned char i; GPIOEX_BitClr(HT_CS); HT1632C_Writer(0xa0,3); HT1632C_Writer(0x00<<1,7); for(i=0;i<36;i++) { HT1632C_Writer(0,8); } GPIOEX_BitSet(HT_CS); } /******************************* *函数名:HT1632C_Init *描 述:HT1632C初始化函数 *参 数: *返 回: ********************************/ void HT1632C_Init(void) { GPIOEX_BitSet(HT_CS); GPIOEX_BitSet(HT_WR); GPIOEX_BitSet(HT_DATA); HT1632C_Writer_CMD(SYS_DIS); HT1632C_Writer_CMD(COM_OPTION); HT1632C_Writer_CMD(RC_MASTER_MODE); HT1632C_Writer_CMD(SYS_EN); HT1632C_Writer_CMD(PWM_DUTY); HT1632C_Writer_CMD(BLINK_OFF); HT1632C_Writer_CMD(LED_ON); } /******************************* *函数名:display_num *描 述:数码管显示函数 *参 数: *返 回: ********************************/ //显示数值,无小数点 void display_num(unsigned int dat) { unsigned char i, j; unsigned char dt;//dt为要写入到ram的值 dt = 0; for(i=0; i<8;i++) { dt =( tab[dat]&(1<<i))<<(7-i);//千 if(i==7) { dt +=(tab[dat%1000/100 ]&(1<<i))>>(i-6);//百 dt += (tab[dat%100/10 ]&(1<<i))>>(i-5);//十 dt += (tab[dat%10]&(1<<i))>>(i-4); //个 } else if(i == 6) { dt +=(tab[dat%1000/100 ]&(1<<i))>>(i-6); dt += (tab[dat%100/10]&(1<<i))>>(i-5); dt += (tab[dat%10]&(1<<i))>>(i-4); } else if(i == 5) { dt+=(tab[dat%1000/100 ]&(1<<i))<<(6-i);//百 dt += (tab[dat%100/10]&(1<<i))<<(5-i); dt += (tab[dat%10]&(1<<i))>>(i-4); } else { dt+=(tab[dat%1000/100 ]&(1<<i))<<(6-i);//百 dt += (tab[dat%100/10]&(1<<i))<<(5-i); dt += (tab[dat%10]&(1<<i))<<(4-i); } HT1632C_Writer_DATA((0x03+i*4),dt); } }[/mw_shl_code]


黑白风云谁是主,旁人笑看输赢
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2013-4-16
在线时间
8 小时
发表于 2016-5-19 18:11:40 | 显示全部楼层
静水流深 发表于 2015-1-22 21:15
好久没上了,分享下HT1632驱动和数码管代码
//
//详细地址如下

能放个共阳极的电路图吗??
回复 支持 反对

使用道具 举报

5

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2014-8-7
在线时间
59 小时
发表于 2016-10-13 11:23:43 | 显示全部楼层
静水流深 发表于 2015-1-22 21:15
好久没上了,分享下HT1632驱动和数码管代码
//
//详细地址如下

你好,最近也在调HT1632C,想请教一下,我下图的这个接法,程序怎么修改?

ht1632c

ht1632c

回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-29 05:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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