单片机数字量输入输出实验

单片机数字量输入输出实验
单片机数字量输入输出实验

一、实验目的

1.熟悉教学板电路及其结构。

2.掌握利用μVision C51 软件编辑、调试(包括仿真调试、单步调试)、运行单片机程序的步骤和方法,掌握利用STC-ISP V39软件和下载线将程序写入单片机的方

法。

3.通过实验熟悉51单片机的并行I/O口,并掌握它们的应用。

4.掌握矩阵键盘、LED动态显示的工作原理。

二、实验设备

PC机一台、实验教学板一块。

三、实验内容

1.实验线路如附图所示,51单片机的P0口输出接8个发光二极管的阴极,P

2.4经NPN 三极管9011控制发光管的阳极。P3口支持一个8位行列式键盘,其中P

3.4~P3.7供键盘扫描输出,P3.2、P3.3作键盘扫描输入。

实验要求:编程实现键盘对发光二极管的控制,每按一个按键,使对应的二极管点亮。

2.51单片机P0口输出同时接4个数码管的阴极,P2.0~P2.3,经NPN三极管9011接数码管的阳极,该端口用于分别控制相应数码管的导通。

实验要求:编程实现对任意按键动作的次数进行计数(最大99次),同时将计数值实时显示。

四、实验步骤

1.将实验板与PC机通过COM口连接。启动PC机,进入μVision软件环境,选择建立

新工程文件,即可开始输入源程序。

2.完成汇编、编译、连接,若有错误,则修改源程序,直至编译、连接通过为止。

3.接上实验板上的电源。

4.运行“STC-ISP V39.EXE”,将程序代码下载到实验板的单片机中。操作的顺序是:1)选择单片机(MCU TYPE)型号。

如:“STC89C51RC”要与实验板上所装单片机的型号一至。

2)打开文件(Open File)。

即把要下载到单片机的程序文件(已通过编译了的机器码文件——二进制(.Bin)或十六进制(.Hex)的)调到“文件缓冲区”,这时可看到右边的“文件缓冲区”有数字变化。

3)选择串行通信口。

选对时,软件上的小灯会变绿。否则小灯是灰色。且在左下窗口提示“出错信息”。

4)下载:按“Download/下载”按键下载。

5)把实验板上的供电的直流电源拔掉或关掉3秒钟再插入或打开电源(为单片机上电复位)。

5.观察单片机运行情况,验证程序是否能完成题目给出的控制要求,若不能达到要求,分析原因、查找错误,修改源程序,再次汇编、连接,重新下载、运行,直至达到题目的控制要求。

五、遇到的问题及原因:

1.实验一,把程序烧进单片机后,发现按键时,LED灯乱亮,经检查是LED等亮的数

组除了问题,修改后可以正常工作。

2.在实验二中,程序烧进单片机后,有一个数码管很暗,并且有重影,修改了延时之后问题结局。每按一次按键,显示数值会增加好多,后来发现是键盘扫描程序中,检测到按键按下后,没有等待按键释放。

附件一:参考程序流程图

实验内容1流程图

实验内容2流程图

键盘处理程序流程图附件二:实验程序:

实验内容1

#include

/***************************************************

程序

名称:键盘

功能:采集2*4键盘键值并在LED灯上显示

作者:张俊淼

备注:

***************************************************/

/**************************************************/

#define uint unsigned int

#define uchar unsigned char

/**************************************************/

sbit feng=P2^5;//蜂鸣器控制

sbit deng=P2^4;//LED灯总控制

sbit LED1=P2^0;//LED数码管第一位

sbit LED2=P2^1;//LED数码管第二位

sbit LED4=P2^3;//LED数码管第四位

sbit int0=P3^2;//外部中断0管脚

sbit int1=P3^3;//外部中断1管脚

/**************************************************/

uchar Buffer[4] = {0xe0, 0xd0, 0xb0, 0x70};//键盘对比数组

uchar LEDBuf[9] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f, 0xff};//LED灯编码

uchar Key=8;//键盘数值

/**************************************************/

void init(void);

void delay_ms(uint x);

/******************************************************************** * 名称 : main()

* 功能 : 主函数

* 输入 : 无

* 输出 : 无

***********************************************************************/ void main()

{

init();//初始化

while(1)

{

P0=LEDBuf[Key];//显示键值

}

}

/******************************************************************** * 名称 : init()

* 功能 : 初始化

* 输入 : 无

* 输出 : 无

***********************************************************************/ void init(void)

{

EA=1; //开总中断

EX0=1; //开外部中断 0

IT0=1; //设置成边沿触发方式

EX1=1; //开外部中断 1

IT1=1; //设置成边沿触发方式

feng=0;//关蜂鸣器

deng=1;//开启LED总控制

LED2=0;//关闭数码管第二位

LED3=0;//关闭数码管第三位

LED4=0;//关闭数码管第四位

P3&=0x0f;//初始化键盘输入端检测

}

/**************************************************

* 名称 : delay_ms(uint x)

* 功能 : 毫秒延时程序,对应C51的11.0592MHZ

* 输入 : 欲延时毫秒数

* 输出 : 无

**************************************************/

void delay_ms(uint x) //毫秒延时程序

{

unsigned char j;

while(x--)

{

for(j=0;j<123;j++){;}

}

}

/**************************************************************/

/******************************************************************** * 名称 : Funint0()

* 功能 : 外部中断0。

* 输入 : 无

* 输出 : 无

***********************************************************************/ void Funint0() interrupt 0

{

uchar i,x;

EX0=0; //关外部中断 0

EX1=0; //关外部中断 1

delay_ms(30);//延时消抖

if(int0==0)//判断按钮是否真的按下

{

int0=0;

P3|=0xf0;//以上两条为进一步检测作准备

x=P3&0xf0;//取P3高四位

for(i=0;i<4;i++)

{

if(x==Buffer[i])Key=i;//获取键值

}

while((P3&0xf0)!=0xf0);//等待按键放开

}

P3=0x0f;//初始化键盘输入端检测

EX0=1; //开外部中断 0

EX1=1; //开外部中断 1

}

