ZXC-0168 第3讲STC8A8K64D4单片机工控板开关信号控制对应继电器输出点动方法2 使用if...while...语句实现

ZXC-0168 第3讲STC8A8K64D4单片机工控板开关信号控制对应继电器输出点动方法2 使用if...while...语句实现继电器输出

/********************************************************************
河南钰平电子科技有限公司
实现功能:应用程序
使用芯片:STC8A8K64D4
晶振:11.0592MHZ
波特率:9600
编译环境:Keil5
作者:张新春 
微信/手机:13603455408
QQ:115451619
淘宝店:汇诚科技 http://shop36330473.taobao.com
企业店铺 https://shop404420384.taobao.com
视频学习 哔哩哔哩 https://space.bilibili.com/483302855
视频学习 西瓜     https://www.ixigua.com/home/72925053903
视频学习 抖音     抖音号:Yupingdianzi
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! 
*********************************************************************/
/*************  功能说明    **************
开关信号控制对应继电器输出点动方法2

使用 if....while....语句实现继电器输入控制输出(一对一)
******************************************/

#include "STC8A8K64D4.h"   //包含此头文件后,里面声明的寄存器不需要再手动输入,避免重复定义
#include "intrins.h"       //一般程序中需要使用到空指令_nop_();字符循环移位指令_crol_等时使用。
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型

/*************    本地常量声明    **************/
/*************    光耦隔离输入口    **************/
sbit IN1= P5^5;//光耦隔离输入口1
sbit IN2= P4^0;//光耦隔离输入口2
sbit IN3= P6^4;//光耦隔离输入口3
sbit IN4= P6^5;//光耦隔离输入口4
sbit IN5= P6^6;//光耦隔离输入口5
sbit IN6= P6^7;//光耦隔离输入口6
sbit IN7= P3^2;//光耦隔离输入口7
sbit IN8= P3^3;//光耦隔离输入口8
sbit IN9= P3^4;//光耦隔离输入口9
sbit IN10= P3^5;//光耦隔离输入口10

/*************    光耦隔离继电器输出口    **************/
sbit OUT1= P4^3;//继电器输出口1
sbit OUT2= P2^7;//继电器输出口2
sbit OUT3= P2^6;//继电器输出口3
sbit OUT4= P2^5;//继电器输出口4
sbit OUT5= P2^4;//继电器输出口5
sbit OUT6= P2^3;//继电器输出口6
sbit OUT7= P2^2;//继电器输出口7
sbit OUT8= P2^1;//继电器输出口8
sbit OUT9= P4^2;//继电器输出口9
sbit OUT10= P2^0;//继电器输出口10

sbit RUN= P4^4;//运行状态指示灯
sbit FMQ= P0^7;//蜂鸣器控制脚

//========================================================================
// 函数: void main()
// 描述: 主函数。
// 参数: none.
// 返回: none.
//========================================================================
void main()//主函数
{
P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
RUN=0;    //运行指示灯亮
while (1)//主函数执行循环扫描
{
if(IN1==0){OUT1=0;while(!IN1);OUT1=1;}     //如果IN1有信号输入OUT1继电器吸合,等待IN1信号消失OUT1继电器断开
if(IN2==0){OUT2=0;while(!IN2);OUT2=1;}     //如果IN2有信号输入OUT2继电器吸合,等待IN2信号消失OUT2继电器断开
if(IN3==0){OUT3=0;while(!IN3);OUT3=1;}     //如果IN3有信号输入OUT3继电器吸合,等待IN3信号消失OUT3继电器断开
if(IN4==0){OUT4=0;while(!IN4);OUT4=1;}     //如果IN4有信号输入OUT4继电器吸合,等待IN4信号消失OUT4继电器断开
if(IN5==0){OUT5=0;while(!IN5);OUT5=1;}     //如果IN5有信号输入OUT5继电器吸合,等待IN5信号消失OUT5继电器断开
if(IN6==0){OUT6=0;while(!IN6);OUT6=1;}     //如果IN6有信号输入OUT6继电器吸合,等待IN6信号消失OUT6继电器断开
if(IN7==0){OUT7=0;while(!IN7);OUT7=1;}     //如果IN7有信号输入OUT7继电器吸合,等待IN7信号消失OUT7继电器断开
if(IN8==0){OUT8=0;while(!IN8);OUT8=1;}     //如果IN8有信号输入OUT8继电器吸合,等待IN8信号消失OUT8继电器断开
if(IN9==0){OUT9=0;while(!IN9);OUT9=1;}     //如果IN9有信号输入OUT9继电器吸合,等待IN9信号消失OUT9继电器断开
if(IN10==0){OUT10=0;while(!IN10);OUT10=1;} //如果IN10有信号输入OUT10继电器吸合,等待IN10信号消失OUT10继电器断开
}
}
/********************************************************************
                        结束
*********************************************************************/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值