找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7130|回复: 15
打印 上一主题 下一主题
收起左侧

豆浆机的proteus单片机仿真及程序源码

  [复制链接]
跳转到指定楼层
楼主
给51黑电子论坛的朋友分享一个51单片机做的豆浆机的控制仿真,带源代码.下面是仿真原理图


所有资料下载:
豆浆机.zip (44.96 KB, 下载次数: 166)


下面是部分源程序预览:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar  unsigned char
  4. #define uint  unsigned int
  5. sbit M0=P3^0;
  6. sbit M1=P3^1;
  7. sbit M2=P3^2;
  8. sbit M3=P3^3;
  9. sbit sw0=P3^6;
  10. sbit sw1=P3^7;
  11. sbit key0=P1^0;
  12. sbit key1=P1^1;
  13. sbit f=P3^4;
  14. uchar Speed=1;
  15. uchar m;
  16. uchar t=0;
  17. uchar n=0;
  18. uchar Date=0;
  19. uchar Ledplay[6];
  20. uchar bn=0;
  21. uchar code  SEG7[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x38,0x77,0x40,0x00};
  22. uchar code  Scan_bit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
  23. uchar data  Dis_buf[]={0,0,10,10,10,10};
  24. uchar z;
  25. void Delayxms(uint t)                     
  26. {
  27.     unsigned char i,j,k;
  28.    for(k=0;k<t;k++)
  29.   {
  30.            _nop_();
  31.                    _nop_();
  32.                 _nop_();
  33.            i = 11;
  34.            j = 190;
  35.       do
  36.           {
  37.                    while (--j);
  38.            } while (--i);
  39.    }               
  40. }

  41. void Delay1us(uchar t)                     
  42. {
  43.     uchar i;
  44.    for(i=0;i<t;i++)
  45.   {
  46.            _nop_();
  47.            _nop_();
  48.            _nop_();         
  49.    }               
  50. }

  51. void display(void)                        
  52. {                                                
  53.       uchar i;
  54.               
  55.      for(i=0;i<6;i++)
  56.     {
  57.          P2=0xff;               //全部数码管位选失能
  58.                  P0=SEG7[Dis_buf[i]];        //第i个数码管显示
  59.                  P2= Scan_bit[i];
  60.                  Delayxms(1);
  61.     }                                       
  62. }

  63. void Timer0_init(void)
  64. {
  65.     TMOD=0x51;
  66.         TH0=(65535-50000)/256;
  67.         TL0=(65535-50000)%256;
  68.         EA=1;
  69.         ET0=1;
  70.         TR0= 1;
  71. }
  72. uchar cnt=100;        

  73. void Timer0_int(void) interrupt 1 using        1
  74. {
  75.     t++;
  76.         TH0=(65535-50000)/256;
  77.         TL0=(65535-50000)%256;
  78.         if(t==20)
  79.         {
  80.            t=0;
  81.            Date=n;
  82.            n=0;
  83.            cnt--;
  84.            if(cnt==0)
  85.            {
  86.              while(1)
  87.                  {
  88.                      f=0;
  89.                          f=1;
  90.                  }
  91.                   
  92.            }
  93.         }
  94.         if(key0==0)
  95.         {
  96.            Delayxms(10);
  97.            if(key0==0)
  98.            {
  99.               Speed++;
  100.                   if(Speed>20)
  101.                   {
  102.                     Speed=20;
  103.                   }
  104.            }
  105.            while(key0==0);
  106.         }
  107.         if(key1==0)
  108.         {
  109.            Delayxms(10);
  110.            if(key1==0)
  111.           {
  112.              Speed--;
  113.                  if(Speed==0)
  114.                  {
  115.                     Speed=1;
  116.                  }
  117.           }
  118.           while(key1==0);
  119.         }
  120. }        

  121. void delay()                     
  122. {  
  123.     uchar i=5+Speed;
  124.     while(--i!=0)
  125.   {
  126.      Dis_buf[0]=13;
  127.          Dis_buf[1]=cnt%10;
  128.          Dis_buf[2]=cnt/10;
  129.          Dis_buf[3]=12;
  130.      Dis_buf[4]=Speed%10;
  131.          Dis_buf[5]=Speed/10;
  132.          display();
  133.   }                          
  134. }

  135. void R_rotation()
  136. {
  137.    M3=0;
  138.    M0=1;
  139.    delay();
  140.    n++;
  141.    M0=0;
  142.    M1=1;
  143.    delay();
  144.    n++;
  145.    M1=0;
  146.    M2=1;
  147.    delay();
  148.    n++;
  149.    M2=0;
  150.    M3=1;
  151.    delay();
  152.    n++;
  153. }

  154. /*void F_rotation()
  155. {
  156.    M0=0;
  157.    M3=1;
  158.    delay();
  159.    n++;
  160.    M3=0;
  161.    M2=1;
  162.    delay();
  163.    n++;
  164.    M2=0;
  165.    M1=1;
  166.    delay();
  167.    n++;
  168.    M1=0;
  169.    M0=1;
  170.    delay();
  171.    n++;
  172. }*/


  173. void main()
  174. {  int flag = 0;
  175.    Timer0_init();
  176.   
  177.         while(1)
  178.         {
  179.                 if(flag == 1)
  180.                         R_rotation();
  181.                
  182.                 if(sw1==0)                                
  183.                 {
  184.                         cnt=10;
  185.                         flag = 1;
  186.                 }
  187.                 if(sw0==0)                                
  188.                 {
  189.                         cnt=20;
  190.                         flag=1;
  191.                 }
  192.         }
  193. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩1
回复

使用道具 举报

来自 2#
ID:328014 发表于 2020-4-5 16:35 | 只看该作者

我刚特意测试了下可以打开,我的平台是Proteus8.8 keil3版本 完全没有问题呢,你看图:

51hei.png (28.01 KB, 下载次数: 43)

51hei.png

豆浆机.7z

31.5 KB, 下载次数: 29, 下载积分: 黑币 -5

回复

使用道具 举报

板凳
ID:81140 发表于 2016-9-26 23:48 | 只看该作者
打开失败······什么情况  楼主
回复

使用道具 举报

地板
ID:140590 发表于 2016-9-27 08:03 | 只看该作者
这个好,试一试
回复

使用道具 举报

5#
ID:208751 发表于 2017-6-9 12:07 | 只看该作者
请问源码有具体的注释吗???光看下载下来的源码看不懂,求大神解释一下源码呗?
回复

使用道具 举报

6#
ID:208751 发表于 2017-6-9 12:14 | 只看该作者
那四个按键的作用是什么??
回复

使用道具 举报

7#
ID:52667 发表于 2018-9-7 20:31 | 只看该作者
打不开,什么情况?
回复

使用道具 举报

8#
ID:407047 发表于 2018-10-16 08:20 | 只看该作者
仿真电路打不开,提示仿真电路错误,楼主应该怎么办?急!!!!
回复

使用道具 举报

9#
ID:410499 发表于 2018-10-16 16:07 | 只看该作者
打不开打不开打不开!!急急急
回复

使用道具 举报

10#
ID:412814 发表于 2018-10-26 19:11 | 只看该作者
有源程序这个挺好,要是能仿真成功就好了。
回复

使用道具 举报

11#
ID:516040 发表于 2019-6-25 21:29 来自手机 | 只看该作者
请问可不可以发我一下完整的?
回复

使用道具 举报

12#
ID:667331 发表于 2019-12-19 10:53 | 只看该作者
这个芯片是c52的啊
回复

使用道具 举报

13#
ID:722851 发表于 2020-4-5 16:13 | 只看该作者
怎么无法打开
回复

使用道具 举报

14#
ID:722851 发表于 2020-4-5 16:25 | 只看该作者
打不开,急
回复

使用道具 举报

15#
ID:781022 发表于 2020-6-17 18:00 | 只看该作者
你好,有没有电路的解释
回复

使用道具 举报

16#
ID:783810 发表于 2020-6-19 10:53 来自手机 | 只看该作者
为什么上面的显示灯不亮
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表