一,实现目标:
1.74HC595驱动数码管从10显示到1;
2.使用定时器周期作为显示间隔;
二,材料:
3.LP-MSPM0L1306开发板;
4.USB线;
5.74HC595数码管。
三,硬件介绍及原理:
1,数码管简介
七段数码管是一种常见的数字显示器件,主要由七个发光二极管(LED)组成,可以显示0到9的数字以及一些字母和符号。每个LED代表数字的一部分,通过控制这些LED的亮灭,可以实现数字或字母的显示。七段数码管具有共阳极和共阴极两种结构。
共阳极七段数码管的正极(或阳极)为八个发光二极管的共有正极,其他接点为独立发光二极管的负极(或阴极),使用者只需把正极接电,不同的负极接地就能控制七段数码管显示不同的数字。
共阴极七段数码管与共阳极的结构相反,其负极(或阴极)为八个发光二极管的共有负极,其他接点为独立发光二极管的正极(或阳极),通过控制正极和负极可以控制七段数码管的显示。
七段数码管的工作原理是利用LED的发光性质,在电流的作用下产生不同颜色的光,从而实现数字显示。通过控制各个LED灯的亮灭实现数字的显示,每个LED灯代表一个数字或字母的一段线段。例如,共阴数码管中,要显示数字8,可以将所有LED点亮,对应于二进制表示的1111 111,即0x7f。
共阳极和共阴极编码表:
1,74HC595驱动芯片介绍
74HC595是一款漏极开路输出的CMOS移位寄存器,输出端口为可控的三态输出端,亦能串行输出控制下一级级联芯片。74HC595的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片,使用74HC595可以节约单片机的I/O口资源,用3个I/O就可以控制数码管显示。
74HC595是将数据串转并的,也就是数据(8bit)串行输入,并行输出。
管脚图和引脚功能描述
时序图:
使得RESET为高电平,当输入一个值时,当SHIFT CLOCK有时钟上沿(就是有个低电平到高电平的转换),LATCH所连接的LATCH CLOCK有时钟上沿,OUTPUT ENABLE为低电平时,才能使得输入的值和我们输出的值一样。
2,硬件连接
74HC595模块的VCC个GND连接开发板的5V和GND引脚;DI连接开发板的PA15,SCLK连接开发板的PA16,RCLK连接开发板的PA17.
四,集成环境:
1,CCS12.7.0;
,2,TI System Configuration Tool(sysconfig-1.20.0)
二,软件实现:
我继续在RGB循环显示的工程上实现数码显示。
1,SYsconfig配置GPIO
增加一个GPIO,命名GPIO_HC595,使用PORTA。
增加三个引脚,分别为HC595_DAT、HC595_CLK、HC595_RCK,对应的是PA15、PA16、PA17。军配置为输出模式。
2,SYsconfig配置定时器
3,实现用户代码
74HC595驱动步骤:
1、先把要传输的数据(8bit)从引脚14 (数据引脚)DS输入到74HC595
2、将从DS上的数据串行移入移位寄存器,需要时钟驱动,即引脚11(SHCP)每产生一个上升沿,DS上的数据往移位寄存器送入一位,先送高位,后送低位,经过8个上升沿后,8bit全部送入移位寄存器了。
3、将移位寄存器里的数据送入存储寄存器,引脚12(STCP)产生一个上升沿后,该操作就完成了
4、引脚13(OE)为低电平,则步骤3送入存储寄存器的8bit数据(一个字节)就在Q7-Q0并行输出,并输出的数据会被所存起来。
注意:数据并行输出后,只要没有数据更新进来,原输出的数据保持不变,就是所谓的锁存(数据被锁存住)。在完成步骤123后,只要步骤4还没使能,输出都是保持不变的,当OE一使能,新的数据就输出覆盖旧输出。
我们的是8位共阳极数码管,原理图如下。两颗74HC595,一个是实现片选,一个输出8位并行数据。
根据前面介绍定义共阳极数据管编码表,在Disp_DX中定义了0——F的编码;我们的显示模块式有8位显示器,定义Disp_PX为片选结构。
定义一个锁存上升沿接口
写入一个字节数据接口
写数据到指定显示位置上
编写8位数码管都显示的接口和只显示第一位和第二位数码管的接口。
在主函数中,增加定时器的中断使能和开启定时器。
NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);
DL_TimerG_startCounter(TIMER_0_INST);
主函数循环中处理10到0循环显示。定时器500ms置位标志,500ms改变一次显示值。
定时器中断函数处理
编译、下载、运行。
数码显示器开始500ms的间隔从10到0循环显示了。