精华内容
下载资源
问答
  • 数码管倒计时

    2017-09-16 20:51:00
    //全部数码管计时 #include<reg52.h> /**声明使能IO口 */ sbit ADDR0=P1^0; sbit ADDR1=P1^1; sbit ADDR2=P1^2; sbit ADDR3=P1^3; sbit ENLED=P1^4; /*声明数组存放数码管真值表 */ unsigned ...

    //全部数码管计时

     #include<reg52.h>

    /**声明使能IO口

    */

    sbit ADDR0=P1^0;

    sbit ADDR1=P1^1;

    sbit ADDR2=P1^2;

    sbit ADDR3=P1^3;

    sbit ENLED=P1^4;

     

    /*声明数组存放数码管真值表

    */

    unsigned char code LedChar[]={

             0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

             0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e

    };

    /**数码管缓冲区

    */

    unsigned char LedBuff[6]={

             0xff,0xff,0xff,0xff,0xff,0xff

    };

     

    unsigned char i=0; //动态扫描的索引

    unsigned int  cnt=0;

     

    void main(){

             unsigned long sec=0;  //记录经过秒书

             EA=1;                   //使能总开关

             ENLED=0;               //使能U3,选择数码管

             ADDR3=1;                  //使能38译码器的真值表

     

             TMOD=0x01;            //设置T0为模式1

             TH0=0xfc;            //味T0赋初值0xfc67,定时1ms

             TL0=0x67;

     

             ET0=1;                  // 使能T0中断

             TR0=1;                  // 启动T0

     

             while(1){

                       if(cnt >= 1000){ //判断T0是否溢出1000次(1000ms=1s)

                                cnt=0;

                                sec++;

                                 //以下代码将sec按十进制从低到高一次提取并转换为数码管显示的字符

                                LedBuff[0]=LedChar[sec%10];

                                LedBuff[1]=LedChar[sec/10%10];

                                LedBuff[2]=LedChar[sec/100%10];

                                LedBuff[3]=LedChar[sec/1000%10];

                                LedBuff[4]=LedChar[sec/10000%10];

                                LedBuff[5]=LedChar[sec/100000%10];

                       }

             }

    }

    /**定时器中断服务函数

    */

    void interRuptTimer0()interrupt 1 {

             //重新加载赋值

             TH0= 0xfc;

             TL0= 0x67;

     

             cnt++;          //中断次数加1

             P0=0xFF;  //显示消隐

     

             switch(i){//调用相应数码管IO口显示

                      case 0: ADDR0=0; ADDR1=0; ADDR2=0; i++; P0=LedBuff[0];break;

                       case 1: ADDR0=1; ADDR1=0; ADDR2=0; i++; P0=LedBuff[1];break;

                       case 2: ADDR0=0; ADDR1=1; ADDR2=0; i++; P0=LedBuff[2];break;

                       case 3: ADDR0=1; ADDR1=1; ADDR2=0; i++; P0=LedBuff[3];break;

                       case 4: ADDR0=0; ADDR1=0; ADDR2=1; i++; P0=LedBuff[4];break;

                       case 5: ADDR0=1; ADDR1=0; ADDR2=1; i=0; P0=LedBuff[5];break;

                       default: break;         

             }

    }

    转载于:https://www.cnblogs.com/robotes/p/7532888.html

    展开全文
  • 数码管倒计时.zip

    2020-04-25 19:34:17
    此资源为51单片机控制实现共阴数码管倒计时,欢迎下载学习。
  • 此资源为51单片机共阴数码管倒计时工程,理解原理之后,其实很简单,附件包含代码和仿真文件,(共阳类似)有需要请下载,如有问题请私信。
  • 51实现数码管倒计时

    2021-01-02 22:41:33
    51实现数码管倒计时: 前言 通过修改+ +/- -,可以实现数码管加减,我这是从59倒计时到0,分隔符奇偶判断闪烁,倒计时结束闪烁结束 1.代码如下 代码如下(示例): #include <reg51.h> #include <intrins...

    51实现数码管倒计时:


    前言

    通过修改+ +/- -,可以实现数码管加减,我这是从59倒计时到0,分隔符奇偶判断闪烁,倒计时结束闪烁结束


    1.代码如下

    代码如下(示例):

    #include <reg51.h>
    #include <intrins.h>
    
    sbit wei1=P2^4;
    sbit wei2=P2^5;
    sbit wei3=P2^6;
    sbit wei4=P2^7;
    
    #define uint unsigned int
    
    uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
    					0x7d,0x07,0x7f,0x6f};
    
    unsigned int n,z,m=59;
    
    void delay(unsigned char x)
    {
    	unsigned int i,j;
    	for(i=x;i>0;i--)
    		for(j=112;j>0;j--);
    }
    
    void display(uint x)
    {
    	uint a,b,c;
    	a=x/100;
    	b=x/10%10;
    	c=x%10;
    	{
    		P0 = table[a];
    		wei1=1;
    		wei2=0;
    		wei3=0;
    		wei4=0;
    		delay(1);
    
    		P0 = table[b];
    		wei1=0;
    		wei2=0;
    		wei3=1;
    		wei4=0; 
    		delay(1);
    
    		P0 = table[c];
    		wei1=0;
    		wei2=0; 
    		wei3=0;
    		wei4=1; 
    		delay(1);
    	}
    	z=m%2;
    	if(z==0)
    	{
    		P0=0X40;
    		wei1=0;
    		wei2=1; 
    		wei3=0;
    		wei4=0; 
    		delay(1);}
    	if(z==1)
    	{
    		P0=0X40;
    		wei1=0;
    		wei2=0; 
    		wei3=0;
    		wei4=0; 
    		delay(1);}
    }
    void Timer0Init(void)	
    {
    	TMOD = 0x10;
    	TL1 = 0x00;	
    	TH1 = 0x4c;
    	TF0 = 0;
    	TR0 = 1;
    	ET0 = 1;
    	EA  = 1;
    }
    void Timer1()interrupt 1
    {
    	n++;
    	if(n==100)
    	{
    		n=0;
    		m--;
    		z=m%2;
    		if(m==000)
    		{	
    			while(1)
    			{
    				m=000;
    				display(m);
    				P0=0X00;
    			}
    		}
    	}display(m);
    }
    void main()
    {
    	Timer0Init();
    	while(1);
    }
    
    

    希望能给大家提供帮助

    展开全文
  • 单片机通过控制HC595实现数码管倒计时,流水灯,当倒计时结束时蜂鸣器鸣叫,并重新附新值给倒数,多任务执行程序
  • 七段数码管倒计时

    千次阅读 2018-07-28 10:22:36
    改编嵩天老师的代码写的七段数码管倒计时 import turtle as t import time def drawGap(): #绘制数码管间隔 t.penup() t.fd(5) def drawLine(draw): #绘制单段数码管 drawGap() t.pendown() if draw ...

    改编嵩天老师的代码写的七段数码管倒计时


    import turtle as t
    import time
    def drawGap(): #绘制数码管间隔
    t.penup()
    t.fd(5)
    def drawLine(draw): #绘制单段数码管
    drawGap()
    t.pendown() if draw else t.penup()
    t.fd(40)
    drawGap()
    t.right(90)
    def drawDigit(d): #根据数字绘制七段数码管
    drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False)
    drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False)
    drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False)
    drawLine(True) if d in [0,2,6,8] else drawLine(False)
    t.left(90)
    drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False)
    drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False)
    drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False)
    t.left(180)
    t.penup()
    t.fd(20)
    def drawDate(date):
    for i in range(date,0,-1):
    t.pencolor(“red”)
    t.pensize(10)
    drawDigit(i)
    t.reset()
    def main():
    t.setup(800, 450, 200, 200)
    t.pensize(10)
    drawDate(int(input(“输入倒计时的数字”)))
    t.pencolor(“blue”)
    t.write(‘时间到了’,font=(“Arial”,40, “normal”))
    t.hideturtle()
    time.sleep(1)
    t.reset()
    main()

    展开全文
  • 51单片机学习 数码管 倒计时

    千次阅读 2020-03-30 20:01:27
    51单片机学习 数码管 倒计时 简介 1.硬件部分 普中单片机 开发板 (138译码器控制)数码管 2.软件部分 keil软件 硬件部分 138译码器 简介 74LS138 为3 线-8线译码器,共有 54LS138和 74LS138 两种线路结构型式。54...

    51单片机学习 数码管 倒计时

    简介

    1.硬件部分
    普中单片机 开发板 (138译码器控制)数码管
    2.软件部分
    keil软件

    硬件部分

    138译码器

    简介

    74LS138 为3 线-8线译码器,共有 54LS138和 74LS138 两种线路结构型式。54LS138为军用,74LS138为民用。

    工作原理

    ①当一个选通端(E1)为高电平,另两个选通端()和()为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。(即输出为Y0至Y7的非)比如:A2A1A0=110时,则Y6输出端输出低电平信号。
    ②利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。
    ③若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
    ④可用在8086的译码电路中,扩展内存。

    真值表

    在这里插入图片描述

    引脚功能

    在这里插入图片描述

    应用

    74LS138可以组成三变量输入,四变量输入的任意组合逻辑电路。
    (1)用一块3线-8线译码器74LS138可以组成任何一个三变量输入的逻辑函数,任意一个输入三变量的逻辑函数都可以用一块3线-8线译码器74LS138来实现。因为任意一个组合逻辑表达式都可以写成标准与或式的形式,即最小项之和的形式,而·块3线-8线译码器74LS138的输出正好是二变量最小项的全部体现。
    (2)二块3线-8线译码器74LS138可以组成任何一个四变量输入的逻辑函数。
    常见的一些编码器、译码器如(74LS138)都只是三位或四位二进制的编码译码,只能满足一些简单电子电路的需求,对于复杂电子电路就无能为力了。
    中规模集成电路74LS138的工作原理十分简单,根据输出表达式,从中可以看出译码器74LS138是一个完全译码器,涵盖了所有三变量输入的最小项,这个特性正是它组成任意一个组合逻辑电路的基础。74ls138还有另一重要应用,可以组成数据分配器。其实在电路在家用电器、自动化控制等方面都有重要的应用。

    软件部分

    //基于普中单片机138译码器数码管实验
    #include "reg51.h"			 //此文件中定义了单片机的一些特殊功能寄存器
    typedef unsigned int u16;	  //对数据类型进行声明定义
    typedef unsigned char u8;
    
    sbit LSA=P2^2;
    sbit LSB=P2^3;
    sbit LSC=P2^4;
    sbit led=P2^2;
    sbit beez=P1^5;
    u16 flag=60,q,w,i,num=0,qwe=0;
    double  code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
    0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值
    
    void delay(u16 i)//us软件延迟
    {
    	while(i--);	
    }
    void DigDisplay()
    {
    	u8 i;
    	for(i=0;i<2;i++)
    	{
    		switch(i)	 //位选,选择点亮的数码管,
    		{
    			case(0):
    				LSA=0;LSB=0;LSC=0;	P0=smgduan[0]; break;//显示第0位
    			case(1):
    				LSA=1;LSB=0;LSC=0;	P0=smgduan[6]; break;//显示第1位
    			case(2):
    				LSA=0;LSB=1;LSC=0; break;//显示第2位
    			case(3):
    				LSA=1;LSB=1;LSC=0; break;//显示第3位
    			case(4):
    				LSA=0;LSB=0;LSC=1; break;//显示第4位
    			case(5):
    				LSA=1;LSB=0;LSC=1; break;//显示第5位
    			case(6):
    				LSA=0;LSB=1;LSC=1; break;//显示第6位
    			case(7):
    				LSA=1;LSB=1;LSC=1; break;//显示第7位	
    		}
    		delay(100); //间隔一段时间扫描	
    		P0=0x00;//消隐
    	}
     }
     void time() interrupt 1
    	{
    		TH0=(65535-45872)/256;
    		TL0=(65536-45872)%256;
    		num++;
    		if(num==20)
    		{
        		num=0;
        		flag--;
        		q = flag%10;
               w = flag/10%10;
    		}
      }
    void main()
    {	
    	TMOD=0x01;
    	TH0=(65535-45872)/256;
    	TL0=(65536-45872)%256;
    	EA=1;
    	ET0=1;
    	TR0=1;
    	while(1)
    	{	
    	  	for(i=0;i<2;i++)
    		switch(i)	 //位选,选择点亮的数码管,
    		{
    			case(0):
    				LSA=0;LSB=0;LSC=0;	P0=smgduan[w]; break;//显示第0位
    			case(1):
    				LSA=1;LSB=0;LSC=0;	P0=smgduan[q]; break;//显示第1位
    	    }		
       }
    }
    

    关于显示数字的处理(简单处理,可能有错误,毕竟小白)

    一维数组表示数字,
    取万位,就要/10000%10,主要看前面的数字取什么位
    取个位,就要/1%10     //number%10 = number/1%10 
    LightBuf[0]= DuanMa[num%10]//取个位/     number%1/10
    LightBuf[1]= DuanMa[num/10%10]//取十位   number%10/10
    LightBuf[2]= DuanMa[num/100%10]//取百位  number%100/10
    LightBuf[3]= DuanMa[num/1000%10]//取千位 number%1000/10
    

    参考资料

    1.百度百科https://baike.baidu.com/item/74LS138/7761037?fr=aladdin
    2. 普中单片机论坛http://prechin.net/

    展开全文
  • 使用python编写七段数码管倒计时

    千次阅读 2019-09-01 11:54:27
    使用python编写七段数码管倒计时 #QiDuanShuMaGuan.py import turtle def drawGap(): #设置每条线之间的间隔 turtle.penup() #画笔抬起 turtle.fd(5) def drawLine(draw): #绘制单段数码管 drawGap() turtle.pendown...
  • 这是大学期间我上VerilogHDL的七段数码管倒计时效果实验报告,报告中除了包括正确测试后的程序代码,我还加入了非常详细的注释。为了让读者更好理解程序代码和编写代码的思路,我还特意精心绘制了交通灯程序模块间的...
  • 8是典型的七段数码管的例子,因为刚好七段都有经过,这里我写的代码是从1开始右转。这是看Mooc视频写的一个关于用七段数码管显示当前时间# -*-coding:utf-8 -*-import turtle as timport timedef drawGap():t.penup...
  • #include #define uchar unsigned char#define uint unsigned intuchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x... //共阴数码管0-9uint a=20;uchar buffer[]={59,59};sbit P2_7=P2^7;sbit P2_6=P...
  • 数码管倒计时led闪烁和蜂鸣器作响 实验单片机晶振为11.0592 #include <reg52.h> #define uint unsigned int #define uchar unsigned char uchar num = 0; sbit led0 = P2^0; sbit led2 = P2^2; sbit led3 =...
  • 1、首先东西方向红灯50秒,此时南北绿灯50秒,并且数码管显示倒计时从49到00。 2、然后所有方向的黄灯闪烁5秒,并且数码管显示5秒倒计时。 3、接着东西绿灯35秒,此时南北红灯35秒,数码管显示35秒倒计时。 4、再...
  • 微机实验-带数码管倒计时的交通指示灯设计

    千次阅读 热门讨论 2018-07-07 11:43:50
    使用8255A口控制指示灯,8255B口控制数码管倒计时,8255C口0-1控制数码管片选,7口对1s时钟进行读取。二、连线8253的CLK0接1MHz时钟源,OUT0接CLK1,OUT1接8255的PC7,GATE0、GATE1接电源+5V。8255的PA0、PA1、PA2...
  • 第三十三节:能设置速度档位的数码管倒计时程序。 开场白:  上一节讲了数码管中的倒计时程序。这节要在此程序上多增加两个按键,用来控制数码管倒计时的速度档位,并且需要在数码管中闪烁显示被设置的速度档位...
  • 基于AT89C52单片机的一端口多位数码管倒计时
  • 数码管倒计时绘制

    2018-09-06 12:35:23
    显示效果 代码 import time import turtle def drawDot(): turtle.penup() turtle.fd(5) def drawLine(draw): drawDot() if draw: turtle.pendown() else: turtle.penup() t...
  • 两位共阴极数码管显示从60到0
  • 本文为学习笔记,自己对数码管显示也非常感兴趣,是通过一位讲“单片机抢答器”的UP主那里学到的,感兴趣的可以去看一下。其中up主对数码管显示原理以及扫描原理都讲的非常清楚。 作者:悠硕DIY 视频地址:原文链接...
  • 三菱PLC--FX2N 基于交通灯的倒计时显示 程序完整经仿真和实验 内部含有课程设计的说明
  • 7段数码管倒计时,因为受turtle画笔速度限制,显示效果可能不如直接打印数字,代码如下: import turtle as t import time def drawgap(ft): t.penup() t.fd(0.11*ft) def drawline(e,ft): drawgap(ft) ...
  • 3、采用数码管显示抢答10秒倒计时,若有抢答直接结束,显示结果。4、抢答结束后用数码管显示抢答结果:抢答有效人编号;若有异常(提前抢答,犯规),显示抢答人编号和E,本次抢答结束 。5、设主持人控制键、复位键。 ...
  • 在这里插入代码片int a = 7; int b = 6; int c = 5; int d = 10; int e = 11; int f = 8; int g = 9; int p = 4; void setup() { for (int i=4; i<=11; i++) { pinMode (i,OUTPUT);... { 0,1,1
  • #倒计时七段数码管 import turtle def drawLine(draw): turtle.pendown() if draw else turtle.penup() turtle.fd(40) turtle.right(90) def drawDigits(digit): drawLine(True) if digit in [2,3,4,5,6,...
  • ***倒计时程序(抢答倒计时和回答倒计时都跳到改程序)*** COUNT: MOV R0,#00H;重置定时器中断次数 MOV TH1,#3CH MOV TL1,#0B0H;重置定时器RECOUNT:MOV A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6 ...
  • VHDL 交通灯+动态数码管倒计时

    千次阅读 2016-06-22 13:25:42
    然后让数码管显示倒计时。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; --因为实验箱的LED只有红和绿,所以黄灯就让红绿灯一起亮 Entity StreetLamp is port(clk :in std_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 635
精华内容 254
关键字:

数码管倒计时