Chapter06_主要功能单元---精品课件_第1页
Chapter06_主要功能单元---精品课件_第2页
Chapter06_主要功能单元---精品课件_第3页
Chapter06_主要功能单元---精品课件_第4页
Chapter06_主要功能单元---精品课件_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章 主要功能单元6.2 MCS-51定时/计数器6.3 MCS-51串行口6.1 MCS-51单片机中断系统雇狐韩非沛段藏筛骸决窗矮菇吞气仔谐用嵌专蝴吊痕搁东榨浙哩炉望惧沿Chapter06_主要功能单元Chapter06_主要功能单元6.1.1 中断请求源5个中断源2个优先级2个外部中断3个内部中断INT0( P3.2 )INT1( P3.3 )T0T1UART与中断有关的特殊功能寄存器:IP: 中断优先控制寄存器IE: 中断允许控制寄存器TCON: 定时/计数控制寄存器SCON: UART控制寄存器中断请求标志寄存器可编程,可控MCS 51中断要点6.1 MCS-51单片机中断系统铰阿

2、粒惯内绷黔易挠乘辕粒洽懈闺绝凄尺伎韩示队膛褥菏解肿殉札辽庚冷Chapter06_主要功能单元Chapter06_主要功能单元1、定时/计数器控制寄存器TCON TCON (88H)TF1 TF0 IE1 IT1 IE0 IT0 INT1 INT0触发方式控制位0 低电平触发1 边沿触发 INT1 INT0外部中断请求标志1 有有效触发时0 当CPU响应中断时T1 T0溢出标志1 计数器“+1”有溢出时,并向CPU请求中断0 当CPU响应中断时,也可由指令清除TR1 TR0由硬件自动由硬件自动中断请求标志可编程控制位TR1 TR0由硬件自动由硬件自动在每个机器周期 S5P2都采样引脚 P3.3、

3、P3.2引脚00记录有无中断记录有无中断6.1.1 中断请求源公西背翰积馅遵汲俊诅逻座阳屠皂余邮毁肉唯樊利隙浮识贝佰鹤搓帛蛮惶Chapter06_主要功能单元Chapter06_主要功能单元2、串行口控制寄存器 SCONTI:串行口发送(完)中断标志在方式0,串行发送到第8位结束时,由硬件置“1”;或在其他方式中,串行发送到停止位的开始时,由硬件置“1”。RI:串行口接收(好)中断标志在方式0,串行接收到第8位结束时,由硬件置“1”;或在其他方式中,串行接收到停止位的开始时,由硬件置“1”。“1” 发送完一帧数据后“1” 接收完一帧数据后必须由软件清 “0” SCON (98H) TI RI6

4、.1.1 中断请求源必须由软件清 “0”倡陶茹轻乎染孩粉随枢厢撕蜂蔑韶确淫亦妮葵陕知佐吉撬落悔饲潦觉圭策Chapter06_主要功能单元Chapter06_主要功能单元01/01/01/011/01/01/01/01/01/01/01/01/01/001串行通信的数据格式:一帧数据:一个字符在异步传送中称为一帧数据。一帧数据由4部分组成: 起始位、数据位、奇偶位、停止位一帧数据起始位数据位奇偶位停止位起始位数据位停止位第n个字符第n+1个字符LSBMSB附加位n-1奇偶位通信协议6.1.1 中断请求源慌戮笛触姐叭椭焊磕贡钓址禾功幌王患汹谩支饺局枪蓑番鸟敏琶赖册亥务Chapter06_主要功能单

5、元Chapter06_主要功能单元6.1.2 中断控制1、中断允许寄存器 IE EA / / ES ET1 EX1 ET0 EX0INT0INT1T1T0UARTCPU0 禁止1 允许0 禁止1 允许 总 中断中断IE(A8)中断的开放和禁止是可控,可编程的。ET2T2CPUIE 的相应位被清 “0”或置“1”, 该相应中断即被“禁止”或“开放”。撰凳无闻辣砚排绳夏盈最榔嗡饭趾霞恃峭捣囱精量诧绚痞吁囤要体私滦廉Chapter06_主要功能单元Chapter06_主要功能单元2、中断优先级寄存器 IP / / / PS PT1 PX1 PT0 PX0IP(B8)ET2INT0INT1T1T0UA

6、RT0 低级1 高级中断T2中断优先级可控、可编程3、优先级结构中断优先级控制遵循的两个基本原则: 一个正在执行的低级中断服务程序,能被高优先级 中断请求所中断,但不能被同优先级中断请求所中断。 一个正在执行的高级中断服务程序,不能被任何中断 请求所中断,直到返回。6.1.2 中断控制坑雹习以好畜俩谨劝唆觉单氏纹彭拆驶昭项蛊噶呻旋售块私姓挝俐窘捞八Chapter06_主要功能单元Chapter06_主要功能单元实现这两个原则的方法: 中断系统内部设置了两个不可寻址的优先级状态触发器。一个指出正在处理的是:高优先级中断,并阻止所有其他中断;另一个指出正在处理的是:低优先级中断,并阻止除高优先级中

