久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機的數字時鐘PCB源程序與isis仿真設計

[復制鏈接]
跳轉到指定樓層
樓主
Altium Designer畫的數字時鐘原理圖和PCB圖如下:(51hei附件中可下載工程文件)


數字時鐘isis仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


源程序代碼如下:(原理圖及論文見附件)
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit qingling=P1^0;       
  5. sbit tiaofen=P1^1;               
  6. sbit tiaoshi=P1^2;       
  7. sbit sounder=P1^3;               

  8. uint a,b;
  9. uchar hour,minu,sec,   
  10.       hour0,minu0,sec0,
  11.           hour1,minu1,sec1;
  12.           h1,h2,m1,m2,s1,s2,
  13.           k,s;
  14.           
  15. uchar code select[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
  16. uchar code table[]=        {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

  17. void keyscan();
  18. void init();
  19. void delay(int z);
  20. void display(uchar,uchar,uchar);
  21. void sounde();

  22.          
  23. void main()
  24. {
  25.         init();
  26.         while(1)
  27.         {                                 
  28.                 while(TR1)
  29.                 {
  30.                
  31.                         keyscan();                       
  32.                         while(s==1)                               
  33.                         {                                                                         
  34.                                 keyscan();                                                  
  35.                                 display(hour1,minu1,sec1);
  36.                         }
  37.                          display(hour0,minu0,sec0);               
  38.                        
  39.                         while(k)       
  40.                         {
  41.                                  display(hour,minu,sec);       
  42.                         }
  43.                     
  44.                 }
  45.         }

  46. }


  47. void init()
  48. {
  49.         a=0;
  50.         b=0;
  51.         k=0;
  52.         s=0;
  53.         hour0=0;
  54.         minu0=0;
  55.         sec0=0;
  56.         hour=0;
  57.         minu=0;
  58.         sec=0;
  59.         hour1=0;
  60.         minu1=0;
  61.         sec1=0;

  62.         TMOD=0x11;                                 
  63.         TH0=(65536-5000)/256;
  64.         TL0=(65536-5000)%256;
  65.         TH1=(65536-50000)/256;
  66.         TL1=(65536-50000)%256;
  67.        
  68.         EA=1;
  69.         EX0=1;                 
  70.         EX1=1;               
  71.         ET0=1;
  72.         ET1=1;
  73.         IT0=1;                 
  74.         IT1=1;

  75.         PX0=1;
  76.         PX1=1;
  77.        
  78.         TR0=0;                         
  79.         TR1=1;                 
  80. }


  81. void timer0_int() interrupt 1       
  82. {
  83.         TH0=(65536-5000)/256;
  84.         TL0=(65536-5000)%256;
  85.         a++;
  86.         if(a==2)
  87.         {
  88.                 a=0;
  89.                 sec++;
  90.                 if(sec==100)
  91.                         {
  92.                                 sec=0;               
  93.                                 minu++;
  94.                                 if(minu==60)
  95.                                 {
  96.                                         minu=0;                       
  97.                                         hour++;
  98.                                         if(hour==60)         
  99.                                         {
  100.                                                 hour=0;
  101.                                         }
  102.                                 }
  103.                         }
  104.         }
  105.        
  106. }


  107. void ex0_int() interrupt 0
  108. {               
  109.         k++;
  110.         if(k==3)
  111.         k=0;
  112.         if(k==1)
  113.         {
  114.                 TR0=~TR0;
  115.                 if(TR0==1)
  116.                 {                         
  117.                         hour=0;
  118.                         minu=0;
  119.                         sec=0;               
  120.                 }
  121.         }
  122.         if(k==2)
  123.         {
  124.                 TR0=~TR0;
  125.         }         
  126. }


  127. void ex1_int() interrupt 2
  128. {
  129.         s++;
  130.         if(s==3)
  131.         s=0;
  132. }


  133. void timer1_int() interrupt 3                 
  134. {
  135.         TH1=(65536-50000)/256;
  136.         TL1=(65536-50000)%256;
  137.         if(s==2)
  138.         {
  139.                 if(hour1==hour0 && minu0==minu1)
  140.                 sounde();
  141.         }
  142.         b++;
  143.         if(b==20)
  144.         {
  145.                 b=0;
  146.                 sec0++;
  147.          if(sec0==60)
  148.            {  
  149.               sec0=0;
  150.                 minu0++;
  151.               if(minu0==60)
  152.                {
  153.                    minu0=0;
  154.                    hour0++;
  155.                    if(hour0==24)
  156.                          hour0=0;
  157.                         
  158.                }
  159.            }
  160.                           
  161.         }
  162.                        
  163. }



  164. void keyscan()
  165. {
  166.        
  167.         if(s==1)
  168.         {
  169.                 if(qingling==0)
  170.                 {
  171.                         delay(1000);
  172.                         if(qingling==0)
  173.                         {
  174.                                 sec1=0;
  175.                                 minu1=0;
  176.                                 hour1=0;
  177.                         }
  178.                 }
  179.                 if(tiaofen==0)
  180.                 {
  181.                         delay(1000);
  182.                         if(tiaofen==0)
  183.                         {
  184.                                 minu1++;
  185.                                 if(minu1==60)
  186.                                 {
  187.                                         minu1=0;
  188.                                 }
  189.                                 while(!tiaofen);
  190.                                
  191.                         }
  192.                 }
  193.                 if(tiaoshi==0)
  194.                 {
  195.                         hour1++;
  196.                         if(hour1==24)
  197.                         {
  198.                                 hour1=0;
  199.                         }
  200.                         while(!tiaoshi);
  201.                        
  202.                 }
  203.         }
  204.         else                               
  205.         {
  206.                  if(qingling==0)
  207.                 {
  208.                         delay(1000);
  209.                         if(qingling==0)
  210.                         {
  211.                                 sec0=0;
  212.                                 minu0=0;
  213.                                 hour0=0;
  214.                         }
  215.                 }
  216.                 if(tiaofen==0)
  217.                 {
  218.                         delay(1000);
  219.                         if(tiaofen==0)
  220.                         {
  221.                                 minu0++;
  222.                                 if(minu0==60)
  223.                                 {
  224.                                         minu0=0;
  225.                                 }
  226.                                 while(!tiaofen);
  227.                        
  228.                         }
  229.                 }
  230.                 if(tiaoshi==0)
  231.                 {
  232.                         hour0++;
  233.                         if(hour0==24)
  234.                         {
  235.                                 hour0=0;
  236.                         }
  237.                         while(!tiaoshi);
  238.                        
  239.                 }
  240.         }       
  241. }

  242. void display(uchar hour,uchar minu,uchar sec)
  243. {
  244.         h1=hour/10;
  245.         h2=hour%10;
  246.         m1=minu/10;
  247.         m2=minu%10;
  248.         s1=sec/10;
  249.         s2=sec%10;

  250.         P0=0xff;
  251.         P2=table[h1];
  252.         P0=select[7];
  253.         delay(100);

  254.         P0=0xff;
  255.         P2=table[h2];
  256.         P0=select[6];
  257.         delay(100);

  258.         P0=0xff;
  259.         P2=0x40;;
  260.         P0=select[5];
  261.         delay(100);

  262.         P0=0xff;
  263.         P2=table[m1];
  264.         P0=select[4];
  265.         delay(100);

  266.         P0=0xff;
  267.         P2=table[m2];
  268.         P0=select[3];
  269.         delay(100);

  270.         P0=0xff;
  271.         P2=0x40;
  272.         P0=select[2];
  273.         delay(100);

  274.         P0=0xff;
  275.         P2=table[s1];
  276.         P0=select[1];
  277.         delay(100);

  278.         P0=0xff;
  279.         P2=table[s2];
  280.         P0=select[0];
  281.         delay(100);

  282. }


  283. void sounde()
  284. {
  285.         sounder=~sounder;       
  286. }

  287. void delay(int z)
  288. {
  289.         while(z--);
  290. }
復制代碼



全部資料51hei下載地址:
鬧鐘秒表.zip (479.45 KB, 下載次數: 68)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:451637 發表于 2018-12-25 19:44 | 只看該作者
這個isis能不能用proteus
回復

使用道具 舉報

板凳
ID:165792 發表于 2019-1-9 20:14 | 只看該作者
謝謝分享
回復

使用道具 舉報

地板
ID:465507 發表于 2019-1-9 23:44 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

5#
ID:846830 發表于 2020-11-21 13:03 | 只看該作者
不全吧
回復

使用道具 舉報

6#
ID:553941 發表于 2021-1-4 14:47 | 只看該作者
pcb和仿真都對不上,想下載的先考慮考慮
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av夜夜操| 亚洲视频在线观看 | 欧美日韩在线视频观看 | 日韩成人性视频 | 一级日批片 | 成人精品一区亚洲午夜久久久 | 亚洲美乳中文字幕 | 国产精品久久久久久久一区二区 | 噜噜噜噜狠狠狠7777视频 | 精品国产91| 天天天堂 | 日本人做爰大片免费观看一老师 | 日韩欧美在线免费观看 | 人人射人人 | 久在线| 超碰人人做 | 99re在线视频观看 | 亚洲色欲色欲www | 日本一区二区三区在线观看 | 久久久久久高潮国产精品视 | 日韩精品一区二区三区在线播放 | 久久91av | 在线欧美 | 男人av的天堂 | 黄色毛片一级 | 国产免费一区二区三区免费视频 | 国产精品久久a | 国产精品国产三级国产aⅴ中文 | 亚洲最大的成人网 | 国产精品3区 | 午夜激情在线 | 中文字幕高清 | 日韩精品在线播放 | 中文无码日韩欧 | 色婷综合网 | 久久黄色精品视频 | 人人干人人艹 | 国产精品国产a级 | 一区二区不卡 | 日日操操 | 黄色av网站在线观看 |