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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5963|回復: 1
收起左側

51單片機控制異步電機正反轉和暫停源碼與proteus仿真

[復制鏈接]
ID:305483 發(fā)表于 2018-4-10 21:45 | 顯示全部樓層 |閱讀模式
這是一個用51單片機控制異步電機正反轉的,包括proteus仿真圖和keil代碼,只需要proteus就可以打開,里面包含了.hex文件

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
QQ圖片20180410213736.png 0.png

單片機控制異步電機源碼:
  1. #include<reg51.h>  
  2. #include<intrins.h>
  3. sbit RS = P2^0;  
  4. sbit RW = P2^1;
  5. sbit E  = P2^2;
  6. sbit BF = P0^7;  
  7. sbit K1 = P2^4; //順轉
  8. sbit K2 = P2^5; //反轉
  9. sbit K4 = P2^7; //停止 //步進電機八拍編碼向量;
  10. sbit K5 = P3^6;
  11. sbit K6 = P3^7;
  12. unsigned  char code  bianma[4]={0x01,0x02,0x04,0x08};  //0~9字符編碼向量;
  13. unsigned char code  word[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};  //延時1毫秒  
  14. void delay(unsigned int t)
  15. {  
  16. unsigned int k;  
  17. while(t--)  
  18. {   
  19.   for(k=0; k<125; k++)  
  20.   {}   
  21. }  
  22. }         
  23. bit BusyTest(void)   
  24. {      
  25. bit result;   
  26. RS=0;       //根據規(guī)定,RS為低電平,RW為高電平時,可以 讀狀態(tài)     
  27. RW=1;      
  28. E=1;        //E=1,才允許讀寫      
  29. _nop_();   //空操作      
  30. _nop_();      
  31. _nop_();         
  32. _nop_();   //空操作四個機器周期,給硬件反應時間      
  33. result=BF;  //將忙碌標志電平賦給result   
  34. E=0;      
  35. return result;   
  36. }
  37. void Write_com (unsigned char dictate)
  38. {        
  39. while(BusyTest()==1); //如果忙就等待   
  40. RS=0;
  41. RW=0;      
  42. E=0;                   //E置低電平(寫指令時,就是讓E從0到1發(fā)生正跳變,所以應先置"0"  
  43. _nop_();   
  44. _nop_();             //空操作兩個機器周期,給硬件反應時間   
  45. P0=dictate;            //將數據送入P0口,即寫入指令或地址   
  46. _nop_();   
  47. _nop_();   
  48. _nop_();   
  49. _nop_();               //空操作四個機器周期,給硬件反應時間  
  50. E=1;                   //E置高電平   
  51. _nop_();   
  52. _nop_();   
  53. _nop_();   
  54. _nop_();               //空操作四個機器周期,給硬件反應時間   
  55. E=0;                  //當E由高電平跳變成低電平時,液晶模 塊開始執(zhí)行命令  
  56. }  
  57. void WriteAddress(unsigned char x)  
  58. {      
  59. Write_com(x|0x80);
  60. }
  61. void WriteData(unsigned char y)  
  62. {      
  63. while(BusyTest()==1);      
  64. RS=1;           //RS為高電平,RW為低電平時,可以寫入數據   
  65. RW=0;      
  66. E=0;            //E置低電平(寫指令時,就是讓E從0到1發(fā)生正跳變,所以應先置"0"   
  67. P0=y;           //將數據送入P0口,即將數據寫入液晶模塊   
  68. _nop_();   
  69. _nop_();      
  70. _nop_();     
  71. _nop_();                  //空操作四個機器周期,給硬件反應時間  
  72. E=1;          //E置高電平   
  73. _nop_();   
  74. _nop_();   
  75. _nop_();     
  76. _nop_();        //空操作四個機器周期,給硬件反應時間
  77. E=0;            //當E由高電平跳變成低電平時,液晶模塊開始 執(zhí)行命令  
  78. }
  79. void LcdInt(void)
  80. {      
  81. delay(15);             //延時15ms,首次寫指令時應給LCD一 段較長的反應時間      
  82. Write_com(0x38);  //顯示模式設置:16×2顯示,5×7點陣,8位 數據接口
  83. delay(5);   //延時5ms   
  84. Write_com(0x38);  
  85. delay(5);   
  86. Write_com(0x38); //3次寫 設置模式  
  87. delay(5);   
  88. Write_com(0x0F);  //顯示模式設置:顯示開,有光標,光標閃爍  
  89. delay(5);   
  90. Write_com(0x06);  //顯示模式設置:光標右移,字符不移
  91. delay(5);               
  92. Write_com(0x01);  //清屏幕指令,將以前的顯示內容清除  
  93. delay(5);   
  94. }
  95. main()
  96. {
  97. unsigned int p=0;  
  98. long int r=0;  
  99. int D1,D2,D3,flag;   
  100. int delay_time;
  101. LcdInt();                            //LCD1602初始化  
  102. P1 = 0xf9;   
  103. delay(15);
  104. while(1)  
  105. {   
  106.   delay_time=300;
  107.   if(K1==0)   
  108.   {   
  109.    for(;1;)   
  110.    {     
  111.     p=(p+1)%4;       //電機正轉  
  112.     P1=bianma[p];           
  113.     r=r+3;     
  114.         if(r>0)     
  115.          flag=0;     
  116.         else     
  117.          flag=1;
  118.         D3=(r%360-flag*360)/100;  
  119.         D2=((r%360-flag*360)/10)%10;     
  120.         D1=(r%360-flag*360)%10;   
  121.         WriteAddress(0x00);     
  122.         WriteData(0x2b+flag*2);     
  123.         WriteData(word[D3]);     
  124.         WriteData(word[D2]);
  125.         WriteData(word[D1]);     
  126.         if(K2==0||K4==0)     
  127.         {break;}    //退出此循環(huán)程序
  128.         delay(delay_time);
  129.         if(K5==0)
  130.         {
  131.          if(delay_time<500)
  132.           delay_time+=50;
  133.          else
  134.           delay_time=500;
  135.          }
  136.         if(K6==0)
  137.         {
  138.          if(delay_time>100)
  139.           delay_time-=50;
  140.          else
  141.           delay_time=100;
  142.          }
  143.    }   
  144.   }   
  145.   else if(K2==0)   
  146.   {   
  147.    for(;1;)      
  148.    {
  149.     p=(p+7)%4;       //電機反轉   
  150.     P1=bianma[p];         
  151.         r=r-3;     
  152.         if(r>0)     
  153.          flag=0;     
  154.         else     
  155.          flag=1;      
  156.         D3=(r%360-flag*360)/100;  
  157.         D2=((r%360-flag*360)/10)%10;     
  158.         D1=(r%360-flag*360)%10;     
  159.         WriteAddress(0x00);     
  160.         WriteData(0x2b+flag*2);   
  161.         WriteData(word[D3]);     
  162.         WriteData(word[D2]);     
  163.         WriteData(word[D1]);     
  164.         delay(1);      
  165.         if(K1==0||K4==0)   
  166.         {break;}    //退出此循環(huán)程序  
  167.         delay(delay_time);
  168.         if(K5==0)
  169.         {
  170.          if(delay_time<500)

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

全部資料51hei下載地址:
電機正反轉.rar (67.25 KB, 下載次數: 96)




評分

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

查看全部評分

回復

使用道具 舉報

ID:1009577 發(fā)表于 2022-3-16 15:59 | 顯示全部樓層
四線雙極步進電機是異步電動機嗎
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久欧美精品 | 99精品一区二区 | 夜夜爽99久久国产综合精品女不卡 | 久久精品国产一区 | 成人久久18免费网站 | 一区在线观看视频 | 免费精品在线视频 | 亚洲天堂久久新 | 天天插天天操 | 中文久久 | 青青久久| 噜久寡妇噜噜久久寡妇 | 欧美色综合天天久久综合精品 | 国产片侵犯亲女视频播放 | 91中文字幕在线 | www.亚洲| 亚洲精品1区 | 日本xx视频免费观看 | 可以免费观看的av片 | 国产精品mv在线观看 | 国产精品视频免费观看 | 99久久精品免费看国产小宝寻花 | 欧美一区二区三区一在线观看 | 亚洲网在线 | 日韩精品| 午夜在线观看视频 | 国产露脸国语对白在线 | 亚洲一区二区三区免费在线观看 | 国产精品1区 | 亚洲 欧美 日韩在线 | 精品国产成人 | 天天干夜夜拍 | 不卡一区二区三区四区 | 爱综合| 在线国产视频 | 日本不卡一区 | 欧美黄色一区 | 综合成人在线 | 欧美在线观看一区 | 日韩欧美一区二区在线播放 | 免费国产视频 |