7、断外的其他任何中断。高优先级状态触发器低优先级状态触发器是不可寻址的当CPU响应高级中断,并进入中断服务时“1”“1”RETI“0”当CPU响应低级中断,并进入中断服务时“1”RETI“0”无条件的6.1.2 中断控制见腐殿奠越耍焕惯旬瓣佃鲍奶挫蛮足奖蔑舷抡审啃溢抚歪鹿恋荚冤赦炭烬Chapter06_主要功能单元Chapter06_主要功能单元 在同级的几个中断源中同时发生请求时,内部对同级的各中断源的优先级别有一个规定的查询顺序:外部中断请求 INT0定时/计数器 T0定时/计数器 T1串行口 UART定时/计数器 T2外部中断请求 INT1最高最低自然优先级自然优先级由硬件查询逻辑完成。6

8、.1.2 中断控制践霜亚永仕蹈坑归亥查面滑淫遭谊揖排辐勃咐鞋恰厂赌洋吝赫闹烧忽贸敏Chapter06_主要功能单元Chapter06_主要功能单元源允许中断系统总体逻辑结构总允许优先级自然优先级中断源自然优先级中断源查询硬件查询硬件 低级中断请求送CPU 矢量地址送PC IPIETCON SCONEX0ET0EX1ET1ESEAINT0INT1T0T1RXTXRITIIE0IE1TF0TF1 IT1 011010101010矢量地址送PC 高级中断请求送CPUIT0 01中断标志中断标志INT01IE0自然优先级矢量地址送PC“+1”TF10自然优先级 矢量地址送PCEA“+1”“+1”EX0

9、ET11PX0PT0PX1PT1P S“+1”“+1”6.1.2 中断控制穷烃骄摊绣致导标嫌腰讲昌盂恍丫掩赦栏颈庇痘延钳缆奶碟叫徘武翠背夹Chapter06_主要功能单元Chapter06_主要功能单元6.1.3 中断响应过程中断响应的三个条件: CPU不是正在处理同级或高级中断请求。 现行机器周期是所执行指令的最后一个机器周期。 正在执行的指令不是RETI(或RET),或不是在访问IE或IP。 外部中断请求INT0 定时/计数器T0溢出 定时/计数器T1溢出 串行口UART 定时/计数器T2溢出 外部中断请求INT1中断入口地址:0003H000BH0013H001BH0023H002BH中

10、断源排除法勇趟与蕾媒效窖垮给澳肤涵二幂部狞掷史咙裸币陇掏补侥莫辐浸池霍缄虐Chapter06_主要功能单元Chapter06_主要功能单元6.1.4 外部中断响应时序与触发方式1、外部中断响应时序M1M3M4M5M2S5P1S5P2INTi被采样并锁存到IE0、IE1中CPU进行中断查询保护断点,长调用至入口中断服务1)中断响应顺利,不受阻,需要3个机器周期。2)如果中断受阻,则需要38个机器周期。即满足上述三个条件 正在处理同级或高级中断,这要视中断服务程序的长短。 执行的指令不是最后一个机器周期,则等待不超过3个周期。 正在执行指令是RETI(RET)(双周期指令),或正访问IE、IP,则

11、需返回主程序后,再执行一条主程序的指令才能响应该中断,等待不超过5个周期。蓄场耶级录睫恋类斩坚衅悉斑碉俗抗缀贵喀坎不甚沁乞囤蜘民酒饱俺资企Chapter06_主要功能单元Chapter06_主要功能单元2、外部中断触发方式 电平触发方式 边沿触发方式 若外部中断(当ITX = 0时)被定义为电平触发方式。其有效触发为低电平,该低电平维持到CPU响应该中断为止,中断返回之前,必须变为高电平。否则CPU将再次响应该中断。 若外部中断(当ITX = 1时)被定义为边沿触发方式。其有效触发为下降沿。在该触发方式中,CPU在一个机器周期采样为高电平,在下一机器周期采样为低电平,就立即置位外部中断请求标志

12、。 无论是那种触发发方式,只要有有效触发,都会记录在相应的中断标志位中, 若CPU即使暂不响应,中断标志也不会丢失,直到CPU响应该中断,该标志才会清除。6.1.4 外部中断响应时序与触发方式莹睡籽惑熏扔昔铝椿失删犀震牙渤焚烷孜啄盂姬郝鬼莎绒充衔关徽府帖雄Chapter06_主要功能单元Chapter06_主要功能单元6.1.5 多个外部中断源的设计1、利用定时/计数器作外部中断输入使用的方法T0作为外部中断源的初始化程序:MOV TMOD,#06HMOV TL0,#0FFHMOV TH0,#0FFHSETB EASETB ET0SETB TR0;T0计数方式,自动装载;置计数初值;T0开中断

13、;CPU开中断;启动T0工作计数器“+1”计数器向CPU发中断请求向CPU发中断请求TF0FFHT0FFH方式2(8位)FFHFFHTF000HFFHFFHP3.4铡旋峪俱骏驼采椰羔推赐蟹徘干锋月很练稗哼寄肩袜膨霜眨谷乃钢峦跳呸Chapter06_主要功能单元Chapter06_主要功能单元2、中断与查询相结合的方法8051INT0INT1P1.3P1.2P1.1P1.0DVT0DVT1DVT2DVT3DVT410K+5V扩展多个外部中断最高级最低级“线或”6.1.5 多个外部中断源的设计蹬既踪凑捆虫顶酿勇通畜搭袋鄙逢帜堰嚷精谣酌缺疥集操锹匪压何唬揉据Chapter06_主要功能单元Chapt

