驱动器简述
驱动器就是为驱动某些显示设备,动作设备的器件,用户可通过单片机对驱动器设置驱动方式,时间等等来达到自己配置,而如何配置驱动器来达到我们想要的效果,便是要根据驱动器手册,输入相应的代码,配置驱动器;而如何输入代码,我们需要查看技术手册,所需要的代码值,时钟频率。
以stm32驱动AS1106数码管显示为例,
在百度输入http://alldatasheet.com搜索AS1106技术手册


AS1106连接四位共阴数码管;
配置stm32引脚连接;
AS1106适用于SPI驱动输入代码,由引脚图可以看出AS1106引脚1输入数据引脚,引脚13时钟输入引脚,引脚12片选引脚,由stm32配置图AS1106引脚1连接PB15,引脚13连接PB13;引脚12连接PB12;为方便理解,我使用stm32引脚模拟spi输入数据模式;
stm32引脚配置
三个引脚全部推挽输出;
下面看看AS1106时钟图

由图可以看出,先拉低片选,然后时钟输出频率并且数据在时钟上升沿有效,dout是多位数码管显示时使用;片选PB12,时钟PB13,数据PB15;每个时间所需要的最小时间在表,每次写完数据的时候一定要将片选PB12拉高,数据才能的到保存,AS1106显示数据是先输入显示位(0X01,0X02,0X03,0X04我是四位显示),在输入要显示数字;
再看看AS1106配置指令:
关机寄存器(0X0C)
关机模式,将功能寄存器重置为默认设置 0X00
关机模式,功能寄存器不变 0X80
正常操作,将功能寄存器重置为默认设置 0X01
正常操作,功能寄存器不变 0x81
配置时先向AS1106输入0X0C,在输入0X00/0X01/0X80/0X81选择关机寄存器中的模式,便于自己的使用(我选择0X0C,0X81)
译码寄存器(0x09)
无解码 0x00
解码BCD/16进制(数据位第0位,第7位至第1位无解码)0x01
解码BCD/16进制(数据位第3-第0位,无解码第7-第4位)0x0F
解码BCD/16进制(数据位第7-第0位)0xFF
无解码第7位时代表小数点
配置时先向AS1106输入0X09,在输入0X00/0X01/0X0F/0XFF选择译码寄存器中的模式,便于自己的使用(我选择0X09,0X0F)
显示测试寄存器(0X0F)
正常模式 0X00
显示测试模式 0X01
配置时先向AS1106输入0X0F,在输入0X00/0X01选择显示测试寄存器中的模式,便于自己的使用(我选择0X0F,0X00)
显示强度寄存器(0X0A)
1/32 0X00
3/32 0X01
5/32 0X02
7/32 0X03
9/32 0X04
11/32 0X05
13/32 0X06
15/32 0X07
17/32 0X08
19/32 0X09
21/32 0X0A
23/32 0X0B
25/32 0X0C
27/32 0X0D
29/32 0X0E
31/32 0X0F
配置时先向AS1106输入0X0A,在输入0X00至0X0F选择显示亮度寄存器中的模式,便于自己的使用(我选择0X0A,0X03)
扫描寄存器(0X0B)
显示第0位 0X00
显示第0-第1位 0X01
显示第0-第2位 0X02
显示第0-第3位 0X03
显示第0-第4位 0X04
显示第0-第5位 0X05
显示第0-第6位 0X06
显示第0-第7位 0X07
配置时先向AS1106输入0X0B,在输入0X00至0X07选择扫描寄存器中的模式,便于自己的使用(我选择0X0B,0X03)
功能寄存器(0X0E)
开机时初始化0
D7:开始闪烁
0—闪烁开始于显示关
1—闪烁开始于显示开
D6:闪烁在片选上升沿同步,一般值为0
D5:设置低频闪烁(启用内部振荡器)
0—闪烁周期1秒(0.5秒开,0.5秒关)
1—闪烁周期2秒(1秒开,1秒关)
D4:使能闪烁
0—禁用闪烁
1—启用闪烁
D3:启用SPI兼容接口
0----禁用SPI
1----启用SPI
D2:选择显示译码模式
0—使用BCD 码
1—使能16进制
D1:重置除功能寄存器之外的寄存器
0----重置无效
1----重置
D0:时钟选择
0—系统时钟采用内部振荡器
1—串行时钟CLK作为时钟注入
配置时先向AS1106输入0X0E,配置D7-D0各位数值来选择功能寄存器中的模式,便于自己的使用(我选择0X0E,0X0D)
先做一个现在数据的函数:
int a=0,DATA[16]={0},A1,A2,A3,A4,A5;声明整数型数组DATA[16]
GPIO_SetBits(GPIOB,GPIO_Pin_12); //片选拉高
GPIO_ResetBits(GPIOB,GPIO_Pin_13); //时钟拉低
GPIO_ResetBits(GPIOB,GPIO_Pin_15); //输入拉低
void DataDown(u16 Data1,u16 Data2)
{
DATA[0]=(Data1&0X80)>>7;
DATA[1]=(Data1&0X40)>>6;
DATA[2]=(Data1&0X20)>>5;
DATA[3]=(Data1&0X10)>>4;
DATA[4]=(Data1&0X08)>>3;
DATA[5]=(Data1&0X04)>>2;
DATA[6]=(Data1&0X02)>>1;
DATA[7]=(Data1&0X01)>>0;

DATA[8]=(Data2&0X80)>>7;
DATA[9]=(Data2&0X40)>>6;
DATA[10]=(Data2&0X20)>>5;
DATA[11]=(Data2&0X10)>>4;
DATA[12]=(Data2&0X08)>>3;
DATA[13]=(Data2&0X04)>>2;
DATA[14]=(Data2&0X02)>>1;
DATA[15]=(Data2&0X01)>>0;

// 分解data1,data2
GPIO_SetBits(GPIOB,GPIO_Pin_12);
GPIO_ResetBits(GPIOB,GPIO_Pin_13);
delay_us(50);
GPIO_ResetBits(GPIOB,GPIO_Pin_12);//拉低片选
delay_us(50);//延时
for(a=0;a<16;a++) //做16位数据输入
{
if(DATA[a]==0) //是0拉低PB15,是1拉高PB15,延时10us
{
GPIO_ResetBits(GPIOB,GPIO_Pin_15);
delay_us(10);
}
else
{
GPIO_SetBits(GPIOB,GPIO_Pin_15);
delay_us(10);
}
GPIO_SetBits(GPIOB,GPIO_Pin_13);//拉高时钟PB13,延时25us
delay_us(25);
GPIO_ResetBits(GPIOB,GPIO_Pin_13);//拉低时钟PB13,延时15us
delay_us(15);
}
delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_12);//拉高片选PB12保存数据
delay_ms(1);
}
void Peizhi(void) //配置函数
{
DataDown(0x0F,0X00);
DataDown(0x09,0X0F);
DataDown(0x0A,0X03);
DataDown(0x0B,0X03);
DataDown(0x0E,0X0D);
DataDown(0x0C,0X81);
}
void Xianshi(void)
{
DataDown(0x01,01);//第一位显示1
DataDown(0x02,02);///第二位显示2
DataDown(0x03,03);///第三位显示3
DataDown(0x04,04);///第四位显示4
若是想在哪个位的小数点点亮,就将该位要显示数字加128
}

