当前位置: 首页 > news >正文

怎么识别网站是用什么语言做的免费发布活动的平台

怎么识别网站是用什么语言做的,免费发布活动的平台,微信做任务赚钱的网站,营销网站规划的要点包括( )基于51单片机的步进电机调速系统 (仿真+程序+原理图+设计报告) 功能介绍 具体功能: 1.按键可以控制电机正、反转,加、减速,停止; 2.一位7段数码管实时显示档位&#xf…

基于51单片机的步进电机调速系统

(仿真+程序+原理图+设计报告)

功能介绍

具体功能:

1.按键可以控制电机正、反转,加、减速,停止;

2.一位7段数码管实时显示档位(共9档);

3.两个LED分别来表示正转、反转;

4.四个LED流水闪烁来表示电机转速;

​演示视频:

基于51单片机的步进电机调速系统设计

#include "reg52.h"
/*
按键控制步进电机:正转、反转、加1档、减1档、停止
数码管显示步进电机档位,总共有9档
LED灯显示正转、反转、转速
*//*宏定义*/
#define SpeedShow P0   		//数码管显示接口
#define MotorDriver P2   	//步进电机驱动接口typedef unsigned char uchar;      // 8位有符号整数
typedef unsigned int 	uint;       //16位有符号整数
typedef unsigned long ulong;      //32位有符号整数#define KEY_TIME_SHORT 	20		//短按的按键去抖动延时的时间
//---加入全局变量--//
extern uchar KeyCode;
extern uint  KeyTimeCnt[5];			//按键去抖动延时计数器,分别对应KEY1/2/3/4/5
extern uchar KeyLock[5];				//按键触发后自锁的变量标志,分别对应KEY1/2/3/4/5//-----------------------------------------------------------------
// 相关函数声明
//-----------------------------------------------------------------
void KeyScan();				//按键扫描函数 放在定时中断里			
void Delay10ms();			//延时函数//0~9 的共阳数码管段码,最后一个是黑屏
const uchar SEG_CODE[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF};//输出励磁序列的频率参数{TH1,TL1}
const uchar Timer[9][2]={{0xDE,0xE4},{0xE1,0xEC},{0xE5,0xD4},{0xE9,0xBC},  //8.476 ~ 1ms{0xEd,0xA4},{0xF1,0x8C},{0xF5,0x74},{0xF9,0x5C},{0xFC,0x18}};//步进电机正转的励磁序列
const uchar FFW[] = {0x1F,0x3F,0x2F,0x6F,0x4F,0xCF,0x8F,0x9F}; //DCBAXXXX//步进电机反转的励磁序列
const uchar REV[] = {0x9F,0x8F,0xCF,0x4F,0x6F,0x2F,0x3F,0x1F}; //DCBAXXXX//枚举变量--正反转标志
typedef enum{FwdRun, RevRun} RunFlag;								
RunFlag flag1 = FwdRun;uchar speed = 0;uchar KeyCode = 0;						//按键编码值//共5个独立机械按键,通过短按实现5种按键编码值
uint KeyTimeCnt[5] = {0,0,0,0,0};		//按键去抖动延时计数器,分别对应KEY1/2/3/4/5
uchar KeyLock[5] = {0,0,0,0,0};			//按键触发后自锁的变量标志,分别对应KEY1/2/3/4/5/* IO引脚分配*/
sbit KEY1  = P1^2;  //按键1
sbit KEY2  = P1^3;  //按键2
sbit KEY3  = P1^4;  //按键3
sbit KEY4  = P3^5;  //按键4
sbit KEY5  = P3^6;  //按键5sbit FWD_LED = P1^0;  		//正转指示灯
sbit REV_LED = P1^1;  		//反转指示灯//函数声明
void T0_Init();					//定时器0初始化函数声明
void T1_Init();					//定时器1初始化函数声明
void KeyService();			//按键服务函数声明
void delay_ms(uint t);	//毫秒延时函数声明//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{	T0_Init();					//定时器0初始化T1_Init();					//定时器1初始化FWD_LED = 0;				//正转指示灯亮,默认初始化是正转delay_ms(500);			//延时500ms,待各个模块上电稳定EA = 1;							//开启中断while(1){	KeyService();		//按键服务程序}
}	//-----------------------------------------------------------------
// Timer0 初始化,模式1,允许中断,1ms定时
// Timer0 用于按键扫描
//-----------------------------------------------------------------
void T0_Init()
{TMOD &= 0xF0;TMOD |= 0x01;										//T0工作于模式1,16位定时器TH0 = (65536 - 1000) >> 8;			//1ms定时TL0 = (65536 - 1000) & 0xFF;ET0 = 1;												//允许T0中断TR0 = 1;												//启动T0
}//-----------------------------------------------------------------
// Timer1 初始化,模式1,允许中断
// Timer1 用于改变步进电机转速
//-----------------------------------------------------------------
void T1_Init()
{TMOD &= 0x0F;TMOD |= 0x10;							//定时器1工作于模式1,16位定时器TH1 = Timer[speed][0];TL1 = Timer[speed][1];		//定时器1,定时用于步进电机转速控制ET1 = 1;									//允许T1中断PT1 = 1;									//定时器1优先级高TR1 = 0;									//关闭定时器1
}//-----------------------------------------------------------------
// Timer0 中断服务程序
//-----------------------------------------------------------------
void InterruptTime0() interrupt 1
{TH0 = (65536 - 1000) >> 8;		//1msTL0 = (65536 - 1000) & 0xFF;KeyScan();										//按键扫描
}//-----------------------------------------------------------------
// Timer1 中断服务程序
//-----------------------------------------------------------------
void InterruptTime1() interrupt 3
{static step1 = 0;							static step2 = 0;TH1 = Timer[speed - 1][0];			//根据不同的转速档位,给定时器1赋定时器值TL1 = Timer[speed - 1][1];			//按照定时器1的频率循环发送正转励磁序列的脉冲给步进电机,使其不停地转动if(flag1 == FwdRun)//正转{MotorDriver = FFW[step1++];		if(step1 == 8) step1 = 0; }//按照定时器1的频率循环发送反转励磁序列的脉冲给步进电机,使其不停地转动else if(flag1 == RevRun)       {MotorDriver = REV[step2++];if(step2 == 8) step2 = 0; }
}//-----------------------------------------------------------------
// 按键服务程序
//-----------------------------------------------------------------
void KeyService()
{switch (KeyCode){case 1:	flag1 = FwdRun;										//正转FWD_LED = 0;	REV_LED = 1;				//正转指示灯亮KeyCode = 0;break;							case 2:	flag1 = RevRun;										//反转FWD_LED = 1;	REV_LED = 0;				//反转指示灯亮KeyCode = 0;break;case 3:	speed++;													//速度加if(speed == 10) speed = 1;				SpeedShow = SEG_CODE[speed];if(TR1 == 0) TR1 = 1;KeyCode = 0;break;case 4:	speed--;													//速度减if(speed == 0 || speed == -1 ) speed = 9;SpeedShow = SEG_CODE[speed];	if(TR1 == 0) TR1 = 1;	KeyCode = 0;break;case 5:	TR1 = 0;													//停止SpeedShow = 0xFF;MotorDriver = 0x00;KeyCode = 0;break;	default: ;}
}

硬件设计

使用元器件:

单片机:STC89C52;

(注意:单片机是通用的,无论51还是52、无论stc还是at都一样,引脚功能都一样。程序也是一样的。)

万用板9*15;DC电源插口;

自锁开关;2.2K电阻*7;

40脚IC座;钮扣电池;

电池座;10uF电容;

ULN2003驱动芯片;

1位7段LED数码管;

10K排阻(103);

10K电阻*1;按键*6;

30Pf瓷片电容*2;

DC-5V步进电机;

12M晶振;导线:若干;

结构图:

设计资料

01 仿真图

本设计使用proteus8.9版本设计,资料里有安装教程,无需担心!具体如图!

02 原理图

本系统原理图采用Altium Designer19设计,具体如图!

03 程序

本设计使用软件keil5版本编程设计,资料里有安装教程,无需担心!具体如图!

04 设计报告

五千字设计报告,具体如下!

05 设计资料

        资料获取请关注同名公众号,全部资料包括仿真源文件 、程序(含注释)、AD原理图、参考论文、实物图、流程图、任务书、元件清单、讲解视频等。具体内容如下,全网最全! !

资料获取请观看前面演示视频!

点赞分享一起学习成长。

http://www.tj-hxxt.cn/news/121474.html

相关文章:

  • 福州网站关键词代运营公司哪家好一些
  • 网站备案 网站建设方案书需要写吗广州seo成功案例
  • 关于网站设计与建设的论文seo网络营销技巧
  • 大连网站建设介绍制作一个网站步骤
  • 旅游网页设计模板图凡科网站seo
  • 新乡网站建设那家好搜索引擎营销有哪些方式
  • 如何把自己做的网站放到微信上宁波seo在线优化哪家好
  • 南宁企业建站程序香飘飘奶茶
  • cms 导航网站智推教育seo课程
  • 域名访问网站是什么意思seo是什么及作用
  • 碑林区营销型网站建设推广任务接单平台
  • 牡丹江建设工程信息网站深圳竞价排名网络推广
  • 怎样自己做公司网站中国新闻最新消息
  • 网站上传图片教程希爱力副作用太强了
  • 贵阳网站建设培训百度山西授权代理
  • 爱做网站免费版宁波网络营销公司
  • 洛阳 网站建设湖南搜索引擎推广平台
  • java做网站注册怎么弄今天最新新闻国内大事件
  • 永春网站开发东莞网站开发公司
  • 网站建设论文标题视频号最新动作
  • wordpress 获取当前路径企业站seo外包
  • 网站建设考试样题及答案指数基金怎么选
  • 注册公司网站如何注册制作网站的平台
  • 班级网站制作模板关键词挖掘工具爱网
  • 海南医院网站建设新的营销方式有哪些
  • 建设网站dns如何设置谷歌独立站
  • 做淘客网站要备案推广软件
  • 山西网站建设鸣蝉百度推广登录后台登录入口
  • 备案用的网站建设方案书黄桃图片友情链接
  • 外贸线上推广seo网站优化知识