久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

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

搜索
查看: 3479|回復(fù): 10
收起左側(cè)

keil debug卡在箭頭處不動(dòng),問(wèn)題出在哪里?

[復(fù)制鏈接]
ID:970742 發(fā)表于 2021-10-9 15:34 | 顯示全部樓層 |閱讀模式
求教大神 謝謝大家

keil debug卡在箭頭處不動(dòng)

keil debug卡在箭頭處不動(dòng)

電路圖

電路圖

硬件仿真也是卡在同樣的地方不動(dòng),同時(shí),實(shí)體電路控制步進(jìn)電機(jī)的3個(gè)IO都是低電平

單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit maicong=P2^5;//電機(jī)脈沖輸出,初始低電平
  5. sbit fangxiang=P2^6;//電機(jī)方向輸出,初始化后低電平
  6. sbit EN=P2^7;//電機(jī)使能,初始高電平
  7. sbit XWKG=P2^4;//初始位置確認(rèn)端口,低電平有效,調(diào)用ZIJIAN子程序
  8. sbit k0=P1^0;//啟動(dòng),調(diào)用START子程序
  9. sbit k1=P1^1;//停止,調(diào)用TINGZHI子程序
  10. sbit k2=P1^2;//速度加,調(diào)用SUDUZ子程序
  11. sbit k3=P1^3;//速度減,調(diào)用SUDUJ子程序
  12. sbit k4=P1^4;//步長(zhǎng)加,調(diào)用BUCHANGZ子程序
  13. sbit k5=P1^5;//步長(zhǎng)減,調(diào)用BUCHANGJ子程序

  14. uint tt=200;//是否需要??
  15. uint step=1100;//同上
  16. uint num=18;
  17. void keyscan();//鍵盤(pán)掃描程序,程序完成
  18. void delayms(uint ms);//毫秒級(jí)可變延時(shí)程序
  19. void delayus(uint us);//微秒級(jí)可變延時(shí)程序,用于低電平輸出延時(shí),改變低電平時(shí)長(zhǎng)就調(diào)整了頻率。
  20. void delay(uint us);//微秒級(jí)延時(shí)程序,用于脈沖高電平輸出延時(shí)
  21. void baidong();//
  22. void ZIJIAN();//程序完成
  23. void START();//對(duì)應(yīng)k0
  24. void TINGZHI();//對(duì)應(yīng)k1
  25. void SUDUZ();//對(duì)應(yīng)k2
  26. void SUDUJ();//對(duì)應(yīng)k3
  27. void BUCHANGZ();//對(duì)應(yīng)k4
  28. void BUCHANGJ();//對(duì)應(yīng)k5
  29. void JIUQIANYISHEN();//對(duì)應(yīng)k6
  30. void main(void)
  31. {
  32.             maicong = 0;
  33.         fangxiang = 1;
  34.         IT1 = 1;                       
  35.         EX1 = 1;                        
  36.         EA = 1;                        
  37.         ZIJIAN();      
  38.         while(1);//等待按鍵指令,此時(shí)PWM=0;DIR=0。
  39. }
  40. /*低一級(jí)的外部中斷2,負(fù)責(zé)按鍵的操作,即啟動(dòng)、停止、加減速、步長(zhǎng)加減、自動(dòng)運(yùn)行程序的啟動(dòng)*/
  41. void exint1() interrupt 2           //(location at 0013H)
  42. {              
  43.     keyscan();                                 
  44. }
  45. void keyscan()
  46. {
  47. while(1)
  48. {
  49.              if(k0==0)        START();
  50.         else if(k1==0)        TINGZHI();//停止,回初始位(有兩種可能,拔出或到底)
  51.         else if(k2==0)        SUDUZ();//速度增
  52.         else if(k3==0)        SUDUJ();//速度減
  53.         else if(k4==0)        BUCHANGZ();//步長(zhǎng)增
  54.         else if(k5==0)        BUCHANGJ();//步長(zhǎng)減
  55.         else if(XWKG==0) ZIJIAN();//初始位開(kāi)關(guān)開(kāi),電機(jī)換向,轉(zhuǎn)動(dòng)
  56. }
  57. }

  58. void ZIJIAN()
  59.   {
  60.                 EN=0;//電機(jī)使能,可以自由轉(zhuǎn)動(dòng)
  61.                 fangxiang=1;
  62.                 while(XWKG==0)
  63.          {
  64.     maicong=1;
  65.     delay(1);
  66.     maicong=0;
  67.                 delayus(tt);
  68.         }
  69.                while(XWKG==1)
  70.                         {
  71.         fangxiang=0;
  72.         maicong=1;
  73.     delay(1);
  74.     maicong=0;
  75.                 delayus(tt);//此處需配合限位開(kāi)關(guān)確定轉(zhuǎn)動(dòng)角度      

  76.                 }
  77.                   EN=1;//電機(jī)使能,不能自由轉(zhuǎn)動(dòng)
  78.             delayms(50);
  79. }               
  80. void START()
  81.   {
  82.                 EN=0;
  83.                 step=1100;//50*55最大移動(dòng)步數(shù),有可能觸發(fā)限位開(kāi)關(guān)
  84.                 delayms(50);
  85.                 while(1)
  86.                                 {                  
  87.                   baidong();
  88.                         }
  89. }
  90. void TINGZHI()
  91. {
  92.         while(1);   
  93. }

  94. void SUDUZ()
  95. {
  96.    tt=tt-5;
  97.    if(tt<1)
  98.     tt=1;
  99.     while(k2==0);
  100. }

  101. void SUDUJ()
  102. {
  103.    tt=tt+5;
  104.    if(tt>255)
  105.     tt=255;
  106.     while(k3==0);
  107. }

  108. void BUCHANGZ()
  109. {
  110.    step=step+5;
  111.    if(step>2750)
  112.     step=2750;
  113.     while(k4==0);
  114. }

  115. void BUCHANGJ()
  116. {
  117.    step=step-5;
  118.    if(step<50)
  119.     step=50;
  120.     while(k5==0);
  121. }


  122. /*外部中斷0(最高級(jí)),負(fù)責(zé)打斷外部中斷 2,即限位開(kāi)關(guān)的觸發(fā)*/

  123. void exint0() interrupt 0           //(location at 0003H)
  124. {
  125.     while(1);
  126. }


  127.       

  128. void baidong()
  129.         {
  130.          EN=0;//電機(jī)使能,可以自由轉(zhuǎn)動(dòng)

  131.        while(step--)//step取值范圍小于細(xì)分*55
  132.          {
  133.     maicong=1;//初始pwm輸出為低電平,開(kāi)始動(dòng)作就要變?yōu)楦唠娖剑ü碴幗臃ǎ?br />
  134.     delay(1);//延時(shí)4微秒,脈沖寬度為5微秒
  135.     maicong=0;//低電平
  136.     delayus(tt);//延時(shí)9微秒,低電平寬度10微秒,調(diào)整此延時(shí)數(shù)值更改速度
  137.          }
  138.    fangxiang=~fangxiang;//換向
  139.         }
  140. void delay(uint xus)
  141.         {
  142.                 uint m;
  143.                 for(m=0;m<xus;++m);
  144.                
  145.         }
  146. void delayus(uint tt)
  147.         {
  148.                 uint n;
  149.                 for(n=0;n<tt;++n);//可變延時(shí)程序???
  150.         }
  151. void delayms(uint xms)
  152.         {
  153.                 uint x,y;
  154.                 for(x=0;x<xms;++x)
  155.                 for(y=0;y<110;++y);
  156.         }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-10-9 16:56 | 顯示全部樓層
