资源简介
内含Protues仿真和C程序,可以带动步进电机做个时钟什么的。。
代码片段和文件信息
/***********
提供控制器开发订做、单片机项目开发、工控测控传感自动化系统构建、仪器仪表测试设备定制、软件开发EXE编程等服务。永珂科技工作室 QQ 2531263726
http://shop73510260.taobao.com/
***********/
/*----------------载入头文件--------------------*/
#include
#include
/*----------------IO口设置----------------------*/
sbit a=P2^4;//L298信号口,{ a=1 ;b=0;} //启动输出 正转
sbit b=P2^5;// { a=0 ;b=1;} //启动输出 反转
sbit K1 =P1^0 ; //减少键
sbit K2 =P1^1 ; //增加键
sbit K3 =P1^2 ; //正转键
sbit K4 =P1^3 ; //反转键
#define LCD_DATA P0 //LCD接口
sbit LCD_RS = P2^0;
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;
/*----------------全局变量设置-------------------*/
unsigned int speed_set=6; //设置的转速单位rpm
unsigned int speed_m=0; //测量的当前转速
unsigned char zhuanxiang=1; //转向标志,0不转,1正转,2反转.默认正转
unsigned char jishi=0;//计时
unsigned long pusle=0;//脉冲间隔时间
//LCD的变量
unsigned char dispBuff0[16]={‘S‘‘e‘‘t‘
‘:‘‘ ‘‘ ‘‘ ‘‘ ‘‘R‘‘P‘‘M‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘};//LCD第一行显示
unsigned char dispBuff1[16]={‘N‘‘o‘‘w‘
‘:‘‘ ‘‘ ‘‘ ‘‘ ‘‘R‘‘P‘‘M‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘};//LCD第二行显示
//PID算法的变量
int Now_speed[3]={000}; //用于存储当前转速、前一次转速、再前一次转速
int KP=20;//10000us160rpm的比约为70
int KI=2;
int KD=0;
int last_out=0;
#define out_max 10000
#define out_min 0
unsigned int PWMH=0;//PWM波在10000us内高电平时间
bit pid_lock=1;//PID锁存标志位,1表示可以改变定时器1中初值为PWMH
/*----------------子程序预定义--------------------*/
void Delay20ms() ;//延时函数
void LCD_Init(void);//LCD子程序
void LCD_WriteDat(unsigned char lcd_dat);
void LCD_WriteCmd(unsigned char lcd_cmd);
unsigned char LCD_ReadStatus(void);
void LCD_Goto(unsigned char xunsigned char y);
void LCD_Display(unsigned char rowunsigned char *str);
void key();//按键子程序
void Motor_control(void) ;//PID控制电机
/*----------------主程序----------------------*/
void main()
{
/*计时器2设置,用于测量电机脉冲间隔*/
TCLK=0; //可令T2CON=0;或TCLK=0RCLK=0;
RCLK=0; //【T2CON中其他位可默认为0,而TCLK和RCLK必须手动置0】
//因RCAP2L和RCAP2H是由软件预设的
/*说明
补充:52单片机定时器2作为16位自动重装计时器。
RCAP2H=0xFF; // 定时器2的重装载值
RCAP2L=0xFD; //16位自动再装入值:定时器2溢出时(CP/RL2=0时),会把 RCAP2H RCAP2L 中的数据装入TH2TL2
*/
RCAP2H=(65536-1000) / 256; // TH2 = (65536-X) / 256;
RCAP2L=(65536-1000) % 256; // TL2 = (65536-X) % 256;
TH2=RCAP2H;
TL2=RCAP2L;
ET2 = 1;
TR2 = 1;
/*计时器0设置,用于设置PWM的周期*/
TMOD=0x11;//定时器0、1工作于方式1
TH0=(65536-10000) / 256;//10000us ,计时器0用于定时产生PWM周期,周期10ms
TL0=(65536-10000) % 256;
ET0=1;
TR0=1;//开始计时
/*计时器1设置,用于设置PWM的高电平时间*/
TH1=0;
TL1=0;
ET1=1;
TR1=0;//停止计时
/*外部中断0设置*/
IT0=1; //外部中断0,0低电平触发,1边沿触发
EX0=1; //打开外部中断0
EA=1;//开全局中断
/*LCD显示*/
LCD_Init();//LCD初始化
LCD_Display(0dispBuff0);
LCD_Display(1dispBuff1);
Delay20ms();
while(1)
{key();//按键识别
Delay20ms();
}
}
/*----------------子程序----------------------*/
//LCD子程序
void LCD_Init(void)
{
Delay20ms();
/*************************************************
功能设置: DB5=1;DB6...=0;
DB4=1:8位接口; 0:4位接口;
DB3=1:双行显示;0:单行显示;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 135787 2018-09-14 12:09 PID算法控制直流电机转速仿真与C程序\ISIS.dmp
文件 119544 2016-11-11 21:54 PID算法控制直流电机转速仿真与C程序\Last Loaded PID电机转速1602.DBK
文件 14548 2018-09-13 23:15 PID算法控制直流电机转速仿真与C程序\PID_motor
文件 4698 2018-09-13 23:15 PID算法控制直流电机转速仿真与C程序\PID_motor.hex
文件 64 2018-09-13 23:15 PID算法控制直流电机转速仿真与C程序\PID_motor.lnp
文件 20828 2018-09-13 23:15 PID算法控制直流电机转速仿真与C程序\PID_motor.M51
文件 379 2018-09-13 23:17 PID算法控制直流电机转速仿真与C程序\PID_motor.plg
文件 90077 2018-09-13 23:07 PID算法控制直流电机转速仿真与C程序\PID_motor.uvgui.hp
文件 56347 2018-09-13 23:17 PID算法控制直流电机转速仿真与C程序\PID_motor.uvopt
文件 13424 2018-09-13 23:17 PID算法控制直流电机转速仿真与C程序\PID_motor.uvproj
文件 5749 2018-09-13 23:07 PID算法控制直流电机转速仿真与C程序\PID_motor_uvopt.bak
文件 14452 2018-09-13 22:28 PID算法控制直流电机转速仿真与C程序\PID_motor_uvproj.bak
文件 119677 2016-11-11 22:08 PID算法控制直流电机转速仿真与C程序\PID电机转速1602.DSN
文件 792 2018-09-14 12:46 PID算法控制直流电机转速仿真与C程序\PID电机转速1602.PWI
文件 9023 2018-09-13 22:25 PID算法控制直流电机转速仿真与C程序\PID程序.c
文件 16616 2018-09-13 23:15 PID算法控制直流电机转速仿真与C程序\PID程序.LST
文件 16326 2018-09-13 23:15 PID算法控制直流电机转速仿真与C程序\PID程序.OBJ
文件 6376 2009-05-07 14:37 PID算法控制直流电机转速仿真与C程序\STARTUP.A51
文件 14051 2016-11-12 16:48 PID算法控制直流电机转速仿真与C程序\STARTUP.LST
文件 749 2016-11-12 16:48 PID算法控制直流电机转速仿真与C程序\STARTUP.OBJ
文件 94036 2016-11-12 17:13 PID算法控制直流电机转速仿真与C程序\增量式PID算法直流电机调速proteus仿真和motor-encoder介绍.docx
文件 63946 2018-09-24 22:37 PID算法控制直流电机转速仿真与C程序\文档1.docx
目录 0 2019-04-07 21:01 PID算法控制直流电机转速仿真与C程序
----------- --------- ---------- ----- ----
817489 23
相关资源
- pc串口控制流水灯的程序
- 研究论文-基于线性二次型调节器的神
- 永磁同步电机模糊PID控制-sl10.slx
- 论文研究-基于卡尔曼滤波与PID控制的
- PID计算器.zip
- 直流电机双闭环控制模型
- 西门子STEP7PID程序
- 《C程序设计》教案 谭浩强版
- AXI-SRIO模块在Vivado中连接示意图
- C51 PID PWM调速程序
- 地铁自动售票机计算当前站和目的站
- 经典的电机的速度PID控制程序.rar
- 数字pid与开关电源
- PCS7-PID调节块使用详解.pdf
- 模糊控制与传统PID控制比较
- PID在LabView中的实现
- PID-小车类-PID算法控制小车直线行驶制
- 基于Proteus仿真的步进电机+直流电机程
- 《C程序设计语言》第二版 中文高清
- 数据结构银行业务模拟
- msp430代码模拟spi
- 倒立摆 51PID程序 已经实现
- qt 内建PID模拟仿真
- 基于labview的温度自动控制PID算法
- 神经元 ML模型
- 括号嵌套问题课程设计
- linux文件传输项目源码
- 模糊PID详解及自整定
- 基于8086的小型直流电机闭环调速系统
- 基于8086的小型直流电机闭环调速系统
评论
共有 条评论