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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9219|回復(fù): 22
打印 上一主題 下一主題
收起左側(cè)

四層電梯模擬程序與配套的proteus8.0的模擬程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:145844 發(fā)表于 2016-11-25 15:55 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
windows平臺下的keil開發(fā)環(huán)境開發(fā)的以atmel51單片機(jī)開發(fā)的四層電梯模擬程序與配套的proteus8.0的模擬程序,編譯通過。模擬程序運(yùn)行無誤 。其中包含的資料為 電梯程序c語言和電梯仿真的原理圖


單片機(jī)源程序:
  1. #include <reg52.h>
  2. #define u8 unsigned char
  3. unsigned char seg_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
  4. unsigned char run,floor;
  5. bit ud,stop=0;

  6. sbit P06=P0^6;
  7. sbit P07=P0^7;
  8. sbit ulc=P2^0;
  9. sbit dlc=P2^1;
  10. sbit start=P2^2;                                               
  11. sbit alrl=P2^3;
  12. sbit alrb=P2^4;

  13. void input()
  14. {
  15.         run|=((~P0)&0x3f);
  16.         if((P06==0)&&(ud==1))
  17.         run|=0x02;
  18.         if((P06==0)&&(ud==0))
  19.         run|=0x04;
  20.         if((P07==0)&&(ud==1))
  21.         run|=0x08;
  22.         if((P07==0)&&(ud==0))
  23.         run|=0x10;
  24. }

  25. void delay(int j)
  26. {
  27.   int i;
  28.   for(;j>0;j--)
  29.   {
  30.         input();
  31.         for(i=200;i>0;i--)
  32.         {
  33.           if(stop==1)
  34.           break;
  35.         }
  36.         if(stop==1)
  37.         break;
  38.   }
  39. }

  40. void StepMotor(bit a,u8 b)
  41. {
  42.   u8 x=0x80,i;
  43.   if(a==1)
  44.   {
  45.         ulc=0;
  46.         dlc=1;
  47.     for(i=0;i<b;i++)
  48.         {
  49.           if(x==0x10)
  50.             x=0x80;
  51.           else
  52.             x=x/2;
  53.           P3|=(x&0xf0);
  54.           delay(100);
  55.         }
  56.   }
  57.   else
  58.   {
  59.          ulc=1;
  60.          dlc=0;
  61.      for(i=0;i<b;i++)
  62.         {
  63.           if(x==0x80)
  64.             x=0x10;
  65.           else
  66.             x=x*2;
  67.           P3|=(x&0xf0);
  68.           delay(100);
  69.         }
  70.   }
  71. }

  72. void alarm()
  73. {
  74.   alrl=0;
  75.   while(1)
  76.   {
  77.     alrb = ~alrb;
  78.         delay(200);
  79.   }
  80. }

  81. void main()
  82. {
  83.         floor=1;
  84.         P1=seg_table[floor];
  85.         P0=0xff;
  86.         ud=1;
  87.         run=0;       
  88.         ulc=1;
  89.         dlc=1;
  90.        
  91.         alrl=1;
  92.     alrb=1;         

  93.         TCON=0x01; //打開外部中斷0,并設(shè)置為下降沿觸發(fā)
  94.         IE=0x81;   //開總中斷

  95.         while(1)
  96.         {       
  97.              while(start==1)
  98.            {
  99.                   P1=seg_table[10];
  100.                   ulc=1;
  101.           dlc=1;       
  102.            }

  103.                 input();                               
  104.                 switch(floor)
  105.                 {
  106.                   case 1:                                  //1
  107.                   {
  108.                         P1=seg_table[floor];
  109.                     
  110.                         if((run&0x01)==0x01)
  111.                         {
  112.                           delay(600);
  113.                           run&=0xfe;          
  114.                         }

  115.                     if((run&0x3e)!=0)
  116.                         {
  117.                           StepMotor(1,5);
  118.                           floor=2;
  119.                           ud=1;
  120.                         }
  121.                         else
  122.                         {
  123.                           ulc=1;
  124.               dlc=1;
  125.                         }
  126.                   }         break;
  127.                   case 2:
  128.                   {       
  129.                         P1=seg_table[floor];
  130.                     if(ud==1)                                 //2上
  131.                         {
  132.                           if((run&0x02)==0x02)
  133.                           {
  134.                             delay(600);
  135.                             run&=0xfd;          
  136.                           }
  137.                                            
  138.                       if((run&0x38)!=0)
  139.                           {       
  140.                             StepMotor(1,5);
  141.                             floor=3;                       
  142.                           }       
  143.                           else
  144.                           {
  145.                             ud=0;
  146.                                 ulc=1;
  147.                 dlc=1;
  148.                           }
  149.                         }
  150.                         else                                            //2下
  151.                         {
  152.                           if((run&0x04)==0x04)
  153.                           {
  154.                             delay(600);
  155.                             run&=0xfb;          
  156.                           }
  157.                   
  158.                       if((run&0x01)!=0)
  159.                           {
  160.                             StepMotor(0,5);
  161.                             floor=1;                  
  162.                           }
  163.                           else
  164.                           {
  165.                             ud=1;                 
  166.                                 ulc=1;
  167.                 dlc=1;
  168.                           }
  169.                         }
  170.                        
  171.                   }         break;                  
  172.                   case 3:
  173.                   {
  174.                         P1=seg_table[floor];

  175.                     if(ud==1)                                 //3上
  176.                         {
  177.                           if((run&0x08)==0x08)
  178.                           {
  179.                             delay(600);
  180.                             run&=0xf7;          
  181.                           }
  182.                                             
  183.                       if((run&0x20)!=0)
  184.                           {
  185.                             StepMotor(1,5);
  186.                             floor=4;                  
  187.                           }
  188.                           else
  189.                           {
  190.                             ud=0;
  191.                             ulc=1;
  192.                 dlc=1;
  193.                           }
  194.                         }
  195.                         else                                  //3下
  196.                         {
  197.                           if((run&0x10)==0x10)
  198.                           {
  199.                             delay(600);
  200.                             run&=0xef;          
  201.                           }
  202.                           
  203.                       if((run&0x07)!=0)
  204.                           {
  205.                             StepMotor(0,5);
  206.                             floor=2;                         
  207.                           }
  208.                           else
  209.                           {
  210.                             ud=1;
  211.                                 ulc=1;
  212.                 dlc=1;
  213.                           }
  214.                         }
  215.                   }        break;                 
  216.                   case 4:
  217.                   {
  218.                         P1=seg_table[floor];

  219.                         if((run&0x20)==0x20)
  220.                         {
  221.                             delay(600);
  222.                                   run&=0xdf;          
  223.                         }
  224.                   
  225.                     if((run&0x1f)!=0)
  226.                         {
  227.                           StepMotor(0,5);
  228.                           floor=3;
  229.                           ud=0;
  230.                         }       
  231.                         else
  232.                         {
  233.                           ulc=1;
  234.               dlc=1;
  235.                         }                                          
  236.                   }          
  237.                 }
  238.                
  239.                 if(stop==1)
  240.                 {
  241.                   P1=seg_table[10];
  242.                   ulc=1;
  243.           dlc=1;
  244.                   alarm();
  245.                 }
  246.                   
  247.   }
  248. }

  249. void int0() interrupt 0
  250. {
  251.   stop=1;
  252. }