先了解while(1)的用途,再寫(xiě)程序。
回復(fù)

使用道具 舉報(bào)

ID:970742 發(fā)表于 2021-10-9 19:55 | 顯示全部樓層
wulin 發(fā)表于 2021-10-9 16:56
先了解while(1)的用途,再寫(xiě)程序。

謝謝,連while語(yǔ)句都沒(méi)到呢
回復(fù)

使用道具 舉報(bào)

ID:162811 發(fā)表于 2021-10-9 20:06 | 顯示全部樓層
wulin 發(fā)表于 2021-10-9 16:56
先了解while(1)的用途,再寫(xiě)程序。

48行的while(1)?
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2021-10-9 20:17 | 顯示全部樓層

正解,同樣還有95行,135行,雖然沒(méi)有啟用,但是這樣寫(xiě)法本來(lái)就不該存在。
回復(fù)

使用道具 舉報(bào)

ID:970742 發(fā)表于 2021-10-9 20:21 | 顯示全部樓層
188610329 發(fā)表于 2021-10-9 20:17
正解,同樣還有95行,135行,雖然沒(méi)有啟用,但是這樣寫(xiě)法本來(lái)就不該存在。

程序是慢慢改的,前面的問(wèn)題都沒(méi)解決,后面再怎么地也是沒(méi)有的話(huà)
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2021-10-9 20:57 | 顯示全部樓層
wangzhg 發(fā)表于 2021-10-9 20:21
程序是慢慢改的,前面的問(wèn)題都沒(méi)解決,后面再怎么地也是沒(méi)有的話(huà)