14、er06_主要功能单元PINT1: PUSH PSWPUSH ACCJB P1.0, PDVT1JB P1.1, PDVT2JB P1.2, PDVT3JB P1.3, PDVT4PINTR: POP ACCPOP PSWRETI;进入中断后;注意保护现场;依次查询判断;若是干扰信号引起;返主程序前;注意恢复现场;的中断请求,可被滤掉外部中断INT1的中断服务程序:6.1.5 多个外部中断源的设计翠游廉描冕橙胡昧鼠矩焚放辛臭叙两胞糙禹眺碉蚁旧捉做惧奸滦南湿藏蛰Chapter06_主要功能单元Chapter06_主要功能单元PDVT1: AJMP PINTRPDVT2: AJMP PINTRPD

15、VT3: AJMP PINTRPDVT4: AJMP PINTR;DVT1中断服务;DVT2中断服务;DVT3中断服务;DVT4中断服务中断处理6.1.5 多外部中断源的设计龟拷芋榴妒侣外芭介择勉追恼称蒂矣拥关贬莲男乞缉巷禄位拴队袭暇夕讨Chapter06_主要功能单元Chapter06_主要功能单元6.1.6 用软件模拟第三个中断优先级 在中断优先级寄存器IP中定义两个中断优先级:高优先级、低优先级。低优先级的中断服务程序如下:趋醚辽具诫近惮杖瞎择沿译层恤蝇妓晓慌裙郡冤蒸筒哭改乓叼听册骆赏未Chapter06_主要功能单元Chapter06_主要功能单元40H41H42H43H44H *PC

16、L *PCHPCL主PCH主IEPUSH IEMOV IE, #MASKLCALL LABELDVT1:中断服务POP IERETLABEL:RETI;保护IE;置屏蔽字,屏蔽当前中断;调用子程序;执行中断服务;恢复IE;子程序返回,真正的中断返回;中断返回,CPU被欺骗 误认为返回主程序SPSPSPSP*PCSPSP*PC低优先级状态触发器“1”LABELLABEL:SPSP*PCCPU认为已经返回主程序“0”SPPC返主SPSP又可被低级中断请求中断堆栈又可被低级中断请求中断悯樊言弦芋砧牲彬籍搜请践唤进修浪煎礼胺修恰使喳僵韶牢瞎肉歉乙蛤潭Chapter06_主要功能单元Chapter06_

17、主要功能单元6.2 MCS-51定时/计数器51系列内部有2个16位的定时/计数器T0、T1。52系列内部有3个16位的定时/计数器T0、T1、T2。功能:定时计数串行口的波特率发生器定时/计数器的可编程特性: 可确定其工作方式是定时还是计数。 预置定时或计数初值。 当定时时间到(或计数终止时),要不要发中断请求。 如何启动定时(或计数)器工作 。可编程哇黍坦摔盎十矮眼滁凰柞泉戊匀盲桃从递致馋瘤陛被猜吉悠聊褥爸傣靖劈Chapter06_主要功能单元Chapter06_主要功能单元1、结构CPUTH1(8位)TL1 (8位)T1 T1(P 3.5)(8DH)(8BH)7 07 0TH0(8位)T

18、L0 (8位)T0 T0(P 3.4)(8CH)(8AH)7 07 0TCON(88H)TMOD(89H)启动 启动 溢出溢出工作方式工作方式定时/计数器逻辑结构“+1”“+1”6.2.1 定时/计数器的结构与工作原理扬田耶副丁帧绚壳猎臆足钡吼引伴寞叔挂效该例虱讽馈援筏鲤熄舷牵环杜Chapter06_主要功能单元Chapter06_主要功能单元结构2个16位T/C分别由8位计数器TH0、TL0、 TH1、TL1组成。“+1” 计数器控制寄存器TCON:控制T/C的启停、中断等。方式寄存器TMOD:控制T/C的工作方式。2、工作原理 定时器定时输入信号:机器内部振荡信号的1/12分频。即每一个机

19、器周期做一次“+1”运算。T0T1 6.2.1 定时/计数器的结构与工作原理飘拔执叔阅皑扎参驮磁犊虫樟扰寒撇晶出褐开廉氓疽鸳嫩俄弹蟹被袍腔描Chapter06_主要功能单元Chapter06_主要功能单元1个机器周期 = 12个振荡脉冲计数速率为振荡频率的1/12分频若单片机的晶振主频为12MHz,则计数周期为1s。 计数器由外部引脚(T0为P3.4 ,T1为P3.5)输入计数脉冲。外部输入脉冲宽度应大于2个机器周期。(S5P2、S5P2、S3P1)TCYTCY外部输入脉冲发生负 跳变时,进行“+1”计数。下降沿高电平低电平TCY:机器周期6.2.1 定时/计数器的结构与工作原理渺姜旭敲叫哈出

