数码管模块
实验简介
软件控制,实现数码的静态和动态显示效果
实验原理图

实验原理
-
数码管介绍:LED数码管为单片机中的显示器之一,有共阳和共阴数码管,CT107D单片机中所用的为共阳数码管, 即7段数码管(a,b,c,d,e,f,g)和一个小数点(dp)的共8个管脚有一端共同接到VCC上。CT107D单片机上有两个多位数码管(4位一体),两个4位一体的多位数码管内部的公共端(com)是独立的,公共端又叫做“位选线”,而负责显示什么数字的段线(a,b,c,d,e,f,g)和小数点(dp)全部是连在一起的,独立的公共端控制哪一位数码管亮(选择哪一位亮的过程我们称之为“位选”),而显示亮什么内容(亮什么内容这个过程我们称之为“段选”)
-
基本原理:数码管显示有两种显示方式,静态显示方式和动态显示方式。静态显示的主要特征为:每个数码管的段选必须接一个8位数据线来保持显示的字形码。送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。因此我们也就知道了静态显示的显示弊端所在,要么只显示一位数码管,否则多位数码管同时显示时,必须显示相同内容。而动态显示,则是一定程度上弥补了静态显示的显示弊端。
-
实现须知:动态显示,利用减少段选线,分开位选线,利用位选线不同时选择通断,改变段选数据来实现的。利用人眼的视觉暂留现象,即光对视网膜所产生的视觉在光停止作用后,仍保留一段时间的现象,正常情况人眼只能分辨变化超过 24ms 间隔的运动。根据锁存器的芯片手册,锁存端LE得为高电平,即得控制Y7C,Y6C为高电平,下图知Y7C,受Y7控制,Y6C,受Y6控制,WR输入固定为低电平(0),了解数字电路中或非门知识,我们得使得Y6,Y7输出低电平,才能使的Y6C,Y7C输出高电平,而Y6,Y7为74HC138芯片(38译码器)的两个个管脚,查阅对应芯片手册可知,其真值表满足C = 1,B = 1,A = 0(Y6),C = 1,B = 1,A = 1(Y7)(对应管脚P27,P26,P25),使得Y6,Y7输出低电平,同时我们得保证管脚P2的其他的管脚(0~4)保持原来的状态。


实验程序
静态显示
奇数位数码管静态显示’1’
//config.h--用于声明头文件,声明函数,声明一些经常使用的变量或难书写的语句
#ifndef _CONFIG_H
#define _CONFIG_H
#include <STC15F2K60S2.H>//对应芯片函数头文件,定义了一些特殊功能寄存器
//typedef unsigned char uchar;
#define uchar unsigned char
#endif
//main.c文件
#include "config.h"
//共阳数码管0~9的段选码
uchar smgduan[] = {
0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
void led_init()//LED初始化为全部不亮
{
P2 = (P2 & 0x1f) | 0x80;//初始化锁存器的Y4C
P0 = 0xff;
}
void closeBeep()
{
P2 = (P2 & 0x1f) | 0xa0; //开启译码器的Y6端口,同时不改变其他管脚状态
P0 &= 0xaf;//1010 1111//关闭蜂鸣器和继电器,P06和P04端口分贝输入,输出低电平
P2 &= 0x1f;//关闭译码器
}
void digDisplay()
{
//Y6C输入高电平,选中位选,使得1,3,5,7个数码管亮,给对应管脚高电平即可
P2 = (P2 & 0x1f) | 0xc0;
P0 = 0x55; //0101 0101
//Y7C输入高电平,选中段选,使得1,3,5,7数码管输出4 个 1,1的共阳数码管码值为0xf9
P2 = (P2 & 0x1f) | 0xe0;
P0 = 0xf9;//1111 1001
}
void main()
{
closeBeep();
led_init();
digDisplay();
while(1);
}
奇数位数码管静态显示’-.’

- 上图示,标记出来对于一个数码管中的8个LED灯的排列顺序,为了显示’-.‘,对于CT107D上的共阳极数码管我们需要将段选线g 和 小数点位dp置为低电平(0),对应的十六进制与二进制表示为0x3f = (0011 1111)
主要代码改动部分为下(仅在main.c中改变即可)
//共阳数码管0~9的段选码 + 加上显示 “-.’’ 和 P
uchar smgduan[] = {
0xc0, 0xf9, 0xa4, 0xb0

本文介绍了一种基于单片机的数码管显示实验,包括静态显示和动态显示两种方式。通过控制段选和位选实现不同内容的显示,如数字、字符等,并提供了详细的程序代码示例。
最低0.47元/天 解锁文章
790

被折叠的 条评论
为什么被折叠?



