亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 單片機(jī)智能窗簾設(shè)計(jì)資料 程序+原理圖和PCB文件+PPT [打印本頁]

作者: 15195960629    時(shí)間: 2019-1-4 16:16
標(biāo)題: 單片機(jī)智能窗簾設(shè)計(jì)資料 程序+原理圖和PCB文件+PPT
Altium Designer畫的智能窗簾原理圖和PCB圖如下:(51hei附件中可下載工程文件)


隨著科技的深化發(fā)展,人民生活水平的日益提高,自控系統(tǒng)從安防、采暖、采光、烹煮等領(lǐng)域不斷擴(kuò)展,家居智能化的趨勢(shì)越來越明顯。本文針對(duì)的,是智能窗簾這一塊,它的任務(wù)是通過簡(jiǎn)單省力的操作來實(shí)現(xiàn)室內(nèi)采光自動(dòng)變化,解決一些實(shí)際的困難與需求。
例如:已經(jīng)上床睡覺,卻發(fā)現(xiàn)窗簾沒關(guān);小朋友、殘疾者拉窗簾的不便;外出旅游,需要房間保持定時(shí)采光,去濕去霉;希望早上窗簾到點(diǎn)打開,用明亮的陽光來喚醒自己;由于生活的緊湊,沒有精力管理窗簾又希望室內(nèi)采光自動(dòng)保持在舒適的程度;飄窗、高窗、懸窗、落地窗等窗簾的拉不動(dòng)或夠不著;希望非觸碰地拉動(dòng)層層疊疊的窗簾,保持其造型的美觀….這種種問題,通過使用智能電動(dòng)窗簾便能輕松解決,從而使現(xiàn)代生活變得更方便舒適。

ppt內(nèi)容預(yù)覽:



2項(xiàng)目的硬件工作原理分析和調(diào)試,各模塊介紹
2.1分析項(xiàng)目的硬件工作原理
1.通過溫度傳感器來自動(dòng)的控制窗簾的關(guān)閉與開啟;
2.通過紅外遙控器來手動(dòng)控制窗簾的關(guān)閉,開啟,暫停,啟動(dòng),加速,減速以及智能與人工的轉(zhuǎn)換;
3.測(cè)得的溫度與相應(yīng)的步進(jìn)電機(jī)的速度可以通過LCD1602顯示出來。
2.2介紹該項(xiàng)目中使用的模塊,及其作用
2.2.1步進(jìn)電機(jī)
步進(jìn)電動(dòng)機(jī)是一種將電脈沖信號(hào)轉(zhuǎn)換成角位移或線位移的機(jī)電元件。步進(jìn)電動(dòng)機(jī)的輸入量是脈沖序列,輸出量則為相應(yīng)的增量位移或步進(jìn)運(yùn)動(dòng)。正常運(yùn)動(dòng)情況下,它每轉(zhuǎn)一周具有固定的步數(shù);做連續(xù)步進(jìn)運(yùn)動(dòng)時(shí),其旋轉(zhuǎn)轉(zhuǎn)速與輸入脈沖的頻率保持嚴(yán)格的對(duì)應(yīng)關(guān)系,不受電壓波動(dòng)和負(fù)載變化的影響。
2.2.2DS18B20
DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以 0.0625℃/LSB形式表達(dá),其中S為符號(hào)位。
這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0, 這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際 溫度。 例如+125℃的數(shù)字輸出為07D0H,+25.0625℃的數(shù)字輸出為0191H,-25.0625℃的數(shù)字輸出為FE6FH,-55℃的數(shù)字輸出為FC90H。
2.3系統(tǒng)整體框架

4.總結(jié)(收獲,缺陷,改進(jìn),提高)
本設(shè)計(jì)介紹了基于STC89C52的智能窗簾控制系統(tǒng)的工作原理及實(shí)現(xiàn)過程,我在這個(gè)星期內(nèi)閱讀大量有關(guān)如何通過電機(jī)轉(zhuǎn)動(dòng)來控制窗簾的關(guān)閉和開啟,以及數(shù)字溫度計(jì)原理及設(shè)計(jì)的相關(guān)資料,設(shè)計(jì)了實(shí)現(xiàn)采集與顯示功能的軟件程序,完成了基于STC89C52的智能窗簾控制系統(tǒng)的設(shè)計(jì)。設(shè)計(jì)中采用最常用的單片機(jī)STC89C52作為主控模塊,單總線數(shù)字溫度傳感器DS18B20用來測(cè)量溫度,溫度數(shù)據(jù)采用LCD1602顯示。本設(shè)計(jì)的特點(diǎn)是構(gòu)成系統(tǒng)的硬件器件少,操作簡(jiǎn)單,數(shù)據(jù)處理功能強(qiáng)。
智能化課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),雖然以前還做過這樣的設(shè)計(jì)但這次設(shè)計(jì),但都比較簡(jiǎn)單程序也不是很長(zhǎng)也不需要有很巧妙的程序算法。這次軟件設(shè)計(jì)中讓我充分理解到了利用子程序的好處。在設(shè)計(jì)中也遇到很多問題比如相關(guān)設(shè)備的初始化,經(jīng)過多次調(diào)試修改終于顯示成功。還有很多下問題則不必累述。通過這次項(xiàng)目使我學(xué)習(xí)到了很多的東西,不僅加深了對(duì)專業(yè)知識(shí)的理解,而且更好地把理論知識(shí)與實(shí)踐相結(jié)合,提高了自身的動(dòng)手能力和實(shí)踐水平,增強(qiáng)了學(xué)習(xí)單片機(jī)系統(tǒng)開發(fā)與設(shè)計(jì)的興趣。