/******************************************************************** * 名称 : Funint1()

* 功能 : 外部中断1。

* 输入 : 无

* 输出 : 无

***********************************************************************/ void Funint1() interrupt 2

{

uchar i,x;

EX0=0; //关外部中断 0

EX1=0; //关外部中断 1

delay_ms(30);//延时消抖

if(int1==0)//判断按钮是否真的按下

{

int1=0;

P3|=0xf0;//以上两条为进一步检测作准备

x=P3&0xf0;//取P3高四位

for(i=0;i<4;i++)

{

if(x==Buffer[i])Key=4+i;//获取键值

}

while((P3&0xf0)!=0xf0);//等待按键放开

}

P3=0x0f;//初始化键盘输入端检测

EX0=1; //开外部中断 0

EX1=1; //开外部中断 1

}

实验内容2

#include

/**************************************************/

#define uint unsigned int

#define uchar unsigned char

/**************************************************/

sbit feng=P2^5;//蜂鸣器控制

sbit deng=P2^4;//LED灯总控制

sbit LED1=P2^0;//LED数码管第一位

sbit LED2=P2^1;//LED数码管第二位

sbit LED3=P2^2;//LED数码管第三位

sbit LED4=P2^3;//LED数码管第四位

sbit int0=P3^2;//外部中断0管脚

sbit int1=P3^3;//外部中断1管脚

/**************************************************/

uchar LEDBuf[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};//LED数码管编码uchar Num=0;//计数值

/**************************************************/

void init(void);

void delay_ms(uint x);

void shownum(uchar num);

/**************************************************/

void main()

{

init();

while(1)

{

shownum(Num);

}

}

/********************************************************************

* 名称 : init()

* 功能 : 初始化

* 输入 : 无

* 输出 : 无

***********************************************************************/ void init(void)

{

EA=1; //开总中断

EX0=1; //开外部中断 0

IT0=1; //设置成边沿触发方式

EX1=1; //开外部中断 1

IT1=1; //设置成边沿触发方式

feng=0;//关蜂鸣器

deng=0;//关闭LED总控制

LED1=0;//关闭数码管第一位

LED2=0;//关闭数码管第二位

LED3=0;//关闭数码管第三位

LED4=0;//关闭数码管第四位

P3&=0x0f;//初始化键盘输入端检测

}

/**************************************************

延时程序,对应C51的11.0592MHZ

**************************************************/

void delay_ms(uint x) //毫秒延时程序

{

unsigned int i,j;

i=0;

for(i=0;i

{

j=108;

while(j--);

}

}

/******************************************************************** * 名称 : shownum()

* 功能 : 数码管显示数字

* 输入 : 0~99的要显示的数字

* 输出 : 无

***********************************************************************/ void shownum(uchar Num)

{

static uchar number[2]={0x00, 0x00};//数码管的个位和十位

number[1]=Num/10;

number[0]=Num%10;

P0=LEDBuf[number[0]];

LED3=0;//关闭数码管第三位

LED4=1;//开启数码管第四位

delay_ms(10);//个位显示延时

P0=LEDBuf[number[1]];

LED3=1;//开启数码管第三位

LED4=0;//关闭数码管第四位

delay_ms(10);//十位显示延时

}

/**************************************************************/

/******************************************************************** * 名称 : Funint0()

* 功能 : 外部中断0。

* 输入 : 无

* 输出 : 无

***********************************************************************/ void Funint0() interrupt 0

{

EX0=0; //关外部中断 0

EX1=0; //关外部中断 1

delay_ms(10);//延时消抖

if(int0==0)//判断按钮是否真的按下

{

// while(int0==0);//等待按键放开

Num++;

}

P3=0x0f;//初始化键盘输入端检测

EX0=1; //开外部中断 0

EX1=1; //开外部中断 1

}

/******************************************************************** * 名称 : Funint1()

* 功能 : 外部中断1。

* 输入 : 无

* 输出 : 无

***********************************************************************/ void Funint1() interrupt 2

{

EX0=0; //关外部中断 0

EX1=0; //关外部中断 1

delay_ms(10);//延时消抖

if(int1==0)//判断按钮是否真的按下

{

// while(int1==0);//等待按键放开

Num++;

}

P3=0x0f;//初始化键盘输入端检测

EX0=1; //开外部中断 0

EX1=1; //开外部中断 1 }

实验一 数字量输入输出实验

实验一数字量输入输出实验 一、实验目的 1.熟悉教学板电路及其结构。 2.掌握利用μVision C51 软件编辑、调试(包括仿真调试、单步调试)、运行单片机 程序的步骤和方法,掌握利用STC-ISP V39软件和下载线将程序写入单片机的方 法。 3.通过实验熟悉51单片机的并行I/O口,并掌握它们的应用。 4.掌握矩阵键盘、LED动态显示的工作原理。 二、实验设备 PC机一台、实验教学板一块。 三、实验准备 1.阅读实验讲义附录一、实验教学板电路图和附录二、μVision软件使用说明 2.按实验题目要求设计好硬件电路,画出电路原理图,设计出相应程序,并给程序加 上较详细的注释。 四、实验内容 1. 1.实验线路如附图所示,51单片机的P0口输出接8个发光二极管的阴极,P 2.4经 NPN三极管9011控制发光管的阳极。P3口支持一个8位行列式键盘,其中P3.4~P3.7 供键盘扫描输出,P3.2、P3.3作键盘扫描输入。 2.实验要求:编程实现键盘对发光二极管的控制,每按一个按键,使对应的二极管点 亮。 2.51单片机P0口输出同时接4个数码管的阴极,P2.0~P2.3,经NPN三极管9011接数码管的阳极,该端口用于分别控制相应数码管的导通。 实验要求:编程实现对任意按键动作的次数进行计数(最大99次),同时将计数值实时显示。 五、实验步骤 1.将实验板与PC机通过COM口连接。启动PC机,进入μVision软件环境,选择建立 新工程文件,即可开始输入源程序。 2.完成汇编、编译、连接,若有错误,则修改源程序,直至编译、连接通过为止。 3.接上实验板上的电源。 3.运行“STC-ISP V39.EXE”,将程序代码下载到实验板的单片机中。操作的顺序是:1)选择单片机(MCU TYPE)型号。 如:“STC89C51RC”要与实验板上所装单片机的型号一至。 2)打开文件(Open File)。 即把要下载到单片机的程序文件(已通过编译了的机器码文件——二进制(.Bin)或十六进制(.Hex)的)调到“文件缓冲区”,这时可看到右边的“文件缓冲 区”有数字变化。 3)选择串行通信口。 选对时,软件上的小灯会变绿。否则小灯是灰色。且在左下窗口提示“出错信息”。

