您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 电气安装工程 > 微机原理——继电器控制
微机原理与接口技术实验报告实验名称:继电器控制姓名:学号:专业班级:指导老师:实验日期:一:实验目的1.了解微机控制直流继电器的一般方法。2.进一步熟悉使用8255、8253。二:实验内容实验电路如图25,按虚线连接电路:CLK0接1MHz,GATE0,GATE1,接+5V,OUT0接CLK1,OUT1接PA0,PC0接继电器驱动电路的开关输入端Ik。继电器常开触点串联一个220V灯泡,接交流220V。编程使用8253定时,让继电器周而复始的闭合5秒钟(指示灯灯亮),断开5秒钟(指示灯灯灭)三:硬件电路四:源程序ASM程序ioportequ0d400h-0280hio8255aequioport+280hio8255bequioport+281hio8255cequioport+283hio8255dequioport+288hio8255eequioport+28bhcodesegmentassumecs:codestart:movdx,io8255e;设8255为A口输入,C口输出moval,90hlll:outdx,almoval,01;将PC0置位outdx,alcalldelay;延时5smoval,0;将PC0复位outdx,alcalldelay;延时5sjmplll;转llldelayprocnear;延时子程序pushdxmovdx,io8255c;设8253计数器为方式3moval,36houtdx,almovdx,io8255amovax,10000;写入计数器初值10000outdx,almoval,ahoutdx,almovdx,io8255cmoval,70h;设计数器1为工作方式0outdx,almovdx,io8255bmovax,500;写入计数器初值500outdx,almoval,ahoutdx,alll2:movah,06;是否有键按下movdl,0ffhint21hjneexit;若有则转exitmovdx,io8255dinal,dx;查询8255的PA0是否为高电平andal,01jzll2;若不是则继续popdxret;定时时间到,子程序返回exit:movah,4chint21hdelayendpcodeendsendstartCPP程序/********************//*继电器控制*//********************/#includestdio.h#includeconio.h#includeApiEx.h#pragmacomment(lib,ApiEx.lib)voidm_delay();voidmain(){printf(--------------------EXP12_6_JDQ---------------------\n);printf(1.8253(CLK0)===(1MHz)or(2MHz)\n);printf(2.TPC(+5V)===8253(GATE0,GATE1)\n);printf(3.8253(OUT0)===8253(CLK1)\n);printf(4.8253(OUT1)===8255(PA0)\n);printf(5.I/O(280-287)===8253(CS)\n);printf(6.8255(PC0)===JDQ(Ik)\n);printf(7.I/O(288-28F)===8255(CS)\n);printf(8.(J4)ofJDQ===(JDQ)\n);printf(Pressanykeytobegin!\n\n);getch();if(!Startup())/*打开设备*/{printf(ERROR:OpenDeviceError!\n);return;}printf(pressanykeytoreturn!\n);PortWriteByte(0x28b,0x90);/*设置8255为A口输入C口输出*/while(true){PortWriteByte(0x28b,1);/*PC0置位接通继电器*/m_delay();/*延时5S*/PortWriteByte(0x28b,0);/*PC0复位断开继电器*/m_delay();/*延时5S*/}Cleanup();/*关闭设备*/}voidm_delay(){BYTEdata;PortWriteByte(0x283,0x36);/*设8253计数器0工作方式3*/PortWriteByte(0x280,10000%256);/*先写计数器初值10000的低字节*/PortWriteByte(0x280,10000/256);/*后写计数器初值10000的高字节*/PortWriteByte(0x283,0x70);/*设8253计数器1工作方式2*/PortWriteByte(0x281,500%256);/*写计数器初值*/PortWriteByte(0x281,500/256);do{if(kbhit())exit(0);/*有键按下则退出*/PortReadByte(0x288,&data);}while(!(data&0x01));/*若PA0为1则表明计数时间到,返回*/}五:实验难点与重点在各种自动控制设备中,都要求用一个低压电路控制一个高压的电气电路。这样不仅可以为电子线路和电气电路提供良好的电隔离,还可以保护电子电路和人员安全,而电磁继电器一般有两股电路,低压控制电路和高压工作电路。它利用电磁效应实现电路开、关控制作用,很好地实现了低压控制高压这一功能,因此广泛应用在电子设备、仪器仪表及自动化设备中。六:实验感想通过这次继电器控制实验,我学到了很多。通过对该课题的了解,收集资料,研究其可行性,前期做了很多准备工作,查看了很多资料,但这都是值得的,为后面程序的编写和调试打下了基础,不仅学到了编程,还加深了对电路的了解,比如继电器工作原理、延时定时、外扩芯片等等,虽然都是一些已经学习过的知识,但结合起来还是有一定的难度。我对于单片机实际的应用也加深了理解。
本文标题:微机原理——继电器控制
链接地址:https://www.777doc.com/doc-2108929 .html