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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

清翔DS1302開發板實驗,位移顯示時鐘程序

[復制鏈接]
跳轉到指定樓層
樓主
實物圖如下:


單片機源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit sclk = P1^0;
  6. sbit dio = P1^1;
  7. sbit ce = P1^2;
  8. sbit wela = P2^7;
  9. sbit dula = P2^6;
  10. void delay(uint z)
  11. {
  12.         uint x,y;
  13.         for(x=z;x>0;x--)
  14.                 for(y=120;y>0;y--);
  15. }
  16. uchar code table[]={

  17.                 0x3F,  //"0"
  18.                 0x06,  //"1"
  19.                 0x5B,  //"2"
  20.                 0x4F,  //"3"
  21.                 0x66,  //"4"
  22.                 0x6D,  //"5"
  23.                 0x7D,  //"6"
  24.                 0x07,  //"7"
  25.                 0x7F,  //"8"
  26.                 0x6F,  //"9"
  27.                 0x77,  //"A"
  28.                 0x7C,  //"B"
  29.                 0x39,  //"C"
  30.                 0x5E,  //"D"
  31.                 0x79,  //"E"
  32.                 0x71,  //"F"
  33.                 0x76,  //"H"
  34.                 0x38,  //"L"
  35.                 0x37,  //"n"
  36.                 0x3E,  //"u"
  37.                 0x73,  //"P"
  38.                 0x5C,  //"o"
  39.                 0x40,  //"-"
  40.                 0x00,  //熄滅
  41.                 0x00  //自定義

  42.                          };
  43. void display(uchar hour10,hour,minute10,minute,second10,second)
  44. {
  45.         dula=1;
  46.         P0=table[hour10];
  47.         dula=0;
  48.         P0=0xff;
  49.         wela=1;
  50.         P0=0xfe;
  51.         wela=0;
  52.         delay(1);

  53.         dula=1;
  54.         P0=table[hour]|0x80;
  55.         dula=0;
  56.         P0=0xff;
  57.         wela=1;
  58.         P0=0xfd;
  59.         wela=0;
  60.         delay(1);

  61.         dula=1;
  62.         P0=table[minute10];
  63.         dula=0;
  64.         P0=0xff;
  65.         wela=1;
  66.         P0=0xfb;
  67.         wela=0;
  68.         delay(1);

  69.         dula=1;
  70.         P0=table[minute]|0x80;
  71.         dula=0;
  72.         P0=0xff;
  73.         wela=1;
  74.         P0=0xf7;
  75.         wela=0;
  76.         delay(1);

  77.         dula=1;
  78.         P0=table[second10];
  79.         dula=0;
  80.         P0=0xff;
  81.         wela=1;
  82.         P0=0xef;
  83.         wela=0;
  84.         delay(1);

  85.         dula=1;
  86.         P0=table[second];
  87.         dula=0;
  88.         P0=0xff;
  89.         wela=1;
  90.         P0=0xdf;
  91.         wela=0;
  92.         delay(1);
  93. }
  94. void write_1302(uchar add,dat)
  95. {
  96.         uchar i,temp;
  97.         temp=add;
  98.         ce=0;
  99.         _nop_();
  100.         sclk=0;
  101.         _nop_();
  102.         ce=1;
  103.         _nop_();
  104.         for(i=0;i<8;i++)
  105.         {
  106.                 sclk=0;
  107.                 _nop_();
  108.                 if((temp&0x01)==0x01)
  109.                         dio=1;
  110.                         else
  111.                         dio=0;
  112.                 temp>>=1;
  113.                 sclk=1;
  114.                 _nop_();
  115.         }
  116.         temp=dat;
  117.         for(i=0;i<8;i++)
  118.         {
  119.                 sclk=0;
  120.                 _nop_();
  121.                 if((temp&0x01)==0x01)
  122.                         dio=1;
  123.                         else
  124.                         dio=0;
  125.                 temp>>=1;
  126.                 sclk=1;
  127.                 _nop_();
  128.         }
  129.         ce=0;
  130.         sclk=0;
  131. }
  132. uchar read_1302(uchar add)
  133. {
  134.         uchar dat,dat1,i,temp;
  135.         temp=add;
  136.         ce=0;
  137.         _nop_();
  138.         sclk=0;
  139.         _nop_();
  140.         ce=1;
  141.         for(i=0;i<8;i++)
  142.         {
  143.                 sclk=0;
  144.                 _nop_();
  145.                 if((temp&0x01)==0x01)
  146.                         dio=1;
  147.                         else
  148.                         dio=0;
  149.                 temp>>=1;
  150.                 sclk=1;
  151.                 _nop_();
  152.         }
  153.         for(i=0;i<8;i++)
  154.         {
  155.                 sclk=0;
  156.                 _nop_();
  157.                 if(dio)
  158.                     dat|=0x80;
  159.                 if(i<7)
  160.                         dat>>=1;
  161.                 sclk=1;
  162.         }
  163.         dat1=dat/16;
  164.         dat=dat%16;
  165.         dat=dat1*10+dat;  
  166.         ce=0;
  167.         sclk=0;
  168.         return dat;
  169. }
  170. void main()
  171. {
  172.         uchar hour,minute,second;       
  173.         write_1302(0x8e,0x00);

  174.         write_1302(0xc0,0xfe);
  175.         write_1302(0xc2,0xff);
  176.        
  177.         write_1302(0x80,0x30);

  178.         write_1302(0x82,0x10);
  179.        
  180.         write_1302(0x84,0x15);
  181.        
  182.         write_1302(0x8e,0x80);       
  183.         while(1)
  184.         {
  185.                 write_1302(0x8e,0x00);
  186.                 hour=read_1302(0x85);
  187.                
  188.                 minute=read_1302(0x83);
  189.                
  190.                 second=read_1302(0x81);       

  191.                 //r=read_1302(0xc1);
  192.         //        r1=read_1302(0xc3);
  193.                 write_1302(0x8e,0x80);
  194.                 display(hour/10,hour%10,minute/10,minute%10,second/10,second%10);
  195.                 //display(r/100,r%100/10,r%100%10,r1/100,r1%100/10,r1%100%10);               
  196.         }
  197. }