YC1008数字量输入输出模块使用说明书V1.0

YC1008数字量输入输出模块 使用说明书V1.0 目录 一.模块介绍 二.技术参数 三.模块的型号 四.模块尺寸、模块引脚定义、隔离特性 五.模块使用说明 六.通讯协议 七.模块的MODBUS-RTU协议功能码与数据对应表 版本记录:V1.0 2011-11-20 版本创建 一.模块介绍 YC1008数字量输入输出模块广泛应用于工业控制系统,具有广泛的使用意义。YC1008模块的主要特点如下: 1. YC1008系列模块通过隔离变压器和隔离光耦实现了供电电路、数字量输入、数字量输出、通讯电路的相互隔离,模块具有很强的稳定性和抗干扰能力。 2.单电源供电,隔离在模块内部通过隔离变压器和隔离光耦实现,隔离电压2500V。 3. YC1008系列模块实现8路数字量的输入和8路数字量的输出功能。 4. 通讯接口为RS485或232,通讯波特率等参数可配置,通讯协议为MODBUS-RTU。二.技术参数 供电电源 1. 供电电压:DC12V或DC24V,电源反接保护。 2. 电流消耗:<35mA+继电器功耗。 数字量输入 1. 共有8个数字量输入通道,可以接收多种输入信号:无源开关信号(逻辑0表示断开,逻辑1表示闭合);输入信号可以接集电极开漏(OC)输出信号、接近开关信号;输入信号也可以是有源信号(逻辑0表示3~35V,逻辑1表示0~0.5V表示闭合)。 2. 内部采用隔离变压器和隔离光耦实现了输入信号和电源的隔离,隔离电压2500V。数字量输出 1.8路数字量输出信号。 2.数字量输出通过继电器(常开触点)或集电极开漏输出(OC)两种方式实现。 3.该模块配有两种继电器输出:1) 继电器触点负载容量10A/277V AC;2) 继电器触 点负载容量30A/240V AC。

微机原理简单输入输出实验报告

东南大学 《微机实验及课程设计》 实验报告 实验四(1)简单输入输出 一. 实验目的与内容 (一)实验目的 1)进一步掌握TPC实验装置的基本原理和组成结构; 2)掌握利用I/O指令单步调试检查硬件接口功能,学会利用示波器检测I/O指令执行时总线情况; 3)掌握简单并行输入输出接口的工作原理及使用方法,进一步熟悉掌握输入输出单元的功能

和使用。 (二)实验内容及要求 1、输出接口输出,根据8个发光二极管发光的情况验证编程从键盘输入一个字符或数字,将其ASCII码通过正确性。(输出端口实验必做) 2、用逻辑电平开关预置某个字母的ASCII码,编程输入这个ASCII码,并将其对应字母在屏幕上显示出来。(输入端口实验必做) 3、利用基本实验(1)中的输出锁存电路,设计L0~L7为流水灯,流水间隔时间由软件产生。(输出端口实验) 4、利用基本实验(2)中的输入电路,监测逻辑电平开关K0~K7的变换,当开关状态为全开时,在屏幕上显示提示信息并结束程序。(输入端口实验) 要求: 1、输入输出端口应该可以响应外设的连续变化。 2、输出按ESC键退出;输入按任意键退出。 3、内容3、4比做一题,选做一题 二. 实验基本原理 (一)基本原理 简单并行输出实验:八D触发器74LS273的八个输入端接数据总线D0~D7,从键盘输入一个字符或数字,通过2A8H~输出接口输出该字符或者数字代表的ASCII码,再通过8个发光二极管发光显示二进制数码,从而验证编程以及电路的正确性。 简单并行输入实验:八缓冲器74LS244的八个输出端接数据总线D0~D7,8个输入端分别接逻辑电平开关K0~K7,在逻辑电平开关上预置任意字符的ASCII码,编程将此ASCII码通过2A0H~输入,ASCII码对应字符显示在屏幕上,从而验证编程及电路的正确性。 (二)实验接线图

单片机数字量输入输出实验

一、实验目的 1.熟悉教学板电路及其结构。 2.掌握利用μVision C51 软件编辑、调试(包括仿真调试、单步调试)、运行单片机程序的步骤和方法,掌握利用STC-ISP V39软件和下载线将程序写入单片机的方 法。 3.通过实验熟悉51单片机的并行I/O口,并掌握它们的应用。 4.掌握矩阵键盘、LED动态显示的工作原理。 二、实验设备 PC机一台、实验教学板一块。 三、实验内容 1.实验线路如附图所示,51单片机的P0口输出接8个发光二极管的阴极,P 2.4经NPN 三极管9011控制发光管的阳极。P3口支持一个8位行列式键盘,其中P 3.4~P3.7供键盘扫描输出,P3.2、P3.3作键盘扫描输入。 实验要求:编程实现键盘对发光二极管的控制,每按一个按键,使对应的二极管点亮。 2.51单片机P0口输出同时接4个数码管的阴极,P2.0~P2.3,经NPN三极管9011接数码管的阳极,该端口用于分别控制相应数码管的导通。 实验要求:编程实现对任意按键动作的次数进行计数(最大99次),同时将计数值实时显示。 四、实验步骤 1.将实验板与PC机通过COM口连接。启动PC机,进入μVision软件环境,选择建立 新工程文件,即可开始输入源程序。 2.完成汇编、编译、连接,若有错误,则修改源程序,直至编译、连接通过为止。 3.接上实验板上的电源。 4.运行“STC-ISP V39.EXE”,将程序代码下载到实验板的单片机中。操作的顺序是:1)选择单片机(MCU TYPE)型号。 如:“STC89C51RC”要与实验板上所装单片机的型号一至。 2)打开文件(Open File)。 即把要下载到单片机的程序文件(已通过编译了的机器码文件——二进制(.Bin)或十六进制(.Hex)的)调到“文件缓冲区”,这时可看到右边的“文件缓冲区”有数字变化。 3)选择串行通信口。 选对时,软件上的小灯会变绿。否则小灯是灰色。且在左下窗口提示“出错信息”。 4)下载:按“Download/下载”按键下载。 5)把实验板上的供电的直流电源拔掉或关掉3秒钟再插入或打开电源(为单片机上电复位)。 5.观察单片机运行情况,验证程序是否能完成题目给出的控制要求,若不能达到要求,分析原因、查找错误,修改源程序,再次汇编、连接,重新下载、运行,直至达到题目的控制要求。 五、遇到的问题及原因: 1.实验一,把程序烧进单片机后,发现按键时,LED灯乱亮,经检查是LED等亮的数