stm32与驱动器AS1106驱动数码管显示相关推荐

  1. KST-51单片机利用HC138芯片驱动数码管显示

    学习笔记--HC138芯片驱动数码管显示 说说今天心情,刚刚上完学校老师里的单片机课,自己也迫不及待的拿出尘封已久的KST-51开发板在宿舍写写C51代码,玩玩数码管显示.初次写笔记,不好见谅哈! 本 ...

  2. 74hc164驱动数码管c语言程序,基于51单片机的74HC164驱动数码管显示程序与仿真

    基于51单片机的74HC164驱动数码管显示程序与仿真 基于51单片机的74HC164驱动一位数码管显示程序与仿真 #include #include #define uchar unsigned c ...

  3. STM32学习记录——74HC595四位数码管显示

    数模管作为STM32的一个重要外设,由于其成本低.稳定,被用于许多场景中.本篇文章来介绍下四位数码管的使用方法. 数码管显示 一.数码管的分类 二.74HC595芯片(串入并出) 三.原理图 四.代码 ...

  4. 驱动——594驱动数码管显示

    本文主要描述STM32控制4位数码管显示,为了节省MCU引脚,用了两个594级联,一个控制段选,一个控制位选,总共占用3个IO口. 1.74HC594简介 其中: QA-QH:用来控制段选或位选 QH ...

  5. 驱动 - 数码管显示数值

    SPI总线 SPI 是串行外设接口(Serial Peripheral Interface)的缩写. 是 Motorola 公司推出的一种同步串行接口技术,是一种 高速的,全双工,同步的通信总线. S ...

  6. 74LS160(两个)驱动数码管显示两位十进制数

    74LS160功能:1.将8421BCD码转化为十进制数(0~9):2.计数功能下面这张图片主要说明了160-163几个型号之间的区别(同步/异步,十进制/十六进制). 真值表主要看前三行 第一行,S ...

  7. 74LS161(两个)驱动数码管显示两位十六进制数

    74LS161功能:1.将8421BCD码转化为十六进制数(0~f):2.计数功能下面这张图片主要说明了160-163几个型号之间的区别(同步/异步,十进制/十六进制). 真值表主要看前三行 第一行, ...

  8. stm32数码管显示实时时间并有闹钟功能

    stm32数码管显示实时时间并有闹钟功能 功能描述 数码管介绍 数码管芯片 段选与位选 驱动数码管显示代码 实验思路 完整代码 Led.h Led.c Key.h Key.c beep.h beep. ...

  9. 51单片机DS18B20测温数码管显示例程(Proteus仿真+程序)

    编号:19 51单片机DS18B20测温数码管显示例程 功能描述: 本设计由STM32单片机+DS18B20温度传感器+四段数码管显示模块组成. 1.主控制器是51单片机 2.DS18B20温度传感器 ...

