找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3454|回复: 5
收起左侧

51单片机自动售水机程序

[复制链接]
ID:684881 发表于 2020-2-9 21:53 | 显示全部楼层 |阅读模式
51hei.png

单片机源程序如下:
  1. #include "stc.h"
  2. #include "button.h"
  3. #include "smg.h"
  4. #include "AT24C02.h"
  5. sbit led1=P0^0;
  6. sbit bell=P0^6;
  7. sbit relay=P0^4;  
  8. unsigned char flag_s7,flag_s6;
  9. int money=0,amount=0;//价格 容量
  10. unsigned char count,flag_count;
  11. unsigned char state;         //控制数码管两种显示界面 按键控制
  12. #define EXE_EN P2 = (P2&0X1F)|0XA0;  P2 &= 0X1F
  13. void init_time0()          //1微妙加1
  14. {
  15.         TMOD=0x01;
  16.         TH0=(65536-50000)/256;//定时50ms
  17.         TL0=(65536-50000)%256;
  18.         ET0=1;
  19.         //TR0=1;
  20.         EA=1;
  21. }
  22. void time0() interrupt 1
  23. {
  24.    TH0=(65536-50000)/256;
  25.    TL0=(65536-50000)%256;
  26.    count++;
  27.    if(count==20)
  28.    {
  29.    count=0;
  30.    flag_count=1;
  31.    }
  32. }
  33. void key()
  34. {
  35.         unsigned char kk=keyboard();
  36.         unsigned char guan=get_lux(0x41);

  37.         if(guan<64)
  38.         {
  39.             P0=0xff;
  40.             P2&=0x1f;
  41.             P2|=0x80;
  42.             led1=0;//灯l2亮   
  43.                 P2&=0x1f;       
  44.         }
  45.         if(guan>=64)
  46.         {
  47.                 P0=0xff;
  48.             P2&=0x1f;
  49.             P2|=0x80;
  50.             led1=1;//灯l1灭   
  51.                 P2&=0x1f;
  52.         }
  53.         if(kk==7)
  54.         {
  55.         flag_s7=1;
  56.         state=1;
  57.         TR0=1;                  //启动定时器
  58.         }
  59.         if(kk==6)
  60.         {
  61.                 flag_s6=1;
  62.                 state=2;
  63.         }
  64.         if(flag_s7)
  65.         {
  66.           flag_s7=0;bell=0;relay=1;EXE_EN;             
  67.         }
  68.         if(flag_s6)
  69.         {
  70.          TR0=0;                 //关闭定时器
  71.          flag_s6=0;bell=0;relay=0;EXE_EN;
  72.         }
  73.         if(state==1)
  74.         {
  75.             display_s(1,0); display(2,5); display(3,0);
  76.                 display(4,amount/100); display_s(5,amount%100/10); display(6,amount%10); display(7,0);
  77.         }
  78.         if(state==2)
  79.         {
  80.                 display_s(1,0); display(2,5); display(3,0);
  81.                 display(4,money/1000); display_s(5,money%1000/100); display(6,money%100/10); display(7,money%10);
  82.         }

  83.         if(flag_count==1)
  84.         {
  85.                 flag_count=0;
  86.                 money=money+5;
  87.                 amount=amount+1;
  88.         }
  89.         if(amount==9990){flag_s6=1;state=2;}
  90. }
  91. void main()
  92. {
  93.     init_time0();
  94.         while(1)
  95.         {
  96.           key();
  97.         }
  98. }
复制代码
51hei.png

所有资料51hei提供下载:
自动售水机.rar (540.59 KB, 下载次数: 42)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:691876 发表于 2020-2-10 22:33 | 显示全部楼层
不错呀
回复

使用道具 举报

ID:773862 发表于 2020-6-9 13:08 来自手机 | 显示全部楼层
请问有protues的仿真图吗?
回复

使用道具 举报

ID:773862 发表于 2020-6-9 13:09 来自手机 | 显示全部楼层
楼主是不是ZBDX的呀
回复

使用道具 举报

ID:683360 发表于 2020-10-10 13:46 | 显示全部楼层
你写这个程序花了多长时间?
回复

使用道具 举报

ID:432653 发表于 2020-10-22 22:39 | 显示全部楼层
不会用
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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