标题: 运行错误 单片机步进电机模块 正转,反转调速Proteus仿真+程序 [打印本页]

作者: 14003    时间: 2022-3-29 22:50
标题: 运行错误 单片机步进电机模块 正转,反转调速Proteus仿真+程序
步进电机模块,正转,反转调速
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
/*---------------------------------------------------------------------
                         LCD1602.C文件 LCD1602的函数  
----------------------------------------------------------------------*/

#include "hardware.h"
#include "lcd1602.h"

void LCD_check_busy(void)   //检测LCD状态,看它是不是还在忙呢
{
while(1)
  {
   LCD_EN=0;
   LCD_RS=0;
   LCD_RW=1;
   LCD_DATA=0xff;
   LCD_EN=1;
   if(!LCD_BUSY)break;
  }
LCD_EN=0;
}

void LCD_cls(void)          //LCD清屏
{

LCD_check_busy();
LCD_RS=0;
LCD_RW=0;
LCD_DATA=1;
LCD_EN=1;
LCD_EN=0;

}

void LCD_write_instruction(unsigned char LCD_instruction)   //写指令到LCD
{
  LCD_check_busy();
LCD_RS=0;
LCD_RW=0;

LCD_DATA=LCD_instruction;
LCD_EN=1;
LCD_EN=0;
}

void LCD_write_data(unsigned char LCD_data)      //输出一个字节数据到LCD
{
  LCD_check_busy();
LCD_RS=1;
LCD_RW=0;

LCD_DATA=LCD_data;
LCD_EN=1;
LCD_EN=0;
}

void LCD_set_position(unsigned char x)            //LCD光标定位到x处
{
LCD_write_instruction(0x80+x);
}

/*
void LCD_go_home(void)                         //LCD光标归位
{
LCD_write_instruction(LCD_GO_HOME);
}
*/

void LCD_printc(unsigned char lcd_data)          //输出一个字符到LCD
{
LCD_write_data(lcd_data);
}

void LCD_prints(unsigned char *lcd_string)       //输出一个字符串到LCD
{
unsigned char i=0;
while(lcd_string[ i]!=0x00)
  {
   LCD_write_data(lcd_string[ i]);
   i++;
  }
}

void LCD_initial(void)                        //初始化LCD
{
LCD_write_instruction(LCD_AC_AUTO_INCREMENT|LCD_MOVE_DISENABLE);
LCD_write_instruction(LCD_DISPLAY_ON|LCD_CURSOR_OFF);
LCD_write_instruction(LCD_DISPLAY_DOUBLE_LINE);
LCD_cls();
}

运行错误 求指导: 步进电机模块.zip (59.61 KB, 下载次数: 11)

作者: songxia8013    时间: 2022-3-30 10:08
仿真图没有Lcd1602,程序里面怎么有Lcd1602的程序呢?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1