您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 单片机可编程并行接口芯片8255的应用实验
一:实验目的和要求1、掌握中断系统外部中断源的使用方法。2、掌握延时程序的编程及使用方法。3、掌握Proteus软件与Keil软件的使用方法。4、掌握单片机系统的硬件和软件设计方法。二:设计要求1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与8255接口。2、在8255PA口或PB口的某一口线上产生周期500μS的连续方波,接示波器观察波形。3、在8255PC口的PC0-PC3上接4个按键作输入,PC4-PC7上接4个发光二极管作输出,编程实现发光二极管正确指示按键的状态三:电路原理四:流程框图五:实验结果六:实验总结通过本次试验,掌握了如何在单片机外部扩展I/O口,并且如何在程序中使用这些扩展出来的I/O口,为以后的学习和使用打下了一定的基础,存在的问题是在编写程序时不够熟练,需要多练习七:思考题1、在8255PC口上外接8个发光二极管,利用8255PC口的置位/复位控制字控制其按某种规律变化三:电路原理四:流程框图开始工作方式初始化开定时器定时器初始化查询计数标志位溢出否取反输出口A中内容送DPTR设置C口命令DPTR指向控制位是否开始DPTR指向C口C口内容送累加器DPTR指向控制位交换累加器内容高低位累加器中内容送C开始DPTR指向控制位A中内容送DPTR定义查表执行次数查表数据送C口调用延时子程序查询次数完否否是修改变量值1秒延时程序子程序返回程序清单ORG0000HMOVDPTR,#0003HMOVA,#80HMOVX@DPTR,AMOVDPTR,#0000HMOVA,#0FFHMOVX@DPTR,AMOVIE,#00HMOVTMOD,#20HSETBTR1MOVTL1,#06HMOVTH1,#06HLOOP0:JBCTF1,LOOP1AJMPLOOP0LOOP1:CPLACC.0MOVX@DPTR,AAJMPLOOP0END#includereg52.h#includeabsacc.h#defineucharunsingnedchar#defineuintunsingnedint#defineCOM8255XBYTE[0X0003]#definePA8255XBYTE[0X0000]#definePB8255XBYTE[0X0001]charA;voidmain(){TMOD=0X11;IE=0;TH1=0XFF;TL1=0X06;PA8255=0XFF;TR1=1;A=1;for(;;){do{}while(!TF1);A=!A;if(A==0){PA8255=0XFE;TL1=0X06;TH1=0XFF;TF1=0;}if(A==1){PA8255=0XFF;TL1=0X06;TH1=0XFF;TF1=0;}}}ORG0000HMOVDPTR,#0003HMOVA,#81HMOVX@DPTR,AMOVDPTR,#0002HLOOP:MOVXA,@DPTRSWAPAMOVX@DPTR,ALJMPLOOPEND#includereg52.h#includeabsacc.h#defineucharunsingnedchar#defineuintunsingnedint#defineCOM8255XBYTE[0X0003]#definePA8255XBYTE[0X0000]#definePB8255XBYTE[0X0001]#definePC8255XBYTE[0X0002]voidmain(){COM8255=0X81;PC8255=0XFF;while(1){PC8255=PC8255/16+PC8255%16*16;}}ORG0000HLOOP2:MOVDPTR,#0003HMOVX@DPTR,AMOVR0,#00HMOVR1,#10HLOOP:MOVDPTR,#TABLEMOVA,R0MOVCA,@A+DPTRMOVX@DPTR,ALCALLDELAY1SINCR0DJNZR1,LOOPLJMPLOOP2TABLE:DB00H,01H,02H,03H,04H,05H,06H,07H08H,09H,0AH,0BH,0CH,0DH,0EH,0FHDELAY1S:MOVR7,#0A7HDL1:MOVR6,#0ABHDL0:MOVR5,#10HDJNZR5,$DJNZR6,DL0DJNZR7,DL1NOPRETEND#includereg52.h#includeabsacc.h#includeintrins.h#defineucharunsignedchar#definePROTECTXBYTE[0X0003]#definePA8255XBYTE[0X0000]#definePB8255XBYTE[0X0001]#definePC8255XBYTE[0X0002]voiddelay1s();main(){ucharn=16;ucharh=0xfe;PROTECT=0x80;while(1){PC8255=h;delay1s();h=_crol_(h,1);}}voiddelay1s(void){unsignedchara,b,c;for(c=167;c0;c--)for(b=171;b0;b--)for(a=16;a0;a--);_nop_();}五:实验结果
本文标题:单片机可编程并行接口芯片8255的应用实验
链接地址:https://www.777doc.com/doc-5400755 .html