汇编语言-实验五 输入输出程序设计

实验五输入输出程序设计 一、实验目的 1) 掌握输入输出程序的编写方法。 2) 熟悉系统功能调用的方法。 3) 熟悉动画程序的编写方法。 二、实验内容 1)在CRT上每隔一秒连续显示字符0-9。 编程提示 为了使输出的字符之间有空格,在每一个循环中输出一个0-9的字符和一个空格。为了输出0-9,置寄存器BL初值为0,每循环一次使其增量。为了保证输出是十进制,增量后用DAA调整指令。由于输出为一位十进制数,用AND 0FH 指令屏蔽高4位。 2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。 3)编制在屏幕上画线的子程序,调用该子程序画一矩形。 4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底部。 5)创建一磁盘文件,保存从键盘输入的字符串。 6)编写程序用设置系统时间,首先从键盘以十进制数形式输入时间,然后修改系统时间,并重新以十进制形式显示时间。 7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。 8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。 三、源程序 EXAM5-1 STACK SEGMENT STACK DB 1024 DUP(0)

STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK START:MOV BL,0 LP:MOV DL,20H MOV AH, 2 INT 21H MOV AL,BL ADD AL, 0 DAA AND AL,0FH MOV BL,AL PUSH BX OR AL,30H MOV DL,AL MOV AH, 2 INT 21H MOV BX,3E8H LP2:MOV CX,176H ;延时1ms LP1:PUSHF POPF LOOP LP1 DEC BX JNZ LP2 POP BX INC BL JMP LP CODE ENDS END START 执行程序EXAM5-1·EXE,屏幕上依次循环显示一个数字一个空格: 0 1 2 3 4 5 6 7 8 9 …… EXAM5-2 STACK SEGMENT STACK DB 1024 DUP(0) STACK ENDS DA TA SEGMENT BUFF DB 6,7 DUP(?),‘$’ DA TA ENDS INPUT MACRO BUFE MOV DX,OFFSET BUFE MOV AH,0AH INT 21H ENDM

实验四 输入输出流程序设计

C++面向对象程序设计课程实验报告 课程名称C++面向对象程序设计班级实验日期2014.5.16-2012 .5.23 姓名学号实验成绩实验名称实验四输入输出流程序设计 实验目的及要求1.理解输入输出流的基本概念,明确流是一个类 2.了解输入输出流类库基本结构和主要类,掌握主要层次,其中重 点理解fstream,iostream和iomanip 3.理解流缓冲区类的派生关系以及设备缓冲、文件缓冲和流缓冲 4.熟悉格式化的输入和输出,记住主要的常用的操作符,以及各种 应用(对齐) 掌握文件的输入和输出,区别C语言中的文件写入、打开等操作,会对一个文件进行I/O操作 实验环境硬件平台:普通的PC机 软件平台:Windows 操作系统编程环境:VisualC++ 6.0 实验内容1.文件数据的读取。编制一程序来显示并保存[2,1000]内的所有素数。显示、保存素数的格式为:每行10个素数,每一个素数占7个字符,右对齐,最后一行不足10个素数时按一行输出 2.编写一个单向链表的类模板,分别实现增加、删除、查找和打印操作 算法描述及实验步骤1、这个题主要考察了文件中数据的读取,还包括数据格式化输入输出。首先定义一个ofstream类的对象output,在main函数中打开文件后,再分别编写判断素数、每行输出10个数以及使辖域为7的代码,最后关闭文件。 2 这个题是C++与数据结构的结合,实现单向链表内各种功能。首先定义一个类ListNode,然后利用前插入法初始化链表,编写类模板的成员函数,再分别进行增加、删除和查找的操作

调试过程及实验结果 总结1.一旦文件被打开,文件中的文本数据信息的读/写操作与控制台文件信息的输入/输出操作就完全一致 2.定义ifstream、ofstream、fstream流类对象时,应用对象名替代控制台文本信息输入/输出使用的输入流类对象(如cin)和输出流类对象(如cout)

三菱FX系列PLC12位模拟量输入输出模块的特性

1. FX系列的12位模拟量输入/输出模块的公共特性 除FX2N-3A和FXlN–8AV–BD/FX2N–8AV–BD的分辨率是8位, FX2N–8AD是16位以外,其余的模拟量输入输出模块和功能扩展板均为12位。 电压输入时(如0~10V DC,0~5V DC)。模拟量输入电路的输入电阻为20kΩ,电流输入时(如4~20mA)模拟量输入电路的输入电阻为250Ω。 模拟量输出模块在电压输出时的外部负载电阻为2kΩ/~1MΩ,电流输出时小于500Ω。 12位模拟量输入在满量程时(如10V)的数字量转换值为4000。未专门说明时,满量程前总体精度为±1%。 功能扩展板的体积小巧,价格低廉,PLC内可安装一块功能扩展板,后者还可以和价格也很便宜的显示模块安装在一起。 2. 模拟量输入扩展板FX1N–2AD–BD FX1N–2AD–BD有两个12位的输入通道,输入为0~10V DC和4~20mA DC,转换速度。为1个扫描周期,没有隔离,不占用的I/O点,适用于FXlS和FX1N。 3. 模拟量输出扩展板FX1N–1 DA–BD FXlN–1DA–BD有1个12位的输出通道,输出为0~1OV、O~5V DC和 4~20mA DC,转换速度为1个扫描周期,没有隔离;不占用I/O点,适用于FX1S 和FX1N。 艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。 如需进一步了解台达PLC、西门子PLC、施耐德plc、欧姆龙PLC的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城https://www.360docs.net/doc/017298046.html,/