抱歉啊,我只是回答地板的問(wèn)題。 你的問(wèn)題我是實(shí)在不知道怎么回答……

想問(wèn)你是不是沒(méi)按下一步,或者F5運(yùn)行,又怕被你打。
不過(guò)介于While(1); 都不是問(wèn)題的前提下,我現(xiàn)在還是鼓起勇氣,問(wèn)一下,點(diǎn)擊運(yùn)行了么?
回復(fù)

使用道具 舉報(bào)

ID:970742 發(fā)表于 2021-10-10 21:19 來(lái)自手機(jī) | 顯示全部樓層
看來(lái)還是打醬油的比較多,還是得自己琢磨!
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2021-10-11 00:25 | 顯示全部樓層
wangzhg 發(fā)表于 2021-10-10 21:19
看來(lái)還是打醬油的比較多,還是得自己琢磨!

用你的代碼直接編譯運(yùn)行沒(méi)問(wèn)題
所以你還是自己琢磨吧~
ezgif.com-gif-maker (1).gif

回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-10-11 07:46 | 顯示全部樓層
wangzhg 發(fā)表于 2021-10-9 19:55
謝謝,連while語(yǔ)句都沒(méi)到呢

你沒(méi)有點(diǎn)擊“運(yùn)行”,當(dāng)然停留在main函數(shù)的第一行等待操作指令。
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2021-10-11 18:52 | 顯示全部樓層
wulin 發(fā)表于 2021-10-11 07:46
你沒(méi)有點(diǎn)擊“運(yùn)行”,當(dāng)然停留在main函數(shù)的第一行等待操作指令。

何苦呢……
我問(wèn)他有沒(méi)有點(diǎn)擊運(yùn)行,24小時(shí)之后,都被說(shuō)成打醬油的了。

你又何苦步我后塵呢???
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字字幕在线中文乱码范文 | 奇米视频777 | 羞羞视频免费观看入口 | 99热在线观看精品 | 91看片免费 | 国产一区二区三区在线 | 成人超碰 | 永久www成人看片 | 国产高清精品网站 | 久久久国产一区二区三区 | 亚洲欧美日韩在线一区二区 | 逼逼视频 | 午夜精品在线观看 | 欧美成人h版在线观看 | 男人av网 | 欧美一级久久精品 | 1区2区3区视频 | 国产高清免费视频 | 久久综合久久综合久久 | 成人性视频免费网站 | 色资源在线 | 国产一区二区三区四区 | 极品国产视频 | av黄色在线观看 | 天天操天天射天天舔 | 91精品久久久久久久久99蜜臂 | 国产高清视频在线观看 | 久久高清精品 | 日韩av网址在线观看 | 91欧美精品成人综合在线观看 | 91资源在线 | 国产欧美日韩在线 | 国产成人a亚洲精品 | 日韩在线中文字幕 | 欧美精品欧美精品系列 | 久久精品99国产精品 | 久久成人人人人精品欧 | 在线免费观看日本视频 | 精品久久一区 | 成人一区二区三区 | 国产精品综合色区在线观看 |