3.軟件實(shí)現(xiàn)原理和調(diào)試以及聯(lián)合調(diào)試的總結(jié)

  1. 3.1DS18B20
  2. /******************************************************************/
  3. /*                    讀一個(gè)字節(jié)  , 低位開始                     */
  4. /******************************************************************/
  5. unsigned char ReadOneByte(void)
  6. {
  7.                 unsigned char i;
  8.               unsigned char value=0;
  9.               for(i=0;i<8;i++)
  10.               {
  11.                             value >>=1;
  12.                             DQ = 0;
  13.                             _nop_();
  14.                             _nop_();
  15.                             DQ = 1;
  16.                             _nop_();
  17.                             _nop_();
  18.                             _nop_();
  19.                             _nop_();
  20.                             _nop_();
  21.                             _nop_();
  22.                             _nop_();
  23.                             if(DQ == 1)
  24.                             {value |= 0x80;}
  25.                             Delay60us();

  26.               }
  27.               return value;
  28. }

  29. /******************************************************************/
  30. /*                 寫一個(gè)字節(jié)    先寫低位                         */
  31. /******************************************************************/
  32. void WriteOneByte(unsigned char dat)
  33. {
  34.               unsigned char i;
  35.               for(i=0;i<8;i++)
  36.               {
  37.                             DQ =0;
  38.                             _nop_();
  39.                             _nop_();
  40.                             if(dat&0x01)
  41.                             {DQ =1;}
  42.                             else
  43.                             DQ = 0;
  44.                             Delay60us();
  45.                             DQ = 1;//釋放總線            
  46.                             dat>>=1;
  47.               }

  48. }

  49. /******************************************************************/
  50. /*                   讀取溫度                                     */
  51. /******************************************************************/
  52. unsigned int ReadTemperature(void)
  53. {

  54.    unsigned int a,b,t;
  55.    EA =0;
  56.    bsp_InitDs18b20();
  57.    WriteOneByte(0xcc);
  58.    WriteOneByte(0x44);
  59.    delay_ms(200);
  60.    bsp_InitDs18b20();
  61.    WriteOneByte(0xcc);
  62.    WriteOneByte(0xbe);
  63.    a= ReadOneByte(); //低字節(jié)
  64.    b= ReadOneByte(); //高字節(jié)
  65.    b=b<<8;
  66.    t= a+b;
  67.    EA =1;
  68.    return t;
  69. }
  70. 3.2LCD1602
  71. /*------------------------------------------------
  72.                 清屏函數(shù)
  73. ------------------------------------------------*/
  74. void LCD_Clear(void)
  75. {
  76.               bsp_LcdWriteComand(0x01);
  77.               delay_ms(5);
  78. }

  79. void bsp_LcdWriteData(unsigned char dat)
  80. {
  81.               //delay_ms(5);
  82.               while(bsp_LcdCheckBusy()&0x80);
  83.                 RS =1;
  84.               RW =0;
  85.               LCDPORT = dat;
  86.               EN =1;
  87.               delay_us(10);
  88.               EN =0;
  89. }


  90. void bsp_LcdWriteComand(unsigned char com)
  91. {
  92.               //delay_ms(5);
  93.               while(bsp_LcdCheckBusy()&0x80);
  94.                  RS =0;
  95.               RW =0;
  96.               LCDPORT = com;
  97.               EN =1;
  98.               delay_us(10);
  99.               EN =0;
  100. }


  101. void bsp_LcdInit(void)
  102. {
  103.               delay_ms(15);
  104.               bsp_LcdWriteComand(0x38);
  105.               delay_ms(5);
  106.               bsp_LcdWriteComand(0x38);
  107.               delay_ms(5);
  108.               bsp_LcdWriteComand(0x38);
  109.               delay_ms(5);
  110.               bsp_LcdWriteComand(0x38);
  111.               delay_ms(5);
  112.               bsp_LcdWriteComand(0x08);
  113.               delay_ms(5);
  114.               bsp_LcdWriteComand(0x01);
  115.               delay_ms(5);
  116.               bsp_LcdWriteComand(0x06);
  117.               delay_ms(5);
  118.               bsp_LcdWriteComand(0x0c);
  119. }


  120. void bsp_LcdShowChar(unsigned char x,unsigned char y,unsigned char a)
  121. {
  122.               if(y ==0)
  123.                             bsp_LcdWriteComand(0x80+x);
  124.               else
  125.                             bsp_LcdWriteComand(0xC0+x);
  126.             
  127.               bsp_LcdWriteData(a);            
  128. }


  129. void bsp_LcdShowString(unsigned char x,unsigned char y,unsigned char *s)
  130. {
  131.               if(y ==0)
  132.                             bsp_LcdWriteComand(0x80+x);
  133.               else
  134.                             bsp_LcdWriteComand(0xC0+x);
  135.               while(*s)
  136.               {
  137.                             bsp_LcdWriteData(*s);
  138.                             s++;            
  139.               }
  140. }


  141. unsigned char bsp_LcdCheckBusy(void)
  142. {
  143.               unsigned char temp;
  144.               RS =0;
  145.               RW =1;
  146.               EN =1;
  147.               temp =LCDPORT;
  148.               delay_us(10);
  149.               EN =0;
  150.               return temp;
  151. }


  152. void bsp_LcdFillCGRAM(void)              //0x40
  153. {
  154.               unsigned char i=0;
  155.                  bsp_LcdWriteComand(0x40);
  156.               for(i=0;i<48;i++)
  157.               {
  158.                             bsp_LcdWriteData(my[i]);
  159.               }            
  160. }


  161. void bsp_LcdShowCGRAM(unsigned char x,unsigned char y,unsigned char index)//x 橫坐標(biāo) y 縱坐標(biāo)              index 0-7
  162. {
  163.               if(y ==0)
  164.                             bsp_LcdWriteComand(0x80+x);
  165.               else
  166.                             bsp_LcdWriteComand(0xC0+x);
  167.                             bsp_LcdWriteData(index);
  168. }

  169. 3.3步進(jìn)電機(jī)
  170. void ISR_TIMER1(void) interrupt 3  //1ms
  171. {
  172.               static unsigned int num = 0;
  173.               static unsigned char times = 0,i = 0;
  174.               TH1=(65536-1000)/256;                              //重新賦值 1ms
  175.               TL1=(65536-1000)%256;
  176.             
  177.               if(!StopFlag)
  178.               {
  179.                 if(times == (10-Speed))
  180.                 {
  181.                             times=0;
  182.                             if(TurnFlag == 0)
  183.                             {
  184.                                           switch(i)  //逆時(shí)針轉(zhuǎn)動(dòng)
  185.                                 {
  186.                                               case 0:Coil_A1;i++;break;
  187.                                                         case 1:Coil_AB1;i++;break;
  188.                                                         case 2:Coil_B1;i++;break;
  189.                                                         case 3:Coil_BC1;i++;break;
  190.                                                         case 4:Coil_C1;i++;break;
  191.                                                         case 5:Coil_CD1;i++;break;
  192.                                                         case 6:Coil_D1;i++;break;
  193.                                                         case 7:Coil_DA1;i++;break;
  194.                                                         case 8:i=0;break;
  195.                                               default:break;
  196.                                 }
  197.                             }
  198.                             else if(TurnFlag == 1)
  199.                             {
  200.                                           switch(i)              //順時(shí)針轉(zhuǎn)動(dòng)
  201.                                 {
  202.                                               case 0:Coil_DA1;i++;break;
  203.                                                         case 1:Coil_D1;i++;break;
  204.                                                         case 2:Coil_CD1;i++;break;
  205.                                                         case 3:Coil_C1;i++;break;
  206.                                                         case 4:Coil_BC1;i++;break;
  207.                                                         case 5:Coil_B1;i++;break;
  208.                                                         case 6:Coil_AB1;i++;break;
  209.                                                         case 7:Coil_A1;i++;break;
  210.                                                         case 8:i=0;break;
  211.                                               default:break;
  212.                                 }
  213.                                          
  214.                             }
  215.               }
  216.               times++;
  217.               }
  218.               num++;
  219.               if(num==600)      
  220.               {
  221.                             num=0;
  222.                             ReadTempFlag=1; //讀標(biāo)志位置1
  223.               }
  224. }
復(fù)制代碼


全部資料51hei下載地址:
智能窗簾.rar (5.78 MB, 下載次數(shù): 200)



作者: a598089072    時(shí)間: 2019-1-9 19:42
謝謝分享
作者: 藍(lán)色的鳥人    時(shí)間: 2019-1-26 19:03
你好,想問下,有沒有用DS18B20控制電機(jī)正反轉(zhuǎn)的程序
作者: 藍(lán)色的鳥人    時(shí)間: 2019-1-26 19:05
請(qǐng)問有沒有用DS18B20控制電機(jī)正反轉(zhuǎn)的程序,不需要LCD顯示溫度。我程序一直寫不好。如果可以的話能不能加我QQ462410794
作者: yyhlsf    時(shí)間: 2019-4-26 23:15
謝謝分享
作者: yyhlsf    時(shí)間: 2019-4-27 19:14
謝謝分享
作者: yyhlsf    時(shí)間: 2019-4-28 02:17
謝謝分享
作者: 4427    時(shí)間: 2019-10-27 15:57
謝謝分享




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1