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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機啤酒瓶計數原理圖+程序

[復制鏈接]
跳轉到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include<reg51.h>
  2. void T0_init();
  3. unsigned char code table[]={0xC0,0XF9,0xA4,0XB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  4. unsigned char dat_T=0,aa;
  5. unsigned int counter=0;
  6. unsigned char dat_Q=0;

  7. void delay(unsigned int time)
  8. {
  9.         unsigned int i,j;
  10.         for(i=0;i<time;i++)
  11.                 for(j=0;j<120;j++)
  12.                 ;
  13. }

  14. void display1()
  15. {

  16.         P2=0x01;
  17.         P1=table[dat_T/10];
  18.         delay(10);

  19.         P2=0x02;
  20.         P1=table[dat_T%10];
  21.         delay(10);
  22.        

  23.         P2=0x04;
  24.         P1=table[dat_Q/10];               
  25.         delay(10);

  26.         P2=0x08;
  27.         P1=table[dat_Q%10];
  28.         delay(10);

  29. }

  30. void calspeed()
  31. {
  32.         if(aa>=20) //20*50ms=1s計算一次          or aa==20
  33.         {       
  34.         dat_T=counter;
  35.         counter=0;//清零脈沖數       
  36.         aa=0; //清零標志
  37.         }
  38. }
  39. main()
  40. {
  41.         EA  = 1;        //開總中斷
  42.         EX0=1;                  //外部中斷0
  43.         IT0=1;                //下降沿方式  觸發方式
  44.         TMOD = 0x01;                                   //定時器0 工作方式一
  45.         TH0= (65536 - 50000)/256;           //定時50ms
  46.         TL0= (65536 - 50000)%256;
  47.         ET0 = 0;        //定時器開關
  48.         TR0 = 1;                                          
  49.         while(1)
  50.         {
  51.          display1();
  52.          calspeed();          
  53.          }
  54.                
  55. }
  56. void T0_init()        interrupt 1          //定時器中斷0
  57. {

  58.         TH0 = (65536-50000)/256;
  59.         TL0 = (65536-50000)%256;
  60.         aa++;               
  61. }
  62. void int0() interrupt 0           //外部中斷0
  63. {

  64.          dat_T++;
  65.          if(dat_T>11)
  66.         {
  67.                 dat_Q++;
  68.                 dat_T=0;
  69.         }
  70. }
復制代碼

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

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表