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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機可調時鐘代碼 新人創作

[復制鏈接]
跳轉到指定樓層
樓主
ID:608729 發表于 2022-12-30 14:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <reg52.h>

  2. typedef unsigned int u16;          //對數據類型進行聲明定義
  3. typedef unsigned char u8;
  4. u8 shi=12,feng=00,miao=10;
  5. u8 shi1=00,feng1=00,miao1=00;
  6. u8 a,b;
  7. u16 yangshi=8000;
  8. u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  9. u16 cnt=0,cntt=0;
  10. sbit LSA=P2^2;
  11. sbit LSB=P2^3;
  12. sbit LSC=P2^4;
  13. sbit keymode=P3^1;//調時時間
  14. sbit keyclock=P3^0;//調鬧鐘
  15. sbit keyup=P3^2;//時間加
  16. sbit keydown=P3^3;//時間減

  17. void delay(u16 i)
  18. {
  19.         while(i--);       
  20. }

  21. void Timer0Init()                //100微秒@11.0592MHz
  22. {
  23.        
  24.         TMOD &= 0xF0;                //設置定時器模式
  25.         TMOD |= 0x02;                //設置定時器模式
  26.         TL0 = 0xA4;                //設置定時初始值
  27.         TH0 = 0xA4;                //設置定時重載值
  28.         TF0 = 0;                //清除TF0標志
  29.         TR0 = 1;                //定時器0開始計時
  30.         EA=1;
  31.         ET0=1;
  32. }

  33. void Timer0 () interrupt 1
  34. {

  35.         TL0 = 0xA4;                //設置定時初始值
  36.         TH0 = 0xA4;                //設置定時重載值
  37.   cnt++;
  38.         if(cnt==100)
  39.         {
  40.          cnt=0;
  41.         cntt++;
  42.         }
  43.         if(cntt==100)
  44.         {
  45.            cntt=0;
  46.                  miao++;
  47.         }
  48.         if(miao==60)
  49.         {
  50.           miao=0;
  51.                 feng++;
  52.         }
  53.         if(feng==60)
  54.         {
  55.           feng=0;
  56.                 shi++;
  57.         }
  58.         if(shi==24)
  59.         {
  60.            shi=0;
  61.        
  62.         }
  63. }

  64. void display0()
  65. {
  66.          LSA=1;LSB=1;LSC=1;P0=smgduan[shi/10];delay(100);P0=0x00;
  67.          LSA=0;LSB=1;LSC=1;P0=smgduan[shi%10];delay(100);P0=0x00;
  68.    LSA=0;LSB=1;LSC=0;P0=0x40;delay(100);P0=0x00;
  69.          LSA=0;LSB=0;LSC=1;P0=smgduan[feng/10];delay(100);P0=0x00;
  70.    LSA=1;LSB=1;LSC=0;P0=smgduan[feng%10];delay(100);P0=0x00;
  71.    LSA=1;LSB=0;LSC=1;P0=0x40;delay(100);P0=0x00;
  72.          LSA=1;LSB=0;LSC=0;P0=smgduan[miao/10];delay(100);P0=0x00;
  73.          LSA=0;LSB=0;LSC=0;P0=smgduan[miao%10];delay(100);P0=0x00;
  74.          
  75.    
  76.        
  77. }
  78. void displaykeyclock()
  79. {

  80.          
  81.         if(b==1)
  82.         {
  83.          LSA=1;LSB=1;LSC=1;P0=smgduan[shi1/10];delay(100);P0=0x00;
  84.          LSA=0;LSB=1;LSC=1;P0=smgduan[shi1%10];delay(100);P0=0x00;
  85.         }
  86.        
  87.          LSA=1;LSB=0;LSC=1;P0=0x40;delay(100);P0=0x00;
  88.         if(b==2)
  89.         {
  90.    LSA=0;LSB=0;LSC=1;P0=smgduan[feng1/10];delay(100);P0=0x00;
  91.    LSA=1;LSB=1;LSC=0;P0=smgduan[feng1%10];delay(100);P0=0x00;
  92.         }
  93.         LSA=0;LSB=1;LSC=0;P0=0x40;delay(100);P0=0x00;
  94. if(b==3)
  95.         {
  96.          LSA=1;LSB=0;LSC=0;P0=smgduan[miao1/10];delay(100);P0=0x00;
  97.          LSA=0;LSB=0;LSC=0;P0=smgduan[miao1%10];delay(100);P0=0x00;
  98.         }
  99.        
  100.        
  101.         else if((a==0)&&(b==0))
  102.         {
  103.         display0();
  104.        
  105.         }
  106. }
  107. void displaykeymode()
  108. {
  109.                 if(a==1)
  110.         {
  111.          LSA=1;LSB=1;LSC=1;P0=smgduan[shi/10];delay(100);P0=0x00;
  112.          LSA=0;LSB=1;LSC=1;P0=smgduan[shi%10];delay(100);P0=0x00;
  113.         }
  114.           LSA=1;LSB=0;LSC=1;P0=0x40;delay(100);P0=0x00;
  115.                 if(a==2)
  116.         {
  117.    LSA=0;LSB=0;LSC=1;P0=smgduan[feng/10];delay(100);P0=0x00;
  118.    LSA=1;LSB=1;LSC=0;P0=smgduan[feng%10];delay(100);P0=0x00;
  119.         }
  120.         LSA=0;LSB=1;LSC=0;P0=0x40;delay(100);P0=0x00;
  121.         if(a==3)
  122.         {       
  123.          LSA=1;LSB=0;LSC=0;P0=smgduan[miao/10];delay(100);P0=0x00;
  124.          LSA=0;LSB=0;LSC=0;P0=smgduan[miao%10];delay(100);P0=0x00;
  125.         }
  126.          
  127.         else if((a==0)&&(b==0))
  128.         {
  129.         display0();
  130.        
  131.         }
  132. }

  133. void key_mode()
  134.         {
  135.     if(!keymode)
  136.                 {
  137.                    delay(1000);
  138.                    if(!keymode)
  139.                          {  b=0;
  140.                            a++;
  141.                                  if(a>3)
  142.                                  {
  143.                                  a=0;
  144.                                  }
  145.                          
  146.                          }
  147.                 while(!keymode);
  148.                  }

  149.         }
  150.        
  151.        
  152.        
  153. void key_clock()
  154. {
  155. if(!keyclock)
  156. {
  157.   delay(1000);
  158. if(!keyclock)
  159. {  a=0;
  160.           b++;
  161.          if(b>3)
  162.          {
  163.          
  164.          b=0;
  165.          }
  166. }
  167. while(!keyclock);
  168. }

  169. }

  170. void keymodeset()
  171. {
  172. if(!keyup)
  173. {
  174.          delay(1000);
  175. if(!keyup)
  176. {

  177.         if(a == 1) {shi++;} if(shi>23){shi=0;}
  178.          else if(a == 2) {feng++;} if(feng>59){feng=0;}
  179.          else if(a == 3) {miao++;} if(miao>59){miao=0;}
  180.     }
  181. while(!keyup);
  182.     }

  183. if(!keydown)
  184. {
  185. delay(1000);
  186. if(!keydown)
  187. {
  188.                  if(a == 1) {if(shi != 0) shi--; else shi = 23;}
  189.                         else if(a == 2) {if(feng != 0) feng--; else feng = 59;}
  190.                         else if(a == 3) {if(miao != 0) miao--; else miao = 59;}       
  191. }
  192.      while(!keydown);
  193. }
  194. }

  195. void keyclockset()
  196. {
  197. if(!keyup)
  198. {
  199.          delay(1000);
  200. if(!keyup)
  201. {

  202.         if(b==1) {shi1++;} if(shi1>23){shi1=0;}
  203.          else if(b==2) {feng1++;} if(feng1>59){feng1=0;}
  204.          else if(b==3) {miao1++;} if(miao1>59){miao1=0;}
  205.     }
  206. while(!keyup);
  207.     }

  208. if(!keydown)
  209. {
  210. delay(1000);
  211. if(!keydown)
  212. {
  213.                  if(b == 1) {if(shi1 != 0) shi1--; else shi1 = 23;}
  214.                         else if(b == 2) {if(feng1 != 0) feng1--; else feng1 = 59;}
  215.                         else if(b == 3) {if(miao1 != 0) miao1--; else miao1 = 59;}       
  216. }
  217.      while(!keydown);
  218. }
  219. }
  220. void keyclockscan()
  221. {
  222.         key_clock();
  223.         if(b==1)
  224.         {   
  225.          
  226.                 displaykeyclock();
  227.                 keyclockset();
  228.         }
  229.   else
  230.         if(b==2)
  231. {   
  232.          
  233.                 displaykeyclock();
  234.                 keyclockset();
  235.         }
  236. else
  237.         if(b==3)
  238. {   
  239.          
  240.                 displaykeyclock();
  241.                 keyclockset();
  242.         }



  243. }


  244. void keymodescan()
  245. {
  246.         key_mode();
  247.         if(a==1)
  248.         {   
  249.          
  250.                 displaykeymode();
  251.                 keymodeset();
  252.         }
  253.   else
  254.         if(a==2)
  255. {   
  256.          
  257.                 displaykeymode();
  258.                 keymodeset();
  259.         }
  260. else
  261.         if(a==3)
  262. {   
  263.          
  264.        
  265.          displaykeymode();
  266.                 keymodeset();
  267.                
  268.         }



  269. }
  270. void main()
  271. {

  272.   Timer0Init();
  273.   while(1)
  274.         {
  275.                
  276.                 displaykeyclock();
  277.                
  278.                 keyclockscan();
  279.                
  280.                 displaykeymode();
  281.                 keymodescan();
  282.                
  283.        

  284.         }
  285. }
復制代碼


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产片侵犯亲女视频播放 | 蜜月va乱码一区二区三区 | 欧美精选一区二区 | 亚洲一区二区三区在线免费 | 午夜三级视频 | 久久久激情视频 | 免费午夜视频 | 91就要激情| 一久久久 | 午夜电影在线播放 | 婷婷成人在线 | 青青草社区| 欧美一区二区三区在线免费观看 | 中文字幕一区二区三区不卡在线 | 亚洲久久一区 | 黄色av网站在线观看 | 午夜视频网站 | 欧美不卡一区二区 | 日韩在线国产精品 | 日韩中文一区 | 欧美一区2区三区4区公司 | 在线视频一区二区 | 免费观看av | 91婷婷韩国欧美一区二区 | 日本三级电影免费观看 | 国产成人综合在线 | 国产成视频在线观看 | 欧美激情综合 | 美女天天操 | 国产一极毛片 | 欧美一级在线观看 | 国产欧美一区二区三区在线播放 | 99视频久 | 国产成人黄色 | 免费国产一区 | h视频在线播放 | 国产亚洲精品美女久久久久久久久久 | 亚洲欧美激情四射 | 毛片免费视频 | 亚洲一区二区综合 | 一级毛片观看 |