单片机原理及接口技术 C51编程 教学课件 作者 张毅刚 第9章 扩展输入输出.pptVIP

单片机原理及接口技术 C51编程 教学课件 作者 张毅刚 第9章 扩展输入输出.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
{ COM 8255=0x95; /*工作方式选择控制字写入82C55的控制寄存器*/ …… } 2.PC口按位置位/复位控制字 82C55的另一个控制字为PC口按位置位/复位控制字。即PC口8位中的任何一位,可用一个写入82C55控制口的置位/复位控制字来对PC口按位置“1”或清“0”。该功能主要用于位控。PC口按位置位/复位控制字的格式如图9-4所示。 【例9-2】 AT89S51单片机向82C55的控制字寄存器写入工作方式控制字07H,则PC3置1;08H写入控制口,则PC4 (1)具有两个8位端口(PA、PB)和两个4位端口(PC的上半部分和下半部分); (2)任何端口都可以设定为输入或输出,各端口的输入、输出共有16种组合。 PA口、PB口和PC口均可设定为方式0,并可根据需要,向控制寄存器写入工作方式控制字,规定各端口为输入或输出方式。 void init8255(void) { COM8255=0xb4; /*工作方式选择控制字写入控制寄存器*/ …… } 3.方式2 只有PA口有方式2。图9-9为工作示意图。方式2是方式1输入和输出组合。PA7~PA0为双向I/O总线。当作为输入口使用,PA7~PA0受STBA 和IBFA控制;当作输出端口使用,PA7~PA0受OBFA*、ACKA* 控制。 void init8255(void) { COM8255=0x85; /*工作方式选择控制字写入控制寄存器*/ } void main(void) { init8255(void) for(;;) { COM8255=0x0b; /*PC5脚为高电平*/ delay_1000us ( ); /*高电平持续1000微秒*/ COM8255=0x0a; /*PC5脚为低电平*/ delay_1000us ( ) ; /*低电平持续1000微秒*/ } } 当AT89S51单片机串行口工作在方式0的发送状态时,串行数据由P3.0(RXD)送出,移位时钟由P3.1(TXD)送出。在移位时钟的作用下,串行口发送缓冲器的数据一位一位地从P3.0移入74LS164中。 需要指出的是,由于74LS164无并行输出控制端,因而在串行输入过程中,其输出端的状态会不断变化,故在某些应用场合,在74LS164的输出端应加接输出三态门控制,以便保证串行输入结束后再输出数据。 【例9-11】下面是将内部RAM缓冲区的8个字节的内容经串行口由74LS164并行输出,参考程序如下。 #include reg51.h typedef unsigned char BYTE; BYTE i; /*i为右边的74LS164的输出*/ BYTE j; /*j为左边的74LS164的输出*/ BYTE data[8]={0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 } /*主程序*/ void main(void) { SCON=0x00; /*设置串行口方式0*/ { for(i=0; i=8; i++) /*输出8个字节数据*/ { for(j=0; j=8; j++); SBUF=data[j] while(TI==0);TI=0; SBUF= data[i] while(TI==0);TI=0; } } while(1); } test_flag=1; /*奇偶标志初始值为1,表示读的是奇数字节*/ { if(test_flag==1) { P1_0=0; /*并行置入2字节数据*/ P1_0=1;} /*允许串行移位读入*/ rx_data[i]= receive( ); /*接收1字节数据*/ test_flag=~test_flag; /*改写读入字节的奇偶性,以决定是否重新并行置入*/ } } 9.5 用I/O口控制的声音报警接口 当单片机测控系统发生故障或处于某种紧急状态时,单片机系统应能发出提醒人们警觉的声音报警。使用单片机系统的I/O口很容易实现该功能。 9.5.1 扬声器报警接口 扬声器报警电路的设计只需购买市售的扬声器,然后使用AT89S51的一根I/O口线通过驱动器驱动扬声器发声,可根据扬声器的功率来决定是否使用驱动器。本例采用了TTL电路74LS06芯片作为驱动器,如图9-14所示。 { P1_0=1; if(P1_0==0) /*判开关是否闭合*/ { P1_7=0; delay( ); P1_7=1; delay( ); P1_7=0; delay( ); delay( ); P1_7=1; delay( ); de

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档