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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

步進電機單片機代碼運行不了

[復制鏈接]
跳轉到指定樓層
樓主
為什么我的代碼運行不了?我想按鍵按一下松開后,電機正向轉動,再按另一個按鍵,電機反向轉動。可是代碼運行不了,檢查了,但是不知道問題出哪里了,求大神指教
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define out P2
  5. sbit pos=P0^0;
  6. sbit neg=P0^1;
  7. uchar posflag,negflag;
  8. void delayms(uint);
  9. uchar code turn[]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03};
  10. void keyscan(void)
  11. {
  12. if(pos==0)
  13. {
  14. delayms(2);
  15. if(pos==0)
  16. {
  17. while(!pos);
  18. posflag=1;
  19. negflag=0;
  20. }
  21. }
  22. else if(neg==0)
  23. {
  24. delayms(2);
  25. if(neg==0)
  26. {
  27. while(!neg);
  28. negflag=1;
  29. posflag=0;
  30. }
  31. }
  32. }

  33. void main(void)
  34. {
  35. uchar i;
  36. out=0x03;
  37. keyscan();
  38. while(1)
  39. {
  40. if(posflag==1)
  41. {
  42. i=i<8?i+1:0;
  43. out=turn[i];
  44. delayms(100);
  45. }
  46. else if(negflag==1)
  47. {
  48. i=i>0?i-1:7;
  49. out=turn[i];
  50. delayms(100);
  51. }
  52. }
  53. }
  54. void delayms(uint j)
  55. {
  56. uchar i;
  57. for(;j>0;j--)
  58. {
  59. i=250;
  60. while(--i);
  61. i=249;
  62. while(--i);
  63. }
  64. }
復制代碼


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

使用道具 舉報

沙發
ID:387733 發表于 2018-9-11 06:51 | 只看該作者
        keyscan(); 這個語句只是在初始化的時候執行一次,進入主循環后不再執行。應該后移2行,放入主循環內。
回復

使用道具 舉報

板凳
ID:393864 發表于 2018-9-11 08:37 | 只看該作者
swhich case 語句  試試。
回復

使用道具 舉報

地板
ID:396524 發表于 2018-9-11 16:24 | 只看該作者
鍵值獲取只執行了一次,把keyscan()移入while里面,或者用中斷獲取按鍵狀態,寫在主函數很容易跟延時函數沖突
回復

使用道具 舉報

5#
ID:389893 發表于 2018-9-11 21:13 | 只看該作者
sxhwdz 發表于 2018-9-11 06:51
keyscan(); 這個語句只是在初始化的時候執行一次,進入主循環后不再執行。應該后移2行,放入主循環 ...

哦哦,真的是耶!謝謝
回復

使用道具 舉報

6#
ID:389893 發表于 2018-9-11 21:14 | 只看該作者
gaojiafeng66 發表于 2018-9-11 08:37
swhich case 語句  試試。

試過了,是我的鍵值獲取函數調用放錯地方了,謝謝
回復

使用道具 舉報

7#
ID:389893 發表于 2018-9-11 21:15 | 只看該作者
1462634349 發表于 2018-9-11 16:24
鍵值獲取只執行了一次,把keyscan()移入while里面,或者用中斷獲取按鍵狀態,寫在主函數很容易跟延時函數沖 ...

好的,謝謝,檢查出來就是keyscan()放錯地方了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品一区在线 | 成人黄色电影在线观看 | 夜夜草 | 国产黄色大片在线观看 | 国产成人精品免费 | 国产日韩欧美在线 | 99精品视频一区二区三区 | 欧美日韩中文字幕 | 亚洲一区综合 | 久久亚洲免费 | 国产在线观 | www.成人免费视频 | 国产精品乱码一区二区三区 | 手机看黄av免费网址 | h视频在线观看免费 | 国产1区在线 | 国产精品久久久久久久久久久久冷 | 懂色av一区二区三区在线播放 | 欧美日韩在线视频一区二区 | 日韩at| 亚洲欧美在线视频 | 亚洲高清视频一区二区 | 男女网站在线观看 | 欧美国产中文字幕 | 91久久精品一区二区二区 | 黄色网址在线播放 | 伊人久久成人 | www亚洲精品 | 成人免费视频网站在线观看 | 91av大全| 成人欧美一区二区三区在线播放 | 黄色大片在线播放 | 亚洲激情一区二区三区 | 九一视频在线播放 | 国产精品视频网站 | 欧美日韩在线一区二区 | 一区二区小视频 | 伊人国产精品 | av先锋资源 | 特级a欧美做爰片毛片 | 日韩高清一区 |