基于ht1632c芯片的点阵驱动模块在STM32F103mini的应用

2019-11-09来源: eefocus关键字:ht1632c芯片  点阵驱动模块  在STM32F103mini

ht1632c点阵模块

STM32F103RC(mini)


杜邦线


工程代码:https://download.csdn.net/download/goolete/10922678


驱动代码:https://download.csdn.net/download/goolete/10922879


取模软件:https://download.csdn.net/download/goolete/10922876


(取模软件用之前必须破解,否则生成为乱码,破解文件在压缩包里)


HT1632C点阵模块使用手册V1.0:https://download.csdn.net/download/goolete/10922908


HT1632C中文资料:


HT1632CV130 datasheet:https://download.csdn.net/download/goolete/10924443


方法/步骤


注:代码注释部分因时间问题可能有误,本文只给出部分代码。

次点阵模块由HT1632C芯片驱动,MCU与HT1632C通信只需要4根线便可。 /CS用来使能串行接口信号的传输以及终止其与外部MCU的通信。如果/CS被置1,则数据和命令的传输被禁止。DATA引线用来串行传输数据, /RD引线用来输入读时钟, RAM数据在/RD的下降沿被读出,该数据将会在DATA引线上被传输。 /WR引线用来输入写时钟,数据,地址和命令将会在DATA引线上被输入在/WR的下降沿。

查询STM32F103RC的IO引脚图,可知PA7PA6PA5PA4可作为本次实验的IO。


1.连线。


使用杜邦线将DATA#WR#RD#CS分别连接到MCU的PA7-4上,此外,将VCCGND分别连接到MCU的VOUT1或VOUT2上。


2.检查线路无误后,开始编写驱动接口。


#include "ht1632c.h"

 

void HT1632C_Interface_Init(void)

{

GPIO_InitTypeDef  GPIO_InitStructure;

 

 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PA,PD端口时钟

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_6|GPIO_Pin_5|GPIO_Pin_4;

 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出

 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  

 GPIO_Init(GPIOA, &GPIO_InitStructure);

}

接口设置 


#define DAT_SET GPIO_SetBits(GPIOA,GPIO_Pin_7); // PA7

#define LCD_CS_SET  GPIO_SetBits(GPIOA,GPIO_Pin_5);    //片选端口    

#define LCD_WR_SET GPIO_SetBits(GPIOA,GPIO_Pin_6);   //写数据

#define LCD_RD_SET GPIO_SetBits(GPIOA,GPIO_Pin_4);    //读数据

 


3.小人点阵图片代码


//行走的小人图像1

 

//一个页面需要48个字节数据

 

unsigned char page1[48]={

 

0X00,0X00,0X01,0XC0,0X06,0X30,0X04,0X10,0X08,0X08,0X08,0X08,0X08,0X08,0X04,0X10,

 

0X06,0X30,0X03,0XE0,0X00,0X80,0X00,0X80,0X03,0XC0,0X0C,0XB0,0X10,0X88,0X00,0X84,

 

0X01,0XC0,0X01,0XC0,0X03,0X60,0X06,0X30,0X0C,0X18,0X0C,0X0E,0X00,0X00,0X00,0X00};

 

 

 

//行走的小人图像2

 

//一个页面需要48个字节数据

 

unsigned char page2[48]={

 

0X00,0X00,0X01,0XC0,0X06,0X30,0X04,0X10,0X08,0X08,0X08,0X08,0X08,0X08,0X04,0X10,

 

0X06,0X30,0X03,0XE0,0X00,0X80,0X00,0X80,0X03,0XC0,0X0C,0XB0,0X10,0X88,0X00,0X84,

 

0X01,0XC0,0X01,0XC0,0X01,0X40,0X01,0X40,0X01,0X40,0X01,0X60,0X00,0X00,0X00,0X00};

 

 

 

 

 

//行走的小人路面1数据,只是一行数据,2个字节

 

unsigned char road1[2]={0xF3,0xCF};

 

//行走的小人路面2数据,只是一行数据,2个字节

 

unsigned char road2[2]={0xCF,0x3C};

 

//行走的小人路面3数据,只是一行数据,2个字节

 

unsigned char road3[2]={0x3C,0xF3};

4.编写主程序


int main(void)

 

{

 

unsigned char *p1,*p2; //定义指向page数组的指针

 

 

 

delay_init();

 

p1=&page1[0]; //使指针指向数组地址

 

p2=&page2[0]; //使指针指向数组地址

 

 

 

 

 

HT1632C_Interface_Init(); //初始化1632接口

 

HT1632C_Init(); //初始化HT1632

 

HT1632C_clr(); //清屏

 

while(1)

 

{

 

HT1632C_Update_OnePage(p1); //显示人物1

 

HT1632C_Update_Onerow(24,road1); //显示路面1

 

delay_ms(60); //移动延时

 

HT1632C_Update_Onerow(24,road2); //显示路面2

 

delay_ms(50); //移动延时

 

HT1632C_Update_OnePage(p2); //显示人物2

 

delay_ms(50); //移动延时

 

HT1632C_Update_Onerow(24,road3); //显示路面3

 

delay_ms(60); //移动延时

 

}

 

}


