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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1137|回復: 2
收起左側

單片機學習:時鐘功能加計數功能顯示源碼

[復制鏈接]
ID:629448 發表于 2019-11-27 08:33 | 顯示全部樓層 |閱讀模式
本帖最后由 冇妖氣 于 2019-12-23 10:33 編輯

初學單片機,用的是慧凈電子的HL-1開發板,七拼八湊的組成了通過LCD1602顯示時間及工作計數功能,按鍵可以實現屏幕內容切換。源碼分享給大家一起討論優化。界面顯示注釋: JS: 累計工作次數; CS :單次排量常數(可以通過按鍵設置);PL:累計排量總數(等于JS*CS)。
按鍵注釋: S1:設置按鍵,時間顯示界面可以設置時分秒,年月日,計數功能界面可以設置單次排量常數CS;
                 S2:數值加鍵,設置界面可以對對應位置數值進行加操作;
                 S3:數值減鍵,設置界面可以對對應位置數值進行減操作;
                 S4:顯示界面切換按鍵,在時間顯示和工作計數界面來回切換;
                 S5:模擬工作狀態下的閥門開關信號。接收一次低電平信號,計數一次。
代碼如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. // 定義4個鍵盤按鍵
  6. sbit s1=P3^0; //功能鍵
  7. sbit s2=P3^1; //加鍵
  8. sbit s3=P3^2; //減鍵
  9. sbit s4=P3^3; //顯示切換鍵
  10. sbit s5=P3^6; //模擬信號鍵
  11. sbit rd=P3^7;

  12. sbit dula=P2^6;
  13. sbit wela=P2^7;

  14. sbit lcden=P2^2;
  15. sbit rs=P2^0;
  16. sbit rw=P2^1;




  17. // DS1302操作
  18. sbit sclk=P1^1;          //串行時鐘
  19. sbit IO=P1^0;  //數據輸入輸出
  20. sbit rst=P1^2;         //復位腳

  21. uchar s1num,s2num,s3num;           //s1num時鐘功能調整,flag1時鐘調整狀態標志,count工作次數,counts排水量,s2num設置切換屏幕,s3num設置常數
  22. int miao,shi,fen,nian,yue,ri,week;
  23. int x1,x2,x3;
  24. unsigned long count;
  25. unsigned long counts;
  26. x3=0;
  27. /*//星期字表
  28. uchar code table1[]="SUN";
  29. uchar code table2[]="MON";
  30. uchar code table3[]="TUE";
  31. uchar code table4[]="WED";
  32. uchar code table5[]="THU";
  33. uchar code table6[]="FRI";
  34. uchar code table7[]="SAT";
  35. */
  36. //延時函數
  37. void delayms(uint z)
  38. {
  39.         uint x,y;
  40.         for(x=z;x>0;x--)
  41.                 for(y=110;y>0;y--);
  42. }
  43. //關閉數碼管函數
  44. void cmg88()
  45. {
  46.         dula=1;
  47.         P0=0x00;
  48.         dula=0;
  49. }

  50. //液晶寫命令函數
  51. void write_com(uchar com)
  52. {
  53.         rs=0;
  54.         lcden=0;
  55.         P0=com;
  56.         delayms(5);
  57.         lcden=1;
  58.         delayms(5);
  59.         lcden=0;
  60. }

  61. //液晶寫數據函數
  62. void write_date(uchar date)
  63. {
  64.         rs=1;
  65.         lcden=0;
  66.         P0=date;
  67.         delayms(5);
  68.         lcden=1;
  69.         delayms(5);
  70.         lcden=0;
  71. }

  72. //向1302寫一個字節數據
  73. void write1302(uchar dat)
  74. {
  75.         uchar i;
  76.         for(i=0;i<8;i++)
  77.                 {       
  78.                         sclk=0;
  79.                         IO=dat&0x01;
  80.                         dat=dat>>1;
  81.                         sclk=1;
  82.                 }
  83. }

  84. //根據命令,向1302寫一個字節數據
  85. void writeset1302(uchar cmd,uchar dat)
  86. {
  87.         rst=0;
  88.         _nop_();
  89.         sclk=0;
  90.         _nop_();
  91.         rst=1;
  92.         _nop_();
  93.         write1302(cmd);
  94.         write1302(dat);
  95.         sclk=1;
  96.         rst=0;
  97.         IO=1;
  98. }

  99. //向1302讀一個字節數據
  100. uchar read1302(uchar cmd)
  101. {
  102.         uchar i,value;
  103.        
  104.         rst=0;
  105.         _nop_();
  106.         sclk=0;
  107.         _nop_();
  108.         rst=1;
  109.         _nop_();
  110.         write1302(cmd);
  111.         for(i=0;i<8;i++)
  112.         {
  113.                 value=value>>1;
  114.                 sclk=0;
  115.                 if(IO)
  116.                 value=value|0x80;
  117.                 sclk=1;
  118.                 }
  119.                 rst=0;
  120.                 sclk=0;
  121.                 _nop_();
  122.                 sclk=1;
  123.                 IO=1;
  124.        
  125.         return value;
  126. }

  127. //根據命令向1302讀一個字節數據
  128. uchar readset1302(uchar cmd)
  129. {
  130.         uchar dat;
  131.         rst=0;
  132.         sclk=0;
  133.         rst=1;
  134.         write1302(cmd);
  135.         dat=read1302(cmd);
  136.         sclk=1;
  137.         rst=0;
  138.         return(dat);
  139. }

  140. // 初始化1302
  141. void init1302()
  142. {
  143. //        unsigned char flag;
  144.    
  145. //   flag= readset1302(0x81);
  146. //        if(flag&0x80)       
  147. //        {      //判斷時鐘芯片是否關閉
  148.      writeset1302(0x8E,0x00);                 //根據寫狀態寄存器命令字,寫入不保護指令
  149.            writeset1302(0x80,0x56);   //根據寫秒寄存器命令字,寫入秒的初始值
  150.         writeset1302(0x82,0x59);   //根據寫分寄存器命令字,寫入分的初始值
  151.         writeset1302(0x84,0x23); //根據寫小時寄存器命令字,寫入小時的初始值
  152.         writeset1302(0x86,0x31); //根據寫日寄存器命令字,寫入日的初始值
  153.         writeset1302(0x88,0x12); //根據寫月寄存器命令字,寫入月的初始值
  154.         writeset1302(0x8c,0x18);  //根據寫年寄存器命令字,寫入年的初始值
  155.         writeset1302(0x90,0xa5);                //打開充電功能 選擇2K電阻充電方式
  156.         writeset1302(0x8E,0x80);                           //根據寫狀態寄存器命令字,寫入保護指令
  157. //        }
  158. }         
  159. //時分秒函數
  160. void write_sfm(uchar add,uchar dat)
  161. {
  162.         uchar gw,sw;
  163.         gw=dat%16;
  164.         sw=dat/16;
  165.         write_com(0x80+0x40+add);
  166.         write_date(0x30+sw);
  167.         write_date(0x30+gw);
  168. }

  169. //年月日函數
  170. void write_nyr(uchar add,uchar dat)
  171. {
  172.         uchar gw,sw;
  173.         gw=dat%16;
  174.         sw=dat/16;
  175.         write_com(0x80+add);
  176.         write_date(0x30+sw);
  177.         write_date(0x30+gw);
  178. }

  179. //星期函數
  180. /*void write_week(uchar xq)
  181. {
  182.         uchar x;
  183.         write_com(0x80+12);
  184.         switch(xq)
  185.         {
  186.                 case 1:
  187.                         for(x=0;x<3;x++)
  188.                         {
  189.                                 write_date(table1[x]);
  190.                         }
  191.                         break;
  192.                 case 2:
  193.                         for(x=0;x<3;x++)
  194.                         {
  195.                                 write_date(table2[x]);
  196.                         }
  197.                         break;
  198.                 case 3:
  199.                         for(x=0;x<3;x++)
  200.                         {
  201.                                 write_date(table3[x]);
  202.                         }
  203.                         break;
  204.                 case 4:
  205.                         for(x=0;x<3;x++)
  206.                         {
  207.                                 write_date(table4[x]);
  208.                         }
  209.                         break;
  210.                 case 5:
  211.                         for(x=0;x<3;x++)
  212.                         {
  213.                                 write_date(table5[x]);
  214.                         }
  215.                         break;
  216.                 case 6:
  217.                         for(x=0;x<3;x++)
  218.                         {
  219.                                 write_date(table6[x]);
  220.                         }
  221.                         break;
  222.                 case 7:
  223.                         for(x=0;x<3;x++)
  224.                         {
  225.                                 write_date(table7[x]);
  226.                         }
  227.                         break;
  228.         }
  229.                 write_com(0x80+12);
  230. } */
  231. //寫計工作次數函數
  232. void write_JS(uchar add,unsigned long dat)
  233. {
  234.         uchar x,y,z,j,k;
  235.         x=dat/10000;
  236.         y=(dat%10000)/1000;
  237.         z=(dat%1000)/100;
  238.         j=(dat%100)/10;
  239.         k=dat%10;
  240.         write_com(0x80+add);
  241.         write_date(0x30+x);
  242.         write_date(0x30+y);
  243.         write_date(0x30+z);
  244.         write_date(0x30+j);
  245.         write_date(0x30+k);       
  246. }
  247. //寫單次排量函數
  248. void write_CS(uchar add,uchar dat)
  249. {
  250.         uchar gw,sw;
  251.         gw=dat%10;
  252.         sw=dat/10;
  253.         write_com(0x80+add);
  254.         write_date(0x30+sw);
  255.         write_date(0x30+gw);       
  256. }
  257. //寫總排量函數
  258. void write_PL(uchar add,unsigned long dat)
  259. {
  260.         uchar x,y,z,j,k;
  261. //        a=dat/1000000;
  262. //        b=(dat%1000000)/100000;
  263.         x=(dat%100000)/10000;
  264.         y=(dat%10000)/1000;
  265.         z=(dat%1000)/100;
  266.         j=(dat%100)/10;
  267.         k=dat%10;
  268.         write_com(0x80+0x40+add);
  269. //        write_date(0x30+a);
  270. //        write_date(0x30+b);
  271.         write_date(0x30+x);
  272.         write_date(0x30+y);
  273.         write_date(0x30+z);
  274.         write_date(0x30+j);
  275.         write_date(0x30+k);       
  276. }
  277. //液晶初始化
  278. void init()
  279. {
  280.        
  281.         rd=0;
  282.         dula=0;
  283.         wela=0;
  284.         rw=0;
  285.         lcden=0;
  286.         miao=0;
  287.         fen=0;
  288.         shi=0;
  289.         week=1;
  290.         nian=0;
  291.         yue=0;
  292.         ri=0;
  293.         s1num=0;
  294.         s2num=0;

  295.         write_com(0x38);
  296.         write_com(0x0c);
  297.         write_com(0x06);
  298.         write_com(0x01);

  299.         write_com(0x80+1);//年份前兩位固定顯示20
  300.         write_date('2');
  301.         write_date('0');
  302.         delayms(5);

  303.         write_com(0x80+5);
  304.         write_date('-');
  305.         delayms(5);
  306.         write_com(0x80+8);
  307.         write_date('-');
  308.         delayms(5);

  309.         write_com(0x80+0x40+4);
  310.         write_date(':');
  311.         delayms(5);
  312.         write_com(0x80+0x40+7);
  313.         write_date(':');
  314.         delayms(5);
  315. }

  316. //鍵盤設置操作
  317. void keyscan()
  318. {
  319.         if(s1==0&&s2num==0) //時鐘調整功能鍵,并且不處于計數界面
  320.         {
  321.         delayms(5);
  322.         if(s1==0&&s2num==0)
  323.         {
  324.                 s1num++;
  325.                
  326.                 while(!s1);
  327.                 switch(s1num)
  328.                 {
  329.                         case 1:
  330.                         write_com(0x80+0x40+9);
  331.                         write_com(0x0f);
  332.                         break;
  333.                        
  334.                         case 2:
  335.                         write_com(0x80+0x40+6);
  336.                         break;

  337.                         case 3:
  338.                         write_com(0x80+0x40+3);
  339.                         break;

  340.                         case 4:
  341.                         write_com(0x80+14);
  342.                         break;

  343.                         case 5:
  344.                         write_com(0x80+10);
  345.                         break;

  346.                         case 6:
  347.                         write_com(0x80+7);
  348.                         break;

  349.                         case 7:
  350.                         write_com(0x80+4);
  351.                         break;

  352.                         case 8:                       
  353.                         s1num=0;
  354.                         writeset1302(0x8e,0x00);//功能鍵停止后,將設置的當前值存入1302
  355.                         writeset1302(0x80,miao);
  356.                         writeset1302(0x82,fen);
  357.                         writeset1302(0x84,shi);
  358.                 //        writeset1302(0x8a,week);
  359.                         writeset1302(0x86,ri);
  360.                         writeset1302(0x88,yue);
  361.                         writeset1302(0x8c,nian);
  362.                         writeset1302(0x8e,0x80);
  363.                         write_com(0x0c);
  364.                         break;
  365.                 }
  366.         }
  367.         }       
  368.         if(s1num!=0&&s2num==0)  
  369.         {
  370.                 if(s2==0)        //設置加鍵
  371.                 {
  372.                 delayms(5);
  373.                 if(s2==0)
  374.                 {
  375.                         while(!s2);
  376.                         switch(s1num)
  377.                         {
  378.                                 case 1:
  379.                                 x1=miao%16;
  380.                                 x2=miao/16;
  381.                                 x1++;
  382.                                 if(x1==10)
  383.                                 {
  384.                                         x1=0;
  385.                                         x2++;
  386.                                         if(x2>=6)
  387.                                         x2=0;
  388.                                 }
  389.                                 miao=x1+x2*16;
  390.                                 write_sfm(8,miao);
  391.                                 write_com(0x80+0x40+9);
  392.                                 break;

  393.                                 case 2:
  394.                                 x1=fen%16;
  395.                                 x2=fen/16;
  396.                                 x1++;
  397.                                 if(x1==10)
  398.                                 {
  399.                                         x1=0;
  400.                                         x2++;
  401.                                         if(x2>=6)
  402.                                         x2=0;
  403.                                 }
  404.                                 fen=x1+x2*16;
  405.                                 write_sfm(5,fen);
  406.                                 write_com(0x80+0x40+6);
  407.                                 break;

  408.                                 case 3:
  409.                                 x1=shi%16;
  410.                                 x2=shi/16;
  411.                                 x1++;
  412.                                 if(x1==10)
  413.                                 {
  414.                                         x1=0;
  415.                                         x2++;
  416.                                 }
  417.                                         if(x2>=2&&x1>=4)
  418.                                         {
  419.                                         x1=0;
  420.                                         x2=0;
  421.                                         }
  422.                                 shi=x1+x2*16;
  423.                                 write_sfm(2,shi);
  424.                                 write_com(0x80+0x40+3);
  425.                                 break;

  426.                                 case 4:
  427.                                 x1=week%10;
  428.                                 x2=week/10;
  429.                                 x1++;
  430.                                 if(x1==8)
  431.                                 x1=1;
  432.                                 week=x2*10+x1;
  433.                         //        write_week(week);
  434.                         //        write_com(0x80+14);
  435.                                 break;               

  436.                                 case 5:
  437.                                 x1=ri%16;
  438.                                 x2=ri/16;
  439.                                 x1++;
  440.                                 if(x1==10)
  441.                                 {
  442.                                         x1=0;
  443.                                         x2++;
  444.                                 }
  445.                                         if(x2==3&&x1==2)
  446.                                          {
  447.                                         x2=0;
  448.                                         x1=0;
  449.                                         }
  450.                                 ri=x1+x2*16;
  451.                                 write_nyr(9,ri);
  452.                                 write_com(0x80+10);
  453.                                 break;

  454.                                 case 6:
  455.                                 x1=yue%16;
  456.                                 x2=yue/16;
  457.                                 x1++;
  458.                                 if(x2==1&&x1==3)
  459.                                 {
  460.                                         x1=1;
  461.                                         x2=0;
  462.                                 }
  463.                                 if(x1==10)
  464.                                 {
  465.                                         x1=0;
  466.                                         x2++;
  467.                                 }
  468.                                 yue=x1+x2*16;
  469.                                 write_nyr(6,yue);
  470.                                 write_com(0x80+7);
  471.                                 break;

  472.                                 case 7:
  473.                                 x1=nian%16;
  474.                                 x2=nian/16;
  475.                                 x1++;
  476.                                 if((x2==9)&&(x1==10))
  477.                                 {
  478.                                         x1=0;
  479.                                         x2=0;
  480.                                 }
  481.                                 if(x1==10)
  482.                                 {
  483.                                         x2++;
  484.                                         x1=0;
  485.                                 }
  486.                                 nian=x1+x2*16;
  487.                                 write_nyr(3,nian);
  488.                                 write_com(0x80+4);
  489.                                 break;
  490.                         }
  491.                 }
  492.                 }

  493.                 if(s3==0&&s2num==0)
  494.                 {                                                                                                                                                                                                                                                                                                         
  495.                 delayms(5);
  496.                 if(s3==0&&s2num==0)
  497.                 {
  498.                         while(!s3);
  499.                         switch(s1num)
  500.                         {
  501.                                 case 1:
  502.                                 x1=miao%16;
  503.                                 x2=miao/16;
  504.                                 x1--;
  505.                                 if(x1==-1)
  506.                                 {
  507.                                 x1=9;
  508.                                 x2--;
  509.                                 if(x2==-1)
  510.                                 x2=5;
  511.                                 }
  512.                                 miao=x1+x2*16;
  513.                                 write_sfm(8,miao);
  514.                                 write_com(0x80+0x40+9);
  515.                                 break;

  516.                                 case 2:
  517.                                 x1=fen%16;
  518.                                 x2=fen/16;
  519.                                 x1--;
  520.                                 if(x1==-1)
  521.                                 {
  522.                                 x1=9;
  523.                                 x2--;
  524.                                 if(x2==-1)
  525.                                 x2=5;
  526.                                 }
  527.                                 fen=x1+x2*16;
  528.                                 write_sfm(5,fen);
  529.                                 write_com(0x80+0x40+6);
  530.                                 break;

  531.                                 case 3:
  532.                                 x1=shi%16;
  533.                                 x2=shi/16;
  534.                                 x1--;
  535.                                 if(x1==-1)
  536.                                 {
  537.                                 x1=9;
  538.                                 x2--;
  539.                                 if(x2==-1)
  540.                                 {
  541.                                 x2=2;
  542.                                 x1=3;
  543.                                 }
  544.                                 }
  545.                                 shi=x1+x2*16;
  546.                                 write_sfm(2,shi);
  547.                                 write_com(0x80+0x40+3);
  548.                                 break;

  549.                                 case 4:
  550.                                 x1=(week)%16;
  551.                                 x2=(week)/16;
  552.                                 x1--;
  553.                                 if(x1==0)
  554.                                 x1=7;
  555.                                 week=x1+x2*16;
  556.                         //        write_week(week);
  557.                         //        write_com(0x80+14);
  558.                                 break;         

  559.                                 case 5:
  560.                                 x1=ri%16;
  561.                                 x2=ri/16;
  562.                                 x1--;
  563.                                 if(x1==-1)
  564.                                 {
  565.                                         x1=9;
  566.                                         x2--;
  567.                                         if(x2==-1)
  568.                                         {
  569.                                         x1=1;
  570.                                         x2=3;
  571.                                         }
  572.                                 }
  573.                                 ri=x1+x2*16;
  574.                                 write_nyr(9,ri);
  575.                                 write_com(0x80+10);
  576.                                 break;

  577.                                 case 6:
  578.                                 x1=yue%16;
  579.                                 x2=yue/16;
  580.                                 x1--;
  581.                                 if((x2==1)&&(x1==-1))
  582.                                 {
  583.                                         x1=9;
  584.                                         x2--;
  585.                                 }
  586.                                 if((x2==0)&&(x1==0))
  587.                                 {
  588.                                         x1=2;
  589.                                         x2=1;
  590.                                 }
  591.                                 yue=x1+x2*16;
  592.                                 write_nyr(6,yue);
  593.                                 write_com(0x80+7);
  594.                                 break;

  595.                                 case 7:
  596.                                 x1=nian%16;
  597.                                 x2=nian/16;
  598.                                 x1--;
  599.                                 if(x1==-1)
  600.                                 {
  601.                                         x1=9;
  602.                                         x2--;
  603.                                         if(x2==-1)
  604.                                         {
  605.                                                 x1=9;
  606.                                                 x2=9;
  607.                                         }
  608.                                 }
  609.                                 nian=x1+x2*16;
  610.                                 write_nyr(3,nian);
  611.                                 write_com(0x80+4);
  612.                                 break;
  613.                         }
  614.                 }
  615.                 }
  616.         }         

  617.                 if(s3num==0&&s1num==0)        //切換屏幕
  618.                 {
  619.                 if(s4==0)
  620.                 {
  621.                 delayms(5);
  622.                 if(s4==0)
  623.                 {  
  624.                 s2num++;
  625.                 while(!s4)                               
  626.                 {                       
  627.                 if(s2num==1)
  628.                 {
  629.                 write_com(0x01);
  630.                 write_com(0x80);
  631.                 write_date('J');
  632.                 write_com(0x80+1);
  633.                 write_date('S');
  634.                 write_com(0x80+2);
  635.                 write_date(':');
  636.                 write_com(0x80+4);
  637.                 write_JS(3,count);
  638.                
  639.                
  640.                
  641.                 write_com(0x80+11);
  642.                 write_date('C');
  643.                 write_com(0x80+12);
  644.                  write_date('S');
  645.                 write_com(0x80+13);
  646.                 write_date(':');
  647.                 write_CS(14,x3);

  648.                 write_com(0x80+0x40);
  649.                 write_date('P');
  650.                 write_com(0x80+0x40+1);
  651.                 write_date('L');
  652.                 write_com(0x80+0x40+2);
  653.                 write_date(':');
  654.                 counts=count*x3;
  655.                 write_PL(3,counts);               
  656.                 }
  657.                 if(s2num==2)
  658.                 {
  659.                         s2num=0;
  660.                         write_com(0x01);
  661.                         write_com(0x80+1);//年份前兩位固定顯示20
  662.                         write_date('2');
  663.                         write_date('0');
  664.                         delayms(5);
  665.                
  666.                         write_com(0x80+5);
  667.                         write_date('-');
  668.                         delayms(5);
  669.                         write_com(0x80+8);
  670.                         write_date('-');
  671.                         delayms(5);
  672.                
  673.                         write_com(0x80+0x40+4);
  674.                         write_date(':');
  675.                         delayms(5);
  676.                         write_com(0x80+0x40+7);
  677.                         write_date(':');
  678.                         delayms(5);
  679.                 }
  680.                 }
  681.                 }
  682.                 }
  683.                 }
  684.                 if(s2num==1&&s1num==0)
  685.                 {
  686.                         if(s1==0)
  687.                         {
  688.                                 delayms(5);
  689.                                 if(s1==0)
  690.                                 {
  691.                                         s3num++;
  692.                                         while(!s1)
  693.                                         switch(s3num)
  694.                                         {
  695.                                                 case 1: write_com(0x80+15);
  696.                                                                 write_com(0x0f);
  697.                                                                 break;
  698.                                                 case 2: s3num=0;
  699.                                                                 write_com(0x0c);
  700.                                                                 writeset1302(0x8e,0x00);
  701.                                                                 writeset1302(0xc0,x3);
  702.                                                                 writeset1302(0x8e,0x80);
  703.                                                                 break;                                                                               
  704.                                                 }
  705.                                          }
  706.                         }
  707.                                
  708.                         if(s3num!=0)
  709.                         {
  710.                                 if(s2==0)
  711.                                 {
  712.                                         delayms(100);
  713.                                         if(s2==0)
  714.                                         {       
  715.                                
  716.                                                 x3++;
  717.                                                 _nop_();
  718.                                                 if(x3==99)
  719.                                                 x3=0;
  720.                                        
  721.                                         }
  722.                                                 write_CS(14,x3);
  723.                                         write_com(0x80+15);
  724.                                         }
  725.                                 if(s3==0)
  726.                                 {
  727.                                         delayms(100);
  728.                                         if(s3==0)
  729.                                         {
  730.                                                 x3--;
  731.                                                 _nop_();
  732.                                                 if(x3==-1)
  733.                                                 x3=99;
  734.                                         }
  735.                                                 write_CS(14,x3);
  736.                                                 write_com(0x80+15);
  737.                                         }
  738.                                 }
  739.                                 }
  740.                 /*                if(s3num==0)
  741.                                 {               
  742.                                 if(s5==0)
  743.                                 {
  744.                                 delayms(100);
  745.                                 if(s5==0)
  746.                                 {
  747.                                 while(!s5)
  748.                                 {
  749.                                 count=count+1;
  750.                             counts=count*x3;
  751.                                  if(s2num==1&&s3num==0)
  752.                                  {
  753.                                 write_JS(3,count);
  754.                                 write_PL(3,counts);
  755.                                 }
  756.                                 }
  757.                         }
  758.                         }
  759.                         }*/
  760.                
  761.                    if(s5==0)
  762.                         {
  763.                         delayms(100);
  764.                         if(s5==0)
  765.                         {
  766.                                 while(!s5)
  767.                                 {
  768.                                 count=count+1;
  769.                                 counts=count*x3;
  770.                                          if(s2num==1&&s3num==0)
  771.                                  {
  772.                                 write_JS(3,count);
  773.                                 write_PL(3,counts);
  774.                                 }
  775.                                 }
  776.                                    }
  777.                         }
  778.         }
  779.        

  780. void main()
  781. {
  782.        
  783.         cmg88();
  784.         init();       
  785.         init1302();
  786.         while(1)
  787.         {
  788.                 keyscan();
  789.                 if(s1num==0&&s2num==0)
  790.                 {
  791.                         miao=readset1302(0x81);
  792.                         fen=readset1302(0x83);
  793.                         shi=readset1302(0x85);
  794.                         ri=readset1302(0x87);
  795.                         yue=readset1302(0x89);
  796.                         nian=readset1302(0x8d);
  797.                         week=readset1302(0x8b);
  798.                         write_sfm(8,miao);
  799.                         write_sfm(5,fen);
  800.                         write_sfm(2,shi);
  801.                         write_nyr(9,ri);
  802.                         write_nyr(6,yue);
  803.                         write_nyr(3,nian);
  804. //                        write_week(week);
  805.                 }
  806.         }
  807. }
