![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单片机
Li03
这个作者很懒,什么都没留下…
展开
-
定时器初值计算
在51单片机的技术手册上看到这样一段代码,它的意思是,定时器实现1毫秒定时,求定时器的初值。因为定时器计数65536后,就会清零,想实现特定时间定时,就要自己计算起点,也叫做初值因为1个机器周期等于12个时钟周期,因此FOSC/12,得到的是一个机器周期的频率,也是1秒内定时器计数的个数,再除以1000,就是1毫秒内定时器计数的个数。想让定时器在这些个数之后清零,就要设置起点为65536-该个数。...原创 2018-04-23 21:41:41 · 9250 阅读 · 0 评论 -
光电开关控制步进电机正反转
步进电机的正反转控制直接给方向引脚给高低电平即可。光电开关被遮挡时,引号引脚输出高低电平#include<reg52.h>#define uint unsigned intsbit motor = P1^0;//位定义电机脉冲信号端口sbit block = P1^1; //位定义接收光电开关遮挡信号的端口sbit dir = P1^2;//位定义步进电机方向控制端口s...原创 2018-05-02 20:40:02 · 6400 阅读 · 6 评论 -
51单片机实现双步进电机独立正反转、固定角度内转的控制
两个光电管,两个步进电机独立控制,互不干扰 //功能:光电管被遮住,步进电机转90度;无遮挡,步进电机逆转90度。 #include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit motor = P1^0;//位定义步进电机1脉冲信...原创 2018-05-09 22:50:23 · 6826 阅读 · 14 评论 -
通过单片机中断小程序来理解什么是中断
最近用到51单片机,算是古董级的单片机。51单片机非常经典,好比C语言之于编程语言,而且由于价格便宜而应用非常广泛,资料可以说是最多最全的,对于初学者来说,学习成本非常低,想学习单片机的同学可以了解一下。中断,是单片机非常重要的概念,能不能用好中断,是检验学习者单片机掌握程度的一个标志,但是一些地方写的比较抽象,给中断裹上神秘的外衣,好像很独特的样子,其实不然,事物发展都是连续的,没有一...原创 2018-04-21 22:27:04 · 2901 阅读 · 0 评论 -
如何限定步进电机只在一个角度内转动?
//功能:控制步进电机活动范围在90度以内,在此区间内,通过光电管控制步进电机的正反转:光电管被遮挡反转,无遮挡正转。 #include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit motor = P1^0;//位定义电机脉...原创 2018-05-04 16:08:44 · 6837 阅读 · 4 评论 -
光电接近开关的信号检测与数码管显示
最近要做一个障碍物检测,一开始用的超声波传感器,实现起来复杂,效果也不是很好,经人提醒,用了光电接近开关,效果很好。遮挡时,数码管显示1无遮挡时,数码管显示0详述一下:硬件:51单片机,E18-D80NK光电接近开关,如下这个传感器的标签上写着I 200mA,我想这要是输出电流,那也太大了,直接接到I/O口肯定不行,普通I/O口最大灌电流是12mA。自己用万用表先测一下,信号线输出电压是3.6V,...原创 2018-04-27 13:42:19 · 1294 阅读 · 5 评论 -
步进电机加速控制
步进电机直接给很高的频率,电机容易堵转,这是因为高频率下启动,磁力的变化非常快,步进电机是靠磁力的步进移动,从而带动转子的角位移,但是转子有一定惯性,因此,步进电机转子在磁力的作用下还未移动,就被下一个反方向的磁力扯回来了,这就发生了堵转。但我们想让步进电机高速转,怎么办?既然一步不能到位,那就多步,一点点加速。代码如下:#include<reg52.h...原创 2018-04-29 22:21:31 · 5371 阅读 · 0 评论