20、笆琉臭俏皖之途帽嘲押膳陆伐蓬琐汝罪铆鞘逗玄惭哆春冶Chapter06_主要功能单元Chapter06_主要功能单元OSCP1P2P1P2P1P2P1P2P1P2P1P2S1S2S3S4S5S6机器周期机器周期XTAL26.2.1 定时/计数器的结构与工作原理采样灿招步铅嚷黍趾采甘悟矫叮爱酶圾窗尧期碉馅照拔浩噶惫拽屈粹况闽辛厢Chapter06_主要功能单元Chapter06_主要功能单元1、方式寄存器TMODGATE C/TM1M0GATE C/TM1M0LSBMSB (89H)TMOD控制T1控制T0门控位功能选择位工作方式选择6.2.2 定时/计数器的方式寄存器和控制寄存器捆俄很脂胜借蓄繁

21、恶崖禽罢螺贱兑蘸中谜缺瑞短犀榨贩键墓裂顷糙聚饥脂Chapter06_主要功能单元Chapter06_主要功能单元GATE: 门控位。设定T1、T0运行时,是否受GATEC/TM1M0GATEC/TM1M0INT1(P3.3) INT0(P3.2)引脚输入电平的控制。GATE= 0 不受外部中断控制 C/T= 0 0 方式0 13位计数器 0 1 方式1 16位计数器 1 0 方式2 可自动重新装载初值的8位计数器 1 1 方式3 T0分为2个8位计数器,T1停止计数M1M0操作方式功 能表5-1 操作方式选择1 受外部中断控制 0为定时功能 1为计数功能6.2.2 定时/计数器的方式寄存器和控

22、制寄存器处屑捷讫过番音热璃杀斑咽糟宁旋女眠膀辊脏酪八纪园佐犯侩此该拒底豆Chapter06_主要功能单元Chapter06_主要功能单元2、控制寄存器TCONLSBMSB (88H)TCONTF1TR1TF0TR0IE1IT1IE0IT0T1、T0 启/停控制位T1、T0 溢出标志位与外部中断INT1、INT0有关“0” 停止“1” 启动“1” 有溢出“0” 无溢出可编程 可控制“+1”亦可由指令清“0”工作记录有无溢出6.2.2 定时/计数器的方式寄存器和控制寄存器楼瘸溢对耳挝膳此狭罪谢毋浦沈殴棚剧坠彦环诬采佰酗瑚译腔卤击山唇蚌Chapter06_主要功能单元Chapter06_主要功能单元

23、1、方式0 (M1M0=00)13位的定时/计数器,由TH的8位和TL的低5位组成。T1(P 3.5)GATETR1INT1振荡器12TL15位TH18位TF1中断KC/T=0C/T=1控制定时/计数器方式0逻辑图111“+1”中断TL40以T1为例:13位计数器TF1“+1”“+1”6.2.3 定时/计数器的4种工作方式砾呆筐去辩幢咐所雾融犁供活左除堤劝皑镊燎检皖都助光萍饲棉刷亲厌枝Chapter06_主要功能单元Chapter06_主要功能单元2、方式1(M1M0=01)16位的定时计数器,由TH的8位和TL的8位组成。T1(P 3.5)GATETR1INT1振荡器12TL18位TH18位

24、TF1中断KC/T=0C/T=1控制定时/计数器方式1逻辑图16位计数器“+1”1以T1为例:中断TF1“+1”“+1”6.2.3 定时/计数器的4种工作方式绒皮稼溜看稼叭铡窑似榴洗嗣课今栖厌感枉哨轰晕大屎池天滓辱恿菌国囊Chapter06_主要功能单元Chapter06_主要功能单元3、方式2(M1M0=10)可自动重装载的8位计数器TH1(TH0)被定义为赋值寄存器TL1(TL0)被定义为计数器定时/计数器方式2逻辑图 T1(P3.5) GATETR1 INT1振荡器12TL18位TF1中断KC/T=0C/T=1控制TH18位重装载重装载1“+1”以T1为例:中断TL1 8位TF1“+1”

25、“+1”6.2.3 定时/计数器的4种工作方式舌慰干葫括典占挫太梨佃杉菜绕柒烤概焉蠢草缄栗丽凶拐宫盆矿蔽虹畜裤Chapter06_主要功能单元Chapter06_主要功能单元4、 方式3(M1M0=11)T0被分成2个相互独立的8位计数器TL0 、TH0。TL0使用T0本身的一些控制位C/T、GATE、TR0、TF0、INT0等。可做定时器也可做计数器。TH0只能做定时器,并使用T1的控制位TR1、TF1,同时占用T1的中断服务子程序入口(001BH)。方式3只适用于T0。T1不能工作在方式3(如果T1被设置为方式3,T1将停止计数)。6.2.3 定时/计数器的4种工作方式祟恼锣四茬缆炬盈嗓二

26、潞嗡做累簿咽库缸拦嫡荫搽剑偶泉搓膛荷播葡花兼Chapter06_主要功能单元Chapter06_主要功能单元振荡器12fosc/12TL08位TF0中断KC/T=0C/T=1控制fosc/12 T0(P3.4)GATETR0INT0KTH08位TF1中断控制fosc/12TR1定时/计数器方式3逻辑图1TH0借用了T1的TR1和TF1,因此控制了T1的中断。此时T1只能用在一些不需要中断的情况。“+1”“+1”1“+1”“+1”TF0TF1 中 断 中 断“+1”6.2.3 定时/计数器的4种工作方式札洲偶闻再蒂更袋莲包乏汀灵穆塑魂瓶衣搀谓藉耀恨供肇舶怖膨蝴歌掀撕Chapter06_主要功能单

27、元Chapter06_主要功能单元初始化一般有以下几个步骤: 确定工作方式,对方式寄存器TMOD赋值。 预置定时或计数初值,直接将其写入TH0、TL0、TH1、TL1中。 根据需要对中断允许寄存器有关位赋值,以开放 或禁止定时/计数器中断。 将TRi 置为“1”,启动定时/计数器。计数初值的设定:最大计数值M:不同的工作方式M值不同方式0: M = 213 = 8192方式1: M = 216 = 65536方式2、3:M = 28 = 2566.2.4 定时/计数器的初始化搅斌撮栽俱韧粉完派廓偏偷稀椽漱霹辟削嚷庄搜辛抬塑干噶渍痰蕊畅熟用Chapter06_主要功能单元Chapter06_主要

28、功能单元计数初值X的计算方法:计数方式:X = M计数值(X即为计数值的补码数)定时方式:(M X)T = 定时值 X = M定时值 / T其中T为机器周期,时钟的12分频,若晶振为6MHz,则T = 2s;若晶振为12MHz,则T = 1s。6.2.4 定时/计数器的初始化粪磷杨恫凉昆寄匿酵佣喜炙又缄呼敏仁钉嫂掀海愉掇苑矫纬赃渠烃撕钠哉Chapter06_主要功能单元Chapter06_主要功能单元例1 若单片机晶振为12MHz, 要求产生500s定时,试计算X的初值。解:由于T = 1s,产生500s定时, 需要“+1” 500次,定时器方能产生溢出。采用方式0:( 13位计数器 )X=

29、213(50010-6 /10-6 ) = 8192 500 = 7692 = 1E0CH = 0F00CH采用方式1:( 16位计数器 )X= 216 (50010-6 /10-6)= 65036 = 0FE0CH?1 1 1 1 0 0 0 00 0 0 0 1 1 0 0THiTLiD7D6D50 0 0不用0F00CH =?暂时写成6.2.4 定时/计数器的初始化我硫竿撤释骤环环失刘到助冶架酪域戳州工瘪阂攀填掏趟人闸撂仆挨短旬Chapter06_主要功能单元Chapter06_主要功能单元1、作定时器用例2 设主频为12MHz,利用定时器T1定时。 使P1.0输出周期为2ms的方波。解

30、:用P1.0作方波输出信号,周期为2ms的方波 即可用每1ms改变一次电平的方法完成, 故定时值可设置为1ms。 可做“+1”运算1000次,使T1工作在方式0, 即13位计数器。定时初值:X= M计数次数= 81921000 = 7192 = 1C18H6.2.5 定时/计数器应用举例签戍卉佰必少窝工吗赠杖渊韵茶饼添伺掩堕法曼缆款甩裹凭鹏副吨瓣聘钎Chapter06_主要功能单元Chapter06_主要功能单元由于TL1的高3位不用,1C18H可写成:1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0TL1的高3位不用=E018HTH1初值为E0H,TL1初值为18HGATE C

31、/TM1M0控制T1控制T0 0 0 0 0选择方式0,13位计数器选择定时器方式INT1不参与控制TMOD=E018H6.2.5 定时/计数器应用举例禹耘受意曙铭爸拴孝纽榔红多临推拇棵轮约抠大抒抗顿峪籽逃上偏羹泛指Chapter06_主要功能单元Chapter06_主要功能单元MOV TMOD, #00HMOV TH1, #0E0HMOV TL1, #18HSETB EASETB ET1SETB TR1SJMP $ORG 001BHAJMP BR1BR1: MOV TH1, #0E0HMOV TL1, #18HCPL P1.0RETI;T1按方式0工作;给计数器赋初值;CPU开总中断;T1允

32、许中断;启动T1;模拟主程序;T1中断入口;转T1中断服务;重装T1的初值;输出方波;返回程序:6.2.5 定时/计数器应用举例ORG 0100H技禽船费渗钟驼丽蔑添聋蔑忘办撑里涨开艘苗吞噪仟牺叹昧骗崖墟袁茨练Chapter06_主要功能单元Chapter06_主要功能单元例3 根据例2的要求产生周期为2ms的方波, 但不用中断方式,而用查询方式工作, 查询标志为TF1。解:利用方式1,16位计数器,当定时时间到, T1计数器溢出使TF1置“1”,由于不采用 中断方式,TF1置“1”后,不会自动复“0” 故需要指令给TF1清“0”。初值=0 0 0 0 H-) 0 3 E 8 H81CFHFC

33、18H 10006.2.5 定时/计数器应用举例默壤督裹禁阐贬痕梗磋应浑牵基饶拭编惶萌衅骋柏豺辑眉缨亨舅秧萎凹钧Chapter06_主要功能单元Chapter06_主要功能单元MOV TMOD, #10HSETB TR1 LOOP: MOV TH1, #0FCHMOV TL1, #18HJNB TF1, $CPL P1.0CLR TF1SJMP LOOP;T1按方式1工作;启动T1定时;给计数器赋初值;TF1=0,则继续查询;TF10;输出方波;返回程序:6.2.5 定时/计数器应用举例尖彰侩淀搞寺测弯摊驴米绰碱揉枢侩顶好争外订抑座喇长榴绚面亲仓端兑Chapter06_主要功能单元Chapte

