找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2090|回复: 2
收起左侧

单片机控制电动机正反转及其1602液晶显示

[复制链接]
ID:219255 发表于 2017-7-12 22:47 | 显示全部楼层 |阅读模式
这是单片机控制电动机正反转和液晶显示的一下示例程序,大家可以参考

单片机源程序如下:
  1. #include <reg52.h>
  2. #include "LCD1602.h"

  3. sbit Key_UP=P3^2;   //正转按键 对应实验板上的K1
  4. sbit Key_DOWN=P3^3;//反转按键  对应实验板上的K2
  5. sbit Key_STOP=P3^4;//停止键    对应实验板上的K3
  6. sbit ZZ=P1^0;//控制端
  7. sbit FZ=P1^1;//控制端
  8. sbit BEEP = P3^6; //蜂鸣器控制端口P36
  9. unsigned char KeyV,TempKeyV;         

  10. void Delay(unsigned int ii)
  11. {
  12. unsigned int jj;
  13. for(;ii>0;ii--)
  14. for(jj=0;jj<125;jj++)
  15. {;}
  16. }

  17. //LCD初始化
  18. void InitLCD()
  19. {
  20.         LCDReset();
  21.         InputMode(0x06);         //增量方式,不移位
  22.         DispControl(0x0c);        //显示开,光标关,闪烁关
  23.         FunctionSet(0x38);        //8位,2行,5×7
  24.         }

  25. /*********************************************************/
  26. void beep()                //蜂鸣器响一声函数
  27. {
  28.   unsigned char i;
  29.   for (i=0;i<100;i++)
  30.    {
  31.    Delay(1);
  32.    BEEP=!BEEP;       //BEEP取反
  33.    }
  34.    BEEP=1;           //关闭蜂鸣器
  35.    Delay(250);       //延时     
  36. }
  37. void main()
  38. {
  39.    FZ=1;
  40.    ZZ=1;

  41.            InitP0(0);
  42.         InitLCD();
  43.         
  44. while(1){
  45.          if (!Key_UP)
  46.     KeyV = 1;
  47.   if (!Key_DOWN)
  48.     KeyV = 2;
  49.             if (!Key_STOP)
  50.     KeyV = 3;
  51.    if (KeyV!= 0)     
  52.     {
  53.       Delay(10);   
  54.       if (!Key_UP)
  55.         TempKeyV = 1;        
  56.       if (!Key_DOWN)
  57.         TempKeyV = 2;        
  58.       if (!Key_STOP)
  59.         TempKeyV = 3;
  60.                  if (KeyV == TempKeyV)  
  61.            {
  62.                  
  63.                       if (KeyV == 1){
  64.                     beep();
  65.                 ZZ=1;
  66.                 FZ=0;
  67. }
  68. if(KeyV==2){
  69. beep();
  70.                 ZZ=0;
  71.                 FZ=1;
  72.         }
  73.         if(KeyV==3){
  74.          beep();
  75.                 ZZ=0;
  76.                 FZ=0;
  77.         }                                       
  78.         }  
  79. }
  80. KeyV=0;
  81. TempKeyV=0;
  82.    if(ZZ==1&FZ==0){
  83.                    DispCharacter(0,4,'F');
  84.                 DispCharacter(0,5,'O');
  85.                 DispCharacter(0,6,'R');
  86.                 DispCharacter(0,7,'E');
  87.                 DispCharacter(0,8,'W');
  88.                 DispCharacter(0,9,'A');
  89.                 DispCharacter(0,10,'R');
  90.                 DispCharacter(0,11,'D');
  91.    }
  92.    if(ZZ==0&FZ==1){
  93.                 DispCharacter(0,4,'R');
  94.                 DispCharacter(0,5,'O');
  95.                 DispCharacter(0,6,'L');
  96.                 DispCharacter(0,7,'L');
  97.                 DispCharacter(0,8,'B');
  98.                 DispCharacter(0,9,'A');
  99.                 DispCharacter(0,10,'C');
  100.                 DispCharacter(0,11,'K');



  101.    }
  102.    if(ZZ==0&FZ==0){
  103.                 DispCharacter(0,4,'S');
  104.                 DispCharacter(0,5,'T');
  105.             DispCharacter(0,6,'O');
  106.                 DispCharacter(0,7,'P');
  107.                 DispCharacter(0,8,' ');
  108. ……………………

  109. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
正反转及其液晶显示.zip (41.25 KB, 下载次数: 37)
回复

使用道具 举报

ID:217754 发表于 2017-8-10 21:57 | 显示全部楼层
谢谢。学习一下。。
回复

使用道具 举报

ID:473121 发表于 2019-4-15 19:08 | 显示全部楼层
你好,这个有电路图吗??
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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