数码管

python(10)---七段数码管(2)

梦想与她 提交于 2020-04-07 08:01:38
  今天根据网上的教程修改了七段数码管的程序,引入了time库函数,这样程序可以 根据系统的时间画出七段数码管了。废话不多说了,直接上程序: 1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3 #Segement7_2.py 4 import turtle,time 5 def drawGap(): 6 turtle.penup() 7 turtle.fd(5) 8 def drawline(draw): 9 drawGap() 10 turtle.pendown() if draw else turtle.penup() 11 turtle.fd(40) 12 drawGap() 13 turtle.right(90) 14 def drawdigit(digit): 15 drawline(True) if digit in [2,3,4,5,6,8,9] else drawline(False) 16 drawline(True) if digit in [0,1,3,4,5,6,7,8,9] else drawline(False) 17 drawline(True) if digit in [0,2,3,5,6,8,9] else drawline(False) 18 drawline(True) if digit

MSP430程序库<九>数码管显示

帅比萌擦擦* 提交于 2020-02-19 10:36:33
数码管也是单片机系统最常用的输出设备之一(还有液晶、发光二极管等)。七段(这里用的是8段,有小数点)数码管可以完成显示0-9数字和一部分的英文字符如:A、b。本文实现的程序完成显示数字和可显示的英文字符;同时完成数码管显示的printf函数的移植,以支持printf的格式化字符等好用的特点(我用的数码管8个排为一排,方便数字等的显示)。 硬件介绍: 这里所用到的硬件资源包括8个数码管、和msp430单片机的两个8位IO口(这里用的是P3和P5口,如有改变,可以通过宏定义更改)。 数码管是8个共阴的数码管,a-h 8段通过一个200Ω的电阻接到430单片机的P5口。共阴端是由单片机的P3口控制,单片机的一位IO通过一个三极管接到数码管的共阴端,以完成位选。 单片机的P3口时数码管的位选口,某位为高则选中;P5口时段选口;要数码管显示时,通过P3位选,选中某个数码管亮,P5段选选择8段(a-h)中的那些亮,从而控制某一位显示数字或字符。 要同时显示多个数码管,就要动态扫描;动态扫描时,本程序选用的是由看门狗的中断扫描显示:每1.9ms显示其中的一位,动态扫描显示每一位,从而让数码管看起来是同时亮的。 程序实现: 数码管显示首先要有一个数码管显示的断码表(完成数字和字符到数码管段值的表),程序中采用了《MSP430系列单片机系统工程设计与实践》这本书推荐的方式实现的这个数码表

数码管的秘密

穿精又带淫゛_ 提交于 2020-02-16 10:47:23
环境: Cortex-M0 LPC1114FBD48/301 数码管 7SEG-COM-ANODE 1 在数码管上显示指定的数字 将数码管的7个引脚对应连接到控制器的PIO2_0~PIO2_6引脚上 原理图: 源代码: /* Main.c file generated by New Project wizard * * Created: 周日 2月 16 2020 * Processor: LPC1114FBD48/301 * Compiler: GCC for ARM */#include <LPC11xx.h>int main (void) { // Write your code here LPC_SYSCON->SYSAHBCLKCTRL |=(1<<6); LPC_GPIO2->DIR=0x7F; while (1) { LPC_GPIO2->DATA=0x24;//0010 0100‬ 2,5号高点平,不亮 } return 0; } 仿真后结果如图 7数码管引脚图,在网上找的图,脚的分布位置不一样,但对应关系是一样的 2 给数码管加一个开关 代码: /* Main.c file generated by New Project wizard * * Created: 周日 2月 16 2020 * Processor: LPC1114FBD48/301 *

周立功IMX287开发套件之数码管驱动(linux下74HC595多级串联驱动,数码管驱动)

怎甘沉沦 提交于 2020-02-09 14:19:49
疫情待在家里很无聊,发现吃土的开发板。好久好久没干linux相关开发了,还是在安美数字的时候干的linux网络应用和部分内核开发,现在忘得差不多了,试着捡起来吧。 硬件:如上图短接帽接法 软件:驱动下面直接贴出来(直接同时驱动四个断码比较水),应用层直接write就行 如果要四位显示不同数据需要改驱动和应用层,驱动增加数码管位使能,应用层需要一个单独进程一直跑显示,另一个传数据。我太懒了,就不写了! #include <linux/cdev.h> #include <linux/init.h> #include <linux/module.h> #include <mach/gpio.h> #include <asm/io.h> #include "mach/../../mx28_pins.h" #include <mach/pinctrl.h> #include "mach/mx28.h" #include <linux/fs.h> #include <linux/io.h> #include <asm/uaccess.h> #include <linux/miscdevice.h> #include <linux/irq.h> #include <linux/sched.h> #include <linux/interrupt.h> #include <linux/timer