最新文章

  1. python 计算文件的MD5
  2. 使用Camel在Amazon上构建分布式工作流应用程序
  3. Apache+php+mysql在windows下的安装与配置图解之apache篇
  4. 2007年IT技术走向何方 网络将再掀“酷”革命
  5. BISS绝对值编码器_TI方案_线路延迟补偿
  6. 【微信小程序】实现手机全屏滚动字幕
  7. 计算机专业职业生涯规划书,计算机专业职业生涯规划书2000字.doc
  8. 海康威视相机 RTSP 传输延迟解决方案
  9. Intel_80386寄存器
  10. Python 微信公众号文章爬取 简单记录一下
  11. android背光,Android背光亮度调节
  12. 一个操作系统的实现(8)进程间通信
  13. xcopy 跳过已经存在的_虚拟网红卖真衣服,真实人类已经开始买“假”衣服了!...
  14. 干货!因果推理的应用与发展 | PhD Debate-7
  15. 下载的win7虚拟机缺少api-ms-win-core库
  16. 自动调制分类发展历程
  17. PyTorch实现非极大值抑制(NMS)
  18. vsFTP 基础及实战
  19. 如何解决PS“不能完成请求,因为意外的遇到文件尾”?
  20. 凌恩客户文章|JCR 一区:多组学联合分析揭示PCOS真元凶

热门文章

  1. Unity切割图片:把一张图片中的物体裁成多个单独的游戏物体
  2. 历年诺贝尔生理学或医学奖
  3. 纯前端导出excel文件(包含设置样式)
  4. C6能比C8快多少(Altera的FPGA速度等级)
  5. Python之django框架模型(models)详解
  6. 利用ptython中的tutle画了一个表情包——2020冲冲冲!!
  7. LeetCode 55. 跳跃游戏
  8. IPCam的启动过程和工作流程
  9. 《 指数基金投资指南 》by 银行螺丝钉 - 笔记 - 1、2章
  10. python提取pdf文字,python 提取pdf文字