资源描述:
《微机原理——继电器控制.pdf》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、精品文档微机原理与接口技术实验报告实验名称:继电器控制姓名:学号:专业班级:指导老师:实验日期:1欢迎下载。精品文档一:实验目的1.了解微机控制直流继电器的一般方法。2.进一步熟悉使用8255、8253。二:实验内容实验电路如图25,按虚线连接电路:CLK0接1MHz,GATE0,GATE1,接+5V,OUT0接CLK1,OUT1接PA0,PC0接继电器驱动电路的开关输入端Ik。继电器常开触点串联一个220V灯泡,接交流220V。编程使用8253定时,让继电器周而复始的闭合5秒钟(指示灯灯亮),断开5秒钟(指示灯灯灭)三:硬件电路四:源
2、程序ASM程序ioportequ0d400h-0280hio8255aequioport+280hio8255bequioport+281hio8255cequioport+283hio8255dequioport+288hio8255eequioport+28bhcodesegment2欢迎下载。精品文档assumecs:codestart:movdx,io8255e;设8255为A口输入,C口输出moval,90hlll:outdx,almoval,01;将PC0置位outdx,alcalldelay;延时5smoval,0;将PC
3、0复位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:mov
4、ah,06;是否有键按下movdl,0ffhint21hjneexit;若有则转exitmovdx,io8255dinal,dx;查询8255的PA0是否为高电平andal,01jzll2;若不是则继续popdxret;定时时间到,子程序返回exit:movah,4chint21hdelayendpcodeendsendstart3欢迎下载。精品文档CPP程序/********************//*继电器控制*//********************/#include#include#in
5、clude"ApiEx.h"#pragmacomment(lib,"ApiEx.lib")voidm_delay();voidmain(){printf("--------------------EXP12_6_JDQ---------------------");printf("1.8253(CLK0)===(1MHz)or(2MHz)");printf("2.TPC(+5V)===8253(GATE0,GATE1)");printf("3.8253(OUT0)===8253(CLK1)");printf("4.825
6、3(OUT1)===8255(PA0)");printf("5.I/O(280-287)===8253(CS)");printf("6.8255(PC0)===JDQ(Ik)");printf("7.I/O(288-28F)===8255(CS)");printf("8.(J4)ofJDQ===(JDQ)");printf("Pressanykeytobegin!");getch();if(!Startup())/*打开设备*/{printf("ERROR:OpenDeviceError!");retur
7、n;}printf("pressanykeytoreturn!");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;4欢迎下载。精品文档PortWriteByte(0
8、x283,0x36);/*设8253计数器0工作方式3*/PortWriteByte(0x280,10000%256);/*先写计数器初值10000的低字节*/PortWriteByte(0x280,100