欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 51單片機傳感器計數程序 [打印本頁]

作者: duanyu    時間: 2017-12-19 15:08
標題: 51單片機傳感器計數程序
單片機進行傳感器計數

單片機源程序如下:
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned  int
  4. sbit dula=P2^6;
  5. sbit wela=P2^7;
  6. uchar code table[]={0x3f,0X06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};     //所需的段的位碼0~9
  7. uchar code tablewe[]={0xfe,0xfd,0xfb};
  8. uchar aa,bai,shi,ge;      //定義百位、十位、個位數據類型
  9. uint  date=0,dispcount=0;//定義數據類型
  10. /******************************************************************
  11. 延時函數
  12. ******************************************************************/
  13. void delay(uchar t)//延時程序 t=1時為 1ms
  14. {
  15. uchar m,n,z;
  16. for(m=t;m>0;m--)
  17. for(n=110;n>0;n--)
  18. for(z=1;z>0;z--);
  19. }

  20. /**********************************************************************
  21.                 數碼管動態掃描
  22. *********************************************************************/
  23. void display(uint dispcount)
  24. {
  25. /*****************數據轉換*****************************/
  26.                 bai=dispcount/100;           //求百位
  27.                 shi=dispcount%100/10;        //求十位
  28.                 ge=dispcount%10;                                   //求個位

  29.                 dula=1;                                         //打開段選
  30.                 P0=table[bai];                                //百位輸給P0口
  31.                 dula=0;                                                //關閉段選
  32.                 wela=1;                                                //打開位選
  33.                 P0=0xfe;                                        //P0口輸給第一位
  34.                 wela=0;                                                //關閉位選
  35.                 delay(1);

  36.                 dula=1;
  37.                 P0=table[shi];
  38.                 dula=0;
  39.                 wela=1;
  40.                 P0=0xfd;
  41.                 wela=0;
  42.                 delay(1);

  43.                 dula=1;
  44.                 P0=table[ge];
  45.                 dula=0;
  46.                 wela=1;
  47.                 P0=0xfb;
  48.                 wela=0;
  49.                 delay(1);
  50.     }

  51. void init()
  52. {       
  53.         wela=0;
  54.         dula=0;
  55.         EX0=1;                                //int0外部中斷打開。
  56.         IT0=0;                                //低電平有效,3.0口,不設置也沒關系
  57. //        ET0=1;                                //t0定時中斷。即IE=0x82;
  58. //        TMOD=0x01;                        //t0啟動方式為方式1,16位
  59. //        TR0=1;                                //啟動定時器0
  60. //        TH0=0x4c;
  61. //        TL0=0x00;
  62.         EA=1;                                //開總中斷       
  63.        
  64. }


  65. /*************************************************************************
  66.                                 主函數      
  67. **************************************************************************/
  68. void main()
  69. {
  70. //        aa=0;
  71. //        TH0=0x4c;
  72. //        TL0=0x00;
  73.         init();
  74.         while(1)
  75.         {
  76.                 display(dispcount);
  77.         }         
  78. }   

  79. void ExtInt0() interrupt 0 //外部0中斷服務程序
  80. {
  81.                 delay(200);
  82.                 date++;//每按一次中斷按鍵,計數加一
  83.                 dispcount=date;
  84.                 if (dispcount==999) //計數范圍0-999
  85.                         {
  86.                                 dispcount=0;
  87. ……………………

  88. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
傳感器計數.rar (26.47 KB, 下載次數: 16)







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1