FPGA之静态数码管显示

一曲冷凌霜 提交于 2020-02-06 07:54:26
数码管显示0~F,每隔0.5秒变换一次 数码管连接方式不同分为 共阴极 数码管和 共阳极 数码管。 数码管引脚: 上图两个com引脚实际是连在一起的,其他引脚的公共端,称为 位选 ,位选的高低电平决定改数码管能否点亮,其他管脚为 段选 信号,决定数码管上哪个二极管发光。 共阴极数码管 连接方式 共阳极数码管连接方式: 共阳八段极数码管真值表 数码管原理图 以第五个数码管为例,LEDSEG CH6通过470R的电阻连接到Q6三极管的基极,第五个数码管的位选SEL5连接到Q6三极管的集电极,Q6三极管的发射极;连接电源。所以在代码中,只需将LEDSEG CH6(代码意义的位选)赋值为0(低电平),则数码管真正的选段就连通电源了,此数码管位共阳极数码管。在数码管电路图中,六个数码管公用八个段选信号,段选信号与FPGA管脚连接。所以,静态显示的时候,六个数码管显示的一样。 本次设计的系统框图 顶层模块原理图 顶层模块设计 module seg_led_static_top ( input sys_clk , //系统时钟 input sys_rst_n , //系统复位信号(低有效) output [ 5 : 0 ] sel , //数码管位选 output [ 7 : 0 ] seg_led //数码管段选 ) ; //parameter define parameter TIME

蓝桥杯——数码管

别来无恙 提交于 2020-01-28 12:32:10
1.数码管原理图说明 首先从官方原理图中找到DS1和DS2数码管原理图,如下: 从原理图上可以看出,二极管显示和具体位置都受到P0端口的控制;在数码管初始化时,可以通过改变P0具体数值来进行具体位置数字显示,如:P0=0X01时,对应与DS1第一位置上显示数字;对于单个二极管当值为0时亮。 注释:单个二极管数字0—9显示表:0—0XC0;1—0XF9;2—0XA4;3—0XB0;4—0X99;5—0X92;6—0X82;7—0XF8; 8—0X80;9—0X90; 2.按键对于二极管控制原理图 如果要用按键P30—P36时,J5要接2和3,要用P37时,J5要接1和2;对于P30对应于S7,当S7按下去时,P30=0; 同理可知:P31与S6、P32与S5、P33与S4; 3.实现功能的具体例子 3.1 实现具体位置数字显示 #include<stc15f2k60s2.h> void main(){ P2=0XA0;P0=0X00;P2=0X80;P0=0XFF; //初始化 P2=0XC0;P0=0X01;P2=0XFF;P0=0XFF; //初始化,第一个P0=0X01对应DS1第一个位置显示数字; while(1){ P0=0xA4; // 显示数字2; } } 3.2 通过按键控制数码管 #include<stc15f2k60s2.h> void keycan();/

TPY102四位数码管1.0

别来无恙 提交于 2020-01-24 23:13:50
# main.py -- put your code here! """ 四位数码管1.0 适用于:四位七段数码管,共阳 输入num类型:字符串str 马玉华,2019.12.28 """ import pyb from pyb import Pin # 数码管a~g dp对应的开发板引脚'X1', 'X2', 'X3', 'X4', 'X5', 'X6', 'X7', 'X8',用于控制每一位上七个数码管加一个小数点的高低电平。 d_Pins = [Pin(i, Pin.OUT_PP) for i in ['X1', 'X2', 'X3', 'X4', 'X5', 'X6', 'X7', 'X8']] # 数码管位段1 2 3 4对应的引脚'Y9','Y10','Y11','Y12' , 'Y9','Y10','Y11','Y12'对应个位十位百位千位。当1234中的一个为高电平,其他的为低电平时,高电平那一位的七段数码管可以进行编辑 w_Pins = [Pin(i, Pin.OUT_PP) for i in ['Y9', 'Y10', 'Y11', 'Y12']] # 共阳数码管,每位上的七个数码管共一个阳极(1234中一个),控制的是负极的高低电平,给负极低电平点亮数码管。 # 要想亮四个数码管,就需要四位循环闪烁亮,人眼看不出来就相当于四个都亮了

数码管识别

♀尐吖头ヾ 提交于 2020-01-21 21:27:20
由于七段数码管显示数字和字符比较直观、清晰、响应速度快,所以它被广泛应用在现场仪器仪表中。通过摄像头获取数码管数字图片,也可以根据数码管编码方式比较容易识别出其中的数字。 计数器、频率计上的数码管显示动态变化的数字 根据不同的显示原理,七段数码管可以使用LED、LCD、OLED、场致发光管等制作,颜色也有很多种类。其中红色LED的数码管比较常见。 红色七段数码管0~9显示的图片 数码管的七个笔画根据不同的点亮组合,可以形成不同的数字、字母以及字符。理论上可以总共有127(2^7-1)个不同的编码组合。下面的表示是常见的字符、数字编码方式。在不同的场合,下面的编码会有略微调整。 七段数码管显示不同数字和字符 识别数码管的数字、字母,只要根据图片的灰度信息即可。根据每个笔画段的亮度,判断对应的LED段是否点亮,进而可以确定所对应的数字或者字母。 有的时候数码管的右下角还有一个小数点位,用于显示数字的小数点的位置。它也可以配合字符、数字来表达其他的含义。 七段数码管灰度图像 相比于汉字、英文字符的印刷体,七段数码管的字体并没有太多的变化。它会在尺寸、比例、笔画的粗细、字体的倾角方面有差异。 如果已知数码管的字体,可以比较方便在归一化之后的图像中确定下每个笔画段所占具的图像位置。 下图显示了常见到的七段数码段各个笔画对应的序列位置,以及0~9数字对应的七段点亮编码。 七段数码管0

两个数码管显示16位数

梦想与她 提交于 2020-01-15 04:15:01
背景 此篇文章是4x4矩阵键盘的衍生品。 4x4的矩阵键盘一共16个按键,每个按键对应相应的键值,分别为0~15。每按一个键,对应的键值并联到4个LED灯上,以二进制的形式表示(比如键值5,二进制为 'b0101 ,对应的LED灯亮灭情况为:亮灭亮灭),同时也并联到数码管上,通过数码管显示出目前对应的键值。 然而,一个数码管足够显示0~F(即0到15)这16个键值,如果想完完全全转换成十进制来显示,即键值10显示为 10 而非 a ,键值11显示为 11 而非 b ,那该如何操作呢? 以上即为不安分守己的瞎折腾背景。 开始 之前,写过一篇 关于小梅哥74HC595驱动设计的思考 ,该驱动可充分利用两片级联的74HC595芯片,将16位串行数据转换为16位并行数据。实际应用中,由于开发板上有8个数码管;每个数码管又有8个段,正好16位数据。驱动将16位并行数据 data[15:0] 输入,输出串行的16位数据 ds ,并利用两片级联芯片将16位数据 ds 再次转为并行数据输出,以此驱动数码管,并显示相应数据。选择对应的数码管(以 sel[7:0] 信号表示),数码管上对应需要显示的段(以 seg[7:0] 信号表示)。 目前74HC595驱动已经写好,只等数码管的位选和段选数据输入。产生16位数据的verilog文件以梅哥的hex8.v文件为参考,并作些许修改

GPIO应用-LED

。_饼干妹妹 提交于 2020-01-10 15:49:30
LED 由8个发光二极管LED按照组成数字0到9的方式进行物理连接,形成LED数码管,简称LED LED的选择 需要根据实际应用的需求来决定,若只需要显示数字“0”~“9”,需要7段LED即可。 若同时需要显示小数点,则需要8段LED 8段数码管由8个发光二极管LED组成。 MCU是通过I/O引脚来控制LED某段发光二极管的亮暗,从而达到显示某个数字的目的。 控制LED亮暗 确定选用的数码管是共阴极数码管或共阳极数码管。 共阴极数码管:公共端需要接地,8段数码管的信号端高电平有效,只需要在各段加上高电平信号即可使相应的段发光。 共阳极数码管:公共端接电源阳极,8段数码管的信号端低电平有效,只需要在各段加上低电平信号即可使相应的段发光。 例如共阳极8段数码管,[hgfedcba]=[0111 1111]时,h段亮,显示为小数点;[hgfedcba]=[1100 0000]时,除h、g段均亮,显示为数字“0”或字母“O”。 单个LED只能显示一个数字或字母,实际中使用多个LED显示多个数字或字母。 电气参数 能承受的最大电流;额定电压;限流电阻;电流放大电路。 对LED编程 通过一个8位数据线的数据口来控制段。 8段数码管的公共端根据共阴或共阳接到固定的低电平或高电平,现在接到MCU的一个输出引脚(片选信号)由MCU控制,这些n个数码管合在一起称为n连排数码管。