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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

單片機(jī)電子表可加可減可暫停 Proteus仿真程序

[復(fù)制鏈接]
ID:660771 發(fā)表于 2019-12-10 17:02 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
圖片 4.png

單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #define codport P0                  //顯示段碼輸出口
  3. #define sitport        P2                //顯示位碼輸出口
  4. sbit PB1=P1^0;
  5. sbit PB2=P1^1; // second 調(diào)整定義
  6. sbit PB3=P1^2;
  7. sbit PB4=P1^3;  //second//minite 調(diào)整定義
  8. sbit PB5=P1^4;
  9. sbit PB6=P1^5; //hour 調(diào)整定義
  10. sbit PB7=P1^6;        //暫停
  11. void delay(int); // 延時(shí)子程序
  12. void keyscan( ); // 按鍵作用
  13. unsigned char code ledcode[]     /*顯示0~9的代碼*/
  14. ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  15. unsigned char data hou,min,sec,num; //時(shí)分秒中斷數(shù)
  16. unsigned char data disbuf[]={0,0,0,0,0,0};
  17. //顯示數(shù)組,0元素為最高位
  18. void delay(int x)                          
  19. { int i,j;
  20.        for(i=0;i<x;i++)
  21.             for(j=0;j<120;j++);
  22.         }
  23. void keyscan (void)
  24. {
  25. if(PB1==0) // 按鍵1 秒加
  26. {   
  27. delay(200);
  28. {
  29. sec++;
  30. if(sec==60)
  31. {sec=0; }
  32. }
  33. }

  34. if(PB2==0) // 按鍵2 秒減
  35. {  
  36. delay(200);
  37. {
  38. sec--;
  39. if(sec==-1)
  40. {sec=59;}
  41. }
  42. }

  43. if(PB3==0) // 按鍵3 分加
  44. {
  45. delay(200);
  46. {
  47. min++;
  48. if(min==60)
  49. {min=0; }
  50. }
  51. }

  52. if(PB4==0) // 按鍵4 分減
  53. {   
  54. delay(200);
  55. {
  56. min--;
  57. if(min==-1)
  58. {min=59; }
  59. }
  60. }
  61.   
  62. if(PB5==0) // 按鍵5 時(shí)加
  63. {  
  64. delay(200);
  65. {
  66. hou++;
  67. if(hou==60)
  68. {hou=0;}
  69. }
  70. }

  71. if(PB6==0) // 按鍵7 暫停
  72. {
  73. delay(200);
  74. {
  75. hou--;
  76. if(hou==-1)
  77. {hou=23; }
  78. }
  79. }

  80.   if(PB7==0) // 按鍵6 時(shí)減
  81. {
  82. delay(200);
  83. {
  84. EA=~EA;
  85. }
  86. }

  87. }
  88. void display()                //顯示函數(shù)
  89. {        unsigned int j;                //j用于循環(huán)延時(shí)
  90.         unsigned char i,scan;        //scan為掃描碼
  91.         scan=0x01;
  92.         for(i=0;i<6;i++)
  93.         {        sitport=0xff;                //先關(guān)閉各位
  94.                 codport=ledcode[disbuf[i]];        
  95.                                         //輸出顯示數(shù)的段碼
  96.                 sitport=~scan;                //輸出位碼
  97.                 scan=(scan<<1);                   //指向下一個(gè)數(shù)位
  98.                 for(j=0;j<360;j++);        //延時(shí)3ms
  99. }        }       
  100. void time0() interrupt 1        //定時(shí)器0中斷函數(shù)
  101. {        TL0=55536%256;         //給T0賦初值
  102.         TH0=55536/256;
  103.         num=num+1;                //百分之一秒加1
  104.         if(num>99)
  105.         {    num=0;             sec++;                //秒加1
  106.              if(sec>59)
  107.              {        sec=0;    min++;                 //分加1
  108.                 if(min>59)
  109.                 {    min=0;        hou++;         //時(shí)加1
  110.                       if(hou>23)        hou=0;
  111.              }        }                 //把時(shí)間變量分離成要顯示的各位
  112.             disbuf[0]=hou/10;         disbuf[1]=hou%10;
  113.             disbuf[2]=min/10;        disbuf[3]=min%10;
  114.             disbuf[4]=sec/10;        disbuf[5]=sec%10;
  115. }        }
  116. void main()                        //主函數(shù)
  117. {
  118.         TMOD=0x01;                //設(shè)置T0以模式1定時(shí)
  119.         TL0=55536%256;         //設(shè)置T0定時(shí)10ms初值
  120.         TH0=55536/256;
  121.         ET0=1;                         //開T0中斷
  122.         EA=1;                        //開總中斷
  123.         TR0=1;                        //定時(shí)器0開運(yùn)行
  124.         hou=12;        min=0;         //時(shí)間初始化       
  125.         sec=0;        num=0;
  126.         while(1)                //循環(huán),并隨時(shí)處理中斷
  127.           {         
  128.              display();        //調(diào)用數(shù)碼管進(jìn)行掃描顯示
  129.          keyscan( );            // 按鍵掃描         
  130. }                   }
復(fù)制代碼

所有資料51hei提供下載:
電子表可加可減可暫停.rar (16.96 KB, 下載次數(shù): 24)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:660771 發(fā)表于 2019-12-10 17:04 | 顯示全部樓層
歡迎大家來(lái)看
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人在线一区二区三区 | 一级日批片 | 久久中文字幕一区 | 性欧美xxxx| 日韩一区二区三区在线看 | 求毛片| 成人免费在线 | 久久6视频 | 亚洲久在线 | 亚洲国产成人在线观看 | 国产乱码精品一区二区三区五月婷 | 国产玖玖 | 亚洲欧美在线视频 | 久色视频在线 | 免费观看黄a一级视频 | 久草网站 | 欧美久久久网站 | 国产精品久久精品 | 99福利视频 | 亚洲欧美另类在线观看 | 欧美精品福利视频 | 先锋资源在线 | 午夜视频免费 | 91人人澡人人爽 | 毛片免费视频 | 国产免费看 | 国产精品mv在线观看 | 亚洲一区二区三区在线 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 男女视频免费 | 国产精品美女久久久 | 色视频www在线播放国产人成 | 羞羞的视频免费观看 | 乱一性一乱一交一视频a∨ 色爱av | 成人妇女免费播放久久久 | 日日操天天射 | 午夜日韩 | 亚洲视频在线观看免费 | 精品成人佐山爱一区二区 | 久久午夜剧场 | 九九视频在线观看视频6 |