数码管电路搭建与驱动程序设计
基于口袋机综合实验设计
一、实验目的
二、实验设备
三、实验原理
四、实验代码解析
五、实验步骤
六、实验现象
七、拓展思考
八、应用领域
一、实验目的
了解EDA软件。程序的下载和仿真
了解如何正确分配和配置单片机的I/O口
熟悉和使用数码管。
二、实验设备
口袋机
口袋机下载线
LC-PM3模块
JC-PM15实验扩展板
三、实验设备
实验器件简介:
数码管,也称作辉光管,是一种可以显示数字和其他信息的电子设备。玻璃管中包括一个金属丝网制成的阳极和多个阴极。大部分数码管阴极的形状为数字。管中充以低压气体,通常大部分为氖加上一些汞和/或氩。给某一个阴极充电,数码管就会发出颜色光,视乎管内的气体而定,一般都是橙色或绿色。静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一89S51单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
三、实验原理
拨码开关模块原理图:
原理图说明
采用4位共阳数码管,4个共阳极接4个三极管,8个笔画接74HC595的输出端。
功能说明
数码管一般都是动态扫描显示的,过程如下:三极管Q1的控制端D1设置第电平,第一个三极管打开,其他三极管关闭,数码管的12脚为高电平,通过74HC595的输入端按照时序输入8bit数据,在74HC595的输出端输出相应的电平,数码管的第一位就会显示相应的数字,关闭第一个三极管,打开第二个三极管,74HC595改变输出到第二个数码管要显示的数据,数码管的第二位就会显示相应额数字,同样原理把4位都显示,全部过程很快的执行,人眼就会觉得数码管的4个数字同时全部都显示了。
三、实验原理
实验原理:
为了降低单片机端口的驱动压力,我们在数码管的公共端加了一个三极管,低电平三极管导通,数码管的公共端正极就有正电压了。
三、实验原理
实验原理:
数码管的8个笔画引脚,通过74HC595连接,单片机通过3个引脚就可以给8个笔画引脚发送高低电平了。
三、实验原理
程序分析:
打开FGPIO文件,注释中是模块的端口定义
D1-D4是数码管的公共端,低电平有效
RST 595复位
CLK 595时钟
LAT 595锁存
EN 595输出使能
DATA 595串行数据
三、实验原理
程序分析:
所有端口都是初始化为推挽输出模式
判断要发送什么数据
三、实验原理
程序分析:
可以右键选择goto命令看一下D0-D9都是什么数据
可以看到在MAIN文件中,有一些宏定义
AA–Dp是定义了每个笔画对应的数据
D0-D9的含义是:让数码管显示0那就让相应的笔画点亮
可以看到每个数据都是0XFF–相应的笔画,是以为数据是0的时候点亮,1的时候是灭
所以是数据需要取反。所以就可以写成0xFF减去要点亮的笔画
三、实验原理
程序分析:
然后就是扫描时序了,先使用595把显示数据输出,然后再控制D1-D3让相应的位打开
每一个显示都要加100ms的延时,大家可以把延时去掉看看是什么效果
三、实验原理
程序分析:
回到主函数看看怎么调用显示函数的
定义了一个变量dis_mun用于显示这个数据
循环20次,显示的数据dis_mun加1
四、实验原理
模块引脚说明:
四、参考代码分析
STM32F4XX单片机GPIO框架图
五、参考代码分析
STM32F4XX单片机GPIO库函数解析-结构体
五、参考代码分析
STM32F4XX单片机GPIO库函数解析-结构成员配置
模式功能配置
速度配置
四、参考代码分析
STM32F4XX单片机GPIO库函数解析-结构成员配置
输出类型
端口上下拉初始状态
四、参考代码分析
数码管配置函数
详细配置函数见参考程序
五、参考代码分析
主函数
时钟初始化
开始
外设初始化
数码管显示
结束
五、实验步骤
1、将实验模块插在扩展模块的位置4,如下图
2、打开程序
3、下载程序
六、实验现象
修改程序,改变显示内容
在程序的主循环中有一个显示函数
display_fun(1234);//数码管显示
改变()中的显示数据,数码管就会改变
display_fun(5678);//数码管显示
实验程序:
LED_GPIO_init();//数码管GPIO初始化
delay_I