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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5113|回復(fù): 4
收起左側(cè)

基于51單片機(jī),1602的簡易時鐘設(shè)計 原理圖+程序

[復(fù)制鏈接]
ID:112627 發(fā)表于 2016-4-6 23:43 | 顯示全部樓層 |閱讀模式
初學(xué)者菜鳥一個,程序?qū)懙牟皇呛芎茫韴D如下:
簡易時鐘.001.jpg 簡易時鐘.002.jpg
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit rs=P3^7;
  5. sbit lcden=P3^6;
  6. sbit s1=P3^0;
  7. sbit s2=P3^1;
  8. sbit s3=P3^2;
  9. uchar count,s1num;
  10. char miao,fen,shi,ri=1,yue=1,nian=15;
  11. uchar code table2[]="(^-^)Made by Ke ";
  12. uchar code table[]=" Welcome to use ";
  13. uchar code table0[]="  2015-01-01  KE";
  14. uchar code table1[]="    00:00:00";
  15. void delay(uint xms)
  16. {
  17.         uint i,j;
  18.         for(i=xms;i>0;i--)
  19.                 for(j=110;j>0;j--);
  20. }

  21. void write_com(uchar com)
  22. {
  23.         rs=0;
  24.         lcden=0;
  25.         P0=com;
  26.         delay(5);
  27.         lcden=1;
  28.         delay(5);
  29.         lcden=0;
  30. }

  31. void write_date(uchar date)
  32. {
  33.         rs=1;
  34.         lcden=0;
  35.         P0=date;
  36.         delay(5);
  37.         lcden=1;
  38.         delay(5);
  39.         lcden=0;
  40. }

  41. void init()
  42. {
  43.         uchar num;
  44.         lcden=0;
  45.         write_com(0x38);
  46.         write_com(0x0c);
  47.         write_com(0x06);
  48.         write_com(0x01);
  49.         write_com(0x80+0x10);
  50.         for(num=0;num<16;num++)
  51.                 {
  52.                         write_date(table[num]);
  53.                         delay(5);
  54.                 }
  55.         for(num=0;num<16;num++)
  56.                 {
  57.                         write_com(0x18);
  58.                         delay(200);
  59.                 }
  60.         write_com(0x01);
  61.         write_com(0x80+0x40+0x10);
  62.         for(num=0;num<16;num++)
  63.                 {
  64.                         write_date(table2[num]);
  65.                         delay(5);
  66.                 }
  67.         for(num=0;num<16;num++)
  68.                 {
  69.                         write_com(0x18);
  70.                         delay(200);
  71.                 }
  72.         write_com(0x01);
  73.         write_com(0x80);
  74.         for(num=0;num<16;num++)
  75.                 {
  76.                         write_date(table0[num]);
  77.                         delay(5);
  78.                 }
  79.         write_com(0x80+0x40);
  80.         for(num=0;num<12;num++)
  81.                 {
  82.                         write_date(table1[num]);
  83.                         delay(5);
  84.                 }
  85.         TMOD=0x01;
  86.         TH0=(65536-50000)/256;
  87.         TL0=(65536-50000)%256;
  88.         EA=1;
  89.         ET0=1;
  90.         TR0=1;               
  91. }

  92. void write_sfm(uchar add,uchar date)
  93. {
  94.         uchar shi,ge;
  95.         shi=date/10;
  96.         ge=date%10;
  97.         write_com(0x80+0x40+add);
  98.         write_date(0x30+shi);
  99.         write_date(0x30+ge);
  100. }
  101. void write_sfm0(uchar add,uchar date)
  102. {
  103.         uchar shi,ge;
  104.         shi=date/10;
  105.         ge=date%10;
  106.         write_com(0x80+add);
  107.         write_date(0x30+shi);
  108.         write_date(0x30+ge);
  109. }

  110. void keyscan()
  111. {
  112.         if(s1==0)
  113.         {
  114.                 delay(5);
  115.                 if(s1==0)
  116.                 {
  117.                         T0=0;
  118.                         s1num++;
  119.                         while(!s1);
  120.                         if(s1num==1)
  121.                         {
  122.                                 write_com(0x80+0x40+10);
  123.                                 write_com(0x0f);
  124.                         }
  125.                         if(s1num==2)
  126.                         {
  127.                                 write_com(0x80+0x40+7);        
  128.                         }
  129.                         if(s1num==3)
  130.                         {
  131.                                 write_com(0x80+0x40+4);        
  132.                         }
  133.                         if(s1num==4)
  134.                         {
  135.                                 write_com(0x80+10);        
  136.                         }
  137.                         if(s1num==5)
  138.                         {
  139.                                 write_com(0x80+7);        
  140.                         }
  141.                         if(s1num==6)
  142.                         {
  143.                                 write_com(0x80+4);        
  144.                         }
  145.                         if(s1num==7)
  146.                         {
  147.                                 s1num=0;
  148.                                 T0=1;
  149.                                 write_com(0x0c);        
  150.                         }
  151.                 }
  152.         }
  153.         if(s1num!=0)
  154.         {
  155.                 if(s2==0)
  156.                 {
  157.                         delay(5);
  158.                         if(s2==0)
  159.                         {
  160.                                 while(!s2);
  161.                                 if(s1num==1)
  162.                                 {
  163.                                         miao++;
  164.                                         if(miao>=60)
  165.                                                 miao=0;
  166.                                         write_sfm(10,miao);
  167.                                         write_com(0x80+0x40+10);
  168.                                 }
  169.                                 if(s1num==2)
  170.                                 {
  171.                                         fen++;
  172.                                         if(fen>=60)
  173.                                                 fen=0;
  174.                                         write_sfm(7,fen);
  175.                                         write_com(0x80+0x40+7);
  176.                                 }
  177.                                 if(s1num==3)
  178.                                 {
  179.                                         shi++;
  180.                                         if(shi==24)
  181.                                                 shi=0;
  182.                                         write_sfm(4,shi);
  183.                                         write_com(0x80+0x40+4);
  184.                                 }
  185.                                 if(s1num==4)
  186.                                 {
  187.                                         ri++;
  188.                                         if(yue==2&&ri==29)
  189.                                                 ri=1;
  190.                                         if((yue==4||yue==6||yue==9||yue==11)&&ri==31)
  191.                                                 ri=1;
  192.                                         if(ri==32)
  193.                                                 ri=1;
  194.                                         write_sfm0(10,ri);
  195.                                         write_com(0x80+10);
  196.                                 }
  197.                                 if(s1num==5)
  198.                                 {
  199.                                         yue++;
  200.                                         if(yue==13)
  201.                                                 yue=1;
  202.                                         write_sfm0(7,yue);
  203.                                         write_com(0x80+7);
  204.                                 }
  205.                                 if(s1num==6)
  206.                                 {
  207.                                         nian++;
  208.                                         if(nian==99)
  209.                                                 nian=15;
  210.                                         write_sfm0(4,nian);
  211.                                         write_com(0x80+4);
  212.                                 }               
  213.                         }
  214.                 }
  215.                 if(s3==0)
  216.                 {
  217.                         delay(5);
  218.                         if(s3==0)
  219.                         {
  220.                                 while(!s3);
  221.                                 if(s1num==1)
  222.                                 {
  223.                                         miao--;
  224.                                         if(miao==-1)
  225.                                                 miao=59;
  226.                                         write_sfm(10,miao);
  227.                                         write_com(0x80+0x40+10);
  228.                                 }
  229.                                 if(s1num==2)
  230.                                 {
  231.                                         fen--;
  232.                                         if(fen==-1)
  233.                                                 fen=59;
  234.                                         write_sfm(7,fen);
  235.                                         write_com(0x80+0x40+7);
  236.                                 }
  237.                                 if(s1num==3)
  238.                                 {
  239.                                         shi--;
  240.                                         if(shi==-1)               
  241.                                                 shi=23;
  242.                                         write_sfm(4,shi);
  243.                                         write_com(0x80+0x40+4);
  244.                                 }
  245.                                 if(s1num==4)
  246.                                 {
  247.                                         ri--;
  248.                                         if(yue==2&&ri==0)
  249.                                                 ri=28;
  250.                                         if((yue==4||yue==6||yue==9||yue==11)&&ri==0)
  251.                                                 ri=30;
  252.                                         if(ri==0)
  253.                                                 ri=31;
  254.                                         write_sfm0(10,ri);
  255.                                         write_com(0x80+10);
  256.                                 }
  257.                                 if(s1num==5)
  258.                                 {
  259.                                         yue--;
  260.                                         if(yue==0)
  261.                                                 yue=12;
  262.                                         write_sfm0(7,yue);
  263.                                         write_com(0x80+7);
  264.                                 }
  265.                                 if(s1num==6)
  266.                                 {
  267.                                         nian--;
  268.                                         if(nian==14)               
  269.                                                 nian=99;
  270.                                         write_sfm0(4,nian);
  271.                                         write_com(0x80+4);
  272.                                 }
  273.                         }
  274.                 }
  275.         }
  276. }
  277. void main()
  278. {
  279.         init();
  280.         while(1)
  281.         {
  282.                 keyscan();
  283.         }
  284. }
  285. void timer0() interrupt 1
  286. {
  287.         TH0=(65536-50000)/256;
  288.         TL0=(65536-50000)%256;
  289.         count++;
  290.         if(count==18)
  291.         {
  292.                 count=0;
  293.                 miao++;
  294.                 if(miao==60)
  295.                 {
  296.                         miao=0;
  297.                         fen++;
  298.                         if(fen==60)
  299.                         {
  300.                                 fen=0;
  301.                                 shi++;
  302.                                 if(shi==24)
  303.                                 {
  304.                                         shi=0;
  305.                                         ri++;
  306.                                         if(yue==2&&ri==29)
  307.                                         {
  308.                                                 ri=1;
  309.                                                 yue++;
  310.                                                 if(yue==13)
  311.                                                 {
  312.                                                         yue=1;
  313.                                                         nian++;
  314.                                                         if(nian==100)
  315.                                                         {
  316.                                                                 nian=15;
  317.                                                         }
  318.                                                         write_sfm0(4,nian);
  319.                                                 }
  320.                                                 write_sfm0(7,yue);        
  321.                                         }
  322.                                         if((yue==4||yue==6||yue==9||yue==11)&&ri==31)
  323.                                         {
  324.                                                 ri=1;
  325.                                                 yue++;
  326.                                                 if(yue==13)
  327.                                                 {
  328.                                                         yue=1;
  329.                                                         nian++;
  330.                                                         if(nian==100)
  331.                                                         {
  332.                                                                 nian=15;
  333.                                                         }
  334.                                                         write_sfm0(4,nian);
  335.                                                 }
  336.                                                 write_sfm0(7,yue);
  337.                                         }
  338.                                         if(ri==32)
  339.                                         {        
  340.                                                 ri=1;
  341.                                                 yue++;
  342.                                                 if(yue==13)
  343.                                                 {
  344.                                                         yue=1;
  345.                                                         nian++;
  346.                                                         if(nian==100)
  347.                                                         {
  348.                                                                 nian=15;
  349.                                                         }
  350.                                                         write_sfm0(4,nian);
  351.                                                 }
  352.                                                 write_sfm0(7,yue);
  353.                                         }
  354.                                         write_sfm0(10,ri);
  355.                                 }
  356.                                 write_sfm(4,shi);
  357.                         }
  358.                         write_sfm(7,fen);
  359.                 }
  360.                 write_sfm(10,miao);
  361.         }
  362. }