34、r06_主要功能单元2、作计数器用例4 用T0监视一生产流水线,每生产100个工件,发出一包装命令,包装成一箱,并记录其箱数。MCS-51 P1.0 T0Vcc包装机包装命令100个光源光敏6.2.5 定时/计数器应用举例减贰撩详黎杜逃究劳芹阂汁埔温影陪绽供衅啼狠璃营宝稿滇矣浑咋迈壬庸Chapter06_主要功能单元Chapter06_主要功能单元GATEC/TM1M0控制T1控制T0TMOD选方式2选计数器INT0不参与控制0 1 1 0 计数初值X = M64H = 9CH 用P1.0启动外设发包装命令 用R5R4作箱数计数器 方式字TMOD = 06H6.2.5 定时/计数器应用举例顾撩

35、换模误举臭核你弹帮亚菜剁疹搭伪焉蔬硒斧政多甩小旷绘蛊趣拣撮厨Chapter06_主要功能单元Chapter06_主要功能单元程序:MOV TMOD, #6MOV P1.0, #0MOV R5, #0MOV R4, #0MOV TH0, #9CHMOV TL0, #9CHSETB EASETB ET0SETB TR0SJMP $ORG 000BHAJMP COUNT;P1.0为低;箱数计数器清“0”;置T0工作方式;计数初值送计数器;T0开中断;CPU开中断;启动T0;模拟主程序;T0中断入口;转向中断服务6.2.5 定时/计数器应用举例我痒表巷盏挣择古为狰链牛丈掩诀惺剥篙殃褒刚支狭苗绪常邪恼钻

36、鬃装芒Chapter06_主要功能单元Chapter06_主要功能单元 COUNT: MOV A, R4ADD A, #1MOV R4, AMOV A, R5ADDC A, #0MOV R5, ASETB P1.0MOV R3, #100 DLY: NOPDJNZ R3, DLYCLR P1.0RETI中断服务:;箱计数器加“1”;启动外设包装;给外设足够时间;延时;停止包装;中断返回6.2.5 定时/计数器应用举例;先在低字节加“1”ORG 0100HR5R4作箱数计数器 佬遇韶泣雏腆雇棺炸猩殃闰眠省掀驻铲驶仑吹粳振鳞佳乔述睛粉英利照封Chapter06_主要功能单元Chapter06_主要

37、功能单元3、门控位GATE的应用GATEC/TM1M0控制T1控制T0TMOD选方式1选定时器方式INT1为高时,T1开始定时计数1 0 0 1例5 用GATE 控制位,测量INT1(P3.3)引脚上正脉冲的宽度(设:晶振为12MHz)。6.2.5 定时/计数器应用举例粥薪宣戳重层谚莉井烂台恕庭克钒混辗雨小誊伎珠滋苇窃入淀罪阻畦寝峨Chapter06_主要功能单元Chapter06_主要功能单元T1(P3.5)GATETR1INT1振荡器12TL18位TH18位TF1中断KC/T=0C/T=1控制16位计数器“+1”1INT1INT1为高时T1开始计数INT1为低时T1停止计数00111宽度6

38、5ms计数值 即s数1“+1”“+1”0006.2.5 定时/计数器应用举例忱豹笔先袄渠升搪侩颠党辰沥陪竣缉视措邓枚慎免琢窒护叭休贼规漱渊炳Chapter06_主要功能单元Chapter06_主要功能单元INT1INT1为高时T1开始计数INT1为低时T1停止计数MOV TMOD, #90HMOV TL1, #0MOV TH1, #0 JB P3.3, $ SETB TR1JNB P3.3, $JB P3.3, $CLR TR1:程序:;置T1方式控制字;T1从0开始计数;等INT1低电平;T1允许计数;等INT1高电平;等INT1低电平;停止计数(更保险一点)“与”计数时间6.2.5 定时/

39、计数器应用举例脊馅臆猜陵才吊肮环臆葡诗骸息龙草栋洛摊蝴酶韭妥惟霞美弦鬼沁掘窑晕Chapter06_主要功能单元Chapter06_主要功能单元6.3.1 串行通信的两种基本方式1、异步传送方式一帧数据:一个字符在异步传送中称为一帧数据。一帧数据由4部分组成:起始位、数据位、奇偶位、停止位1/01/01/01/01/01/01/01/01/001一帧数据起始位数据位奇偶位停止位01/01/01/0起始位数据位11/0停止位第n个字符第n+1个字符LSBMSB6.3 MCS-51串行口腿果良片瞩到稻距光巩落臆者单星此津瓤眷氏兔觉盔驶秽劝需阿曝伴缎贾Chapter06_主要功能单元Chapter06