5.烧录程序到MCU。

关键字:ht1632c芯片  点阵驱动模块  在STM32F103mini 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic479519.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32F0xx_看门狗(独立+窗口)配置详细过程
下一篇:STM32 MAX7219驱动的8*8 LED点阵

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8S MAX7219点阵模块驱动芯片程序
以下为.h文件:#ifndef __MAX7219_H#define __MAX7219_H#include "stm8s_gpio.h"#include "stm8s.h"#include <iostm8s103f3.h>#include <intrinsics.h>#include "tim1.h" #define uchar unsigned char#define uint  unsigned int#define count 8  void Init_MAX7219(void);void MAX721
发表于 2019-11-08
STM8S MAX7219点阵模块驱动芯片程序
ATMEAGl6L驱动16x2点阵字符液晶模块的实验
  要实现对16x2点阵字符液晶模块的高效控制,必须按照模块设计方式,建立起相关的子程序,下面先详细介绍驱动16x2点阵字符液晶模块的各功能子程序。  1.写命令到LCM子函数  vOid LCDWriteCommand(uchar CMD,uchar Attribc)  /*函数名为WriteCommandLCM的写指令到LCM子函数。  定义CMD、Attribc 为无符号字符型变量。*/  {  if(Attribc)WaitForEnable();  /*若Arrribc为“真”,则调用WaitForEnable子函数进行忙检测*/  LCM_RS_0;LCM_RW_0;_NOP0;  /*选中指令寄存器,写模式
发表于 2018-04-01
ATMEAG16L驱动128x64点阵图形液晶模块的实验
  要实验对128x64点阵图形液晶模块的高效控制,必须按照模块设计方式,建立起相关的子程序模块,下面详细介绍各功能子程序。          10.在AVR单片机综合实验板上实现128x64LCM演示程序       在AVR单片机综合实验板上实现128x64点阵图形液晶上显示汉字:屏幕上第一行显示“朝辞白帝彩云间”第二行显示“千里江林一日还”,第三行显示“两岸猿声啼不住”,第四行显示“轻舟已过万重山。”其中第三、四行反白显示。在我的文档中新建一个ac20的文件夹。建立一个ac20.prj的工程项目,最后建立
发表于 2017-12-11
ATMEAG16L驱动128x64点阵图形液晶模块的实验
AVR单片机—(三)、ATMEGA16驱动16*2点阵字符液晶模块—01
三、ATMEGA16驱动16*2点阵字符液晶三—(01)、ATMEGA16驱动16*2点阵字符液晶这篇文章只是简单的驱动并让1602显示,并没有用到读数据和读状态的部分,也没有用到读写检测(要是感兴趣的话还是写写这里吧)1、那就是用什么样的液晶,又该怎么驱动,现在把datasheet的部分图片贴出来,看看,so easy~~的1)就是它的引脚说明(个人感觉要想具体了解还是在网上搜搜吧~~我这里也就是简单了解~)这里也就三个引脚需要注意就是RS、R/W、E,这三个引脚,传输数据的必用引脚,别的就不用详细介绍了吧~~(后面的程序就是根据这三个引脚的时序图来写的!2)(说实话,我真的不太想详细说,因为好多人对于驱动这个1602来说太简单
发表于 2017-11-21
AVR单片机—(三)、ATMEGA16驱动16*2点阵字符液晶模块—01
128X128点阵驱动模块接口连接图
128X128点阵驱动模块接口连接图 设计的驱动电路采用PT6807、PT6808、PT6807是点阵0LED图形显示系统64路行驱动器,它利用CMOS技术,提供64个移位寄存器和64路输出驱动,PT6807自己产生时钟信号控制PT6808列驱动器。以128x128点阵为例说明具体的操作,点阵驱动模块接口如图4所示。为读出显示数据RAM中的内容,需访问读指令2次,第1次访问中,显示数据RAM中的数据被锁存到输出寄存器中,在第2次访问中,MPU读锁存数据。即在读显示数据RAM时需1次假读,但在读状态数据时无需假读。
发表于 2012-01-14
128X128点阵驱动模块接口连接图
STM32F103mini教程通用定时器
,具体选择哪个可以通过 TIMx_SMCR 寄存器的相关位来设置。这里的CK_INT时钟是从 APB1 倍频的来的,STM32 中除非 APB1 的时钟分频数设置为 1,否则通用定时器 TIMx的时钟是 APB1 时钟的 2 倍,当 APB1 的时钟不分频的时候,通用定时器 TIMx 的时钟就等于APB1 的时钟。这里还要注意的就是高级定时器的时钟不是来自 APB1,而是来自 APB2 的。除非APB1的分频系数是1,否则通用定时器的时钟等于APB1时钟的2倍。默认调用SystemInit函数情况下:SYSCLK=72MAHB时钟=72MAPB1时钟=36M所以APB1的分频系数=AHB/APB1时钟=2所以,通用定时器时钟
发表于 2019-07-01
STM32F103mini教程通用定时器
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved