计数器编程
Ⅰ 介绍计数器 /定时器 程序 的编写步骤 (c语言的)
假设你用的晶振为12m,用p1.0口输出周期为2ms的方波。使用定时器工作方式1.
至于计数初值的计算,授之以鱼不如授之以渔!
在定时器模式下,计数器的计数脉冲来自于晶振脉冲的12分频信号,即对机器周期进行计数。若选择12m晶振,则定时器的计数频率为1mhz。假设定时时间为t,机器周期为t1,即12/晶振频率。x为定时器初值。则
x=2^n-t/t1。方式0,n=13,方式1时,n=16,方式2和方式3,n=8
自己算去吧!
#include
void
inittimer0(void)//
{
tmod
=
0x01;
th0
=
0x0fc;
//计数器初值
tl0
=
0x18;
ea
=
1;
et0
=
1;
tr0
=
1;//开启定时器t0
}
void
main(void)
{
inittimer0();
}
void
timer0interrupt(void)
interrupt
1
{
th0
=
0x0fc;//重新赋初值
tl0
=
0x18;
p1.0=~p1.0;
//输出方波
}
Ⅱ 求三菱PLC计数器怎么编写和复位清零法
1、X0导通C0 K5。
2、C0导通Y0。
3、C是计数器,K是常数,5是相应的数据(这里是5次)。
4、用传送指令mov把常数0传送给c0。
5、用复位指令RST直接复位c0。
6、建议看下李金成老师的三菱plc的入门课程。
(2)计数器编程扩展阅读:
plc它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。
当从编程器输入的程序存入到用户程序存储器中,然后CPU根据系统所赋予的功能(系统程序存储器的解释编译程序),把用户程序翻译成PLC内部所认可的用户编译程序。
系统程序存储器用以存放系统程序,包括管理程序,监控程序以及对用户程序做编译处理的解释编译程序。由只读存储器组成。厂家使用的,内容不可更改,断电不消失。
内部电路输出数字信号1,有电流流过,继电器线圈有电流,然后常开触点闭合,提供负载导通的电流和电压。
内部电路输出数字信号0,则没有电流流过,继电器线圈没有电流,然后常开触点断开,断开负载的电流或电压。也就是通过输出接口电路把内部的数字电路化成一种信号使负载动作或不动作。
参考资料:网络-三菱PLC
Ⅲ 科学计算器怎么编程
如果你说的是电脑系统中自带的科学计数器的话,那东西没有编程功能,只有对不同进制的数进行辅助计算的功能,如果是其他的计算器可以查看产品说明书或网络相关资料。
Ⅳ 三菱PLC 两个高速计数器计数分别设置计数值, 两数达到总数就停止, 怎么编程
如图所示,当M0为ON,常开触点导通,C251和C254两个高速计数器就开始计数,两个计数器的设定值都是32位的最大值,为了让两个计数器都能无限制的计数,C251+C254=D0,这样D0就是两个计数器的总数了,然后用比较指令,D0大于9 999 999时,复位M0,常开触点断开,C251和C254就停止计数了。
望采纳。。。。。。
Ⅳ 用计数器编程,最好是汇编,c语言也可以
#include<reg51.h>
sbit key=P3^4;
sbit LED1=P1^0;
sbit LED2=P1^1;
sbit LED3=P1^2;
void main()
{
EA=1;
TMOD=0x04; //定时器0工作于计数方式
ET0=1;
TR0=1;
while(1);
}
void timer0()interrupt 1
{
TR0=0;
switch(TL0)
{
case 1: LED1=0; break;
case 2: LED2=0; break;
case 3: LED3=0; break;
default: P1=0xff; TL0=0; // 计数值清零
}
Ⅵ 高速计数器的编程方法有几种,分别是什么
使用PRV(062)指令,需要对数据逻辑存储器DM6642进行设置,方法如下即用手持编程器改变PLC设置: PLC的开关放到PROGRAM状态下 → 按DM键 → 分别按6642数字键 → 按MONTR键 → 按CHG键 → 分别按0100数字键 → 按WRITE键→ 按DM键 → 分别按6642数字键
Ⅶ 如何用C语言编写这个计数程序
按照题目要求编写的C语言计数程序如下
#include<stdio.h>
int main(){
int i,start,end,step;
printf("从哪个数字开始计数:");
scanf("%d",&start);
printf("在哪个数字停止计数:");
scanf("%d",&end);
printf("每次增加的数字:");
scanf("%d",&step);
for(i=start;i<=end;i=i+step){
printf("%d ",i);
}
return 0;
}