网站大量收购独家精品文档,联系QQ:2885784924

第二章单片机结构zxl资料.ppt

  1. 1、本文档共141页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章单片机结构zxl资料

串口方式 波特率 fosc=6 MHz fosc=12 MHz fosc=11.0592 MHz SMOD TMOD TH1 SMOD TMOD TH1 SMOD TMOD TH1 方式0 1MHz × × × 方式2 375K 1 × × 187.5K 1 × × 0 × × 方式1 或 方式3 62.5K 1 20 FFH 19.2K 1 20 FDH 9.6K 0 20 FDH 4.8K 1 20 F3H 0 20 FAH 2.4K 1 20 F3H 0 20 F3H 0 20 F4H 1.2K 1 20 E6H 0 20 E6H 0 20 E8H 600 1 20 CCH 0 20 CCH 0 20 D0H 300 0 20 CCH 0 20 98H 0 20 A0H 137.5 1 20 1DH 0 20 1DH 0 20 2EH 110 0 20 72H 0 10 FEEB 0 10 FEFF 执行串口发送指令SBUF=a;通过TXD口发送串行数据,发送结束后CPU自动产生发送结束标志(TI=1);此时若串行中断使能(ES=1,EA=1) ,则程序立即停止当前程序,跳转置中断号为4的串行口中断入口地址(0x0023),执行中断服务程序void UART_ISR(void) interrupt 4 ,CPU不具有自动清TI功能; 同样,若串口在RXD引脚接收到数据,硬件自动产生接收结束标志(RI=1),若此时若串行中断使能(ES=1,EA=1),则程序立即停止当前程序,跳转置中断号为4的串行口中断入口地址(0x0023),执行中断服务程序void UART_ISR(void) interrupt 4 ,CPU不具有自动清RI功能,可通过b=SBUF;指令取出暂存在数据缓冲区内的数据。 为什么串口中断不具有硬件自动清中断标志功能? 因为接收与发送结束都能进入同一中断,因此在不具有自动清标志功能,需加判断标志语句。 2-6-4、8051串行口的中断控制机制 串口中断使能:ES、EA 串行发送与接收结束会进入同一中断服务程序 void UART_ISR(void) interrupt 4 { ; } 因此,若采用中断方式,在中断服务程序中必须先判别中断是发送还是接收中断,即判断TI和RI哪一个是1,以便进一步处理。(SBUF=a;a=SBUF;) 2-6-4、8051串行口的中断控制机制 串口初始化编程 数据格式设置 SCON 波特率设置 TMOD TH1、TL1 PCON TR1 中断使能ES、EA 串口发送与接收编程 SBUF RI、TI 1、串口工作方式 2、波特率设置 (1) 定时器模式设置 (2) 定时器初值 (3) 中断设置 (4) 波特率倍增 (5) 启动定时器 3、使能串口中断 4、发送数据或等待接收 2-6-5、串行口通信编程 点对点通信 单片机 – 单片机 单片机 – PC机或其他设备 多机通信 单片机构成的多机系统常采用总线型主从式结构。所谓主从式,即在数个单片机中,有一个是主机,其余的是从机,从机要服从主机的调度、支配。 8051的串口通信方式 例:要求编程实现在每次按键时,将本次的按键代码通过串口发送出去,波特率9600bps。 分析: 1、键盘扫描使用kbscan( )函数完成; 2、每次按键只需发送一个字节,可以考虑使用扫描方式进行发送,简化编程。 #include reg51.h unsigned char kbscan( ); void main() { unsigned char key; /*串口功能初始化*/ SCON=0x50; PCON=0x00; TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; while(1) { /*按键扫描和串口发送*/ key = kbscan(); if(key != 0x00) { SBUF = key; while(TI==0); TI = 0; } } } 例:要求设计A、B两种电子器件的电气参数测量系统,并可根据计算机的指令要求分别将A器件或者B器件的测量结果通过串口发送给计算机。 分析:(仅讨论数据发送功能的实现) 1、计算机通过发送不同的指令(即特定的数据)要求测量系统有选择地发送测量结果; 2、不妨定义: 计算机发送0x01,则上传A器件的测量结果; 计算机发送0x10,则上传B器件的测量结果; 3、不考虑握手机制、校验机制以简化编程; 并且测量系统采用全局变量数组存储测量结果 #include reg51.h unsigned char Data_A[20]; unsign

文档评论(0)

wyjy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档