资源描述:
《实验6(可编程并行接口芯片8255的应用实验).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、实验目的和要求1、掌握单片机与可编程并行接口芯片8255的接口设计方法。2、掌握Proteus软件与Keil软件的使用方法。3、熟悉可编程并行接口芯片8255初始化程序的设计方法。二、实验内容或原理1、在可编程并行接口芯片8255的PA口或PB口的某一口线上产生连续周期性矩形波。2、在可编程并行接口芯片8255的PC口的PC0-PC3上接4个按键作输入,PC4-PC7上接4个发光二极管作输出,编程实现发光二极管正确指示按键的状态。三、设计要求1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与8255接口。2、在8255PA口或PB口
2、的某一口线上产生周期为500μS的连续方波,接示波器观察波形。3、在8255PC口的PC0-PC3上接4个按键作输入,PC4-PC7上接4个发光二极管作输出,编程实现发光二极管正确指示按键的状态四、实验报告要求1、实验目的和要求。2、设计要求。3、电路原理图。4、实验程序流程框图和程序清单。5、实验结果(波形图)。6、实验总结。7、思考题。五、思考题1、在8255PC口上外接8个发光二极管,利用8255PC口的置位/复位控制字控制其按某种规律变化。500us方波:ORG0000HMAIN:MOVIE,#00HMOVTMOD,#02HMOVTH0,#06HMOVTL0,#06
3、HMOVDPTR,#8003HMOVA,#80HMOVX@DPTR,ASETBTR0LOOP:JBCTF0,LOOP1AJMPLOOPLOOP1:MOVDPTR,#8000HCPLACC.0MOVX@DPTR,AAJMPLOOPEND#include#include#defineCOM8255XBYTE[0x0003]voiddely(){TR0=1;while(!TF0);TF0=0;}voidmain(){TMOD=0x02;TH0=0x06;TL0=0x06;EA=0;for(;;){dely();COM8255=0x80;del
4、y();COM8255=0x90;}}ORG0000HLJMPMAINORG0100HMAIN:MOVDPTR,#0003HMOVA,#81HMOVX@DPTR,AMOVDPTR,#0002HLOOP:MOVXA,@DPTRSWAPAMOVX@DPTR,ASJMPLOOPEND#include#include#defineucharunsignedchar#defineCOM8255XBYTE[0x0003]#definePC8255XBYTE[0x0002]voidmain(){COM8255=0x81;for(;;){unsigne
5、di;i=PC8255;i=i<<4;PC8255=i;}}ORG0000HSJMPMAINORG0050HMAIN:MOVR0,#01HMOVA,#00HMOVR7,#16LOOP:MOVX@R0,ALCALLDELAYINCADJNZR7,LOOPMOVR7,#16MOVA,#00HSJMPLOOPDELAY:MOVR3,#200MOVTMOD,#00HMOVTH1,#63HMOVTL1,#18HSETBIT1SETBTR1LOOP1:JBCTF1,LOOP2SJMPLOOP1LOOP2:MOVTH1,#63HMOVTL1,#18HDJNZR3,LOOP1RETEND#
6、include#include#defineucharunsignedchar#defineCOM8255XBYTE[0x0003]#definePC8255XBYTE[0x0002]unsignedinti=0;unsignedintj=1;voiddely1s(){unsignedintm,n;for(m=400;m>0;m--)for(n=300;n>0;n--);}voidmain(){while(1){PC8255=0xFF;j=1;while(i!=16){COM8255=i;dely1s();i=i+2;}i=0;whil
7、e(j!=17){COM8255=j;dely1s();j=j+2;}}}