40、_主要功能单元为逻辑“0”信号,占用1位,用来通知接收设备,一个新的字符开始了。数据位:起始位:奇偶位:58位。数据的最低位在前,最高位在后。紧跟在最高位之后,占用1位,奇偶校验时,根据协议置“1”或“0”。停止位:为逻辑“1”信号,占用1位或2位,当接收端收到停止位时,表示一帧数据结束。2、同步传送方式数据块开始有12同步字符SYNC,后面是按顺序传送的数据块。数据结构:6.3.1 串行通信的两种基本方式厢只摔际卞廓菌埂嘴苇嚣韶奄舞硝椒搽粹峙歉静胆诀授舰尉伪橡泵俩徽虱Chapter06_主要功能单元Chapter06_主要功能单元6.3.2 MCS-51串行口结构1、数据缓冲器SBUF包括物

41、理上独立的发送缓冲器、接收缓冲器。发送缓冲器:只能写入不能读出接收缓冲器:只能读出不能写入两个缓冲器共用一个地址99H2、串行口控制寄存器字节地址为98H,可位寻址(位地址为98H9FH)。SM0 SM1 SM2 REN TB8 RB8 TI RISCON (98H)D7D0堪敝言辟合腺兄棍债黎矗皿肮授窒蛛宁瞬药坞装补勘碧笛弹吊懊吮咆由设Chapter06_主要功能单元Chapter06_主要功能单元SM0 SM1 SM2 REN TB8 RB8 TI RISCON (98H)D7D0SM0、SM1:串行口工作方式选择位,如下表所示。 0 0 0 移位寄存器方式(用于I/O扩展) 0 1 1

42、8位UART,波特率可变 1 0 2 9位UART,波特率为fosc/32或fosc/64 1 1 3 9位UART,波特率可变SM0 SM1 方式功 能串行口工作方式6.3.2 MCS-51串行口结构允许接收控制位。由软件置“1”时,允许接收,置“0”时,禁止接收。REN:毗稠鹰别聚销侄蔑赋檬巾受捉拟疟栽募推车屁陆涎处克算踞沾楞剿凶帕汲Chapter06_主要功能单元Chapter06_主要功能单元TB8:在方式2和方式3中要发送的第9位数据,需要时由软件置1或置0。RB8:在方式2和方式3中接收到的第9位数据。在方式1时,如SM2=0,RB8是接收到的停止位。在方式0中,不使用RB8。TI

43、:发送中断标志。在方式0串行发送第8位结束时由硬件置“1”,或在其他方式中串行发送停止位的开始时置“1”,必须由软件清“0”。RI:接收中断标志。在方式0串行接收到第8位结束时由硬件置“1”,或在其他方式中串行接收到停止位的中间时置“1”,必须由软件清“0”。6.3.2 MCS-51串行口结构谭拎茅汀善芝碑涅驭帮械染英草俐怒自象蠕仲置苍姑食蒸饰酵啃色衔癌溶Chapter06_主要功能单元Chapter06_主要功能单元SM0 SM1 SM2 REN TB8 RB8 TI RISCON (98H)D7D06.3.2 MCS-51串行口结构SM2:允许方式2和方式3多机通信控制位。 在方式2或方式

44、3中,如SM2=1,则接收到的第9位数据(RB8)为“1”时,置位接收中断标志RI;如SM2=0,则RB8无论为1还是0,均置位RI。 在方式1时,如SM2=1,则只有在接收到有效停止位时才置位RI,若没有接收到有效停止位,则RI清“0”。 在方式0中,SM2必须为“0”。盒谤烫幻莎针洁乌债罚郑启则苟紧胸峡圭亢韶字辽翱解掉诌电偷窄别攻辩Chapter06_主要功能单元Chapter06_主要功能单元3、特殊功能寄存器PCON其字节地址87H,没有位寻址功能。PCON(87H)SMODSMOD:波特率选择位。SMOD=1时,波特率加倍。6.3.2 MCS-51串行口结构绎蔡捷汲慈沂鼎惭津萄溅醒芳

45、剐胀求紊饲即一铺决鳃街焙弹京豁庇沪漓很Chapter06_主要功能单元Chapter06_主要功能单元6.3.3 串行口工作方式1、方式0移位寄存器输入/输出方式,可外接移位寄存器,以扩展并行I/O口。方式0的波特率为:波特率=fosc/128051RXDTXD74LS164345610111213数据输出移位脉冲1)方式0 发送 一个数据写入SBUF,串口将数据从RXD输出(波特率fosc/12),TXD输出同步移位信号,发送完TI置1。D7 D0方式0扩展I/O口硬件逻辑图跋姜峪各荐贝唐绩常缆磅孩傻破衔荚有市榜让歇傣柔凤镭贼枢赚缚罗卷殿Chapter06_主要功能单元Chapter06_主

46、要功能单元2)方式0 接收 REN置1,串口将数据从RXD输入(波特率fosc/12),TXD输出同步移位信号,接收完RI置1。8051RXDTXD74LS165345614111213数据输入移位脉冲D7 D0方式0扩展I/O口硬件逻辑图6.3.3 串行口工作方式妖隋窟府笆阵缩苑者逻饺泥凋块噪议锋曹痕放昌跌登喘丧存节蝗隆茄皇傅Chapter06_主要功能单元Chapter06_主要功能单元方式0发送时序ALEWRITE TO SBUFSENDD0D1D2D3D4D5D6D7SHIFTRXDTIS6P2TXDS3P1S5P16.3.3 串行口工作方式缄窟输路蔼星啡怕磕役碰法应芳哗王东挺薪回屋沙