復制代碼

所有資料51hei提供下載:
DS1302.zip (628.42 KB, 下載次數: 6)


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

使用道具 舉報

沙發
ID:301186 發表于 2018-9-30 17:04 | 只看該作者
咋上傳代碼,我試試
回復

使用道具 舉報

板凳
ID:1 發表于 2018-10-1 02:46 | 只看該作者
位移顯示?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品1区| 亚洲成人精品在线观看 | 黄色在线免费看 | 欧洲一区二区在线 | 人人干人人干人人干 | 91一区二区三区在线观看 | 免费视频一区二区三区在线观看 | 国内精品视频 | 亚洲高清av在线 | 美日韩一区二区 | 蜜桃av鲁一鲁一鲁一鲁 | 91社区在线高清 | 做a视频在线观看 | 97人人澡人人爽91综合色 | 精国产品一区二区三区四季综 | 91高清视频在线观看 | 中文字幕日韩欧美一区二区三区 | 奇米四色影视 | 在线视频成人 | 一色桃子av一区二区 | 中文字幕第十五页 | 中文字幕乱码一区二区三区 | 日本啊v在线 | 国产欧美一区二区三区免费 | 97免费视频在线观看 | 国产日韩免费观看 | 亚洲午夜精品一区二区三区他趣 | 久久99精品久久久久久 | 中文字幕成人av | 国产精品99久久久精品免费观看 | 在线视频中文字幕 | 久久成人精品视频 | 日韩中文字幕在线观看视频 | 日韩一区二区在线观看 | 毛片a级毛片免费播放100 | 中文字幕视频三区 | 午夜视频在线免费观看 | 免费在线观看av网站 | jizz在线免费观看 | 伊人精品在线 | 中文字幕一区二区在线观看 |