- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                7.1  单片机I/O扩展基础知识 7.1.4  单片机I/O控制方式 补充内容  单片机简单I/O扩展 7.2  可编程并行接口芯片8255 表  8255C口联络信号分配表 例:设8255控制字寄存器的地址为00F3H,试编程使A口为方式0 输出,B口为方式0输入,PC4~PC7为输出,PC0~PC3为输入。     MOV   DPTR,  #00F3H     MOV   A,     #83H     MOVX  @DPTR, A 例:设8255控制字寄存器地址为00F3H,要求将PC1置1,PC3清0。     MOV   DPTR,  #00F3H     MOV   A,     #03H     MOVX  @DPTR, A     MOV   A,     #06H     MOVX  @DPTR, A 数据线:8255的8根数据线D0~D7直接和P0口一一对应相连。  控制线:8255的复位线RESET与单片机的复位端相连,在图中未        画出。 地址线:8255的/CS和A1、A0分别由P0.7和P0.1、P0.0经地址锁         存器74LS373后提供。 8255的I/O口线:     可以根据用户需要连接外部设备。     图中,A口作输出,接8个发光二极管LED;B口作输入, 接8个按键开关;C口未用。     2、8255的可编址端口的地址确定     假设没有连接的地址线状态为0  根据上述接法,8255的A、B、C以及控制口的地址分别为 0000H、0001H、0002H和0003H。     3、8255的编程应用    例:如果在8255的B口接有8个按键,A口接有8个发光二极 管,即类似于图中按键和二极管的连接,则下面的程序能够完 成按下某一按键,相应的发光二极管发光的功能。           ORG    0000H 	   LJMP   MAIN 	   ORG    0100H MAIN: MOV  DPTR,  #0003H   	;指向8255的控制口      MOV   A,    #83H          MOVX  @DPTR, A;向控制口写控制字,A口输出,B口输入  LOOP:MOV   DPTR, #0001H  ;指向8255的B口 		MOVX  A,     @DPTR   ;检测按键,将按键状态读入A     					累加器       MOV 	DPTR, #0000H  ;指向8255的A口       MOVX 	@DPTR, A       ;驱动LED发光       LJMP	 LOOP       END   #includereg52.h #includeabsacc.h #define COM8255  XBYTE[0x0003] #define PA8255   XBYTE[0x0000] #define PB8255   XBYTE[0x0001] int  aa;  void   main() {		     COM8255=0X83; 	for( ;  ;  ) 	 {	  aa= PB8255 ; 		   PA8255 =aa; 	 } } 7.3  键盘接口技术 补充内容:独立式键盘接口技术  uchar key( ) {   	  uchar  keys,keyzhi; 	  keys= keychuli( );  	        if(keys!=0)    /*判断按键,如果有键按下*/        {            	 dir( ); 	     	 dir( );     	      	 keys=keychuli( ); 	       	if(keys!=0)     /*再次判断,如果有键按下 */ 		{ 		     	keyzhi=keys; 	              	while(keys!=0)     /*等待键释放 */ 		     	{ 	                  	 dir( );  	                   	keys=keychuli( ); 		     	 } 		 }          }         return keyzhi;   }	 uchar keychuli() { 	uchar  key;   P1=0xff;     /*向P1写1 */   key=P1;     /*读P1数据 */ 	key=~key; 	key=key0xff; 	return key; } JB     20H.2  KEYCC;是KEYC键,转KEYCC执行 JB     20H.3  KEYDD;是KEYD键,
                 原创力文档
原创力文档 
                        

文档评论(0)