- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
日常中断的例子 中断处理 中断处理过程示意图 中断返回 中断请求的撤除 作业 P204: 6 - 31 什么是串行通信? 串行通信和并行通信 控制寄存器SCON 传输速率的表示方法 1. 与传输速率有关的术语 波特(Baud):每秒1次的信号变化称为1波特。 波特率(Baud Rate):是每秒钟事件发生的数目 或信号变化的次数。 比特率(Bit Rate):也称为位速率,即每秒钟传 输二进制数的位数。 例如事件按4位编码,如果数据传输的波特率是 2400,则比特率就是9600。 ⑵方式0 接收 REN置1,串口将数据从RXD输入(波特率fosc/12),TXD输出同步移位信号,发送完RI置1 8051 RXD TXD 74LS165 3 4 5 6 14 11 12 13 数据输入 移位脉冲 D7 D0 上页 下页 回目录 图5-12 方式0扩展I/O口硬件逻辑图 图5-11 方式0发送时序 上页 下页 回目录 ALE WRITE TO SBUF SEND D0 D1 D2 D3 D4 D5 D6 D7 SHIFT RXD T1 S6P2 TXD S3P1 S5P1 M1M0=11, =0, GATE=0, 同时设 T1工作于方式0 因此: TMOD=03H M0 M1 C/T GATE M0 M1 C/T GATE 位符号 1 1 0 0 0 0 0 0 D0 D1 D2 D3 D4 D5 D6 D7 位序号 (3)程序清单: ORG 0000H AJMP MAIN ORG 000BH ;T0 AJMP TIMER0 ORG 001BH ;T1 AJMP TIMER1 ORG 1000H MAIN: MOV TMOD,#03H MOV TL0, #83H MOV TH0, #06H SETB TR0 ;启动定时器运行 SETB TR1 SETB ET0 ;允许定时/计数器中断 SETB ET1 SETB EA ;总中断允许 SJMP $ ;等待中断 TIMER0: MOV TL0, #83H CPL P1.1 RETI TIMER1: MOV TH0, #06H CPL P1.2 RETI END 上页 下页 回目录 四、定时/计数器的初始化 初始化一般有以下几个步骤: ⑴ 确定工作方式,对方式寄存器TMOD赋值 ⑵ 预置定时或计数初值,直接将其写入T0、T1中 ⑶ 根据需要对中断允许寄存器有关位赋值,以开放 或禁止定时/计数器中断 ⑷ 启动定时/计数器,将TRi 赋值为“1” 计数初值的设定: 最大计数值M:不同的工作方式M值不同 方式0: M = 213 = 8192 方式1: M = 216 = 65536 方式2、3:M = 28 = 256 计数初值X的计算方法: 计数方式: X = M-计数值(X即为计数值的补码数) 上页 下页 回目录 定时方式: (M - X)×T = 定时值 ∴ X = M-定时值 / T 其中T为机器周期,时钟的12分频, 若晶振为6MHz,则T = 2μs, 若晶振为12MHz,则T = 1μs 上页 下页 回目录 例5-1 若单片机晶振为12MHz, 要求产生500μs定时,试计算X的初值。 解:由于T = 1μs,产生500μs定时, 需要“+1” 500次,定时器方能产生溢出。 采用方式0:( 13位计数器 ) X= 213-(500×10-6 /10-6 ) = 8192 -500 = 7692 = 1E0CH = F00CH 采用方式1:( 16位计数器 ) X= 216 -(500×10-6 /10-6)= 65036 = FE0CH ? 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 THi TLi D7D6D5 0 0 0 不用 F00CH = ? 暂时写成 上页 下页 回目录 五、定时/计数器应用举例(自我练习) 1、作定时器用 例5-2 设主频为12MHz,利用定时器T1定时。 使P1.0输出周期为2ms的方波。 解:用P1.0作方波输出信号,周期为2ms的方波 即可用每1ms改变一次电平的方法完成, 故定时值可设置为1ms。
文档评论(0)