精华内容
下载资源
问答
  • 主程序中的循环语句反复将 0~9 的段码送至 P0 口,使数字 0~9 循环显示
  • 本文会以后者为数码管驱动电路,在代码上实现数码管显示。驱动电路:电路讲解: 1)数码管元件采用共阴数码管,如果需要某位数码管被点亮,位选引脚需要被拉成电平; 2)八个数码管有8个位选引脚,8个段选引脚。为了...

        根据项目需求可以用I/O外部上拉,用来驱动数码管;也可以74HC138(38译码器)+74HC245(8路信号收发器)驱动数码管。本文会以后者为数码管驱动电路,在代码上实现数码管的显示。

    驱动电路:

    9bc2d08e3f985a15a859250b43531e1a.png

    3cd9be84e182a682282af890e57c4509.png

        电路讲解:

        1)数码管元件采用共阴数码管,如果需要某位数码管被点亮,位选引脚需要被拉成电平;   

        2)八个数码管有8个位选引脚,8个段选引脚。为了将节省I/O口,使用74HC138将3位(CBA)选择,转换为8位二值代码,例如CBA值为000时,Y0输出低电平,其余为高电平,由于Y0连接到数码1位选引脚(图中的LED1网络标号),数码管1被选中。

    d1b1f9379cf7c4b1975aa5b73dcc5bdd.png

        3)74HC138控制的是位选引脚,而74HC245控制的是段选引脚,增强驱动能力。电路原理图中将DIR接高电平,OE接GND,使得其工作状态为An输入Bn输出。当P0输出0x00时,Bn端也会输出0x00;

    0be58be1ad0946604c54a68a73745602.png

    代码实现:

    a2cddd4785bbd34fd0a22e5c3612bdfd.png

    1)数码管显示数值,有对应的编码(编码对应段选被点亮或不亮);

    2)数码管编码按照一定的关系(一般为顺序0~F),存储在一维数组里面;

    3)74HC245收发器,主要用来驱动数码管,根据数码管显示可以看做P0数据直接到达数码管;

    4)调用一维数的元素,将编码值通过I/O口输出,控制段选信号,显示对应数值;

    5)数字选择数码管,数字转换为38译码器的3路输入信号,选中某个数码管显示。

    实现数码管显示函数:

    void showsmg(uchar selsmg,uchar num){  //选择显示数码管第几个,拆解为38译码器对应编码  smg0 = selsmg&0x01;  smg1 = (bit)((selsmg>>1)&0x01);  smg2 = (bit)((selsmg>>2)&0x01);  //将数码管编码(一维数组)赋值给P0口,显示对用数字  P0 = table[num];}

    具体显示代码:

        功能:8个(7~0)数码管,从高到底显示7~0;

    /********************************************************************************* @File name: main.c@Author: AdamChen* @Version: 1.1* @Date: 2020-08-07* @Description: LED display * @contact:975805363@qq.com********************************************************************************/#include "reg52.h"typedef unsigned char uchar;typedef unsigned int uint;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x80};sbit smg2 = P2^4;sbit smg1 = P2^3;sbit smg0 = P2^2;/******************************************************** Function name :delay* Description        : 延时函数* Parameter         :  @ms        millisecond(毫秒)    * Return          :None **********************************************************/void delay(unsigned int ms) // ms代表需要延时的毫秒数{  uint x,y;  for(x=ms;x>0;x--)  for(y=110;y>0;y--);}/********************************************************* Function name :showsmg* Description        : 数码管显示* Parameter         :  @selsmg      选择数码管第几个  @num      显示数值*        * Return          :None **********************************************************/void showsmg(uchar selsmg,uchar num){  //选择显示数码管第几个,拆解为38译码器对应编码  smg0 = selsmg&0x01;  smg1 = (bit)((selsmg>>1)&0x01);  smg2 = (bit)((selsmg>>2)&0x01);  //将数码管编码(一维数组)赋值给P0口,显示对用数字  P0 = table[num];}/********************************************************* Function name :main* Description        : 8数码管,从高到低显示7到0。* Parameter         :None* Return          :None **********************************************************/void main(){  uchar i;  while(1){  //循环选中,8个数码管,显示7~0    for(i=0;i<8;i++)    {     showsmg(i,i);      delay(1);    }           }}

    ---------------------------------------------------------

    如果觉得文章还不错,那就扫码关注吧!

    7d675cdceb46535826075ae0abd79e23.png

    展开全文
  • 本文通过仿真原理图设计和程序设计,实现了单个数码管显示0-9显示数字动态显示。仿真原理图采用protues8.7设计,特别注意P0口需要外接上拉电阻,以及引脚与单片机IO口的连接。具体如图。本设计的代码采用KEIL5设计...

    本文通过仿真原理图设计和程序设计,实现了单个数码管显示0-9,显示数字动态显示。

    仿真原理图采用protues8.7设计,特别注意P0口需要外接上拉电阻,以及引脚与单片机IO口的连接。具体如图。

    f414b335e83d6f22c8702c71e35733da.png

    本设计的代码采用KEIL5设计,具体如下:

    /*-----------------------------------------------  名称:单个共阳数码管动态显示变化数字  内容:通过循环赋值给P1,让数码管显示特定的字符或者数字------------------------------------------------*/#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,}; // 显示数值表0-9void Delay(unsigned int t); //函数声明/*------------------------------------------------                    主函数------------------------------------------------*/void main (void){                  unsigned char i;  //定义一个无符号字符型局部变量 i 取值范围 0~255  while (1)         //主循环  {    for(i=0;i<10;i++)   //加入 for循环,表明for循环大括号中的程序循环执行10次    {      P0=dofly_table[i]; //循环调用表中的数值      Delay(60000);      //延时,方便观看数字变化    }   //主循环中添加其他需要一直工作的程序  }}/*------------------------------------------------ 延时函数,含有输入参数 unsigned int t,无返回值 unsigned int 是定义无符号整形变量,其值的范围是 0~65535------------------------------------------------*/void Delay(unsigned int t){  while(--t);}

    结合仿真和程序,本设计的仿真视频如下:

    温馨提示:需要单片机资料的可后台联系!

    展开全文
  • 上次在PPT中用VBA编制了一个计时器,实现了倒计时功能,但是我觉得这个计时器不够酷炫,如果采用7段数码管显示数字,那就够COOL了。为了实现这个功能,我把任务进行了分解,今天先完成第一步,如何用VBA实现7段...

    上次在PPT中用VBA编制了一个计时器,实现了倒计时功能,但是我觉得这个计时器不够酷炫,如果采用7段数码管显示数字,那就够COOL了。为了实现这个功能,我把任务进行了分解,今天先完成第一步,如何用VBA实现7段数码管的数字显示。

    最开始,我想采用画线的方法,但是VBA不支持Picture控件,所以得另外想招。我想到一个办法,添加7个小长条的Image控件,通过控制背景颜色的方式来实现数码管的功能。

    下面是源代码,加入了Timer用以控制循环,实现了从0-9的数字显示。

    程序资源我已经上传到我的博客中,欢迎下载。

    展开全文
  • 实验效果如图12.1所示:图12.1 单片机控制四位数码管显示数字注意:请先把上一节的例程及练习做完,打好基础,再学习本课内容。12.1 硬件本例的难点在于:新增加了一些硬件、连接比较复杂、代码较长、逻辑也相对复杂...

    5f3ac7bf6169afd2e077a437a51cfbdd.png

    本讲继续学习用Python控制单片机,并用单片机连接和控制其它硬件,具体目标是利用开发板控制四位数码管,显示指定的数字。实验效果如图12.1所示:

    8c7b452800bea3fdbf44c5bbefe0c25a.png
    图12.1 单片机控制四位数码管显示数字

    注意:请先把上一节的例程及练习做完,打好基础,再学习本课内容。

    12.1 硬件

    本例的难点在于:新增加了一些硬件、连接比较复杂、代码较长、逻辑也相对复杂,需要控制数字到显示的转换。实验需要的硬件包括:

    • TPYBoard V102开发板(单片机)。
    • 5461AS四位共阴数码管。
    • 面包板一块。
    • 200欧电阻四个。
    • 连接线:10条公对母、10条母对母。

    12.1.1 数码管

    数码管是一种半导体发光器件,其基本单元是发光二极管。数码管的每个数字由七段发光二极管组成,另外一个显示小数点。通过控制每一段二极管是否点亮组成不同的数字。用a,b,c,d,e,f,g,h八个字母代表对应位置的二极管,如图12.2所示。

    c1569997182c76b03df1b0c4f3e068b0.png
    图12.2 数码管图示

    一般情况下,点亮一个发光二极管需要一正一负两条连接线,那么显示四个数字,每个数字由八位发光二极管组成,则需要连接非常多的数据线。数码管简化了连线,一般只需要12条连接线,其中八条控制显示的具体数字,另外四条控制当前操作的是四个数字中的具体哪一位数字。

    数码管后面排针连接开发板,接收来自开发板的控制信息,本例中使用的5461AS四位共阴数码管引脚顺序如12.2所示。

    注意:由于各厂商硬件不同,不同型号数码管的引脚位置可能存在差异。

    12.1.2 面包板

    面包板上有很多小插孔,专为电子电路的无焊接实验设计制造。各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,主要用于电路的组装、调试和实验。

    面包板的板底有金属条,当元件插入孔中时与金属条接触,从而达到导电的目的。比如中间区域相连的五个孔相互纵向导通,上下方区域横向导通,如图12.3所示:

    3835d7d66f85b45a2a29c052388ae4fa.png
    图12.3 面包板连通示意图

    12.1.3 电阻

    电阻器简称为电阻,是一种限流元件,将电阻接在电路中后,可限制通过它所连支路的电流大小。电阻器的阻值是固定的,一般有两个引脚,如图12.4所示:

    3cad0ae95a10cec9a0b7a91e892317c5.png
    12.4 电阻

    实验一般购买“电阻包”,几元钱可购买不同阻值的几百个电阻。可以看到电阻上带有色环,根据不同颜色及其排列方式可判断电阻大小。

    计算电阻值先要确定色环的顺序,比如对于一个五道色环的电阻而言,第五环和第四环之间的间隔比第一环和第二环之间的间隔要宽一些。五环电阻的第一、二、三环分别代表三位有效数的阻值;第四环代表倍率;第五环代表误差。具体颜色对应如表12.1所示:

    7aa25ddbfae99267042a4b074c65da0a.png
    表12.1 电阻色环颜色对应表

    例如:如果色环依次为“黄紫黑黑棕”,前三位有效数字为470,第四位100,因此,470*100=470,电阻为470欧姆,允许偏差为正负1%。

    网上也可以找到根据颜色计算阻值的计算器,如:http://www.eeworld.com.cn/tools/5sehuandianzuzuzhi.html

    课后练习:(练习答案见本讲最后的小结部分)

    练习一:利用电阻的色环计算几个电阻的阻值,并使用本小节中的网址验证计算结果是否正确。

    12.1.4 连接线

    连接线用于连接各个电子元件,连线的接口需要与元件匹配。接口分为公头和母头,公头为针,母头为孔,连接线分为以下几种:公对公、母对母、公对母,如图12.5所示:

    3338a69bf919132cb0c6666bcbb709ee.png
    图12.5 连接线

    图中从上到下依次是:公对母线、母对母线、公对公线,以及专供面包板使用的公对公连接线。

    12.1.5 硬件连接

    X1-X8针连接数码管的a-h排针用于控制每个数字对应的8位发光二极管是否点亮,Y1-Y4针串联电阻后分别与数码管的1-4排针连接,用于指定当前信号是控制四位中的哪一位数字。

    请读者按图12.6连接各个元件。

    0e73ec006aa34e8304ff679265691c8e.png
    图12.6 数码管接线图

    12.2 编写代码

    代码较长,因此将其分成三部分:初始化、绘制数字、控制程序。请认真阅读代码及对应说明,理解每一句代码。本节代码较长,注意不要输入错误。

    12.2.1 初始化

    第一部分初始化。

    01 from pyb import Pin
    02 import pyb
    03 x_pin = {}
    04 for i in range(1,8):
    05     key = 'X'+str(i)
    06     x_pin[key] = Pin(key, Pin.OUT_PP)
    07     x_pin[key].high()
    08  
    09 y_pin = {}
    10 for i in range(1,5):
    11     key = 'Y'+str(i)
    12     y_pin[key] = Pin(key, Pin.OUT_PP)
    13     y_pin[key].high()

    第01行引入硬件控制pyb模块的Pin类,用于在程序中操作排针。
    第02行引入pyb模块。
    第03-07行建立字典x_pin用于控制排针X1-X8。
    第04行用循环方式分别将1-8赋值给变量i。
    第05行每次循环生成变量key:X1、X2……X8
    第06行每次循环给字典添加一个键为key,值指向排针的元素,其中OUT_PP指定建立方式为向排针输出数据(而非从排针读入数据)。
    第07行将该针置为高电平。

    同理,第09-13行建立字典y_pin用于控制排针Y1-Y4。

    电流从高电平引脚流向低电平引脚,由于X1-X8,Y1-Y4都被设为高电平,因此,初始化之后无电流流过,因此没有数字被点亮。

    12.2.2 绘制数字

    第二部分用于向数码管发送不同的信号以显示不同数字,其中定义了draw函数用于绘制每一位数字。

    01 num = {}
    02 num['0'] = '11111100'
    03 num['1'] = '01100000'
    04 num['2'] = '11011010'
    05 num['3'] = '11110010'
    06 num['4'] = '01100110'
    07 num['5'] = '10110110'
    08 num['6'] = '10111110'
    09 num['7'] = '11100000'
    10 num['8'] = '11111110'
    11 num['9'] = '11110110'
    12  
    13 def draw(idx, n):
    14     for i in range(1,8):
    15         key = 'X'+str(i)
    16         x_pin[key].low()
    17     for i in range(1,5):
    18         key = 'Y'+str(i)
    19         if idx == i:
    20             y_pin[key].low()
    21         else:
    22             y_pin[key].high()
    23     for i in range(1,8):
    24         key = 'X'+str(i)
    25         if num[n][i-1] == '1':
    26             x_pin[key].high()

    第01-12行建立字典,字典中的键是被绘制的数字,值是长度为8的字符串,字符串的每一位对应八位数码管的每一个发光二极管,例如:显示数字0时,abcdef位置点亮,而中间的g位置和后面的小数点h位置不亮,因此,对应的字符串为“11111100”。 每个数值依次对应图12.2中的a-h。
    第13行定义了单个字母绘制函数draw,函数提供两个参数,第一个参数用于指定绘制哪一位数字,第二个参数用于指定绘制的具体数字0-9。
    第14-16行是复位操作,将X1-X8置为低电平。
    第17-22行判断设置的是哪一位数据,将被设置的位置设为低电平。
    第23-26行从num字典中取出具体数字对应的发光二极管亮灭的字符串,并将需要点亮位置对应的针置为高电平,此时位置idx中对应位置的发光二极管被点亮。

    12.2.3 控制程序

    本例中控制程序显示“4278”四个数字,由于每次设置只能显示一个数字,如果需要四个数字同时显示,则需要不断循环点亮四个数字,利用视错觉看到LED灯同时点亮的效果。设置每次显示的时间间隔为0.002秒,显示四个数字约0.01秒左右。人眼每秒钟能识别约三十张图片(30帧),识别每张图的时间约0.03秒,由于显示速度比人眼识别速度快,所以人眼看不到LED灯的亮灭变换。

    下面程序利用不断循环的方法,将四个数字依次设置到对应的位置。

    01 show_str = '4278'
    02 idx = 0
    03 while True:
    04     draw(idx+1, show_str[idx])
    05     pyb.udelay(2000)
    06     idx = idx + 1
    07     if idx >= 4:
    08         idx = 0

    第01行将需要显示的数字4278赋值给字符串变量show_str。
    第02行创建变量idx用于指定显示第几个数字。
    第03行建立循环不断写入四个数字。
    第04行调用draw 函数写入具体的数字。
    第05行的udelay使程序阻塞2000微秒,1微秒= 0.000001秒,2000微秒=0.002秒。
    第06-08修改idx,使得idx从0-3循环变化。

    课后练习:

    练习二:用数码管显示“ABCD”。

    12.3 思维训练

    这一讲中的实验需要大量插线,虽然没有复杂的逻辑,但工作过程比较复杂。动手尝试很重要,不需要一次插对所有部件,所以看到有一个数码管点亮时,无论它显示正不正确,都是一个进步。然后再基于当前的状态逐步改造。

    解决复杂的问题时,首先需要把大问题切分成小块的“子问题”,然后逐个解决子问题,最后还需要考虑子问题之间的相互作用。问题复杂,解决问题的过程也比较复杂。

    对于解决复杂的问题,做笔记是非常重要的习惯。当步骤变多,有时需要上网查资料,找到答案后一定要记下来。可以用纸的笔记本,手机上记事本App,或者云端记事本(如:有道云笔记),无论使用什么方法,重要的是记录过程。另外,需要注意:一定要记录清楚,不仅自己能理解,也要让其他人可以看懂,尤其是低龄儿童。

    12.3.1 意志力

    很多人在童年阶段尝试过多种兴趣班,有的半途放弃,有的花了几年时间学习。在这个过程中到底得到了什么,或者想得到什么?家长可能有以下几种想法:万一是世界冠军的材料,别把孩子耽误了;培养一个兴趣爱好或者一技之长;开阔眼界;太闹在家待不住;或者只是因为周围的人都在学……这几年提倡快乐教育,强调兴趣的重要性,那摔倒了是需要爬起再继续?还是换一条相对好走的路呢?

    大多数孩子并不是通过从小的训练,就能成为画家或者运动员,当面临多次挫败,被老师骂成狗,还能再一次调整自己,并且坚持下去,就培养起了一种意志力模式,它可能比学习的知识本身更加重要。之后遇到同等困难的时候,相比没训练过的人更容易克服。

    20世纪60年代,斯坦福大学的科学家进行过一个非常著名的意志力实验:规则是把4岁儿童带进一个房间,告诉他们可以马上吃掉一块糖,或者稍等几分钟吃掉两块糖,然后测试人员离开房间,看孩子是否能抵御糖果的诱惑。并进行跟踪记录,当这些孩子上了高中之后,评价这些孩子的成绩、维持友谊能力和处理重要问题的能力,实验的结果是:最后得到两块糖果的孩子SAT成绩平均高出210分,并且在朋友中间也更受欢迎。自控力让他们受益一生。

    在高智商和高自控力之间,通过自控力更容易预测一个人在下一学期的表现。如果一个人足够自律,则更加可控。在漫长的成长过程中,自律比智商更加重要。

    那么是不是有人生来就有钢铁般的意志力呢?近年来科学家开始研究意志力相关的问题,他们发现意志力不是一种技术,而是一种力量,和肌肉力量一样,也是有限的资源,使用太频繁则会枯竭。在使用意志力的时候也需要注意:不要同时做太多消耗意志力的事,也不要设置超越意志力范围的计划。同时,意志力像肌肉一样,也是可以被塑造的能力。

    12.3.2 做计划

    培养意志力需要漫长的过程,在意志力不够强大时,也可以通过制定合理的长短期计划达成较好的效果。

    生活中没有长期计划,只有短期计划,应付眼前的问题,是大多数小孩,以及不少成年人的做法。当有可能出现棘手的问题,或者令人尴尬的情况,很多时候,我们选择不去想,或者绕开不做。但更好的方法是做出相对的预案。

    星巴克有着非常完善的员工培训方案,将有可能遇到的问题和解决方案直接写入员工手册,比如遇到客户的刁难应该如何处理?这使得每个员工无论能力高低,都能很好地应对突发情况。什么东西会伤害到你?通常是全力以赴也解决不了的问题。机遇难以控制,当我们培养起长视的习惯,多设想一些可能遇到的问题和解决方法,通过借鉴,学习,事先用大量的时间准备,即使遇到不如意的情况,反应也不那么狼狈。从而做得更好。

    做计划的视角,类似于第10讲中分析问题的角度,需要在不同的层面,做多个计划。在不熟悉的情况下,最好先做一些具体的短期计划,这样即使无法达成最终目标,也能在过程中有所收获。长期计划,可能需要几个月至几年的时间才能实现。这个过程中会遇到各种问题,其它事情的干扰,与其它计划的冲突……因此,长期计划不需要制定得过于详细,在中途也需要不断调整。

    12.4小结

    12.4.1单词

    本讲需要掌握的英文单词如表12.1所示。

    8ef675494b4da5a2d42c3fe5aa6d42fb.png
    表12.1本讲需要掌握的英文单词

    12.4.2习题答案

    1. 练习一:利用电阻的色环计算几个电阻的阻值。

    (1) 电阻色环顺序:棕棕黑棕棕=110101=1100欧姆(2) 电阻色环顺序:红紫黑棕棕=270101=2700欧姆

    1. 练习二:用数码管显示“ABCD”。
    01 from pyb import Pin
    02     
    03 x_pin={}
    04 for i in range(1,8):
    05     key='X'+str(i)
    06     x_pin[key]=Pin(key,Pin.OUT_PP)
    07     x_pin[key].high()
    08  
    09 y_pin={}
    10 for i in range(1,5):
    11     key='Y'+str(i)
    12     y_pin[key]=Pin(key,Pin.OUT_PP)
    13     y_pin[key].high()
    14  
    15 num={}
    16 num['A']='11101110'
    17 num['B']='11111110'
    18 num['C']='10011100'
    19 num['D']='11111100'
    20  
    21 def draw(idx,n):
    22     for i in range(1,8):
    23         key='X'+str(i)
    24         x_pin[key].low()
    25     for i in range(1,5):
    26         key='Y'+str(i)
    27         if idx==i:
    28             y_pin[key].low()
    29         else:
    30             y_pin[key].high()  
    31     for i in range(1,8):
    32         key='X'+str(i)
    33         if num[n][i-1]=='1':
    34             x_pin[key].high()
    35             
    36 show_str='ABCD'
    37 idx=0
    38 while True:
    39     draw(idx+1,show_str[idx])
    40     pyb.udelay(2000)
    41     idx=idx+1
    42     if idx>=4:
    43         idx=0

    建议先逐行读懂例程再做练习,理解是修改的基础。

    展开全文
  • 功能说明:按下按钮,数码管0计数,到9复位为0,继续显示。2。代码如下:欢迎大家优化为最佳代码。/* Date : 20091010 For : button drive led Tool : HT IDE 3000 V7.0 MCU : HT48R50A-1 Fsys : 4MHz ASM/...
  • 按键使数码管循环显示从0到9(51单片机+汇编语言+Proteus仿真) 具体功能:显示按第一次数码管变亮显示0,然后每按一次数码管显示数字加1,加到9后从0重新开始。 汇编源代码: ORG 0000H START0:MOV R2,#0 START...
  • 51单片机实验 7段静态数码管显示数字 P0口接7段静态数码管,实现1秒数字显示,从0到16(F),来回闪烁显示 由于数字显示有一秒替换下一个数字的要求,所以采用定时器T0定时一秒。 由于前面实验积累,可以复用一部分...
  • 前一版本在调用数码管显示函数(Disp()等函数)时会自动 保存一幅对应于显示区域RECT的位图,此种机制当用户在OnPaint()函数里调用显示 函数而不调用Hide()时,并且此时的RECT在每次调用显示函数时都改变...
  • 单片机之动态数码管显示数字1-8

    万次阅读 多人点赞 2018-09-22 15:01:25
    C51单片机中的三种方法解决数码管的动态显示,使数码管显示1-8数字。三种方法的代码如下,此时读者需要十分注意你代码中引脚的先后顺序,否则可能达不预期的效果. #include<reg51.h> #define uchar ...
  • 共阳极数码管和arduino连接方法,公共端接在5v电压上。28引脚连接数码管A--F上1位7段数码管引脚#define type 1 //O代表共阴极数码管,1代表共阳极...// 小数点// 数组的值显示0-9,共阳极数码管中,引脚高电平...
  • 定时器中断实现每来1s,P1口接的一位共阳极数码管显示数+1, 加到9之后再来1s清零并重复上述过程 代码如下: (仅供参考) /* *定时器中断实现每来1s,P1口接的一位共阳极数码管显示数+1, *加到9之后再来1s清零并...
  • 数码管虽然只是个小器件,随着液晶的疯狂发展,在显示器领域虽然也越来尴尬,但对于初入电子行业和学习数字电子技术的孩子们来讲,还是很有必有理解一下。...譬如,对于一个共阳数码管,写入0到9代码分别是0xc
  • 2.按下数字键可以让数码管依次显示数字,没有输入的数码管全部显示中间那一横(编号G),输入数字不4个按下功能按键为清空输入的数字。 3.在没有任何输入数字的情况下按下功能按钮可设置密码,输够4位即完成密码...
  • 六、按键

    2020-11-11 16:44:27
    按键控制数码管显示,按一次,显示数字加一,0到9循环往复,代码: #include <reg52.h> sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; sbit KEY1 = P2...
  • 1所示为单片机应用系统中的一种数码管动态显示电路图,4位数码管的相同段并联在一起,由一个8位I/O(P1口)输出字形码控制显示某一字形,每个数码管的公共端由另外一个I/O口(P0口)输出的字位码控制,即数码管显示的...
  • Proteus仿真—40个单片机初学程序.

    热门讨论 2009-04-13 13:00:56
    1. 闪烁灯 1. 实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。...如图13所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接一个共阴数码管...
  • 16 键码显示的程序 我们在 P1 端口接一支共阴数码管 SLED,在 P2、P3 端口接 16 个按键,分别编号为 KEY_0、KEY_1 KEY_F,操作时只能按一个键,按键后 SLED 显示对应键编号。 代码 1. 2. 3. 4. 5. 6. 7. 8. #...
  • 10_1:基于数码管显示数字秒表,所在章节10.1 10_2:基于PWM方式控制LED的亮度,所在章节10.2 10_3:基于PWM方式控制LED实现呼吸灯效果,所在章节10.2 10_4:交通信号灯示例,所在章节10.3 10_5:长短按键/...
  • LED点阵矩阵时钟3216

    2011-04-04 08:03:56
    16*32点阵数字钟及汉字显示 附:点阵时间显示源程序 //==================================================================================...//定义0-59模拟七段数码管显示 8*8 //================================...
  • 动态扫描电路采用4块LED数码管,利用人眼的延迟效应通过合理的软件设计使显示电路显示数字。 供电采用5V直流电压电源 2.3矩阵键盘扫描工作原理 矩阵式键盘又成为行列式键盘,是将I/O线的一部分作为行线,另一部分...
  • 通过4 个LED 数码管将测得的频率值显示给用户。 (8)系统软件 包括测量初始化模块、显示模块、信号频率测量模块、量程自动转换模 块、信号周期测量模块、定时器中断服务模块、浮点数格式化模块、浮点数算 术运算模块...
  • 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。 (2. 把“单片机系统”...
  • 51单片机自学笔记

    2016-07-27 22:24:19
    LED数码管的应用39, 4.1 LED数码管显示原理及显示方式39, 4.2 LED数码管分类及驱动39, 4.3 点亮一个LED数码管40, 4.4 LED数码管显示段码41, 4.5 静态显示42, 4.6 动态显示生日43, 4.7 0~99循环自加计数器46, 4.8 ...
  • 单片机8路抢答器

    2013-04-05 11:05:08
    //显示数字函数声明 void display_char(uchar char_1,uchar char_2,uchar char_3,uchar char_4 );//显示字符函数声明 void display_set(uchar char_1,uchar time,uchar char_2);//时间设置闪动显示函数声明 void ...
  • 数码管显示数字函数——————————————————————————————————————只显示百十个,可以扩展 void display(uchar bai,uchar shi,uchar ge) { P0=0xff; wela=1; P0=0xfe; wela=0;...
  • 智能扫地机VHDL FPGA

    2012-07-12 19:02:40
    在8x8点阵板上显示扫地模块的大部分功能,并通过数码管显示温度及湿度的设置。数码管的显示和点阵板的显示能够及时准确的实现。 规模: 该程序的核心是利用了十多个二维矩阵进行存储点阵内容以及点阵的变化,各模块...
  • 3.1 数码管显示原理 3.2 数码管静态显示 3.3 数码管动态显示 3.4 中断概念 3.5 单片机的定时器中断 4.1 独立键盘检测 4.2 矩阵键盘检测 5.1 模拟量与数字量概述 5.2 A/D转换原理及参数指标 5.3 ADC0804工作原理及其...
  • 关于ds18b20程序

    2009-05-05 18:01:55
    TR0 = 0; //读暂存器和CRC值----------------------- if(Ds18b20_ReadEE(temp)) { TR1 = 1; TR0 = 1; return 1; } //------------------------------------- //CRC校验------------------------------ // //...
  • 6.5 数码管显示驱动 6.5.1 功能概述 6.5.2 设计说明 6.5.3 源码解析 6.5.4 板级调试 6.6 LCD显示驱动 6.6.1 功能概述 6.6.2 设计说明 6.6.3 源码解析 6.6.4 板级调试 6.7 LCD的32级红色显示 6.7.1 功能概述 6.7.2 ...

空空如也

空空如也

1 2
收藏数 31
精华内容 12
关键字:

数码管显示数字0到9代码