找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

這個(gè)單片機(jī)程序?yàn)槭裁床荒茏岆姍C(jī)轉(zhuǎn)動(dòng)呢?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:334234 發(fā)表于 2020-4-3 19:09 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
預(yù)想功能:上電后,溫度傳感器工作,按下按鍵,電機(jī)工作

現(xiàn)在的現(xiàn)象:下載程序后,溫度正常顯示,按下按鍵,蜂鳴器會(huì)響,按一下響一下,但是電機(jī)不轉(zhuǎn)

單片機(jī)源程序如下:
  1. #include "reg52.h"
  2. #include "temp.h"

  3. typedef unsigned int u16;
  4. typedef unsigned char u8;
  5. #define GPIO_MOTOR P1

  6. sbit LSA=P2^2;
  7. sbit LSB=P2^3;
  8. sbit LSC=P2^4;
  9. sbit L6=P2^5;
  10. sbit beep=P1^5;
  11. sbit k3=P3^2;



  12. u8 displaydata[5];
  13. u8 code wenduduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//ÏÔê¾0,1,2,3μè
  14. unsigned char code FFS[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};//·′×a
  15. unsigned char code FFN[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//Õy×a
  16. unsigned char Direction,Speed;

  17. void Motor();

  18. //Ñóê±oˉêy,i=1,Ñóê±10us
  19. void delay(u16 i)
  20. {   
  21.    while(i--);
  22. }
  23. //ζè′|àíoˉêy
  24. void dataprocess(int temp)
  25. {
  26.    float tp,a;
  27.         if(temp<0)
  28.         {
  29.     displaydata[0]=0x40;
  30.     temp=temp-1;
  31.                 temp=~temp;
  32.                 tp=temp;
  33.                 temp=tp*0.0625*100+0.5;

  34. }
  35.   else
  36.         {
  37.    displaydata[0]=0x00;
  38.                 tp=temp;
  39.                 temp=tp*0.0625*100+0.5;

  40. }
  41.     displaydata[1]=wenduduan[temp%10000/1000];
  42.     displaydata[2]=wenduduan[temp%1000/100]|0x80;
  43.     displaydata[3]=wenduduan[temp%100/10];//
  44.     displaydata[4]=wenduduan[temp%10/1];//
  45.     a=temp/100;
  46.     if(a>22.99)
  47.                 {

  48.                         L6=0;

  49. }
  50. else
  51. {
  52.   L6=1;
  53. }
  54. }

  55. //êyÂë1üÏÔê¾oˉêy
  56. void wendudisplay()
  57. {
  58.    u8 i;
  59.         for(i=0;i<5;i++)
  60.         {
  61.     switch(i)
  62.                 {

  63.        case(0):
  64.                          LSA=1;LSB=1;LSC=1;break;//ÏÔê¾μú0λ
  65.                    case(1):
  66.                          LSA=0;LSB=1;LSC=1;break;
  67.                          case(2):
  68.                          LSA=1;LSB=0;LSC=1;break;
  69.                          case(3):
  70.                          LSA=0;LSB=0;LSC=1;break;
  71.                          case(4):
  72.                          LSA=1;LSB=1;LSC=0;break;
  73. //                         case(5):
  74. //                         LSA=0;LSB=1;LSC=0;break;
  75. }
  76.      P0=displaydata[i];//·¢Ëíêy¾Y
  77.      delay(100);
  78.      P0=0x00;//Ïûòt

  79. }

  80. }

  81. void main()
  82. {
  83.         
  84.          Speed=10;
  85.           TMOD=0x10;
  86.            TH1=0x3C;
  87.            TL1=0xB0;
  88.            EA=1;
  89.            ET1=1;
  90.            TR1=0;
  91.         
  92.         
  93.         
  94.   while(1)
  95.         {
  96.    dataprocess(DS18B20readtemp());
  97.                 wendudisplay();
  98.                 if(k3==0)
  99.    {
  100.     delay(1);
  101.                  if(k3==0)
  102.                  {
  103.                        TR1=1;
  104.         Direction=1;
  105.                            Speed=10;  
  106.                beep=~beep;
  107.                                          Motor();
  108. }  


  109. }
  110. else
  111.         {
  112.     TR1=0;
  113. }
  114.         
  115. }




  116. }



  117. void timer()  interrupt 3
  118. {
  119. static u16 i;
  120.            TH1=0x3C;
  121.            TL1=0xB0;
  122.      i++;
  123.         

  124.   if(i==100)
  125.         {
  126.                   delay(5000);
  127.                    delay(5000);
  128.                   Direction=0;
  129.                    Speed=10;
  130.                   i=0;
  131.                
  132. }
  133.                         Motor();

  134. }
復(fù)制代碼


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

使用道具 舉報(bào)

沙發(fā)
ID:352458 發(fā)表于 2020-4-3 20:41 | 只看該作者
看了看你寫(xiě)的主程序,應(yīng)該沒(méi)什么大問(wèn)題。
1.看看工程文件中硬件驅(qū)動(dòng)hardware里有沒(méi)有添加電機(jī)驅(qū)動(dòng)程序。step_moter.c文件記得要添加上。
2.看看驅(qū)動(dòng)程序中對(duì)單片機(jī)的引腳分配有沒(méi)有沖突,如果有,記得避免和其他硬件沖突。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表