復(fù)制代碼

全部資料下載: 簡易時鐘.rar (71.01 KB, 下載次數(shù): 43)

評分

參與人數(shù) 2黑幣 +55 收起 理由
目紫杉真 + 5 回帖助人的獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:171111 發(fā)表于 2017-5-13 14:28 | 顯示全部樓層
rw 沒看到定義呢
回復(fù)

使用道具 舉報

ID:209499 發(fā)表于 2017-6-15 09:51 | 顯示全部樓層
能用嗎?
回復(fù)

使用道具 舉報

ID:211650 發(fā)表于 2017-6-15 18:45 | 顯示全部樓層
謝謝樓主發(fā)帖,非常有用
回復(fù)

使用道具 舉報

ID:776013 發(fā)表于 2020-6-11 11:24 | 顯示全部樓層
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久综合狠狠综合久久综合88 | 日韩欧美综合在线视频 | 免费视频99 | 久久99精品久久久 | 81精品国产乱码久久久久久 | 久久久久中文字幕 | 国产农村妇女精品一区 | 给我免费的视频在线观看 | 福利网站在线观看 | 一区二区三区不卡视频 | 色一级| 亚洲欧美在线视频 | 国产成人自拍一区 | 国产精品久久国产精品99 | 欧美一区二区在线免费观看 | 中文字幕精品一区久久久久 | 欧美另类视频 | 91短视频网址 | 久久久久久久久久久高潮一区二区 | 日韩欧美日韩在线 | 91免费电影| 欧美日本韩国一区二区 | 日韩最新网址 | 欧美日韩视频 | 精品91久久久 | 亚洲一区免费视频 | 3p视频在线观看 | 色爱av| 91麻豆精品国产91久久久久久久久 | 欧美综合视频在线 | 免费艹逼视频 | 日韩欧美国产一区二区 | 国产一区二区三区免费视频 | 国产精品久久久久久婷婷天堂 | 三级成人在线 | 欧美亚洲综合久久 | 日韩人体视频 | 777777777亚洲妇女 | 精品中文在线 | 欧美视频三级 | 成人在线一级片 |