微机原理实验五输入与输出程序设计

实验六输入与输出程序设计 一、实验目的 1.掌握常用DOS中断调用的功能以及在应用程序中的使用方法。 2.学习键盘输入和屏幕输出的基本方法。 3.宏指令、子程序在应用程序中的使用。 4.汇编语言程序设计的调试与完善。 二、设计指标与实验要求 1.设计内容 本实验要求设计完成:①屏幕输出提示(如“Want input(Y/N)?”),若键入N 则结束程序返回操作系统;键入Y则转2步;键入的是其它字母则回①步。②换行后输出提示(如“please input a strings:”),且在该提示后键入一字符串(输入到输入缓冲区)。 ③换行后输出提示(如“your inputting is:”),在该提示后输出由②步输入的字符串。 ④换行后输出提示“Want continue(Y/N)? ”,若键入Y则转②步;键入N则结束程序返回操作系统;其它字母则回第④步。 2.设计要求 ①按屏幕提示要求输入,从屏幕上获得正确结果。 ②把程序中常用的中断调用定义成宏指令(至少定义2个)。 ③字符串回显部分设计成子程序,可以选择用21H中断的2号或9号功能来实现,应 能显示由主程序指定的任一字符串。要注意这两种方法实现的设计过程是不同的。 采用2号功能的,子程序输入参数为“回显字符串地址”和“回显字符数”;采用 9号功能的,子程序输入参数为“回显字符串地址”。 ④屏幕的提示信息显示格式尽量做到兼顾美观。 3.实验步骤 ①.选用合适的程序文本编辑软件编辑源程序,并为文件取以.ASM为扩展名的文件存盘。 ②.用宏汇编软件MASM对源程序文件进行汇编,若有错误,根据提示(行号,错误类型)回源程序文件中修改。 ③.用LINK对由MASM汇编后产生的目标文件做连接,生成可执行文件;若有错误(同

ControlLogix数字量输入输出控制

实验 ControlLogix数字量输入输出控制 一、实验目的 了解RSLinx软件的基本用法 了解RSLogix5000编程的基本方法与逻辑设计 使用ControlLogix进行数字量输入输出控制 二、实验任务 RSLogix5000编程仿真十字路口彩灯控制 三、实验设备和软件 实验设备: 网络控制平台、导线若干、380V电源、PC机 实验软件:RSLinx、RSLogix5000 四、实验步骤 步骤一:连线 本实验中,用导线将位于控制台上的数字输入区的I0插口与点动/自锁按钮区插孔C7,I1与插孔C8连起来,把SB7作为启动按钮,SB8作为停止按钮。数字输入区中的GND-0 (17)端口与24V电源-相连,C7,C8所对应的COM端口(即和其同一列的COM端口)与24V电源+相连。控制台中数字输出区的O0-O5分别用导线和指示灯区的L1-L3,L9-L11这个六个插孔一一对应相连;在指示灯区,从左端数起的三个COM端均应与24V(-)相连;数字输出区的DC-0插孔应与电源24V(+)相连,RTN OUT-0与电源24V(-)相连。 步骤二:RSLinx的设置 1、运行RSLinx,单击菜单栏中的“Communication/Configure Drivers…”,弹出“Configure Driver Types”的对话框(图 2.1)。单击“Available Driver Types”的下拉箭头,选择添加驱动程序,由于PC机和ControlLogix5555是通过以太网连接,所以这里选“Ethernet devices”。

图2.1 选好“Ethernet devices”后,单击“Add New”,就出现如图2.2的对话框,单击OK。 图2.2 2、单击“Add New”按钮,弹出“Add New RSLinx Driver”窗口。输入新驱动的名称,如:AB_ETH-1, AB_ETH1-2等。单击“OK”按钮,弹出如图2.3的窗口。在Station Maping窗口栏中,对应“Station 0”,填入“Host Name”。该PLC模块在内网的地址:192.168.0.211,相应填入,则组态成功。(注意,此时ControlLogix5555必须已加上电源)。

C语言程序设计实验报告

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分: 4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一 C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; printf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序: main( ) {int i=8,j=10,m,n; m=++i;n=j++;

实验一输入输出接口实验

实验一输入、输出接口实验 一、实验要求 1、P1 口做输出口,接八只发光二极管。 2、P3.0,P3.1 作输入口接两个拨动开关 3.要求若P3.0单独闭合,则LED灯从L7-L0循环闪烁,每次亮一个,若P3.1单独闭合,则led灯从L0-L7闪烁,每次亮一个。若P3.0 P3.1同时闭合,则所有灯一起闪烁,闪烁间隔为1S。若P3.0 P3.1全部断开,则所有灯全不亮。 4、将闪烁间隔修改为30MS,观察现象。 二、实验目的 1、学习 I/0 口的使用方法。 2、学习延时子程序的编写和使用。 三、实验设备 1、IPC-610研华工控机一台, 2、伟福LAB2000P教学实验系统。 四、实验电路及连线 五、实验说明 1、P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当 P1口用为输入口时,必须先对它置1。若不先对它置1,读入的数据是不正确的。 2、8051 延时子程序的延时计算问题,对于程序 Delay: MOV R6,#0H MOV R7,#0H DelayLoop: DJNZ R6,DelayLoop DJNZ R7,DelayLoop RET 查指令表可知 MOV,DJNZ 指令均需用两个机器周期,在 6MHz 晶振时,一个机器周期时间长度为12/6MHZ,所以该段程序执行时间为: ((256×2+2)×256+4)×2=263176

六、实验报告 1、解释为什么P1端口作为输入口时,需先对它置1,才能读取正确的外部输入数据? 2、画出完整的实验电路原理图 2、整理实验程序

连线 连接孔 1 连接孔 2 1 P1.0 L0 2 P1.1 L1 3 P1.2 L2 4 P1.3 L3 5 单脉冲输出 T0 实验二 外中断及定时、计数器实验 一、实验目的 1、掌握外部中断的运用方法,本实验中采用边沿触发模式。 2、学习 8051 内部 T0 T1 定时/计数器使用方法。 3、掌握中断处理程序的编程方法。 二、实验内容及要求 1、用单次脉冲申请外中断INTO ,采用边沿触发模式,在外中断处理程序中对输出信号灯LED6(P3.1控 制)进行反转(采用CPL 指令) 2、8031 内部定时计数器 T0,按计数器模式和方式2工作,对 P3.4(T0)引脚进行计数。将其数值按二进制数在 P1 口驱动 LED 灯上(L0,L1,L2,L3)显示出来。 3、用 T1作定时器中断方式计时,实现每一秒钟LED7(L7)(P3.0控制)灯闪烁一次 三、实验设备 1、IPC-610研华工控机一台。 2、伟福LAB2000P 教学实验系统。 四、实验电路及连线 注意: 本实验中,“单次脉冲”同时作为计数脉冲输入T0引脚,同时也引到引脚INTO 申请外部中断,本实验中将要求同时开放外部中断INTO 和T1的定时中断这两个中断。 五、实验说明 1、关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验T0使用的是计数器。T1使用的是定时器。 2.本实验中内部T0起计数器的作用。外部事件计数脉冲由 P3.4 引入定时器 T0。 单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能 检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。 3、定时器有关的寄存器有工作方式寄存器 TMOD 和控制寄存器 TCON 。TMOD 用于设置定时器/计数器 连线 连接孔 1 连接孔 2 1 P3.0 L7

c语言程序设计基本输入输出和简单程序设计

实验3 基本输入输出和简单程序设计 实验目的 1.掌握常用的C语言语句,熟练应用赋值、输入、输出语句。 2.理解C语言程序的顺序结构,掌握顺序结构设计的基本方法。 3.进一步熟悉C程序的编辑、编译、连接和运行以及调试跟踪的过程。 实验内容 1.准备实验环境: (1)启动Visual Studio 201X 或者Codeblocker等C程序开发的IDE (2)如果保留了实验1的工程项目,则可以直接双击工程项目文件夹中的.sln 文件打开它即可。否则,按实验1的做法,创建一个Win32控制台应用程序(即ConsoleApplication)工程,以自己的姓名全拼音为工程名称。可能有些同学已经忘记了,我们再指导一遍: 首先新建项目:

2.理解分析程序,熟悉基本的C程序输入输出。 1)给工程新建一个源程序文件,取名为"你的姓名全拼_3_1.c",并将以下程序编写进该源程序保存: #include int main() { int a=25; double d = 4321.123456789012345; char c = 'T'; printf("你的姓名_3_1:理解输出!\n");/* 改姓名哦*/ printf("a = :%d;%5d;%-5d;%+05d!\n",a,a,a,-a); printf("a = :%5x;%o!\n",a,a); printf("d = :%f;%15f;%8.3f;%20.15f;%.2f!\n",d,d,d,d,d); printf("c = :%c;%5c;%-5c!\n",c,c,c); } 运行该程序,将运行的结果截图放在下面: 程序运行的结果图:

汇编语言——输入输出程序设计实验

实验四输入/输出实验(2学时综合性实验) 1.实验目的 (1) 掌握输入输出程序设计的概念和方法。 (2) 了解PC机外围芯片8259的功能。 (3)学习如何在PC机上编写具有输入输出功能的程序,包括8259芯片的使用方法。 2.实验说明 本实验要求自行编写一个显示器输出处理程序,它可以完成内存中保存的一串字符在屏幕显示, 因此本实验既属于输入输出实验,也属于中断实验。 3.实验内容 编写一个显示器输出处理中断程序(名为NEW09),实现DOS 21H中断的9号功能,在屏幕上输出内存缓冲区BUF中以”$”结束的一串字符串。要求:缓冲区的偏移地址采用DX寄存器进行传递。 4.实验准备 (1) 预习输入输出程序设计的特点和方法。 (2) 仔细阅读参考程序,弄清外围芯片接口初始化的意义和方法。 5.实验步骤 (1) 建立源文件,并通过汇编和连接,产生可执行文件。 (2) 运行程序,观察常规字符键及功能键按下时程序的反应, DATAS SEGMENT buf db'li hongbin','$';此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS

main proc far START: mov al,68h mov ah,35h int 21h push es push bx push ds mov bx,offset buf mov dx,offset new09 mov ax,seg new09 mov ds,ax MOV AX,DATAS MOV DS,AX pop ds pop bx pop es sti mov al,68h mov ah,25h int 21h main endp

C语言程序设计重点必考实验题

C语言程序设计实验36题 邓作杰编 简单程序设计与基本数据处理 1 显示短句 在屏幕上显示一个短句“Programming in C is fun!” 2 求两个数的和与差 输入整数a 和b,计算并输出a、b 的和与差。 3 求平方根 输入1 个实数x,计算并输出其平方根(保留1 位小数) 4 华氏温度转换为摄氏温度 输入华氏温度f,计算并输出相应的摄氏温度c(保留2 位小数)。c = 5/9(f-32). 5 大写字母转换成小写字母 输入一个大写英文字母,输出相应的小写字母。 6编写摄氏温度、华氏温度转换程序。 从键盘输入一个摄氏温度,屏幕就显示对应的华氏温度,输出取两位小数。转换公式:F=(C+32)×9/5 。

分支结构 7 判断数的符号 输入整数x,若x 大于0,y=1;若x 等于0,y=0;否则,y=-1,最后输出y。 8 计算个人所得税 输入一个职工的月薪salary,输出应交的个人所得税tax(保留2 位小数)。 tax = rate * (salary-850) 当salary <= 850 时,rate = 0; 当850 < salary <= 1350 时,rate = 5; 当1350 < salary <= 2850 时,rate = 10; 当2850 < salary <= 5850 时,rate = 15; 当5850 < salary 时,rate = 20; 9、试编程判断输入的正整数是否既是5又是7的正倍数。若是,则输出yes;否则输出no。

循环结构 10.是求1 -100之间的所有除5余2的数之和。 11.所谓回文数是从左往右和从右往左读起来都一样的数字,如121是一个回文数,计算从1881开始到4000年为止,共有多少个年号是回文年号? 12.是求1-5000之间的能被7整除的前若干个偶数之和,当和大于600时程序退出,请将运行结果。 13.编程序求出1~100所有整数的平方和并输出结果。 14.一个数如果刚好与小于它的所有因子之和相等,则称该数为一个“完数”,如:6=1+2+3,则6就是一个完数。求出800以内的所有完数之和。 15.所谓回文数是从左至右与从右至左读起来都是一样的数字,如:121是一个回文数。编写程序,求出300—800的范围内所有回文数的和。 16.有36个学生一起买小吃,共花钱120元,其中每个大学生花4元,每个中学生花2元,每个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生为0的解)? 17. 求1至100之间的奇数和 18.输出2至1000之间在的质数。 19.输入一个3位的正整数,输出其各位上的数字。 20.对15个数进行排序,按从小到大的顺序输出。 21.一个数除了能被1和它本身整除之外,不能被其它整数整除,该数称为素数。求出1000-5000之间素数的和。 22.求[600,900]之间素数的个数。