復(fù)制代碼

所有資料打包下載:
四層電梯模擬程序與proteus仿真.rar (106.52 KB, 下載次數(shù): 225)

評分

參與人數(shù) 2黑幣 +75 收起 理由
lgyandtina + 5 很給力!
admin + 70 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:128380 發(fā)表于 2016-11-25 17:52 來自手機(jī) | 只看該作者
厲害啊啊啊
回復(fù)

使用道具 舉報

板凳
ID:153883 發(fā)表于 2016-12-11 14:22 來自手機(jī) | 只看該作者
(⊙o⊙)(⊙o⊙)(⊙o⊙)
回復(fù)

使用道具 舉報

地板
ID:146771 發(fā)表于 2017-1-15 22:04 | 只看該作者
能做出了很不容易啊
回復(fù)

使用道具 舉報

5#
ID:160725 發(fā)表于 2017-1-16 09:21 | 只看該作者
運(yùn)行錯誤呀
回復(fù)

使用道具 舉報

6#
ID:161203 發(fā)表于 2017-1-16 15:06 | 只看該作者
沒找到start呢?
回復(fù)

使用道具 舉報

7#
ID:200583 發(fā)表于 2017-5-14 22:10 | 只看該作者
請問一下,為什么仿真不行?
回復(fù)

