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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1734|回復: 1
收起左側

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

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

單片機源程序如下:
  1. #include<reg52.h>
  2. #define codport P0                  //顯示段碼輸出口
  3. #define sitport        P2                //顯示位碼輸出口
  4. sbit PB1=P1^0;
  5. sbit PB2=P1^1; // second 調整定義
  6. sbit PB3=P1^2;
  7. sbit PB4=P1^3;  //second//minite 調整定義
  8. sbit PB5=P1^4;
  9. sbit PB6=P1^5; //hour 調整定義
  10. sbit PB7=P1^6;        //暫停
  11. void delay(int); // 延時子程序
  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; //時分秒中斷數
  16. unsigned char data disbuf[]={0,0,0,0,0,0};
  17. //顯示數組,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 時加
  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 時減
  81. {
  82. delay(200);
  83. {
  84. EA=~EA;
  85. }
  86. }

  87. }
  88. void display()                //顯示函數
  89. {        unsigned int j;                //j用于循環延時
  90.         unsigned char i,scan;        //scan為掃描碼
  91.         scan=0x01;
  92.         for(i=0;i<6;i++)
  93.         {        sitport=0xff;                //先關閉各位
  94.                 codport=ledcode[disbuf[i]];        
  95.                                         //輸出顯示數的段碼
  96.                 sitport=~scan;                //輸出位碼
  97.                 scan=(scan<<1);                   //指向下一個數位
  98.                 for(j=0;j<360;j++);        //延時3ms
  99. }        }       
  100. void time0() interrupt 1        //定時器0中斷函數
  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++;         //時加1
  110.                       if(hou>23)        hou=0;
  111.              }        }                 //把時間變量分離成要顯示的各位
  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()                        //主函數
  117. {
  118.         TMOD=0x01;                //設置T0以模式1定時
  119.         TL0=55536%256;         //設置T0定時10ms初值
  120.         TH0=55536/256;
  121.         ET0=1;                         //開T0中斷
  122.         EA=1;                        //開總中斷
  123.         TR0=1;                        //定時器0開運行
  124.         hou=12;        min=0;         //時間初始化       
  125.         sec=0;        num=0;
  126.         while(1)                //循環,并隨時處理中斷
  127.           {         
  128.              display();        //調用數碼管進行掃描顯示
  129.          keyscan( );            // 按鍵掃描         
  130. }                   }
復制代碼

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


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:660771 發表于 2019-12-10 17:04 | 顯示全部樓層
歡迎大家來看
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品成人一区二区 | 国产激情一区二区三区 | 伊人伊人 | 国产午夜精品一区二区三区四区 | h片在线播放 | 欧美激情亚洲 | 日韩精品一区二区三区中文字幕 | 亚欧精品 | 国产小视频在线观看 | 九色在线观看 | 久久成人国产精品 | 国产精品久久久久9999鸭 | 国产精品日韩一区二区 | 狠狠干狠狠操 | 午夜精品久久久久久久 | 成人久久网 | 99亚洲| 欧美国产日本一区 | 国内精品久久久久久 | 天天激情综合 | 一本色道精品久久一区二区三区 | 99热视| 天天操夜夜操免费视频 | av网站免费看 | 中文二区 | 日韩欧美国产精品一区二区三区 | 日韩第一夜| 免费人成激情视频在线观看冫 | 九九热这里只有精品在线观看 | 日韩二区 | 中文字幕精品一区二区三区精品 | 超碰成人在线观看 | 亚洲欧美一区二区三区国产精品 | 久久久亚洲一区 | 国产一级黄色网 | 91天堂网| 国产精品18毛片一区二区 | 91一区 | 国产免费一区二区三区免费视频 | 亚洲国产成人av | 伊人久久在线观看 |