两者没有直接关系,但是相关。
编程有两个概念:

1是编一个软件,如windows系统是一个大程序,与CPU、显示器、打印机,都有关系。
2是编一个电器的动作控制程序,如PLC程序,它与电器元件本生也相关。
但是,没人既要研究硬件,又要研究软件,现在社会分工很细,而且都是在前人基础上发展的,所以,可以说都是分类组合。
作为电子工程师,如果在工厂,你如同一个裁缝,只要你会用剪刀剪出花样,而不需知道剪刀是什么材料做的。
求STC89C52控制步进电机的电路和程序
C语言
#include<reg51h>
void delay(unsigned int a)
{
unsigned i,j;
for(i=0;i<a;i++)
for(j=0;j<1000;j++);
}
main()
{
unsigned LED,i;
LED = 0xfe;
EA = 0;
while(1)
{
for(i=0;i<7;i++){delay(100);LED = (LED<<1)|0x01;P3 = LED;}
for(i=0;i<7;i++){delay(100);LED = (LED>>1)|0x80;P3 = LED;}
}
}
汇编语言
LED EQU 30H
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
CLR EA
MOV SP,#5FH
MOV LED,#0FEH
MOV R0,#7
LOOP:
MOV R7,#50
LCALL DELAY
MOV A,LED
RL A
MOV LED,A
MOV P3,A
DJNZ R0,LOOP
MOV R0,#7
LOOP1:
MOV R7,#50
LCALL DELAY
MOV A,LED
RR A
MOV LED,A
MOV P3,A
DJNZ R0,LOOP1
MOV R0,#7
SJMP LOOP
;----------------------------
DELAY:
MOV R2,#8
DLY1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DLY1
DJNZ R7,DELAY
RET
;-----------------------------
END
一台计算器为什么能计算数据,如果说需要编写个程序,那程序和电路板是怎么样合在一起实现这个功能的
实际运用的程序,图纸
//
/ 广州一丁自动化设备有限公司010-28969088/
//
#include<reg52H> //加载头文件
#include <stdioh>
sbit MC=P1^0;//脉冲
sbit FX=P1^1;//方向
sbit BL=P3^2;//半流
sbit JD=P1^2;//夹电池
sbit YD=P1^3;//发验电信号
sbit YW=P2^0;//原点
sbit YX=P2^1;//运行
sbit ZL=P2^2;//走轮信号
sbit JDW=P2^3;//夹到位
sbit FDW=P2^4;//放到位
void delay_1(unsigned int j0 ) //1毫秒延时程序
{
unsigned int j1;
unsigned int j2;
for(j1=0;j1<4j0;j1++)
for(j2=0;j2<50;j2++)
;
}
void delay_01(unsigned int j0 ) //001毫秒延时程序J0等于50时两细分为200转/分钟
{
unsigned int j1;
for(j1=0;j1<j0;j1++)
;
}
void main(void)
{
unsigned int n,k;
delay_1(120);//起机延时
BL=0;//半流
k=3;
for(;YX==1;)
;
BL=1;//半流
FX=1;//方向
delay_1(20);
for(;YW==0;)//原位
{
MC=0;//脉冲
if(YX==1)
BL=0;
else
BL=1;
for(;YX==1;)
;
delay_01(k+50);
MC=1;//脉冲
delay_01(k+50);
}
delay_1(10);
FX=0;//方向
for(;YW!=0;)//原
{
MC=0;
if(YX==1)
BL=0;
else
BL=1;
for(;YX==1;)
;
delay_01(k+50);
MC=1;
delay_01(k+50);
}
FX=1;
BL=0;
while(1)
{
YD=1;
JD=1;
for(;FDW!=0;)
;
for(;YX!=0;)
;
// BL=1;
for(;FDW!=0;)
;
BL=1;
delay_1(1);
for(n=50;n>0;n--)
{

MC=0;
delay_01(k+n);
MC=1;
delay_01(k+n);
}
for(n=1890;n>0;n--)
{
MC=0;
delay_01(k);
MC=1;
delay_01(k);
}
for(n=0;n<50;n++)
{
MC=0;
delay_01(k+n);
MC=1;
delay_01(k+n);
}
for(;YW==0;)//首次对位
{
MC=0;
if(YX==1)
BL=0;
else
BL=1;
for(;YX==1;)
;
delay_01(k+50);
MC=1;
delay_01(k+50);
}
JD=0;//夹电
delay_1(10);
FX=0;
for(;YW!=0;)//回位
{
MC=0;
if(YX==1)
BL=0;
else
BL=1;
for(;YX==1;)
;
delay_01(k+50);
MC=1;
delay_01(k+50);
}
delay_1(5);
FX=1;
for(;YW==0;)//再次对位
{
MC=0;
if(YX==1)
BL=0;
else
BL=1;
for(;YX==1;)
;
delay_01(k+50);
MC=1;
delay_01(k+50);
}
delay_1(5);
FX=0;
for(;YW!=0;)//再次回位
{
MC=0;
if(YX==1)
BL=0;
else
BL=1;
for(;YX==1;)
;
delay_01(k+50);
MC=1;
delay_01(k+50);
}
FX=1;
BL=0;
for(;JDW!=0;)
;
YD=0;
delay_1(10);
for(;ZL==1;)
;
}
}
plc程序设计和电工电路设计的有什么异同 我比较熟悉电工而plc较难理解 请大家帮帮忙
计算机的基本原理是存储程序和程序控制。预先要把指挥计算机如何进行操作的指令序列(称为程序)和原始数据通过输入设备输送到计算机内存贮器中。每一条指令中明确规定了计算机从哪个地址取数,进行什么操作,然后送到什么地址去等步骤。
计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下来,再取出第二条指令,在控制器的指挥下完成规定操作。依此进行下去。直至遇到停止指令。
程序与数据一样存贮,按程序编排的顺序,一步一步地取出指令,自动地完成指令规定的操作是计算机最基本的工作原理。这一原理最初是由美籍匈牙利数学家冯诺依曼于1945年提出来的,故称为冯诺依曼原理。
说起来十分复杂,实质就是电路中的电流不停随着既定的步骤改变,来实现目的
plc编程与基本电路有什么关系?
PLC意思是可编程控制
学习的时候还要学习相应的编程语言 不过这些语言对于熟悉电工的你来说没什么困难的
语言学会后只需要通过PLC就可以设计出你想要的电路了
而电工就不同 接完一组电路后虽然可以改 但该的比较麻烦 还可能出错
想学的话去买本PLC书看看 不难的
用89c51单片机 6个数码管循环显示HELLO的程序 及仿真电路图
PLC编程与自动控制电气线路有密切关系,最常用的梯形图就类似于一些基本的控制线路图,当然基本电路含义广泛,像数字电路、模拟电路等于PLC就没有必然的关系了。这里的基本电路指的是基本电气线路,如电机控制电路等等。
#include<reg51h>
#define uchar unsigned char
uchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//0-9
uchar ledtab[]={0x66,0x79,0x68,0x68,0x5c, //HELLo
0x00,0x39,0x6d,0x00,0x3f,0x66}; // C51 04
0x66,0x79,0x68,0x68,0x5c} //HELLo
uchar disdat[6],num;
void dischg()
{
disdat[0]=num;
disdat[1]=num+1;
disdat[2]=num+2;
disdat[3]=num+3;
disdat[4]=num+4;
disdat[5]=num+5;
}
void t0isr() interrupt 1 //秒计时
{
TH0=0x3c;
TL0=0xb0;
time++;
if(time>=20)
{
time=0;
dischg();
num++;
num%=10;
}
}
void t1isr() interrupt 3 //显示
{
TH1=0xec;
TL1=0x78;
P2=0x01<<scanled;
P0=disdat[scanled];
scanled++;
scanled%=6;
}
main()
{
TMOD=0x11;
TH0=0x3c;
TL0=0xb0;
TH1=0xec;
TL1=0x78;
TR1=1;
TR0=1;

ET0=1;
ET1=1;
EA=1;
while(1);
}


