-
数码管显示
2016-08-27 10:09:54数码管显示 -
单片机数码管显示列子
2021-01-19 15:40:39单片机,数码管显示代码 -
FPGA数码管显示
2016-04-05 20:25:07FPGA数码管显示 -
数码管显示数字0到7_单片机控制数码管显示不同数字
2020-12-05 15:00:22数码管显示的数字是通过单片机控制的,本篇文章为你讲述其中的原理。文章涉及到的电路图和程序源码大家可以私信作者获取。想要使用单片机来控制数码管显示不同数字,那么我们先要了解数码管的内部结构以及器驱动原理...很多电子产品上都有用到数码管来做指示作用,比如电子秤上使用数码管来显示体重,电饭锅上面使用数码管来显示煮饭时间等等。数码管显示的数字是通过单片机控制的,本篇文章为你讲述其中的原理。
文章涉及到的电路图和程序源码大家可以私信作者获取。
想要使用单片机来控制数码管显示不同数字,那么我们先要了解数码管的内部结构以及器驱动原理。数码管可以看成是由8个发光二极管组成,我们分别给这8个数码管编号为a,b,c,d,e,f,g,SP(SP为小数点,七段数码管没有小数点),共阴极数码管就是这8个二极管的阴极连接在一起,共阳极数码管就是这8个二极管的阳极连接在一起。在控制过程中,我们把不同的二极管点亮,数码管就会给我们显示出不同的数字,例如我们把b,c两个二极管点亮,其他二极管熄灭,那么数码管显示的就是数字1;或者我们把a,b,c,d,e,f,6个数码点亮,数码管就给我们显示的是数字0.
接下来我们搭建控制电路图,添加一个7段共阴极数码管,a-g分别接单片机P2.0-P2.6.
看到电路图,我们应该就能想到,只要我们使单片机的P2口输出不同的高低电平,就可以让数码管显示不同的数字。假如我们要显示数字1,那么我们就想要点亮b,c二极管且熄灭其他二极管,所以我们需要将单片机P2.1和P2.2输出高电平,其他的输出低电平,如下图(红色代表高电平,蓝色代表低电平)。
以此类推,其他数字我们也可以显示出来,我们把P2.0-P2.7看成一个从低到高的8位数,其某一位为1则代表其对应的二极管亮,为0就代表其对应的二极管灭,那么我们就可以得到一个表格,该表格代表数码管显示0-F的值,其表格如下:
SEG_ComAnodeTable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
我们还是以1来分析,1对应表格中的数字为0x06,我们转换成二进制就是00000110(b),第2和第3位为1,其他位为0,也就是说b,c二极管会亮,其他二极管会灭,所以只要我们把这个数字赋值给P2,那么数码管就会给我显示数字1.
到这里就把共阴极数码管显示原理给大家讲解了,大家可以以此类推,得到共阳极数码管的显示表格。如有不明白的地方,可以把疑惑的地方私信给我,演示程序设有一个按键,系统上电显示0,按键每按下一次,显示的数字加1,加到最大就又回到0开始。
下面给大家讲解一下程序设计思路:定义一个变量u8SegNumber,当按键按下一次,u8SegNumber就+1,然后我们把u8SegNumber的值作为共阴数码管显示表格的下标值,最后把对应的值赋值给单片机的P2口,这样就达到了我们想要的结果。
if(pTIM_Delay(0,200)) //200ms任务
{
if(SysDataVar.u8SegNumber > 15) //防止溢出
SysDataVar.u8SegNumber = 0;
LED = SEG_ComAnodeTable[SysDataVar.u8SegNumber]; //赋值
}
if(pTIM_Delay(1,5)) //5ms任务
{
Key_Sanf(); //按键检测
}
到这里单个数码管显示数字的原理都给大家讲解清楚了,大家可以尝试显示两个数码管,其原理和显示单个数码管不太一样,我也将在下一讲为你讲解,欢迎关注作者,及时获取更新信息。
-
数码管显示时间,用数码管显示时间
2010-05-10 17:04:20数码管显示时间,加按键控制调时,唯一的缺点是调时的时候整个显示屏是黑的,加以改进就好了。 -
数码管显示模块tm1650
2020-08-25 23:12:59提供按键与数码管显示的解决方案,使用tm1650,可以减少对单片机IO口资源的占用,有利于产品开发。数码管显示程序更加简化,代码移植性强。 -
AD转换 数码管显示
2016-10-20 22:25:59AD转换 数码管显示 -
简单动态数码管显示
2016-05-03 16:38:22简单动态数码管显示 -
数码管显示电路大全
2012-02-21 16:42:57数码管显示电路大全 数码管显示电路大全 数码管显示电路大全 数码管显示电路大全 -
单片机数码管显示原理图
2020-07-15 16:52:06本文主要讲了单片机数码管显示原理图,希望对你的学习有所帮助。 -
PLC数码管显示程序
2015-06-21 14:54:48PLC数码管显示程序 -
怎样用单片机驱动LED数码管显示
2020-08-12 21:30:39LED数码管显示在很多设计中广泛应用,本文主要介绍如何用单片机驱动LED数码管显示 -
数码管显示秒表
2013-11-06 15:49:27数码管显示秒表 c编程代码 用到单片机中断程序!值得学习和借鉴! -
数码管显示实验
2013-11-16 12:29:17单位数码管从0~9循环显示,定时1S.编程:使用定时/计数器的定时功能,时钟源采用系统时钟,根据时钟源的频率配置初值寄存器,使能定时器中断。调用数码管显示功能。 -
python八段数码管显示小数点_Micropython TPYBoard V10X系列之四位数码管显示实验
2020-12-24 03:56:56上节讲到一位数码管的显示实验,这节讲一下四位数码管显示实验。总体思路大同小异,现在让我们开始吧。所需原器件1 TPYBoard v102 一块2 四位数码管一个3 杜邦线若干4 面包板一块(为了接线方便,可不用)接线图四位...上节讲到一位数码管的显示实验,这节讲一下四位数码管显示实验。总体思路大同小异,现在让我们开始吧。
所需原器件
1 TPYBoard v102 一块
2 四位数码管一个
3 杜邦线若干
4 面包板一块(为了接线方便,可不用)
接线图
四位数码管引脚图
开发板与四位数码管针脚对应:
数码管引脚abcdefgdp1234
TPYBoard开发板X1X2X3X4X5X6X7X8Y9Y10Y11Y12
程序源代码:import pyb
from pyb import Pin
#数码管a~g dp对应的开发板引脚
d_Pins=[Pin(i,Pin.OUT_PP) for i in ['X1','X2','X3','X4','X5','X6','X7','X8']]
#数码管位段1 2 3 4对应的引脚
w_Pins=[Pin(i,Pin.OUT_PP) for i in ['Y9','Y10','Y11','Y12']]
number={
'0':
[0,0,0,0,0,0,1,1],#0
'1':
[1,1,1,1,0,0,1,1],#1
'2':
[0,0,1,0,0,1,0,1],#2
'3':
[0,0,0,0,1,1,0,1],#3
'4':
[1,0,0,1,1,0,0,1],#4
'5':
[0,1,0,0,1,0,0,1],#5
'6':
[0,1,0,0,0,0,0,1],#6
'7':
[0,0,0,1,1,1,1,1],#7
'8':
[0,0,0,0,0,0,0,1],#8
'9':
[0,0,0,0,1,0,0,1],#9
}
def display(num,dp):
global number
count=0
for pin in d_Pins:#显示num的值
pin.value(number[num][count])
count+=1
if dp==1:
d_Pins[7].value(0)
def clear():
for i in w_Pins:
i.value(0)
for i in d_Pins:
i.value(1)
def showData(num):
#分割出数值的百位、千位、个位和小数位的值
d_num=num
location=d_num.find('.')
if location>0:
d_num=d_num.replace('.','')
while len(d_num)<4:
d_num='0'+d_num
for i in range(0,4):
pyb.udelay(2000)
clear()
w_Pins[3-i].value(1)
if i==location-1:
display(d_num[i],1)
else:
display(d_num[i],0)
if location<0:
for i in range(0,4):
pyb.udelay(2000)
clear()
w_Pins[3-i].value(1)
display(d_num[i],0)
while True:
num='9016'
showData(num)
-
基于LabVIEW 的数码管显示
2018-04-20 18:48:55基于LabVIEW 的数码管显示,输入一个值 ,数码管就会变成对应的数字
-
高应变InxGa1-xAs薄膜的结晶质量及光学特性
-
【数据分析-随到随学】Hadoop数据分析
-
WPF上位机数据采集与监控系统零基础实战
-
基于吉阳光电CAN卡盒二次开发
-
Qt and Qt Charts
-
基于椭圆外切矩形性质的圆形标志点检测
-
【数据分析-随到随学】量化交易策略模型
-
基于离散自适应滑模控制的DC-DC变换器的设计与仿真
-
C++异步串口通信
-
All-optical μ
-
css3 sticky不生效怎么办
-
Day3/7:2021-1-27:“秒杀”项目+MySQL
-
Codeforces Round #696 (Div. 2) 寒假训练题解
-
企业站推广:100种实用的推广方法(四)
-
全网唯一的为GIS+BIM而生的cesiumjs或cesium视频教程
-
preflight-2.0.13.jar
-
算法导论二(排序和顺序统计量)——编程大牛的必经之路
-
【牛客网】缩短二进制
-
企业站推广:100种实用的推广方法(十)
-
企业站推广:100种实用的推广方法(九)