精华内容
下载资源
问答
  • 利用数码管显示时钟

    千次阅读 2016-10-06 22:34:12
    下面是利用数码管显示时钟的代码 #include #define SEGPORT P0 sbit seg_sel = P2^1;  sbit bit_sel = P2^0;  unsigned char segdata[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; ...
    

    下面是利用数码管显示的时钟的代码

    #include <reg52.h>

    #define SEGPORT P0

    sbit seg_sel = P2^1;   
    sbit bit_sel = P2^0;   

    unsigned char segdata[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
    unsigned char bitdata[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
    unsigned char disdata[8] = {0x3f,0x3f,0x40,0x3f,0x3f,0x40,0x03,0x03};   

    unsigned char s = 20;
    unsigned char m = 21;
    unsigned char h = 12;

    void display()
    {
       static unsigned char i = 0;
     
       SEGPORT = 0x0;   
      seg_sel = 1;
      seg_sel = 0;
         
      SEGPORT = 0xff;
      bit_sel = 1;
      bit_sel = 0;
           
      SEGPORT = disdata[i];
      seg_sel = 1;
      seg_sel = 0;
           
      SEGPORT = bitdata[i];
      bit_sel = 1;
      bit_sel = 0;
     
        i++;
     
       if(i == 8)
      {
         i = 0;
      }
    }

    void timer0_init()
    {
       EA = 1;
       TH0 = (65536 - 20000)/256;
       TL0 = (65536 - 20000)%256;
       TMOD |= 0x01;
       ET0 = 1;
       TR0 = 1;
    }

    void timer1_init()
    {
       EA = 1;
       TH1 = (65536 - 1000)/256;
       TL1 = (65536 - 1000)%256;
       TMOD |= 0x10;
       ET1 = 1;
       TR1 = 1;
    }


    void timer0_isr() interrupt 1
    {
       static unsigned char i = 0; 
     
       TH0 = (65536 - 20000)/256;
       TL0 = (65536 - 20000)%256;
     
       i++;
       if(50 == i)
      {
         i = 0;
         s++;
         if(60 == s)
        {
           s = 0;
           m++;
           if(60 == m)
          {
             m = 0;
             h++;
             if(24 == h)
            {
               h = 0;
            }
          }
        }
        }
      
      disdata[0] = segdata[h/10];
      disdata[1] = segdata[h%10];
     
       disdata[3] = segdata[m/10];
      disdata[4] = segdata[m%10];
     
       disdata[6] = segdata[s/10];
      disdata[7] = segdata[s%10];
      
    }

    void timer1_isr() interrupt 3
    {
     
       TH1 = (65536 - 1000)/256;
       TL1 = (65536 - 1000)%256;
     
       display();
    }

    void main()
    {
      
        timer0_init();
       timer1_init();
       while(1);
      
    }

    展开全文
  • 基于单片机89C51的数码管显示时钟设计基于单片机的数字时钟摘 要单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。但是却很少知道它的内部结构以及工作原理。由单片机作为数字...

    基于单片机89C51的数码管显示时钟设计

    基于单片机的数字时钟

    摘 要单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。但是却很少知道它的内部结构以及工作原理。由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行实现计时功能,将其时间数据经单片机输出,利用显示出来。通过键盘可以进行校时、定时等功能。输出设备显示器可以用液晶显示技术和数码管显示技术。 本系统利用单片机实现具有计时、校时等功能的数字时钟,是以单片机为核心元件同时采用LD数码管显示器动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。另外具有校时功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。关键词:单片机显示Digital clock system

    Abstract

    SCM in multi-function digital clock in the application is already very common, people on the digital clock function and are very familiar with the work order. But very few know that its internal structure and working principles. SCM as a digital clock from the core controller, it can achieve the clock signal timing, its time data by the MCU output, use of monitors displayed. Keyboard can be carried out at the school, timing, and other functions. Output devices can be used liquid crystal display monitors and digital technology to display the technology. ???? The system uses MCU with time, the school features such as the digital clock, SCM AT89C51 is also used as the core components of the LED digital display dynamic display "when" and "points" and "seconds" of the modern time device . Compared with the traditional mechanical watches, it has a precise path that intuitive, and other characteristics. In addition a school function, stopwatch function, and the timer function to achieve MCU use of the digital clock with programming flexibility to facilitate the expansion of functional advantages. Key words: digital clock system; SCM; LED Monitor

    目录

    设计任务书………………………………………………………………………….………I

    摘要…………………………………………………………………………………….……III

    ABSTRACT…………………………………………………………………………….……IV

    系统方案…………………………………………………………………………….…..I

    系统概述设计任务书……………………………………………………….……………I

    摘要……………………………………………………………………………….…….……III

    ABSTRACT…………………………………………………………………………………..IV

    系统方案………………………………………………………………………….………1

    1.1 系统概述………………………………………………………………….…………1

    1.2 方案论证…………………………………………………………………………….1

    1.3 扩展功能…………………………………………………………………………….2

    设计过程…………

    展开全文
  • 利用Python中的turtle图形库绘制七段数码管显示当前时间。代码如下:# coding:utf-8# 绘制七段数码管显示当前时间import timeimport turtle as tt# 绘制间隔def drawGap():tt.penup()tt.fd(5)# 绘制单段数码管...

    利用Python中的turtle图形库绘制七段数码管,显示当前时间。

    代码如下:

    # coding:utf-8

    # 绘制七段数码管,显示当前时间

    import time

    import turtle as tt

    # 绘制间隔

    def drawGap():

    tt.penup()

    tt.fd(5)

    # 绘制单段数码管

    def drawLine(draw):

    drawGap()

    if(draw):

    tt.pendown()

    else:

    tt.penup()

    tt.fd(50)

    drawGap()

    tt.right(90)

    # 绘制当前时间

    def drawDate(date):

    tt.pencolor("red")

    for i in date:

    if i == '+':

    tt.write("年", font = ("黑体", 25, "normal"))

    tt.pencolor("green")

    tt.fd(50)

    elif i == '-':

    tt.write("月", font=("黑体", 25, "normal"))

    tt.pencolor("blue")

    tt.fd(50)

    elif i == '*':

    tt.write("日", font=("黑体", 25, "normal"))

    tt.pencolor("purple")

    tt.fd(50)

    elif i == '=':

    tt.write("时", font=("黑体", 25, "normal"))

    tt.pencolor("yellow")

    tt.fd(50)

    elif i == '#':

    tt.write("分", font=("黑体", 25, "normal"))

    tt.pencolor("black")

    tt.fd(50)

    elif i == '$':

    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, 1, 3, 4, 5, 6, 7, 8, 9]:

    drawLine(True)

    else:

    drawLine(False)

    if cur_time in [0, 2, 3, 5, 6, 8, 9]:

    drawLine(True)

    else:

    drawLine(False)

    if cur_time in [0, 2, 6, 8]:

    drawLine(True)

    else:

    drawLine(False)

    tt.left(90)

    if cur_time in [0, 4, 5, 6, 8, 9]:

    drawLine(True)

    else:

    drawLine(False)

    if cur_time in [0, 2, 3, 5, 6, 7, 8, 9]:

    drawLine(True)

    else:

    drawLine(False)

    if cur_time in [0, 1, 2, 3, 4, 7, 8, 9]:

    drawLine(True)

    else:

    drawLine(False)

    tt.left(180)

    tt.penup()

    tt.fd(20)

    # 主函数

    def main():

    tt.setup(1600, 300, 200, 200)

    tt.penup()

    tt.fd(-730)

    tt.pensize(5)

    drawDate(time.strftime('%Y+%m-%d*%H=%M#%S$', time.localtime()))

    tt.hideturtle()

    tt.done()

    if __name__ == "__main__":

    main()

    结果如下:

    总结

    通过习相关知识,借鉴相关代码,最终实现本次设计。

    展开全文
  • 在八段数码管显示时间的驱动程序


    #include <reg52.h>
    
    #define SEGPORT P0
    sbit seg_select = P2^1;        
    sbit bit_select = P2^0;          
    
    unsigned char duanma[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};               
    unsigned char weima[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; 
    unsigned char TempData[8];
    
    unsigned char shi = 20, fen = 54, miao = 55;
    
    void display()
    {
    	  static unsigned char i = 0;
    	  SEGPORT = 0x0;
    	  seg_select = 1;
    	  seg_select = 0;
    	  
    	  SEGPORT = 0xff;
    	  bit_select = 1;
    	  bit_select = 0;
    	
    	  SEGPORT = TempData[i];
    	  seg_select = 1;
    	  seg_select = 0;
    	  
    	  SEGPORT = weima[i];
    	  bit_select = 1;
    	  bit_select = 0;
    	  
    		i++;
    	
    	  if(8 == i)
    		{
    				i = 0;
        }  
    }
    
    void time0_init(void)
    {
    	  EA = 1;                              //打开总中断
    	  TMOD |= 0x01;                        //设置定时器工作方式
    	  TH0 = (65536 - 20000) / 256;
    	  TL0 = (65536 - 20000) % 256;        //设置定时器初值
    	  ET0 = 1;                           //打开定时器中断
    	  TR0 = 1;
    
    }
    
    void timer0_isr() interrupt 1
    {
    	  static unsigned char i = 0;
              TH0 = (65536 - 20000) / 256;
    	  TL0 = (65536 - 20000) % 256;    //设置定时器初值,
    	  i++;	
    	  
    		if(50 == i)	
    		{
    				i = 0;
    				miao++;
    				if(60 == miao)
    				{
    			 
    						miao = 0;
    						fen++;
    				  
    						if(60 == fen)
    						{
    								fen = 0;
    								shi++;
    						  
    								if(24 == shi)
    								{
    										shi = 0;
    							  
    								}
    						}
    					}
    		}
    		
    		TempData[0] = duanma[shi / 10];
    		TempData[1] = duanma[shi % 10];
    		TempData[2] = 0x40;
    		TempData[3] = duanma[fen / 10];
    		TempData[4] = duanma[fen % 10];
    		TempData[5] = 0x40;
    		TempData[6] = duanma[miao / 10];
    		TempData[7] = duanma[miao % 10];
    }
    
    void time1_init(void)
    {
              EA = 1;
    	  TMOD |= 0x10;
    	  TH1 = (65536 - 20000) / 256;
    	  TL1 = (65536 - 20000) % 256;
    	  ET1 = 1;
    	  TR1 = 1;
    		
    	 
    }
    
    void time1_isr() interrupt 3
    {
              TH1 = (65536 - 1000) / 256;
    	  TL1 = (65536 - 1000) % 256;     
    	  display();
    		
    }               
    
    void main()
    {
    	 time0_init();
    	 time1_init();
    	 while(1)
    	 {
       
             }
    						   
    }
    


    展开全文
  • 一起来来了解吧 数字时钟设计飞起来 基于(数码管和LCD显示)两种显示方法一,针对初学者的要求1、掌握单片机定时/计数器...二,基础内内容: 基本要求(必须完成):用定时/计数器完成简单时钟功能,并利用数码管显示时...
  • 该设计利用DS1302获取时间数据,用4位led数码管显示模块显示当前的年月日信息,并且设计有一个按键,可以切换时间数据。 2、 使用主要器件 1、 Arduino Uno控制板 2、 TM1637 4位数码管 3、 DS1302时钟模块 4、 按键...
  • 这种方法基于一种特殊的嵌入式系统-SOPC可编程片上系统,以SOPC的应用为基础平台,利用Quartus II软件构建硬件系统,并利用NiosⅡ DES软件编程,使其运行在DE1上,通过程序的控制使数码管显示,从而实现时钟的功能。...
  • 3.2流程图51hei.png (3.52 KB, 下载次数: 0)2020-11-19 17:36 上传51hei.png (13.35 KB, 下载次数: 0)2020-11-19 17:36 上传3.3设计思路利用单片机16位定时/计数器方式,TMOD为0X01。每1ms计数一次,共计1000次即1s...
  • 旋转编码器数码管显示程序,使用TM1640数码管驱动芯片,本模板加载了STM32F103内部的RCC时钟设置,并加入了利用滴答定时器的延时函数。
  • 利用8位数码管显示时间,原理与4位数码管显示的基本一样仿真图:程序源代码:本程序已经通过在线软件仿真和硬件制作.org0000h;程序开始入口地址sjmpmain;跳转至主程序org000bh;T0中断入口地址ljmpinti0;跳转至T0中断...
  • 基于数码管的简单时钟系统

    千次阅读 2016-01-14 10:43:20
    主要实现:能够在数码管显示时,分,秒; 设置闹钟(蜂鸣器); 利用51单片机的定时器功能进行计时。 说明:在程序的编写过程中无法实现减一的操作,没按一次减一的键总是不止一次地减一。这个问题尚未解决,...
  • # coding:utf-8# 绘制七段数码管显示当前时间import timeimport turtle as tt# 绘制间隔def drawGap():tt.penup()tt.fd(3)# 绘制单段数码管def drawLine(draw):drawGap()if(draw):tt.pendown()else:tt.penup()tt....
  • 说明: # 本程序加载了STM32F103内部的RCC...数码管时钟显示 年月日时间可调 可设置闹钟,到点蜂鸣器响 温度监控,设定温度值达到,蜂鸣器报警,继电器工作 注意: 温度值读取需要时间,可能存在温度刷新不及时问题
  • 利用传感器将压力转换为电信号后,在经过ADC0832的模数转换器经A/D转换后由单片机进行有效处理,然后用数码管进行显示。 3.2 流程框图 3.3 单片机最小系统 由AT89C52单片机、时钟电路、复位 电路组成AT89C51是一种...
  • 正在学习51的数码管以及中断,打算利用六位数码管实现一个时钟的功能。 但使用数码管输出时,如果不添加延时语句,那么一直有显示混乱的现象,有时完全无法分辨清楚数字。 如果在传送完数据以后延时1ms,显示混乱...
  • 数码管动态扫描

    2019-07-07 13:41:56
    动态显示中,利用人眼视觉暂留在20ms内,进行动态扫描,由于系统时钟频率为50MHz,数码管扫描太快,会导致三极管来不及通断,光线会变暗,所以采用时钟分频。 段选,采用八选一多路器,选择的结果进行查找表(4输入...
  • LED数码管的学习

    千次阅读 2011-01-20 21:43:00
    对于STC89C52来说,使用的是共阳极数码管。在这个部分主要掌握的是:1、数码管段显示的编码,即从0~f数据的十六...静态显示方式有两种实现方式:第一是通过串行接口扩展LED显示,其原理是利用单片机串行接口的
  • FPGA实战——动态数码管rtl文件模块设计:计数模块,产生数码管的数据数码管显示驱动模块时钟分频数字转码(二进制—>BCD码)位选信号切换ucf文件 **任务:**使用开发板上的 6 位数码管以动态方式从 0 开始计数,...
  • 此时钟利用的是定时器的简单时钟,可以利用独立键盘进行分,时的调整,并利用数码管进行显示 #include #include #define uint unsigned int #define uchar unsigned char sbit wela=P2^7; sbit dula=P2^6; sbit s2=...
  • 本实验是通过7个IO口控制一个共阳7段数码管,分别从0~9依次显示。时间间隔200ms刷新一次。系统时钟源是内部8MHz晶振,具体原因上一期已经讲述过了,时钟倍频位40MHz,使用了TIM2定时器,数码管刷新在TIM2中断函数中...
  • 参照实验二数码管的电路原理图,利用数码管的显示原理以及定时器的工作原理,结合按键的应用,编程实现数码管显示时钟,并具有时钟调节功能。 四、实验内容及步骤 (一)实验内容利用所学的单片机定时器中断知识及...
  • 要求:(1)时间累进最小单位为秒,数码管为动态显示,共阳共阴不限;(2)具有时钟设置功能,参照如下要求设置:A、“设置”键按下,进入设置状态;B、“选择/移位”键按下,选定对时、对分、对秒设置;C、用上、下...
  • 基于AT89C52单片机做的简易时钟,通过数码管显示小时,分钟,秒,利用定时器来精确计时,可以通过按键调整时分秒的数字,另外可在代码里设置闹铃时间,到达设定值蜂鸣器响起。代码清晰,有备注,方便初学者学习。
  • 数字时钟显示及修改 实验目的 掌握定时器的使用、按键检测及数码管的动态显示。 实验内容 1、绘制如下proteus仿真图 2、利用定时器的定时功能,用6位数码管实现时、分、秒的显示及更新; 3、三个按键实现时间的...
  • 时钟综合实验,南京理工大学紫金学院单片机实验报告.doc 单片机实验报告实验名称时钟综合实验姓名学号班级通信时间201312南京理工大学紫金学院电光系一、实验目的1、学习PROTEUS软件基本使用方法;2、掌握定时/计数器...
  • 利用定时器、计数器T1产生定时时钟,由P1口控制8个发光二极管,使8个指示灯依次一次一次闪动,闪动频率为10次/秒,循环 //2.用定时器以间隔500ms在6位数码管依次显示0,1,2,3,。。。C,D,E,F,重复 #include #...
  • 2. 两位数码管显示小时并满24进位,两位显示分钟和两位显示秒钟的数码管满60进位。 3. 制作子电路芯片实现7490/74390(计数/分频)、4511/7448(7段数码管译码)的功能。不可以使用logisim自带工具:计数器(Counter...
  • 本设计利用FPGA基于CYCLONE E芯片,利用硬件描述语言Verilog HDL通过配置DS1302芯片进行简单的实时时钟设计,结合数码管显示,可以正常显示年月日,时分秒和周,并通过两个按键的调整来切换时间的不同显示方式。
  • 基于单片机的简易数字时钟仿真,课程设计结果。 (1)时间可调整。 (2)有闹钟功能。...(3)利用数码管或者液晶显示器显示时间(XX-XX-XX 由左向右分别为:时、分、秒,且每秒更新一次)。 (4)整点报时
  • 利用VHDL语言,实现电子计时时钟,要求能够显示分钟、秒钟,显示输出为共阴极数码管,要求: 1、电子计时时钟具有清零功能 2、驱动的数码管为共阴极数码管 1.2要求: 1.2.1 基本要求 1、电子计时时钟具有清零功能 2...

空空如也

空空如也

1 2 3 4 5 6
收藏数 104
精华内容 41
关键字:

利用数码管显示时钟