找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3418|回复: 4
打印 上一主题 下一主题
收起左侧

直流电机的单片机控制lcd显示 proteus仿真及源程序

[复制链接]
跳转到指定楼层
楼主
用51单片机控制直流电机,带proteus仿真工程文件,和源程序

所有资料下载:
直流电机实验.rar (69.69 KB, 下载次数: 83)

源程序:
  1. #include<reg51.h>
  2. sbit k1=P3^1;
  3. sbit k2=P3^0;
  4. sbit k3=P3^2;
  5. sbit k4=P3^3;
  6. sbit motor1=P1^1;
  7. unsigned int speed;
  8. unsigned int value;
  9. unsigned int T;
  10. unsigned char code ZF[]=" Speed= ";   //8个字符
  11. void INIT();
  12. void INIT0();
  13. void INIT1();
  14. void Timer();
  15. void Timer0();
  16. void delay(unsigned t);
  17. void init_lcd(void);
  18. void writecom(unsigned char com);
  19. void writedate(unsigned char date);
  20. void motor(int speed);
  21. main()
  22. {
  23.     int i;
  24.         T=0;         
  25.         speed=0;
  26.         INIT();
  27.         Timer();
  28.         init_lcd();
  29.         
  30.                 for(i=0;i<8;i++)
  31.                 {
  32.                         writedate(ZF[i]);
  33.                 }
  34.         while(1)
  35.         {        
  36.                  if(k1==0)
  37.                  {
  38.                          delay(10);
  39.                         if(k1==0)
  40.                         {        int a;
  41.                                 motor1=0;
  42.                                 while((a<50)&&k1==0)
  43.                                 {
  44.                                         delay(10);
  45.                                         a++;
  46.                                 }
  47.                                 a=0;
  48.                         }
  49.                         motor(speed);
  50.                         writecom(0x88);
  51.                         writedate('1');
  52.                  }
  53.                  else
  54.                  {
  55.                          if(k2==0)                        
  56.                         {
  57.                                 delay(10);
  58.                                 if(k2==0)
  59.                                 {        int b;
  60.                                         motor1=1;
  61.                                         while((b<50)&&k2==0)
  62.                                         {
  63.                                                 delay(10);
  64.                                                 b++;
  65.                                         }
  66.                                         b=0;
  67.                                 }
  68.                         }
  69.                         motor(speed);
  70.                         writecom(0x88);
  71.                         writedate('2');               
  72.                  }

  73.         }
  74. }

  75. void INIT()         //k2,k3外部中断初始化
  76. {
  77.         IT0=1;
  78.         EX0=1;
  79.         IT1=1;
  80.         EX1=1;
  81.         EA=0;
  82. }

  83. void INIT0()interrupt 0         //外部中断0服务函数
  84. {
  85.         delay(10);
  86.         if(k3==0)
  87.         {
  88.                 speed++;
  89.         }        
  90. }

  91. void INIT1()interrupt 2//外部中断1服务函数
  92. {
  93.         delay(10);
  94.         if(k4==0)
  95.         {
  96.                 if(speed>0)
  97.                 {
  98.                         speed--;        
  99.                 }
  100.                 else
  101.                 speed=0;
  102.         }
  103. }

  104. void Timer()          //定时器初始化
  105. {
  106.         TMOD=0x01;
  107.         TH0=0xfc;          //初值fc18---1ms
  108.         TL0=0x18;
  109.         EA=1;
  110.         ET0=1;
  111.         TR0=1;
  112. }

  113. void Timer0()interrupt 1        //定时器服务函数
  114. {
  115.         TH0=0xfc;
  116.         TL0=0x18;
  117.         T++;
  118. }

  119. void delay(unsigned t)                //延时函数精确到ms
  120. {
  121.          if(T=t)
  122.         {
  123.                 while(--t);
  124.         }
  125.         T=0;
  126. }
复制代码




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:149399 发表于 2016-11-24 09:16 | 只看该作者
我怎么运行没反应?
回复

使用道具 举报

板凳
ID:149399 发表于 2016-11-24 09:32 | 只看该作者
大神 求告知。。。
回复

使用道具 举报

地板
ID:149399 发表于 2016-11-24 10:49 | 只看该作者
这个怎么显示速度啊?
回复

使用道具 举报

5#
ID:149399 发表于 2016-11-24 15:14 | 只看该作者
这个程序怎么用不了啊,是用motor.c吗

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表