三菱PLC的加减计数器怎样理解啊什么叫加减计数器啊

三菱PLC的加减计数器怎样理解啊什么叫加减计数器啊,第1张

在程序里面,高速计数器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加减计数器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9868886.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存