首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏女程序员的日常

    ATmega8仿真——LED 数码管的学习

    I/O 口的结构及特点 Atmega8 有23 个I/O 引脚,分成3 个8 位的端口B、C 和D,其中C 口只有7 位 Atmega8 采用3个8位寄存器来控制I/O端口,它们分别是:方向寄存器DDRx 单个LED数码管练习 ? 给数码管的a、b、c、d、e、f、g七个发光二极管加不同的电平,二极管显示不同亮暗的组合就可以显示不同的字形; 以1为高电平,0为低电平,给出字形码表: ? .; 所以直接把这种对应关系存到一个Char型数组里(一个Char型是8位); 想要对应的a、b、c、d、e、f、g七个发光二极管展示亮与暗,我们选用PD0~7这8位来控制; 如:想要展示字型‘0’ = 4.多个LED数码管实验 静态显示:3小节的内容便是静态展示 动态显示:采用各数码管循环轮流的显示的方法,当循环频率较高时,利用人眼的暂留特性,感觉不到数码管的闪烁,就像看到数码管在同时发光一样,类似电影的原理 动态显示需要一个接口完成字形码的输出,另外一个接口完成各数码管的轮流显示; 我们要实现从“000.0”到“999.9”的数字变化显示过程; 用PB口做字形码的输出口,用PC0~PC3控制数码管的轮转流显示

    1.2K10发布于 2017-12-25
  • 来自专栏初学单片机

    ②LED数码管解析

    LED数码管(LED Segment Displays)是由8个发光二极管构成。按照一定的图形及排列封转在一起的显示器件。 当数码管特定的段加上电压后,这些特定的段就会亮起,以形成我们眼睛看到“8.”的字样了。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。 常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O多,如驱动4个数码管静态显示则需要4×8=32个I/O口来驱动,这样对单片机的I/O口是极大的浪费。 B、动态显示驱动: 数码管动态显示是单片机应用最为广泛的一种显示方式,动态驱动是将所有数码管8个显示笔划"a,b,c,d,e,f,g,dp "的同名端连在一起,另外为每个数码管的公共极COM增加位选通电路控制

    1.8K30发布于 2020-03-17
  • 来自专栏嵌入式项目开发

    3.5 51单片机-独立数码管(静态数码管)

    3.5 独立数码管(静态数码管) 3.5.1 数码管原理图 连线: JP10(P0)连接JP3,控制开发板最右边的一个独立大尺寸数码管。 对应关系: P0.0 ->A P0.1->B P0.2->C P0.3->D……… 3.5.2 数码管介绍 LED数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划 七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。 图3-5-3 3.5.3 对共阳极数据管进行编码 通过得到的编码,定义成数组,小数点是默认点亮。 #include <reg51.h> //共阳极数码管编码,小数点默认点亮 //数字0~9 code u8 LED_Coding[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10 }; /*静态数码管显示*/ void LED_StaticDisplay(u8 val) { LED=LED_Coding[val]; //显示数字 } int main() { u8

    1.2K10编辑于 2022-01-12
  • 来自专栏小点点

    (三)MicroPython——数码管

    目录 学习目标 成果展示  硬件知识 代码  总结 ---- 学习目标         本节我们来使用ESP32和MicroPython来控制数码管,包括一位数码管和四位数码管,具体的原理部分在51已经讲解的非常详细了 aid=859905932 数码管1 https://player.bilibili.com/player.html? aid=987384504 数码管4 硬件知识 (四)51单片机基础——数码管_花园宝宝小点点的博客-CSDN博客_单片机数码管 https://blog.csdn.net/weixin_66578482 3: "11110010", 4: "01100110", 5: "10110110", 6: "10111110", 7: "11100000", 8: 3: "11110010", 4: "01100110", 5: "10110110", 6: "10111110", 7: "11100000", 8:

    62120编辑于 2022-12-12
  • 来自专栏全栈程序员必看

    共阳极数码管

    共阳极数码管 一位共阳极LED数码管共10个引脚,其中③、⑧两引脚为公共正极(该两引脚内部已连接在一起),其余8个引脚分别为七段笔画和1个小数点的负极,如图所示。 两位共阴极LED数码管共18个引脚,其中⑥、⑤两引脚分别为个位和十位的公共负极,其余16个引脚分别为个位和十位的笔画与小数点的正极,如图所示 七段数码管将七个笔画段组成“8”字形,能够显示“09 八段LED数码管段代码编码表 1、共阳: char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e

    1.3K10编辑于 2022-07-21
  • 来自专栏往期博文

    【FPGA实验】数码管静态显示

    开拓者FPGA开发板上有六个共阳极八段数码管,本实验将完成数码管静态显示。 功能描述 控制六位数码管以0.5秒的频率同时显示0-F 16个数字。 首先需清楚两个概念: 位选信号(sel)——控制哪个数码管显示 段选信号(seg_led)–控制数码管显示内容 数码管显示具体数值可参考真值表: 共阳极二极管,常理来说应当0才是点亮,而这里是相反的 rst_n) seg_led <= 8'b0; else begin case (num) 4'h0 : seg_led <= 8' seg_led <= 8'b1111_1000; 4'h8 : seg_led <= 8'b1000_0000; 4'h9 : seg_led <= 8'b1001_0000; 4'ha : seg_led <= 8'b1000_1000; 4'hb : seg_led <= 8'b1000

    75120编辑于 2022-06-14
  • 来自专栏青青天空树

    数码管问题(c++实现)

        描述:液晶数码管用七笔阿拉数字表示的十个数字,把横和竖的一 个短划都称为一笔,即7有3笔,有7笔等。 输入:每行输入一个0~9的排列,数字之间用空格分隔,以-1作为输入结束   输出:输入YES或NO input: 4107395682 3 5 1 6 2 7 9 0 4 8 0 output include<string> 3 using namespace std; 4 5 //判断相邻两个是否可相互转化 6 int s(string max, string min) 7 { 8 10] = { "123567", "35", "23467", "23456", "1345", "12456", "124567", "235", "1234567", "123456" };//将数码管

    71220发布于 2018-09-06
  • 来自专栏oeasy教您玩转linux、python

    python0105_七段数码管_7_SEGMENT_数码管驱动_4511

    7-Segment 数码管 全称 7-segment 七段数码管总共由 7个 发光二极管 组成​添加图片注释,不超过 140 字(可选)接收 7-bit 输入信号​添加图片注释,不超过 140 字( 字型编码 ​添加图片注释,不超过 140 字(可选)就可以得到7位数码管的字型​添加图片注释,不超过 140 字(可选)这种输出设备如何驱动呢? 使用单片机软解码 选用80c51芯片 一个8-bit的io口(PA口)负责输出具体的字型另一个8-bit的io口(PB口) 利用6-bit 负责选片设置所选择的具体数码管然后输出​添加图片注释,不超过 ,不超过 140 字(可选)这样 数码管的字形 就可以设置了而且可以报时高分辨率时代 即使今天 到了 高分辨率 液晶时代​添加图片注释,不超过 140 字(可选)这种数码管风格的 显示方法 还是 那么硬核总结 这次回顾了 7-seg 七位数码管可以显示数字甚至是十六进制数字​添加图片注释,不超过 140 字(可选)能否让 七位数码管 将26个字母 全部都显示出来 呢?

    66400编辑于 2023-03-11
  • 来自专栏LongJava学习资料

    接口与通信-静态数码管

    一、实验目的与要求能在数码管上显示数字(数码管静态显示)二、实验环境硬件环境:实验盒;软件环境:keil三、实验原理当多位数码管应用于某一系统时,它们的“位选”是可独立控制的,而“段选”是连接在一起的, 我们可以通过位选信号控制哪几个数码管亮,而在同一时刻,位选选通的所有数码管上显示的数字始终都是一样的,因为它们的段选是连接在一起的,所以送入所有数码管的段选信号都是相同的,那么它们显示的数字必定一样,数码管的这种显示方法叫做静态显示 静态数码管是一种电子显示器件,其显示原理是,每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可以一直保持,直到送入新的字形码为止。 void main(){//-----------------------------------------  //定义虚拟标准输入/输出设备(利用串口)  SCON=0x50; //mode 1, 8- bit   TMOD=0x20; //timer 1, mode 2, 8-bit reload       TH1=221;    TR1=1;     //timer 1 run  TI=1; //

    52700编辑于 2024-02-14
  • 来自专栏往期博文

    【FPGA实验】数码管动态显示

    else //不需要显示负号时,则第3位不显示任何字符 num[11:8] = data0; //第6、5位不显示任何字符 num[23:8] rst_n) seg_led <= 8'hc0; else begin case (num_disp) 4'd0 : seg_led <= ,7'b0000010}; //显示数字 6 4'd7 : seg_led <= {dot_disp,7'b1111000}; //显示数字 7 4'd8 9 4'd10: seg_led <= 8'b11111111; //不显示任何字符 4'd11: seg_led <= 8'b10111111

    1.1K10编辑于 2022-06-14
  • 来自专栏LongJava学习资料

    接口与通信-动态显示数码管

    3-8译码器来对数码管进行位选,通过P0口经过573的驱动控制数码管的段选,通过P13控制573的使能端,为低电平时573才会有输出。 {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0、1、2、3、4、5、6、7、8、 9、A、b、C、d、E、F的显示码unsigned char DisplayData[8];//用来存放要显示的8位数的值//--声明全局函数--//void DigDisplay(); //动态显示函数 *******************************************************/void main(void){ unsigned char i; for(i=0;i<8;    出         : 无********************/void DigDisplay(){ unsigned char i; unsigned int j; for(i=0;i<8;

    82800编辑于 2024-02-15
  • 来自专栏嵌入式项目开发

    3.6 51单片机-动态数码管

    u8 LED_CS_Config[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; 3.6.5 示例代码: 静态显示 下面代码实现,在8数码管上轮流显示数字0 (u8 number,u8 val) { LED_CS=LED_CS_Config[number];//选择指定的数码管进行显示: 0~7 LED=LED2_Coding[val]; / /显示数字: 0~9 } //动态数码管一共有8数码管 //数码的控制端接P0端口 //数码管的片选端接P1接口 int main() { u8 i,j; while(1) { LED_CS=0xFF; //消隐,所有数码管都不显示 } } //动态数码管一共有8数码管 //数码的控制端接P0端口 //数码管的片选端接P1接口 int main void LED_DisplayNumber(unsigned long number) { u16 i,j; u8 display_data[8];//存放当前数码管显示的数据

    1.2K20编辑于 2022-01-12
  • 来自专栏python3

    Python绘制数码管显示当前时间

    利用Python中的turtle图形库绘制七段数码管,显示当前时间 ---- 代码 # coding:utf-8 # 绘制七段数码管,显示当前时间 import time import turtle as tt # 绘制间隔 def drawGap(): tt.penup() tt.fd(5) # 绘制单段数码管 def drawLine(draw): drawGap() tt.write("秒", font=("黑体", 25, "normal")) else: drawDigit(eval(i)) # 绘制数码管 def drawDigit(cur_time): if cur_time in [2, 3, 4, 5, 6, 8, 9]: drawLine(True) else: : drawLine(False) if cur_time in [0, 2, 3, 5, 6, 8, 9]: drawLine(True) else:

    1.4K30发布于 2020-01-09
  • 来自专栏嵌入式项目开发

    3.8 51单片机-M74HC138译码器驱动8数码管

    3.8 采用38译码器驱动8数码管 3.8.1 原理图 图3-8-1 图3-8-2 开发板连线:JP10(P0)接J12、J21跳线帽接左边、A.P22、B.P23、C.P24 3.8.2 74HC138 图3-8-3 芯片引脚图 图3-8-4 管脚功能介绍 图3-8-5 真值表 3.8.3 示例代码: 8数码管静态轮流显示数字 下面代码使用38译码器控制数码管的位选,单片机的P0口控制段选,程序实现在每个数码管上轮流显示数字 ,共阴极数码管 */ void LED2_StaticDisplay(u8 number,u8 val) { switch(number) //位选,选择点亮的数码管, { 8数码管 //数码的控制端接P0端口 //数码管的片选端接138译码器 int main() { u8 i,j; while(1) { for(i=0;i<8; (4579); } } 图3-8-6 数码管显示效果

    2.4K30编辑于 2022-01-12
  • 来自专栏电子荣耀

    单个数码管显示0-9

    一、实验要求 使用51单片机控制单个数码管,使其循环显示0-9. 二、实验原理 数码管(Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。 数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。 (数码管原理图) (数码管共阴极接法) (数码管共阳极接法) (LED字形显示代码) 三、仿真图 1、proteus仿真图 2、proteus仿真效果图 四、程序 #include <reg52 { P0=DSY_CODE[i]; i=(i+)%;/*显示0-9*/ DelayMS(); } } 解析: 1、由于仿真图采用的是共阴极数码管

    2.4K20编辑于 2022-04-11
  • 来自专栏javascript趣味编程

    html网页中嵌入LED数码管字体

    DOCTYPE html> <html> <head> <meta charset="UTF-<em>8</em>"> <title>字体文件测试</title> <style type="text

    2.8K10编辑于 2022-04-01
  • 来自专栏电子工程师成长日记

    单片机入门:LED数码管基础

    LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×88×8点阵等)。 使用LED显示器时,要注意区分共阳与共阴两种不同的接法。 七段数码管加上一个小数点,共计8段,因此,为LED显示器提供的编码正好是一个字节。 5 0x82 0xf8 0x80 0x90 0x88 0x83 6 7 8 9 A B 0xc6 0xa1 0x86 静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。 这种方法的优点是占用CPU时间少,显示便于监测和控制。 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。 选亮数码管采用动态扫描显示。

    1K50编辑于 2022-07-21
  • 来自专栏瓜大三哥

    数码管显示电路的Verilog HDL 实现

    通过控制共阳极(共阴极)数码管的阴极(阳极),可以显示数字0-9,图11-22 给出共阳极和共阴极数码管各自的连接关系。 对于多位数码管而言,实际中为了简化电路,常常需要将所有共阴极数码管的阳极接到一起,所有共阳极数码管的阴极接到一起,用多个独立的位选和7 个(或8 个)公共段选控制所有的数码管。 则用FPGA控制4位8数码管分别显示数字1、2、3、4的程序如下: 位选1 为低时(其它位选都为高),第一位数码管被选中,此时的共用段选用于第一位数码管的显示;位选2 为低时(其它位选都为高),第二位数码管被选中 ,此时的共用段选用于第二位数码管的显示,三、四位数码管的显示依次类推。 在一个周期中,虽然每位数码管会有3/4T 的时间不被点亮,但位选刷新的速度较快,同时由于数码管自身的余辉特性,每位数码管在变暗之前就又会被重新刷新,因此人眼无法感觉到数码管变暗。

    4.3K100发布于 2018-02-24
  • 来自专栏小点点

    (四)51单片机基础——数码管

    之后,我们就要开始研究四位一体的数码管了,四位一体的数码管并不是单纯的把四个数码管拼接在一起,那样引脚数码过多,不利与操作。 译码器,可以用3个io口去控制8个io口,进一步减少了需要操作的引脚数。左下角是使能端,可以理解为电源。控制原理就是,用3位二进制,通过转换成十进制,操控对应的端口(低电平有效)。 _3=1;P2_2=1;break; case 6:P2_4=0;P2_3=1;P2_2=0;break; case 7:P2_4=0;P2_3=0;P2_2=1;break; case 8: P2_4=0;P2_3=0;P2_2=0;break; } P0=NixieTable[Number]; //段码输出,就是后面那8个引脚 } void main() { Nixie(2,3); _3=1;P2_2=1;break; case 6:P2_4=0;P2_3=1;P2_2=0;break; case 7:P2_4=0;P2_3=0;P2_2=1;break; case 8:

    3.5K32编辑于 2022-12-12
  • 来自专栏电子工程师成长日记

    单片机入门:数码管滚动显示

    数码管从左到右依次滚动显示0~7,程序通过每次仅循环选通一只数码管! x--) { for(i=200;i>0;i--); } } void main() { uchar i,k=0x80; while(1) { for(i=8; i>0;i--) { P2=0xff; k=_crol_(k,1); P0=DSY_CODE[8-i]; P2=k; DelayMS

    1.6K30编辑于 2022-07-21
领券