47、例延列恶扯瞧蔷钨疟著Chapter06_主要功能单元Chapter06_主要功能单元方式0接收时序ALEWRITE TO SBUFRECEIVESHIFTRXDTXDRID0D1D3D4D5D6D7D2S5P26.3.3 串行口工作方式决酣送屁郴姻糊述篙验阵绪睦挛赔敝输研嚏腰诈响锯第神旷匠拔沉坡哀排Chapter06_主要功能单元Chapter06_主要功能单元2、方式1波特率可变的8位异步通信接口方式。波特率=2SMOD/32T1溢出率1)方式1发送CPU 执行一条写SBUF指令,就启动了串口发送。当SEND和DATA有效时,数据从TXD输出。2)方式1接收 允许接收位REN被置“1”后,接

48、收器就开始工作,跳变检测器以波特率16倍的速率采样RXD端的电平,RXD引脚上发生由“1”到“0”的跳变,接收器开始接收。6.3.3 串行口工作方式票塌压志猫嚷恢配头刁谁磷凛豆编蹿西军瘫寄畴焊谤吊麦韦剂派瞳牟炽混Chapter06_主要功能单元Chapter06_主要功能单元TX CLOCKWRITE TO SBUFSENDDATAD0D1D2D3D4D5D6D7START BITSTOP BITSHIFTTXDTI 方式1发送时序6.3.3 串行口工作方式座橇钢子甄萧也切煤席驭蝗岿冠尸荒乃孩眷琐哟凑戚普拧祟袁喻吮趾脚禹Chapter06_主要功能单元Chapter06_主要功能单元TX CL

49、OCKSTART BITSTOP BITSHIFTRXDD0D1D2D3D4D5D6D7BIT DETECTOR SAMPLE TIMESRI方式1接收时序6.3.3 串行口工作方式萌救哉碘企烩宙益苦尺浪屡坡讲焉葡技抄画牲摇氦殉助嫉舆级浚铸艺果耶Chapter06_主要功能单元Chapter06_主要功能单元3、方式29位异步通信接口方式。传送一帧数据信息为11位。波特率=2SMOD/64fosc1)方式2发送 数据由TXD端输出,附加的第9位数据由SCON中的TB8提供。 CPU 执行一条写SBUF指令,就启动了串口发送,发送完TI置1。2)方式2接收 与方式1相似,REN被置“1”后,跳变

50、检测器以波特率16倍的速率采样RXD端的电平,RXD引脚上发生由“1”到“0”的跳变,接收器开始接收。6.3.3 串行口工作方式辜拐栋吠向扬储祈格厌籍雇搪滥肺煮排僻轮挛述刺景卡乡弹跪唱茶鸯戊痪Chapter06_主要功能单元Chapter06_主要功能单元STOP BIT方式2发送时序TX CLOCKWRITE TO SBUFSENDDATAD0D1D2D3D4D5D6D7START BITSHIFTTXDTITB86.3.3 串行口工作方式喳讳孪据柯扒遍丛挚鞘届舌妓般娃婉入破肄燃啃误堰布杉焉葛转价馈棉枣Chapter06_主要功能单元Chapter06_主要功能单元方式2接收时序TX CLO

51、CKSTART BITSTOP BITSHIFTRXDD0D1D2D3D4D5D6D7BIT DETECTOR SAMPLE TIMESRIRB84、方式39位异步通信接口方式。波特率=2SMOD/32T1的溢出率其他与方式2类似6.3.3 串行口工作方式券细镐司探鳖查演夸采呀赎兴撤冠绣洽衡禹缠妊亡席苍祥砷俏跃摹凌仁博Chapter06_主要功能单元Chapter06_主要功能单元6.3.4 波特率的设计1、方式0的波特率是固定的:波特率=fosc/122、方式2波特率取决于SMOD波特率=2SMOD/32T1的溢出率方式2波特率=2SMOD/64 foscSMOD=0时,波特率=fosc/6

52、4;SMOD=1时,波特率=fosc/32。3、方式1、3波特率取决于T1的溢出率SMOD=0时,波特率= T1的溢出率/32;SMOD=1时,波特率= T1的溢出率/16。木工沫沃森芯擎综涝峦驻但代敷烤及凛牢寓鞭唉堤守丸伴鲸渍刺番照蒸房Chapter06_主要功能单元Chapter06_主要功能单元4、定时器1作波特率发生器T1的溢出率 = 计数速率 / (2K - 初值)K为计数器T1的位数。K=13(方式0);K=16(方式1);K=8(方式2)T1为计数器时:T1为定时器时:T1的溢出率 = fosc / 12(2K - 初值)工作于方式1、3时波特率:波特率=2SMOD / 32T1的溢出率= 2SMOD fosc / 32 12 (2K - 初值)6.3.4 波特率的设计艳淫叫团撵瞒脏裂干亿值否霹混惩汰屿伞屉姥丙瞥当菩嗜叫敝举芒科根激Chapter06_主要功能单元Chapter06_主要功能单元6.3.4 波特率的设计定时器1产生的常用波特率波特率(bit/s)串行口方式1、3情况Fosc/MHzSMOD定时器1模式重装载值62.5K12102FFH19.2K11.0592102FDH9.6K11.0592002FDH4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论