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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機模擬洗衣機的查詢,預定(藍牙,定時器)幫別人做的設計源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:251195 發表于 2018-4-20 20:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近閑的無聊,就接了5個系里面同學的畢業設計,這幾天加班累得我,當然是收費的,都是同學,差不多就500一個,然而班級一個同學讓我幫他調設備,也是網上買的,居然花了2800,社會,社會........老子做了5個,還沒人家一個賺的多,小豬佩奇送給自己安慰一下自己。。。。。。。。廢話不想說,直接看代碼吧.....都是很簡單的,很多東西都是現成的,我就是為了騙黑幣。。。。。。暴露自己了

單片機源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>

  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. typedef bit BOOL;
  6.         
  7. unsigned int sec = 0,min = 0,aa,tmp;
  8. unsigned char ss,sg,ms,mg,count,count1;

  9. sbit key1 = P0^0; //系統啟動按鍵
  10. sbit key2 = P0^1; //投幣三元按鍵
  11. sbit beep = P3^7; //蜂鳴器,洗衣完成
  12. sbit led1 = P0^2; //等待運行燈
  13. sbit led2 = P0^3; //系統運行燈
  14. sbit led3 = P0^4; //網上預約燈

  15. sbit rs=P0^7;
  16. sbit rw=P0^6;
  17. sbit lcden=P0^5;

  18. char code dis1 []={"Waiting To Run!"};
  19. char code dis2 []={"system running!"};
  20. char code dis3 []={"time remaining:"};

  21. void delay_ms(uint z)
  22. {
  23.         uint x,y;
  24.         for(x=z;x>0;x--)
  25.                 for(y=110;y>0;y--);
  26. }

  27. void send(unsigned char a)        //單字節發送函數
  28. {                                                    //注意:若單片機TXD(P3.1)無上拉能力,必須在P3.1端接上拉電阻
  29.                                 ES =0;
  30.         TI=0;        
  31.         SBUF=a;
  32.         while(TI==0);
  33.         TI=0;
  34.                                 ES = 1;
  35. }


  36. void send_str(unsigned char *str)  //發送字符串函數
  37. {
  38.         while(*str != '\0')
  39.                 send(*str++);
  40. }

  41. void ctrl()                            //接收處理函數
  42. {
  43.         switch(tmp)
  44.                 {
  45.                         case '1':      //查詢洗衣機是否被預約
  46.                         if(count1 == 0)
  47.                                 {
  48.                                         send_str(" the system is not running\n! ");
  49.                                 }
  50.                                 else
  51.                                 {
  52.                                         send_str(" the system is running\n! ");
  53.                                 }
  54.                         
  55.                         break;
  56.                         
  57.                         case '2':      //查詢洗衣機剩余洗衣時間
  58.                                 if(count1 == 0)
  59.                                 {
  60.                                         send_str(" time remaining: 00:00\n");
  61.                                 }
  62.                                 else
  63.                                 {
  64.                                         send_str(" time remaining: \n");
  65.                                         send((unsigned char) 2-ms+'0');
  66.                                         send((unsigned char) 9-mg+'0');
  67.                                         send(':');
  68.                                         send((unsigned char) 5-ss+'0');
  69.                                         send((unsigned char) 9-sg+'0');
  70.                                         send('\n');
  71.                                 }

  72.             break;

  73.                         case '3':      //預定洗衣機
  74.                         led3 = 1;
  75.                         count1 = 1;
  76.             send_str(" the machines is reserved by you!\n");
  77.             break;

  78.                         case '4':       //啟動洗衣機
  79.                                                 led2 = 1;
  80.                                                 led3 = 0;
  81.             count = 3;
  82.             break;

  83.                 default:                  
  84.             break;
  85.    }
  86. }

  87. void init(void)
  88. {
  89.         ES=0;                                //關中斷
  90.   SCON = 0x50;                        // REN=1允許串行接受狀態,串口工作模式1,
  91.                                       //10位UART(1位起始位,8位數據位,1位停止位,無奇偶校驗),波特率可變
  92.         TMOD = 0x21;
  93.         TH0 = (65535-50000)/256;
  94.         TL0 = (65535-50000)%256;
  95.         
  96.         TH1=TL1=0xFD;                       // 波特率9600 (本次測試采用晶振為11.0592)
  97.         PCON &= 0x7f;                       // 波特率不倍增
  98.         TR1 = 1;                            //定時器1開始工作,產生波特率
  99.                                       //發送標志位置0
  100.   TI=0;                               //接收標志位置0
  101.   RI=0;
  102.   ES=1;
  103.         
  104.         
  105.         EA = 1;                             //開總中斷
  106.         ET0 = 1;                                                                                                                //開定時器中斷

  107. }
  108. void write_com(uchar com)
  109. {
  110.         rs=0;
  111.         lcden=0;
  112.         P2=com;
  113.         delay_ms(5);
  114.         lcden=1;
  115.         delay_ms(5);
  116.         lcden=0;        
  117. }

  118. void write_date(uchar date)
  119. {
  120.         rs=1;
  121.         lcden=0;
  122.         P2=date;
  123.         delay_ms(5);
  124.         lcden=1;
  125.         delay_ms(5);
  126.         lcden=0;        
  127. }

  128. void lcd_init()
  129. {
  130.         rw=0;
  131.         lcden=0;
  132.         write_com(0x38);
  133.         write_com(0x0c);
  134.         write_com(0x06);
  135.         write_com(0x01);        
  136. }
  137. void write_fm(uchar add,uchar data1,uchar data2)
  138. {        
  139.         write_com(0x80+0x40+add);
  140.         write_date(0x30+data1);
  141.         write_date(0x30+data2);
  142. }


  143. void main()
  144. {
  145.                 char i = 0;
  146.                
  147.                 init();   
  148.                 lcd_init();

  149.                 led1 =1;
  150.                 led2 =0;
  151.                 led3 =0;
  152.                 beep = 0;
  153.                 key1 = 1;
  154.                 key2 = 1;

  155.                 count1 = 0;  //0為系統沒有運行;1為系統已經被預定
  156.         
  157.                 write_com(0x80);
  158.                 i=0;
  159.                 while (dis1 [i]!='\0')
  160.                 {
  161.                         write_date(dis1 [i]);
  162.                         i++;        
  163.                 }
  164.                
  165.                 while(key1 == 1)  
  166.                 {
  167.                                 if(count == 3)
  168.                                 {
  169.                                         count = 0;
  170.                                         led2  = 1;
  171.                                         write_com (0x01);
  172.                                         while(1)
  173.                                         {                                       
  174.                                                 TR0 = 1;                   //開啟定時器
  175.                                                 ss = sec/10;
  176.                                                 sg = sec%10;
  177.                                                 ms = min/10;
  178.                                                 mg = min%10;

  179.                                                 write_com(0x80);
  180.                                                 i=0;
  181.                                                 while (dis1 [i]!='\0')
  182.                                                 {
  183.                                                         write_date(dis3 [i]);
  184.                                                         i++;        
  185.                                                 }
  186.                                                 
  187.                                                 write_fm(4,2-ms,9-mg);
  188.                                                 write_date(':');        
  189.                                                 write_fm(7,5-ss,9-sg);
  190.                                                 
  191.                                                 if(ms == 2&&mg == 9&&ss == 5&&sg == 9)
  192.                                                 {
  193.                                                                 ET0 = 0;
  194.                                                                 TR0 = 0;                   //關定時器
  195.                                                 }                                       
  196.                                         }      
  197.                                 }
  198.                         }        
  199.                
  200.                         
  201.                 if(key1 == 0)
  202.                 {
  203.                         delay_ms(20);
  204.                         write_com (0x01);
  205.                          while(key1 != 1)
  206.                          {
  207.                                  led1 = 0;
  208.                                 write_com(0x80);                                                
  209.                                 i=0;
  210.                                 while (dis2 [i]!='\0')
  211.                                 {
  212.                                         write_date(dis2 [i]);
  213.                                         i++;        
  214.                                 }
  215.                                 count1 = 1;                   //人工投幣        
  216.                                 if(key2 == 0)
  217.                                 {
  218.                                         delay_ms(20);
  219.                                         if(key2 == 0)
  220.                                         {
  221.                                                 count++;
  222.                                                 while(!key2);
  223.                                         }                                                
  224.                                 }
  225.                                 if(count == 3)
  226.                                 {
  227.                                         count = 0;
  228.                                         led2  = 1;
  229.                                         write_com (0x01);
  230.                                         while(1)
  231.                                         {                                       
  232.                                                 TR0 = 1;                   //開啟定時器
  233.                                                 ss = sec/10;
  234.                                                 sg = sec%10;
  235.                                                 ms = min/10;
  236.                                                 mg = min%10;

  237.                                                 write_com(0x80);
  238.                                                 i=0;
  239.                                                 while (dis1 [i]!='\0')
  240.                                                 {
  241.                                                         write_date(dis3 [i]);
  242.                                                         i++;        
  243.                                                 }
  244.                                                 
  245.                                                 write_fm(4,2-ms,9-mg);
  246.                                                 write_date(':');        
  247.                                                 write_fm(7,5-ss,9-sg);
  248.                                                 
  249.                                                 if(ms == 2&&mg == 9&&ss == 5&&sg == 9)
  250.                                                 {
  251.                                                                 ET0 = 0;
  252.                                                                 TR0 = 0;                   //關定時器
  253.                                                 }                                       
  254.                                         }      
  255.                                 
  256.                                 }
  257.                         }
  258.                 }
  259.                
  260. }


  261. void timer0() interrupt 1
  262. ……………………

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

所有資料51hei提供下載:
趙桂黎.rar (44.86 KB, 下載次數: 40)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:489376 發表于 2019-6-19 17:43 | 只看該作者
2800,基本操作啦
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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