工控机讲座.pptVIP

  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文档。上传文档
查看更多
工控机讲座.ppt

1、设置波特率因子 2、设定数据传输格式 3、设置modem控制寄存器 4、设置中断允许寄存器 例1:使用9600波特率发送数据,发送数据格式为8个数据位、1个停止位,无效验 int transmit(int Base,char * pBuffer,int iNumber) { int counter; int time_counter; outportb(Base+3,0x80); /*设置LCR最高位为1*/ outport (Base+0 0x0c);/*设置波特率为9600*/ outportb(Base+3,0x03);/*设置数据格式 8 个数字位1 个停止位无校验*/ /*发送数据*/ for(counter=0;counteriNumber;counter++) { time_counter=0; outportb(Base+0,pBuffer[counter]); while(((inportb(Base+5)0x20)==0) if((time_counter++)1000) return –1; /*发送失败*/ } return 0; /*发送成功*/ } 例2:使用9600波特率接收数据,发送数据格式为8个数据位、1个停止位,无效验 int receive(int Base,char * pBuffer,int iNumber) { int counter; int time_counter=0; outportb(Base+3,0x80); outport (Base+0,0x0c); /*设置波特率为9600*/ /*设置数据格式 8 个数字位1 个停止位无校验*/ outportb(Base+3, 0x03); /*接收数据*/ for(counter=0;counteriNumber;counter++) { while(((inportb(Base+5) 0x01)= =0); /*等待数据到*/ pBuffer[counter]=inportb(Base+0); } return 0; /*接收成功*/ } 例3:使用中断接收数据。占用中断10 使用第1 号串口接收数 据,接收到的数据存入pBuffer 缓冲区并由iCounter 记录接收的 数据个数。波特率为9600 ,接收数据格式为8 个数字位1 个停止位,无校验。 #include stdio.h #include dos.h #define BASE1 0x1A0 void interrupt ( *oldhandler10)(void); unsigned char pBuffer [512]; /*接收缓冲区为512*/ int iCounter=0; void interrupt handler10_1(void) /*中断服务子程序*/ { enable( ); /*开中断*/ iCounter++; /*接收到的数据个数*/ pBuffer[iCounter]=inportb(BASE1+0); outportb(0xa0,0x20); outportb(0x20,0x20);} void main(void) /*主程序*/ { unsigned char Mask; oldhandler10 = getvect(0x72); disable( ); /*关中断*/ if(inport(0x1BF)0x01)= =0) setvect(0x72,handler10_1); /*中断向量指向中断服务程序*/ else setvect(0x72,handler10_2); Mask=inportb(0x21); /*打开主片的中断*/ Mask=0xfb; outportb(0x21,Mask); Mask=inportb(0xa1); /*打开从片的中断*/ Mask=0xf7; outportb(0xa1,Mask); outportb(BASE1+3,0x80); outport(BASE1+0,0x0c); /*设置波特率为9600*/ outportb(BASE1+3,0x03); outportb(BASE1+1,0x01); /设置串口的中断源*/ enable( ); /*开中断*/ } 四、USB通用串行总线标准 Universal Serial Bus 1、特点: 1)使用方便 使用USB接口可以连接多个不同的设备,支持热插拔,为USB设计的驱动程序和应用软件可以自动启动,无需用户干预。 USB设备也不涉及IRQ、DMA、地址冲突等问题,它单独使用自己的保留中断,不会同其它设

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档