数码管显示数字钟程序

发布者:WhisperingLight最新更新时间:2018-01-10 来源: eefocus关键字:数码管显示  数字钟 手机看文章 扫描二维码
随时随地手机看文章

#include 
#define uint unsigned int 
   uint DIDA=0,SEC=0,MIN=0,HOUR=0,h=0;  
   code char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 

  void timer0() interrupt 1 using 1  
    {  
     TR0=0; 
     TH0=0x3c; 
     TL0=0xb0; 
     DIDA++; 
     TR0=1; 
    }             
   main() 
{  uint p,k; 
   uint KEY(); 
   void    CONV(); 
   void ITX();     
   TMOD=0x01; 
   TH0=0x3c;TL0=0xb0;    
   ET0=1;EA=1; 
   TR0=1; 

  while(1) 
 {   if(h==0) 
   {  
     P2=0x81; 
     P0=0x80; 
     for(p=0;p<200;p++); 
   } 
   else  
    { 
      P2=0x81; 
     P0=0x00; 
     for(p=0;p<200;p++); 
    } 

     CONV(); 
     ITX(); 
     P1=0x0f; 
     if(P1!=0x0f) 
   { for(p=0;p<=10000;p++); 
     if(P1!=0x0f) 
     { k=KEY(); 
       if(k==0) 
       {  MIN++; 
           if(MIN==60) 
           {  MIN=0; 
                 HOUR++; 
              if(HOUR==24) 
                  HOUR=0; 
              } 
       } 
       else if(k==4) 
       {  HOUR++; 
          if(HOUR==24) 
             HOUR=0; 
       } 
     } 
   } 
  } 
}  
    void CONV() 
{  
    if(DIDA==20) 
    { 
      DIDA=0; 
      SEC++; 
      h=!h; 
      if(SEC==60) 
       { SEC=0; 
            MIN++; 
           if(MIN==60) 
           {  MIN=0; 
                 HOUR++; 
              if(HOUR==24) 
                  HOUR=0; 
              } 
       } 
    } 


      void ITX() 
{      uint i,j,k,e,p; 
      i=HOUR/10; 
      j=HOUR%10; 
      k=MIN/10; 
      e=MIN%10; 
      P2=0x80; 
      P0=tab[j]; 
      for(p=0;p<200;p++); 
      P2=0x81; 
      P0=tab[i]; 
      for(p=0;p<200;p++); 
      P2=0x82; 
      P0=tab[e]; 
      for(p=0;p<200;p++); 
      P2=0x83; 
      P0=tab[k]; 
      for(p=0;p<200;p++); 


  uint KEY() 
{  uint i,k; 
    unsigned char code tab[16]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb, 
                      0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77}; 
        P1=0x0f;    
          i=P1; 
        P1=0xf0;         
        i=i|P1; 
        for(k=0;tab[k]!=i&&k<16;k=k+1); 
          return (k); 


关键字:数码管显示  数字钟 引用地址:数码管显示数字钟程序

上一篇:键盘显示模块调试程序
下一篇:单片机进行脉宽调制(PWM) 直流电机调速测试程序

推荐阅读最新更新时间:2024-03-16 15:52

PIC16F877单片机DS18B20数码管温度计仿真程序 可显示负温度
电路原理图如下: //********************************************************* // 实现的功能:数码管显示实时温度,支持负温度 // 芯片PIC16F877 // XT:4MHZ //********************************************************* #include pic.h //包含单片机内部资源预定义 #define LVP 0x3f39 // 晶振:XT;代码:没有代码保护;上电延时定时器关闭; // 低电压复位禁止;看门狗关闭 ;低电压编程禁止 __CONFIG (XT & UNPR
[单片机]
PIC16F877单片机DS18B20<font color='red'>数码管</font>温度计仿真程序 可<font color='red'>显示</font>负温度
HT48R50A的7段数码管显示程序
; ******************************************** ; Function : 7段数码管显示程序 * ; MICroProcessor : HT48R50A-1/28SKDIP-A * ; Author: www.picavr.com * ; Crystal : 4MHz * ; ******************************************** #INCLUDE HT48R50A-1.INC ;--------------------------------------------- D
[单片机]
HT48R50A的7段<font color='red'>数码管</font><font color='red'>显示</font>程序
4*4键盘输入在LED数码管上的显示
【实验要求】   1)在实验一基础上添加4*4键盘,使键盘输入的操作通过 LED 给予显示。   2)键盘实现的功能如键盘图。 【实验目的】   1)了解4*4键盘的使用方法   2)进一步了解键唤醒的使用方法。 【实验设备】   1)装有u’nsp IDE仿真环境的PC机一台。   2)μ’nSP十六位  单片机  实验箱一个。 【实验原理】   通过对键盘的操作在LED 数码管 上给予显示及相应操作。键盘扫描在时基中断中进行   键盘界面如下:  7 8 99 F1 44 55 66 F2 11 22 33 F33 DEL 00 F44 ENT   0~9:数字键  DEL:
[嵌入式]
用C51编写的74HC595驱动数码管通用程序,可显示浮点数
#include reg52.h #include intrins.h /*used for _nop_() function*/ sbit SDATA_595 =P1^3 ;/*串行数据输入*/ sbit SCLK_595 = P1^1;/*移位时钟脉冲*/ sbit RCK_595 =P1^2 ; /*输出锁存器控制脉冲*/ #define AD_WR WR #define AD_RD RD #define AD_INTR INT0 /*51的相应端口连接ADC0804的三个控制端口*/ //#define Vin_Max 5 //////////////////////////////////////// stat
[单片机]
BASCOM-AVR 4个数码管同时显示数字0-9
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
[单片机]
BASCOM-AVR 4个<font color='red'>数码管</font>同时<font color='red'>显示</font>数字0-9
用51单片机显示动态数码管
#include reg51.h //头文件 sbit SMGA=P2^2;//位定义 sbit SMGB=P2^3; sbit SMGC=P2^4; unsigned int table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f ,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴数码管字形码 void delay()//延时函数 { unsigned char a,b; for(a=0;a 20;a++) for(b=0;b 20;b++); } void xshs() //数码管驱动函数 {
[单片机]
8位数码管显示电子时钟c51单片机程序
/* 8位数码管显示 时间格式 05—50—00 标示05点50分00秒 S1 用于小时加1操作 S2 用于小时减1操作 S3 用于分钟加1操作 S4 用于分钟减1操作 */ #include reg52.h sbit KEY1=P3^0; //定义端口参数 sbit KEY2=P3^1; sbit KEY3=P3^2; sbit KEY4=P3^3; sbit LED=P1^2; //定义指示灯参数 code unsigned char tab ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极数码管0—9 unsigned char
[单片机]
单片机实验----控制数码管的动态显示
本次实验任务如下: 一、动态显示与静态显示的比较 1.什么是动态显示 驱动电路可以使数码管正常显示数据,数码管的驱动方式有两种:动态显示驱动和静态显示驱动。 动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起。 另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。 当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制。 2.什么是静态显示 静态显示驱动静态驱动也称直流驱动。 静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动。 3.优缺点对比 二、
[单片机]
单片机实验----控制<font color='red'>数码管</font>的动态<font color='red'>显示</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved