找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2664|回复: 0
打印 上一主题 下一主题
收起左侧

源程序代码!99999.9秒显示!

[复制链接]
跳转到指定楼层
楼主
ID:72519 发表于 2015-1-21 18:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  

  1. #include<reg52.h>//数码管显示0123456789共阴
  2. #define uchar unsigned char
  3. uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
  4. void delay1ms(int n)
  5. {
  6.    int i;
  7.    while(n--)
  8.    {
  9.     for(i=0;i<200;i++);
  10.    
  11.    }
  12.    }
  13.   void main()
  14.   {  
  15.    char i=0;
  16.       
  17.     while(1)
  18.     {  if(i<11)
  19.       {
  20.     P2=table[i];
  21.         delay1ms(150);
  22.          i++;
  23.         }
  24.         else  i=0;
  25.       
  26.     }
  27.      }
  28. 定时器点亮一个led///
  29. #include<reg52.h>
  30. char count=0;
  31. void timer_0(void)interrupt 1
  32. {      
  33.     count++;
  34.    if(count==20)
  35.    
  36.    { P2=~P2;
  37. count=0;
  38.     TH0=(65536-50000)/256;
  39.    TL0=(65536-50000)%256;
  40. }
  41.    
  42. }

  43. void main()
  44.   {   
  45.   
  46.      
  47.    P2=0x00;
  48.    TMOD=0x01;
  49.       TH0=(65536-50000)/256;
  50.       TL0=(65536-50000)%256;
  51.       EA=1;
  52.       ET0=1;
  53.       TR0=1;
  54.   while(1)
  55.    {
  56.        }
  57.   
  58.    }
  59. 定时一百秒计数//
  60. #include<reg52.h>
  61. int second=0,count=0,munite=0;
  62. unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
  63.   void main()
  64.   {
  65.       TMOD=0x01;
  66.       TH0=(65536-50000)/256;
  67.       TL0=(65536-50000)%256;
  68.       EA=1;
  69.       ET0=1;
  70.       TR0=1;
  71.      while(1)
  72. {
  73.        }

  74.   }
  75.   void timer_0(void)interrupt 1
  76. {      
  77.   second++;
  78.   TH0=(65536-50000)/256;
  79.   TL0=(65536-50000)%256;  
  80.   if(second==20)
  81.   {
  82.    P1=table[count%10];
  83.    second=0;
  84.     count++;
  85.    
  86.    }
  87.    if(count==11)
  88.   {
  89. munite++;
  90.    P2=table[munite%10];
  91.      count=0;
  92. }
  93. }
  94. 99999.9秒的定时程序显示在6位7段数码管上(注意小数点的电平),p3口扫描送高电平加上一个上拉电阻增大驱动电流P0口送共阳极代码//
  95. #include<reg52.h>
  96.   #include<intrins.h>
  97.    sbit dot=P0^7;
  98.    int i,second=0;
  99.    unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
  100.    unsigned char disp[]={0,0,0,0,0,0};
  101.    void delayms( unsigned char n)
  102.    {
  103.      do
  104.   { _nop_();
  105.     _nop_();
  106.     _nop_();
  107.     _nop_();
  108.     _nop_();
  109.    }
  110.     while(--n);
  111.     }

  112.   void main()
  113.   {
  114.       TMOD=0x01;
  115.       TH0=(65536-50000)/256;
  116.       TL0=(65536-50000)%256;
  117.       EA=1;
  118.       ET0=1;
  119.       TR0=1;
  120.     while(1)
  121. {  
  122.    P3=0x80;
  123.    for(i=5;i>=0;i--)
  124.      {  
  125.    P3=_crol_(P3,1);
  126.   P0=table[disp[i]];
  127.   if(i==1)
  128.    dot=0;
  129.    delayms(10);
  130.      }
  131.    }
  132.   }
  133.   void timer_0(void)interrupt 1
  134. {  
  135.    
  136.   second++;
  137.   TH0=(65536-50000)/256;
  138.   TL0=(65536-50000)%256;  
  139.   if(second==2)
  140.   { second=0;
  141.     disp[0]=disp[0]+1;
  142.   }
  143.    else
  144.   return;
  145.     for(i=0;i<6;i++)
  146. {
  147.     if(disp[i]==10)
  148.    
  149.     {
  150.     disp[i]=0;
  151.     if(i!=5)
  152.     disp[i+1]=disp[i+1]+1;
  153.    }      
  154.    else break;
  155. }
  156. }
复制代码



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表