通过51单片机控制一个电磁铁。在完成一个动作后要求电磁铁消磁,做这个控制需要什么,C语言程序该怎么写

通过51单片机控制一个电磁铁。在完成一个动作后要求电磁铁消磁,做这个控制需要什么,C语言程序该怎么写,第1张

电磁铁加电,电磁铁就工作,不加电,电磁铁的磁自然就没有了。电磁铁工作必须提供脉冲信号,所以明昌祥可以用定时器来做。

#include<reg51.h>

sbit dct=P1^0

void delay(int a)

{

char i

while(a--)for(i=0i<110i++)

}

void t0isr() interrupt 1

{

dct=~dct

}

main()

{

TMOD=0x02

TH0=216

TL0=216

ET0=1

EA=1

dct=1

while(1)

    {

    TR0=1

    delay(1000)//电磁铁工作迅猜1秒

  激搏  TR0=0

    dct=1

    delay(10000)//停止工作10秒

    }

}

你里面的 Printf()应该是小写, 结果是:

619.625000,-29.970915,8.623259,1.909263,1.625109,-3.936337,0.893177,1.515589,

23.226128,-7.184149,-4.326581,-0.438076,7.346054,0.010426,-2.266374,-3.185535,

11.797965,-0.277895,5.197155,-4.772082,-3.571826,4.160440,-0.261487,-3.506890,

2.299236,-10.742056,5.494944,0.791424,-1.028810,7.602942,3.791149,2.819872,

6.375104,2.510630,-1.549135,-1.074077,-3.625004,-0.796887,0.506375,8.723280,

0.739237,2.612109,0.717067,2.529723,-0.925830,3.206421,-2.944573,-2.792308,

-9.080985,-1.660178,-4.511485,1.742748,2.155988,1.549133,-1.697147,2.055332,

-3.625893,2.241254,5.354902,-1.960188,0.898635,-1.370055,1.828232,-3.313714,

代码:

#include"唯如STDIO.H"

#include"MATH.H"

#define M 8

#define N 8

#define P 3.141593

void Print(float a[M][N])

{ int i,j

for(i=0i<Mi++)

{for(j=0j<Nj++)

printf("%f,",a[i][j])

printf("\n")

}}

void Fast(float a[N][M], 指毁启float b[M][N])

{int i,j

for(i=0i<Mi++)

for(j=0j<Nj++)

a[j][i]=b[i][j]

}

void Mult(float a[M][N],float b[M][N] , float c[M][N])

{int i,j,k

float sum

for(i=0i<Mi++)

for(j=0j<Nj++)

{sum=0

for(k=0k<Nk++)

sum=sum+a[i][k]*b[k][j]

c[i][j]=sum

}}

main()

{float DCT[M][N],TDCT[N][M]

float 余姿temp[M][N],F[M][N]

float Ck

int i,j

float f[M][N]={79,75,79,82,82,86,94,94,76,78,76,82,83,86,85,94,72,75,67,78,80,78,74,82,74,76,75,75,86,80,81,79,73,70,75,67,78,78,79,85,69,63,68,69,75,78,82,80,76,76,71,71,67,79,80,83,72,77,78,69,75,75,78,78}

for(i=0i<Mi++)

{if(i==0) Ck=1.000000/sqrt(2)

else Ck=1

for(j=0j<Nj++)

DCT[i][j]=sqrt(2.000000/N)*Ck*cos((2*j+1)*i*P/(2*N))

}

Fast(TDCT,DCT)

Mult(DCT,f,temp)

Mult(temp,TDCT,F)

printf ("\n")

Print(F)

printf ("\n")

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/12373087.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存