復制代碼





1302時鐘+1602+鍵盤.rar

101.51 KB, 下載次數: 2, 下載積分: 黑幣 -5

回復

使用道具 舉報

ID:1 發表于 2019-11-27 12:23 | 顯示全部樓層
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

ID:629448 發表于 2019-11-29 14:03 | 顯示全部樓層
admin 發表于 2019-11-27 12:23
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)

新手學習,用的HL-1的開發板,沒有電路原理圖
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 特级a欧美做爰片毛片 | 中文字幕av网 | 国产99久久久国产精品下药 | 国产三级精品三级在线观看四季网 | 色就干| 少妇一级淫片免费播放 | 99这里只有精品视频 | 婷婷五月色综合香五月 | 欧美精品91| 91精品久久久 | 欧美视频福利 | 中文字幕免费在线 | 午夜免费福利片 | 91色在线| 国产精品一区三区 | 久久精品综合 | 黄视频网址 | 成人性视频免费网站 | www.久 | 日韩中文字幕免费在线 | 精品国产一区一区二区三亚瑟 | 国产粉嫩尤物极品99综合精品 | 九九国产 | 天天干视频 | 91久久精品 | 在线播放一区 | 久草色播| 精品国产青草久久久久福利 | 国产精品成人一区 | 91成人精品视频 | 天天看天天摸天天操 | 成人av网站在线观看 | 黄色高清视频 | 国产亚洲一区二区三区 | 97视频在线观看网站 | 欧美a∨ | 日韩精品一区二区三区视频播放 | 中文字幕在线第二页 | 国产成人网 | 亚洲天堂久久 | 久久三区 |