仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- /*******************************************************************************
- * 文 件 名 : main.c
- * 函数功能 : LCD 显示控制|中断初始化|主程序
- *******************************************************************************/
- #include <reg52.h>
- #include "stdio.h"
- #include "lcd.h"
- #include "key.h"
- sbit motor_en1=P2^4; //电机方向控制引脚
- sbit motor_en2=P2^5;
- sbit motor_en=P2^0;
- sbit Led_start=P2^2;
- sbit Led_stop=P2^1;
-
- double speed=0;
- uint state=0; //电机状态
- uint dirt=0; //运行方向
- sbit temp=P0^7;
- void init()
- {
- TMOD=0x51;
- TH0=(65536-1000)/256; //定时1ms
- TL0=(65536-1000)%256; //低8位
- TH1=0;
- TL1=0;
- EA=1; //总中断开启
- ET0=1;
- TR1=1; //计数
- TR0=1;
- Led_start=0;
- Led_stop=0;
- motor_en=0;
- }
- void main ()
- {
- uchar str[9];
- init();
- lcd_init(); //LCD初始化
-
- while(1)
- {
- sprintf((char*)str,"%.1frpm",speed);
- write_com(0x80+0x06);
- write_string(str);
- write_com(0x80+0x40+10);
- if(dirt)
- {
- write_data('+');
- }
- else
- {
- write_data('-');
- }
- key_judge();
- motor_control();
-
-
- }
- }
复制代码
所有资料51hei提供下载:
控制电机第十组(1).rar
(395.64 KB, 下载次数: 272)
|