二、数字量输入输出

第二部分数字量I/O 目录 1 DO、DI硬件原理 2 2.1 CPC板的电路图 3 2.1.1 所用I\O口 4 2.1.2 485通讯口7 2.1.3 显示电路的设计8 2.1.4 晶振模块8 2.1.5 上层板的原件清单9 2.2 输入板I/O原理图 10 2.2.1 电路原理11 2.2.2 输入底板的原件清单12 2.3 输出板I/O电路图 13 2.3.1 反向驱动器ULN2003 芯片 14 2.3.2 输出底板的原件清单14 2.4 通讯部分15 3 DI、DO软件部分设计 16 3.1 通讯方式16 3.1.1 Modbus 协议 16 3.1.2 CRC校验17 3.1.3 莫尼康RTU 17 3.1.4 看门狗程序19 3.2 计算机界面的设计20 3.3 输入板的程序设计21 3.4 输出板的程序设计24 4 DI、DO的应用26 4.1 数字输入板的应用26 4.2 数字输出板的应用32 5. 数字量输入程序清单37 6.数字量输出程序清单 49

硬件部分由程序下载口,状态显示,复位,信息通信,I/O口,AD,DA等几部分组成,软件部分采用MODBUS通信协议,CRC校验,看门狗程序,数据传送等部分组成。 1.DO、DI硬件原理 输入板电路分为上层板电路和底板电路,其中上层板电路以Atmega128为核心,主要实现显示状态、控制端口、数据处理和通讯的功能。设计如下:

1.1 CPU 板硬件原理图 图2-2 输入输出上层板电路 1 234567816 1514131211109S1 5.1K Rs 1 5.1K Rs 25.1K Rs 35.1K Rs 45.1K Rs 55.1K Rs 65.1K Rs 75.1K Rs 8P A 3 P A 4P A 5P A 6P A 7P D 5P D 6P D 7VCC

输入、输出流程序设计实验

实验五输入、输出流程序设计实验 【实验目的】 1.理解输入/输出流相关概念 2.掌握输入/输出流的常用操作 3.理解文件概念 4.掌握文件流的常用操作 【实验内容】 2.打开指定的一个文本文件,在每一行前面加上行号。(1.2题二选一)程序如下: #include #include #define BUFF_SIZE 50 int main() { char file[256],buff[BUFF_SIZE+1]; FILE* fin = NULL; int bL = 1; int iLN = 0; // line number printf("请输入需要处理的文件名路径:\n"); scanf("%s",file); if (NULL == (fin = fopen(file,"r"))) { printf("错误. \n"); return -1; } while (NULL != fgets(buff,BUFF_SIZE,fin)) {

if (bL) printf("%3d:%s",++iLN,buff); else printf("%s",buff); if (buff[strlen(buff)-1] == '\n') bL = 1; else bL = 0; } fclose(fin); } 运行结果: 3.编写程序,从键盘输入5个学生的学生信息,包括学号、姓名、3门课程的成绩,计算3门课的平均成绩,将全部信息以二进制方式保存到文件中。 程序如下: #include #include

ControlLogix数字量输入输出控制

ControlLogix数字量输入输出控制

实验 ControlLogix数字量输入输出控制 一、实验目的 了解RSLinx软件的基本用法 了解RSLogix5000编程的基本方法与逻辑设计 使用ControlLogix进行数字量输入输出控制二、实验任务 RSLogix5000编程仿真十字路口彩灯控制三、实验设备和软件 实验设备: 网络控制平台、导线若干、380V 电源、PC机 实验软件:RSLinx、RSLogix5000 四、实验步骤 步骤一:连线 本实验中,用导线将位于控制台上的数字输入区的I0插口与点动/自锁按钮区插孔C7,I1与插孔C8连起来,把SB7作为启动按钮,SB8作为停止按钮。数字输入区中的GND-0 (17)端口与24V电源-相连,C7,C8所对应的COM端口(即和其同一列的COM端口)与24V电源+相连。控制台中数字输出区的O0-O5分别用导线和指示灯区的L1-L3,L9-L11这个六个插孔一一对应相连;在指示灯区,从左端数起的三个COM端均应与24V(-)相连;数字输出区的DC-0插孔应与电源24V(+)相连,RTN OUT-0与电源24V(-)相连。 步骤二:RSLinx的设置 1、运行RSLinx,单击菜单栏中的“Communication/Configure Drivers…”,弹

出“Configure Driver Types”的对话框(图2.1)。单击“Available Driver Types”的下拉箭头,选择添加驱动程序,由于PC机和ControlLogix5555是通过以太网连接,所以这里选“Ethernet devices”。 图2.1 选好“Ethernet devices”后,单击“Add New”, 就出现如图2.2的对话框,单击OK。