使用道具 舉報

8#
ID:200583 發(fā)表于 2017-5-14 22:11 | 只看該作者

我也是。。。
回復(fù)

使用道具 舉報

9#
ID:204454 發(fā)表于 2017-5-24 20:31 | 只看該作者
我下下來的仿真也不能用  按鍵 沒有反應(yīng)
回復(fù)

使用道具 舉報

10#
ID:262082 發(fā)表于 2017-12-20 15:37 | 只看該作者
為什么不能仿真
回復(fù)

使用道具 舉報

11#
ID:67179 發(fā)表于 2017-12-25 10:21 | 只看該作者
謝謝分享!
回復(fù)

使用道具 舉報

12#
ID:57831 發(fā)表于 2018-3-8 23:20 | 只看該作者
        很給力!
回復(fù)

使用道具 舉報

13#
ID:273292 發(fā)表于 2018-3-9 08:39 | 只看該作者
不錯,很給力,運(yùn)行不了的可以加我
回復(fù)

使用道具 舉報

14#
ID:353754 發(fā)表于 2018-6-18 17:11 | 只看該作者
xdl932365660 發(fā)表于 2018-3-9 08:39
不錯,很給力,運(yùn)行不了的可以加我

請問怎么運(yùn)行??
回復(fù)

使用道具 舉報

15#
ID:101342 發(fā)表于 2018-6-21 01:24 | 只看該作者
謝謝分享,下載來看看
回復(fù)

使用道具 舉報

16#
ID:210588 發(fā)表于 2018-6-21 08:53 | 只看該作者
坑 !!仿真沒有反應(yīng)
回復(fù)

使用道具 舉報

17#
ID:365929 發(fā)表于 2018-7-6 09:36 來自手機(jī) | 只看該作者
怎么仿真?
回復(fù)

使用道具 舉報

18#
ID:365929 發(fā)表于 2018-7-6 10:31 來自手機(jī) | 只看該作者
xdl932365660 發(fā)表于 2018-3-9 08:39
不錯,很給力,運(yùn)行不了的可以加我

咋運(yùn)行
回復(fù)

使用道具 舉報

19#
ID:397520 發(fā)表于 2018-9-13 15:49 | 只看該作者
很給力
回復(fù)

使用道具 舉報

20#
ID:383986 發(fā)表于 2018-9-14 20:37 | 只看該作者
仿真報錯,運(yùn)行不了
回復(fù)

使用道具 舉報

21#
ID:388870 發(fā)表于 2018-9-19 09:43 | 只看該作者
謝謝分享!
回復(fù)

使用道具 舉報

22#
ID:74293 發(fā)表于 2020-3-18 00:06 | 只看該作者
有沒有能改5層的???
回復(fù)

使用道具 舉報

23#
ID:286327 發(fā)表于 2020-5-6 17:33 | 只看該作者
仿真不了兄弟你這/?
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人三级av| 男女羞羞视频大全 | 成人在线免费 | 日日拍夜夜 | 亚洲一区二区久久 | 久久久久一区 | 欧美一级视频在线观看 | 国产日韩电影 | 中文字幕在线一区二区三区 | 欧美一区二区 | 国产区免费视频 | 成人亚洲片 | 一级黄色录像片子 | 国产精品久久久久久久久久久久 | 日韩精品一区二区三区中文在线 | 国产日韩视频在线 | avhd101在线成人播放 | 亚洲精品不卡 | av一区二区三区在线观看 | 色综合久久久 | 日韩a v在线免费观看 | 国产精品久久国产精品 | 国内精品在线视频 | 欧美一级二级在线观看 | 欧美日韩亚洲一区 | 欧美一区二区三区小说 | 毛片免费在线 | 2018国产精品| 亚洲网站在线观看 | 日韩av一区二区在线观看 | 国产精品视频网站 | 成人av一区 | 久久一区二区三区电影 | 精品熟人一区二区三区四区 | 欧美精品免费观看二区 | 一级少妇女片 | 狠狠爱视频 | 91高清视频| 久久久精品一区二区三区 | 91精品国产一区二区三区 | 日本a级大片 |