欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1078|回復: 0
打印 上一主題 下一主題
收起左側

51單片機實現電子表程序與Proteus仿真原理圖

[復制鏈接]
跳轉到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include<reg51.h>
  2. #include"key.c"
  3. unsigned char i,j,k;
  4. unsigned char seven_seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  5. unsigned char flash;
  6. sbit LED=P1^0;
  7. void timer0_isr(void)interrupt 1
  8. {
  9.         TH0=0xF8;
  10.         TL0=0x2F;
  11.         i++;
  12.         if(i>=250)
  13.         {
  14.                 flash=~flash;
  15.                 i=0;
  16.                 j++;
  17.         }
  18.         if(j>=2)
  19.         {
  20.                 sec++;
  21.                 j=0;
  22.         }
  23.         if(sec>=60)
  24.         {
  25.                 min++;
  26.                 sec=0;
  27.         }
  28.         if(min>=60)
  29.         {
  30.                 hour++;
  31.                 min=0;
  32.         }
  33.         if(hour>=24)
  34.         {
  35.                 hour=0;
  36.         }
  37.         P0=0xff;
  38.         if(key1_flag==0)
  39.         {
  40.                 switch(k)
  41.                 {
  42.                         case 0:P0=seven_seg[sec%10];P2=~0x01;break;
  43.                         case 1:P0=seven_seg[sec/10];P2=~0x02;break;
  44.                         case 2:P0=seven_seg[min%10] &(0x7F | flash);P2=~0x04;break;
  45.                         case 3:P0=seven_seg[min/10];P2=~0x08;break;
  46.                         case 4:P0=seven_seg[hour%10] & (0x7F | flash);P2=~0x10;break;
  47.                         case 5:P0=seven_seg[hour/10];P2=~0x20;break;
  48.                 }
  49.         }
  50.         if(key1_flag==1)
  51.         {
  52.                 j=0;
  53.                 switch(k)
  54.                 {
  55.                         case 0:P0=seven_seg[sec_t%10];P2=~0x01;break;
  56.                         case 1:P0=seven_seg[sec_t/10];P2=~0x02;break;
  57.                         case 2:P0=seven_seg[min_t%10];P2=~0x04;break;
  58.                         case 3:P0=seven_seg[min_t/10];P2=~0x08;break;
  59.                         case 4:P0=seven_seg[hour_t%10] | flash;P2=~0x10;break;
  60.                         case 5:P0=seven_seg[hour_t/10] | flash;P2=~0x20;break;
  61.                 }
  62.         }
  63.         if(key1_flag==2)
  64.         {
  65.                 j=0;
  66.                 switch(k)
  67.                 {
  68.                         case 0:P0=seven_seg[sec_t%10];P2=~0x01;break;
  69.                         case 1:P0=seven_seg[sec_t/10];P2=~0x02;break;
  70.                         case 2:P0=seven_seg[min_t%10] | flash;P2=~0x04;break;
  71.                         case 3:P0=seven_seg[min_t/10] | flash;P2=~0x08;break;
  72.                         case 4:P0=seven_seg[hour_t%10];P2=~0x10;break;
  73.                         case 5:P0=seven_seg[hour_t/10];P2=~0x20;break;
  74.                 }
  75.         }
  76.         if(key1_flag==3)
  77.         {
  78.                 j=0;
  79.                 switch(k)
  80.                 {
  81.                         case 0:P0=seven_seg[sec_t%10] | flash;P2=~0x01;break;
  82.                         case 1:P0=seven_seg[sec_t/10] | flash;P2=~0x02;break;
  83.                         case 2:P0=seven_seg[min_t%10];P2=~0x04;break;
  84.                         case 3:P0=seven_seg[min_t/10];P2=~0x08;break;
  85.                         case 4:P0=seven_seg[hour_t%10];P2=~0x10;break;
  86.                         case 5:P0=seven_seg[hour_t/10];P2=~0x20;break;
  87.                 }
  88.         }
  89.         if(key1_flag==4)
  90.         {
  91.                 j=0;
  92.                 switch(k)
  93.                 {
  94.                         case 0:P0=seven_seg[min_r%10];P2=~0x01;break;
  95.                         case 1:P0=seven_seg[min_r/10];P2=~0x02;break;
  96.                         case 2:P0=seven_seg[hour_r%10] | flash;P2=~0x04;break;
  97.                         case 3:P0=seven_seg[hour_r/10] | flash;P2=~0x08;break;
  98.                         case 4:P0=0xff;P2=~0x10;break;
  99.                         case 5:P0=0x0c;P2=~0x20;break;
  100.                 }
  101.         }
  102.         if(key1_flag==5)
  103.         {
  104.                 j=0;
  105.                 switch(k)
  106.                 {
  107.                         case 0:P0=seven_seg[min_r%10] | flash;P2=~0x01;break;
  108.                         case 1:P0=seven_seg[min_r/10] | flash;P2=~0x02;break;
  109.                         case 2:P0=seven_seg[hour_r%10];P2=~0x04;break;
  110.                         case 3:P0=seven_seg[hour_r/10];P2=~0x08;break;
  111.                         case 4:P0=0xff;P2=~0x10;break;
  112.                         case 5:P0=0x0c;P2=~0x20;break;
  113.                 }
  114.         }
  115.         k++;
  116.         if(k>=6)k=0;
  117. }

  118. void timer0_init(void)
  119. {
  120.         TMOD=0x01;
  121.         TH0=0xF8;
  122.         TL0=0x2F;
  123.         EA=1;
  124.         ET0=1;
  125.         TR0=1;
  126. }

  127. void main()
  128. {
  129.         timer0_init();
  130.         while(1)
  131.         {
  132.                 key();
  133.                 if(min==min_r && hour==hour_r)
  134.                 LED=1;
  135.                 else
  136.                 LED=0;
  137.         }
  138.        
  139. }
復制代碼

所有資料51hei附件下載:
電子表.7z (33.09 KB, 下載次數: 9)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

無效樓層,該帖已經被刪除
無效樓層,該帖已經被刪除
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表