试验项目试验一最简单的C程序设计

试验项目试验一最简单的C程序设计

实验项目:实验一最简单的C程序设计 (所属课程:《C语言程序设计》学时:2) 一、实验目的 1.掌握:使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。 2.初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。 3.掌握顺序结构程序设计的基本思路。 二、实验条件 Pc和vc++编程环境 三、实验内容 1.熟悉编程环境。 2.输入并运行一个C程序 3.掌握各种格式转换符的正确使用方法。 4.编程序:设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。要求用scanf函数从键盘上输入数据(半径和高),输出各计算结果,输出时要求有文字说明,取小数点后2位数字。5.编程序:用getchar函数输入两个字符给C1、C2,然后分别用putchar函数和printf函数输出这两个字符。 四、实验步骤 编写程序,输入数据,观察结果。

五、实验结果 观察结果和预期是否一致。 实验项目:实验二选择结构程序设计 (所属课程:《C语言程序设计》学时:2) 一、实验目的 1.了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。 2.学会正确使用逻辑运算符和逻辑表示式。 3.熟练掌握if语句和switch语句 二、实验条件 Pc和vc++编程环境 三、实验内容

1.有一函数: ?????≥-<≤-<=)10x (113x ) 10x 1(12x )1x (x y 用scanf 函数输入x 的值,求y 值。 运行程序,输入x 的值(分别为x<1、1≤x <10、x ≥10三种情况),检查输出的y 值是否正确。 2.给出一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。90分以上为A ,81~89分为B ,71~79分为C ,61~69分为D ,60分以下为E 。 3.输入4个整数,要求按由小到大顺序输出。 四、实验步骤 编写程序,输入数据,观察结果。 五、实验结果 观察结果和预期是否一致。 实验项目:实验三 循环结构程序设计

开关量输入实验

4.2 开关量输入实验 4.2.1 实验目的 掌握iCAN4050输入、输出控制原理及应用。 4.2.2 实验设备及器件 PC 机一台 iCAN实验教学开发平台一台 4.2.3 实验内容 能够利用 iCAN4050 模块检测开关量输入信号。 4.2.4 实验要求 要求能够掌握 iCAN4050 模块输入输出基本原理。 4.2.5 实验步骤 系统接线连接 上电运行 输入检测 实验总结 4.2.6 实验预习要求 阅读iCAN4050功能模块简介、数据手册 阅读iCAN实验教材中相关实验 掌握iCAN4050功能模块输入、输出控制原理 4.2.7 数字量输入检测 1.输入检测连接线 该实验主要利用iCAN4050模块检测1路开关量输入信号,其中开关(SW0)分布于PCB上,PCB 板为内嵌在iCAN实验平台表面上,PCB板全局图如图 4.9 所示:

图4.9 PCB 板正面俯视图 在 iCAN 实验平台上我们已经将 iCAN4050 输入控制信号线与 PCB 板上的SW0 连接,用户也可以尝试检测 SW1—SW7 的开关输入信号。(注意:iCAN4050 模块的 COM 端与 PCB 板上 GND 相连接) 表4.3 信号连接线标记号定义 提示:iCAN 实验平台连接线已经标准化,无需用户自行连接;若由于其他外界因素导致实验平台的连接线脱离或段开,用户可以根据以上表格提供的信息连线;若用户需要根据实际需要在此实验平台上开发可以根据端子排端口号定义重新连线,此时不一定利用原来标准化的模块来控制对象。 2.系统连线正面俯视图 如图 4.10 所示为 iCAN4050 检测开关量输入的简单框图,该图是为 iCAN 实验教学平台的正面俯视图,绿色线为开关输出信号与模块之间的控制线,红色为电源线,蓝色为 CAN 通信线。 图 4.10 系统连线框图

PLC数字量输入电路形式

PLC 数字量输入模块电路的形式 摘要:本文主要分析了数字量输入时PLC内部电路常见的几种形式,并结合传感器常见的NPN和PNP输出,给出了和不同的PLC电路形式连接时的接线方法。 关键词:PLC 源输入漏输入NPN输出PNP输出 1 引言 PLC 控制系统的设计中,虽然接线工作占的比重较小,大部分工作还是PLC 的编程设计工作,但它是编程设计的基础,只要接线正确后,才能顺利地进行编程设计工作。而保证接线工作的正确性,就必须对PLC 内部的输入输出电路有一个比较清楚的了解。 我们知道,PLC 数字输入模块为了防止外界线路产生的干扰(如尖峰电压,干扰噪声等)引起PLC 的非正常工作甚至是元器件的损坏,一般在PLC 的输入侧都采用光耦,来切断PLC 内部线路和外部线路电气上的联系,保证PLC 的正常工作。并且在输入线路中都设有RC 滤波电路,以防止由于输入点抖动或外部干扰脉冲引起的错误信号。 2 输入电路的形式 2.1 分类 PLC 的输入电路,按外接电源的类型分,可以分为直流输入电路和交流输入电路;按PLC 输入模块公共端(COM 端)电流的流向分,可分为源输入电路和漏输入电路;按光耦发光二极管公共端的连接方式可分为共阳极和共阴极输入电路。如下图1所示: 图1 PLC输入电路的分类 2.2 按外接电源的类型分类 2.2.1 直流输入电路

图2 为直流输入电路的一种形式(只画出一路输入电路)。当图1 中外部线路的开关闭合时,PLC 内部光耦的发光二极管点亮,光敏三极管饱和导通,该导通信号再传送给处理器,从而CPU 认为该路有信号输入;外界开关断开时,光耦中的发光二极管熄灭,光敏三极管截止,CPU 认为该路没有信号。 图2 直流输入电路 2.2.2 交流输入电路 交流输入电路如图3 所示,可以看出,与直流输入电路的区别主 要就是增加了一个整流的环节。 交流输入的输入电压一般为AC120V 或230V。交流电经过电阻R的限流和电容C的隔离(去除电源中的直流成分),再经过桥式整流为直流电,其后工作原理和直流输入电路一样,不再缀述。

相关文档
最新文档