当前位置:首页 » 编程语言 » c语言怎么表示在接近开关启动
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言怎么表示在接近开关启动

发布时间: 2022-08-03 14:33:56

c语言编程:电机的正反驱动程序已经具备,想通过按键添加新功能,已写程序及新添加功能如下

这个很简单,我教你怎么玩,下面是思路和方式
思路:有三个输入,分别是一个按钮、两个霍尔传感器(也就是接近开关),我用P0.0到P0.2来代替;输出2个或以上(这看你接什么显示器,如果是PC的话,就不用数字量输出,直接串口就可以了)控制正反转的继电器管脚用P1.0、P1.1;

PS:显示那块我不知道你怎么处理,但是需要与一个全局变量转动次数k连接起来,另外两个输入接近开关选用NPN传感器或用光电隔离,总之有效信号能把管脚电压拉低就可以了,具体硬件要注意什么,有需要就问我

现在我们来写程序:

#include <reg51.h> //选用晶振11.0592MHz

unsigned char k=0; //k表示正反转次数

sbit X0=P3^2; //调节按钮

sbit X1=P1^1; //上限位接近开关信号

sbit X2=P1^2; //下限位接近开关信号

sbit Y1=P0^0; //电机上升(注意:我使用的是管脚输出为0时候,电机运动,这样可以避免启动时候,单片机自复位对电机点动的影响)

sbit Y2=P0^1; //电机下降

void delay50ms(unsigned int i)

{

unsigned int j;

for (i;i>0;i--)

for(j=46078;j>0;j--);

}

main()

{

IT0=1; //下降沿触发

EX0=1; //开P3.2外部中断

EA=1; //总中断开

while(1)

while(k)

{

Y1=0; //正转

while(X1==1); //等待正转接近开关反应

Y1=1; //正转停

delay50ms(1); //停止时间50ms

Y2=0; //反转

while(X2==1); //等待反转接近开关反应

Y2=1; //反转停

k--; //圈数减一

}

}

void counter0(void) interrupt 0

{

k++; //外部中断控制圈数加一

//这个位置可以加你显示程序

}
程序已经通过测试,放上去就能用,很好玩哟,呵呵

Ⅱ 用c语言编写控制电机运动的程序

1、有三个输入,分别是一个按钮、两个霍尔传感器(也就是接近开关),我用P0.0到P0.2来代替;输出2个或以上(这看接什么显示器,如果是PC的话,就不用数字量输出,直接串口就可以了)控制正反转的继电器管脚用P1.0、P1.1;需要与一个全局变量转动次数k连接起来,另外两个输入接近开关选用NPN传感器或用光电隔离,总之有效信号能把管脚电压拉低就可以。
2、例程:

#include<reg51.h>//选用晶振11.0592MHz
unsignedchark=0;//k表示正反转次数
sbitX0=P3^2;//调节按钮
sbitX1=P1^1;//上限位接近开关信号
sbitX2=P1^2;//下限位接近开关信号
sbitY1=P0^0;//电机上升(注意:我使用的是管脚输出为0时候,电机运动,这样可以避免启动时候,单片机自复位对电机点动的影响)
sbitY2=P0^1;//电机下降
voiddelay50ms(unsignedinti)
{
unsignedintj;
for(i;i>0;i--)
for(j=46078;j>0;j--);
}
main()
{
IT0=1;//下降沿触发
EX0=1;//开P3.2外部中断
EA=1;//总中断开
while(1)
while(k)
{
Y1=0;//正转
while(X1==1);//等待正转接近开关反应
Y1=1;//正转停
delay50ms(1);//停止时间50ms
Y2=0;//反转
while(X2==1);//等待反转接近开关反应
Y2=1;//反转停
k--;//圈数减一
}
}
voidcounter0(void)interrupt0
{
k++;//外部中断控制圈数加一
//这个位置可以加你显示程序
}

Ⅲ c语言键盘按键触发怎么表示

可以用FlexibleButton表示。

FlexibleButton 是一个基于标准 C 语言的小巧灵活的按键处理库,支持单击、连击、短按、长按、自动消抖,可以自由设置组合按键,可用于中断和低功耗场景。

该按键库解耦了具体的按键硬件结构,理论上支持轻触按键与自锁按键,并可以无限扩展按键数量。另外,FlexibleButton 使用扫描的方式一次性读取所有所有的按键状态,然后通过事件回调机制上报按键事件。

核心的按键扫描代码仅有三行,没错,就是经典的 三行按键扫描算法。使用 C 语言标准库 API 编写,也使得该按键库可以无缝兼容任意的处理器平台,并且支持任意 OS 和 non-OS(裸机编程)。

快速体验:

FlexibleButton 库中提供了一个测试例程 ./examples/demo_rtt_iotboard.c,该例程基于 RT-Thread OS 进行测试,硬件平台选择了 RT-Thread IoT Board Pandora v2.51 开发板。

当然你可以选择使用其他的 OS,或者使用裸机测试,只需要移除 OS 相关的特性即可。

如果你使用自己的硬件平台,只需要将 FlexibleButton 库源码和例程加入你既有的工程下即可。

DEMO 程序说明:

该示例程序可以直接在 RT-Thread stm32l475-atk-pandora BSP 中运行,可以在该 BSP 目录下,使用 menuconfig 获取本软件包。

Ⅳ 在做电子设计大赛求电容式接近开关的使用程序,谁有发一份给我,谢了!

%A<p></p><p> 干簧管(Reed Switch)也称舌簧管或磁簧开关,是一种磁敏的特殊开关,是干簧继电器和接近开关的主要部件。</p> 干簧管通常有两个软磁性材料做成的、无磁时断开的金属簧片触点,有的还有第三个作为常闭触点的簧片。这些簧片触点被封装在充有惰性气体(如氮、氦等)或真空的玻璃管里,玻璃管内平行封装的簧片端部重叠,并留有一定间隙或相互接触以构成开关的常开或常闭触点。干簧管比一般机械开关结构简单、体积小、速度高、工作寿命长;而与电子开关相比,它又有抗负载冲击能力强等特点,工作可靠性很高。<p></p> 霍尔传感器是根据霍尔效应制作的一种磁场传感器。霍尔效应是磁电效应的一种,这一现象是霍尔(A.H.Hall,1855—1938)于1879年在研究金属的导电机构时发现的。后来发现半导体、导电流体等也有这种效应,而半导体的霍尔效应比金属强得多,利用这现象制成的各种霍尔元件,广泛地应用于工业自动化技术、检测技术及信息处理等方面。霍尔效应是研究半导体材料性能的基本方法。通过霍尔效应实验测定的霍尔系数,能够判断半导体材料的导电类型、载流子浓度及载流子迁移率等重要参数。<file fsid="1627558660" link="/share/link?shareid=614056658&uk=2415932719" name="干簧管.doc" wealth="0" />%A</div>%A<dl class="thank line pt-5 pb-5">%A<dt class="thank-title grid f-12">提问者评价</dt>%A<dd class="grid ml-10">%A<pre accuse="qThanks">谢了,不过有原理图之类的吗,给我参考下

Ⅳ 单片机51C语言是如何处理接近开关,光电开并或限位开关的信号

若开关动作就有高电平(或低电平)送给单片机,那么,让信号送入单片机的外部中断引脚,单片机通过设置形成上升沿(或其他方式)中断来控制其他动作就行。

Ⅵ 如何使编一个在开机时自动运行的c语言程序

这是绝对不可能的。

F8等热键的功能,是系统加载前就生效的。它们的执行控制代码,在系统最先调用的程序代码中。
而BAT文件,必须等到系统启动完成以后才能执行。

只有修改系统的加载模块才有可能在开机时屏蔽F8等功能键。
我可以帮助你,你先设置我最佳答案后,我网络Hii教你。

Ⅶ 单片机c语言程序

如果没有定义
no_timer2
就执行下面的程序。。如果定义了。。就执行#else下面的程序、、与if。。。else的用法差不多。。
#endif就是结束的意思。。与#ifndef
是相对的。。

Ⅷ 单片机怎么处理接近开关的信号

做个标志位FLAGLHL,如果由低变高再变低,则置位,主程序执行检测标志位FLAGLHL就可以了,检测到FLAGLHL为1,将FLAGLHL清零,并执行程序,检测不到不执行。

Ⅸ 单片机控制交流电机正反转的C语言程序

这个很简单,我教你怎么玩,下面是思路和方式
思路:有三个输入,分别是一个按钮、两个霍尔传感器(也就是接近开关),我用P0.0到P0.2来代替;输出2个或以上(这看你接什么显示器,如果是PC的话,就不用数字量输出,直接串口就可以了)控制正反转的继电器管脚用P1.0、P1.1;
PS:显示那块我不知道你怎么处理,但是需要与一个全局变量转动次数k连接起来,另外两个输入接近开关选用NPN传感器或用光电隔离,总之有效信号能把管脚电压拉低就可以了,具体硬件要注意什么,有需要就问我
现在我们来写程序:
#include <reg51.h> //选用晶振11.0592MHz
unsigned char k=0; //k表示正反转次数
sbit X0=P3^2; //调节按钮
sbit X1=P1^1; //上限位接近开关信号
sbit X2=P1^2; //下限位接近开关信号
sbit Y1=P0^0; //电机上升(注意:我使用的是管脚输出为0时候,电机运动,这样可以避免启动时候,单片机自复位对电机点动的影响)
sbit Y2=P0^1; //电机下降
void delay50ms(unsigned int i)
{
unsigned int j;
for (i;i>0;i--)
for(j=46078;j>0;j--);
}
main()
{
IT0=1; //下降沿触发
EX0=1; //开P3.2外部中断
EA=1; //总中断开
while(1)
while(k)
{
Y1=0; //正转
while(X1==1); //等待正转接近开关反应
Y1=1; //正转停
delay50ms(1); //停止时间50ms
Y2=0; //反转
while(X2==1); //等待反转接近开关反应
Y2=1; //反转停
k--; //圈数减一
}
}
void counter0(void) interrupt 0
{
k++; //外部中断控制圈数加一
//这个位置可以加你显示程序
}
程序已经通过测试,放上去就能用,很好玩哟,呵呵