
在程序里面,高速计数器C是受对应的程序M继电器控制的。例如:高速计数器C235的加减计数状态是受M8235的通断控制的。如果M8235接通,则C235是正计数,也就是加,如果M8235是断开状态,则高速计数器C235是减计数。
USE IEEESTD_LOGIC_1164ALL;
USE IEEESTD_LOGIC_UNSIGNEDALL;
ENTITY add_sub_counter IS
PORT ( clk,player1_in,player2_in : IN STD_LOGIC;
counter : OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
END;
ARCHITECTURE behaviour OF add_sub_counter IS
SIGNAL q : STD_LOGIC_VECTOR (7 DOWNTO 0);
BEGIN
PROCESS(clk,player1_in,player2_in)
VARIABLE player : STD_LOGIC_VECTOR (1 DOWNTO 0);
BEGIN
player := player1_in&player2_in;
IF rising_edge(clk) THEN
CASE player IS
WHEN "10" => q <= q+1;
WHEN "01" => q <= q-1;
WHEN OTHERS => NULL;
END CASE;
END IF;
END PROCESS;
counter <= q ;
END;
#include<reg52h>
#define uchar unsigned char
#define uint unsigned int
sbit we1=P2^7; //数码管位
sbit s1=P2^6; //轻触开关
sbit s2=P2^5;
uint a=0; //显示数值
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8, //共阳数码管数值0-9
0x80,0x90
/0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07, //共阴数码管数值0-9
0x7f,0x6f/
};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void xianshi() //数码管显示
{
we1=1; //共阴为0 共阳为1
P0=table[a];
delay(8);
}
void key()
{
if(s1==0)
{
delay(5);
if(s1==0)
{
a++;
if(a==10)
a=0;
while(!s1); //等待松开
}
}
if(s2==0)
{
delay(5);
if(s2==0)
{
a--;
if(a==-1)
a=9;
while(!s2); //等待松开
}
}
}
void main()
{
while(1)
{
xianshi();
key();
}
}
以上就是关于三菱PLC的加/减计数器怎样理解啊什么叫加减计数器啊全部的内容,包括:三菱PLC的加/减计数器怎样理解啊什么叫加减计数器啊、用vhdl语言写一个加减计数器、课程设计题目:0-9加减计数器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)