[信息与通信]第六章单片机内部资源及编程.ppt
《[信息与通信]第六章单片机内部资源及编程.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]第六章单片机内部资源及编程.ppt(69页珍藏版)》请在三一办公上搜索。
1、第 六 章 MCS-51单片机内部资源及编程,MCS-51单片机的内部资源主要有并行I/O口、定时器/计数器、串行接口以及中断系统,MCS-51单片机的大部分功能就是通过对这些资源的利用来实现的。,并行输入/输出接口,定时/计数器接口,串行接口,中断系统,1,2,3,4,6.1 并行输入/输出接口,复习4个并行口特性应用举例:1.利用单片机的P0口接8个发光二极管,P1口接8个开关,编程实现,当开关动作时,对应的发光二极管亮或灭。,汇编程序:ORG 0100HMOV P0,#0FFHLOOP:MOV A,P0MOV P1,ASJMP LOOP,C51语言程序:#include void mai
2、n(void)unsigned char i;P0=0 xff;for(;)i=P0;P1=i;,延时函数的编写,void delay()int x=5000;while(x-);,void delay(unsigned int z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);,流水灯程序,#include void delay()int x=5000;while(x-);Main()Unsigned char LED;LED=0 x1;P0=LED;While(1)Delay();LED=LED1;P0=LED;,思考:若要同时亮两个灯,并实现流水点亮,应
3、如何修改程序?,2.蜂鸣器接口例:编程使蜂鸣器响5次,每次响0.5秒,停1秒。,汇编程序为:BEEP:MOV R7,#5BEEPL:CLR P1.0 LCALL DEL5 SETB P1.0 LCALL DEL10 DJNZ R7,BEEPL RET,C51程序为:#includesbit D1=P10;void delay(uint);void main()while(1)D1=0;delay(50);D1=1;delay(100);,并行输入/输出接口,定时/计数器接口,串行接口,中断系统,1,2,3,4,6.2 定时/计数器接口,定时/计数器的主要特性:1MCS-51系列中51子系列有两
4、个16位的可编程定时/计数器:T0和T1,52子系列还有T2。2定时方式对频率稳定且已知的时钟信号计数,即可以实现定时功能。计数方式对外部时钟信号计数,通常用于对外部事件(脉冲)计数。3每个定时/计数器都有多种工作方式,通过编程可设定工作于某种方式。4每一个定时/计数器定时计数时间到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。,定时/计数器T0、T1的结构及工作原理,使用注意:第一,由于它是加法计数器计数初值X=最大计数值(满值)M计数值N第二,外部计数脉冲的频率应小于振荡频率的1/24。,定时/计数器的方式和控制寄存器,一定时/计数器的方式寄存器TMOD,SFR中地址,定时
5、/计数器的控制寄存器TCON,0:停T0 计数,1:启T0 计数,0:无T0 中断(硬件复位),1:有T0 溢出中断,0:无T1 中断(硬件复位),0:停T1 计数,1:有T1 溢出中断,1:启T1 计数,TF0、TF1:定时/计数器T0、T1的溢出标志位。当定时/计数器计满时,由硬件使它置位,如中断允许则触发中断。进入中断处理后由内部硬件电路自动清除。,定时/计数器的工作方式,一方式013位定时/计数方式,在方式0定时,若计数初值为a,则从初值a开始加1计数到溢出的时间为:,当fosc=12MHz时,最大定时时间为:8.192毫秒。,二方式116位定时/计数方式,方式1时,如计数值为N,则置
6、入的初值X为:X=65536-N如定时/计数器T0的计数值为1000,则初值为65536-1000=64536,转换成二进制数为 1111110000011000B,则TH0=11111100B,TL0=00011000B,当fosc=12MHz时,最大定时时间为:65.536毫秒。,三、方式2自动恢复初值的8位定时计数器,方式2为自动恢复初值的8位计数器。TLx作为8位计数器,THx作为计数初值寄存器,当TLx计数溢出时,一方面置1”溢出标志TFx,向CPU请求中断,同时将THx内容送TLx,使TLx从初值开始重新加l计数。因此,Tx工作于方式2定时,定时精度比较高,但定时时间短,T12(2
7、56a)/focs。,四、方式3T0分成两个8位定时计数器,而TH0固定只能作定时器使用,对机器周期进行计数,借用T1的控制资源,定时/计数器的初始化编程及应用,一定时/计数器的编程,MCS-51单片机定时/计数器初始化过程如下:1根据要求选择方式,确定方式控制字,写入方式控制寄存器TMOD。2根据要求计算定时/计数器的计数值,再由计数值求得初值,写入初值寄存器。3根据需要开放定时/计数器中断(后面须编写中断服务程序)。4设置定时/计数器控制寄存器TCON的值,启动定时/计数器开始工作。5等待定时/计数时间到,到则执行中断服务程序;如用查询处理则编写查询程序判断溢出标志,溢出标志等于1,则进行
8、相应处理。,二定时/计数器的应用,【例5-2】设系统时钟频率为12MHZ,用定时/计数器T0编程实现从P1.0输出周期为500s的方波。分析:从P1.0输出周期为500s的方波,只须P1.0每250s取反一次则可。当系统时钟为12MHZ,定时/计数器T0工作于方式2时,最大的定时时间为256s,满足250s的定时要求,方式控制字应设定为00000010B(02H)。系统时钟为12MHZ,定时250s,计数值N为250,初值X=256-250=6,则TH0=TL0=06H。,汇编程序:ORG 0000HLJMP MAINORG 000BH;中断处理程序CPL P1.0RETIORG 0100H;
9、主程序MAIN:MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB EASETB ET0SETB TR0SJMP$END,C语言程序:#include/包含特殊功能寄存器库sbit P1_0=P10;void main()TMOD=0 x02;TH0=0 x06;TL0=0 x06;EA=1;ET0=1;TR0=1;while(1);void time0_int(void)interrupt 1/中断服务程序 P1_0=!P1_0;,(1)采用中断处理方式的程序:,(2)采用查询方式处理的程序,汇编程序:ORG 0000HLJMP MAINORG 0100H;主
10、程序MAIN:MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB TR0LOOP:JBC TF0,NEXT;查询计数溢出SJMP LOOPNEXT:CPL P1.0SJMP LOOPSJMP$END,C语言程序:#include/包含特殊功能寄存器库sbit P1_0=P10;void main()char i;TMOD=0 x02;TH0=0 x06;TL0=0 x06;TR0=1;for(;)if(TF0)TF0=0;P1_0=!P1_0;/查询计数溢出,【例5-3】设系统时钟频率为12MHZ,编程实现从P1.1输出周期为1s的方波。分析:根据例5-2的处理
11、过程,这时应产生500ms的周期性的定时,定时到则对P1.1取反就可实现。由于定时时间较长,一个定时/计数器不能直接实现,可用定时/计数器T0产生周期性为10ms的定时,然后用一个寄存器R2对10ms计数50次或用定时/计数器T1对10ms计数50次实现。系统时钟为12MHZ,定时/计数器T0定时10ms,计数值N为10000,只能选方式1,方式控制字为00000001B(01H),初值X:X=65536-10000=55536=1101100011110000B则TH0=11011000B=D8H,TL0=11110000B=F0H。,汇编程序:ORG 0000HLJMP MAINORG 0
12、00BHLJMP INTT0ORG 0100HMAIN:MOV TMOD,#01HMOV TH0,#0D8HMOV TL0,#0F0HMOV R2,#00HSETB EASETB ET0SETB TR0SJMP$INTT0:MOV TH0,#0D8HMOV TL0,#0F0H INC R2CJNE R2,#32H,NEXT CPL P1.1 MOV R2,#00H NEXT:RETIEND,C语言程序:#include/包含特殊功能寄存器库sbit P1_1=P11;char i;void main()TMOD=0 x01;TH0=0 xD8;TL0=0 xf0;EA=1;ET0=1;i=0;
13、TR0=1;while(1);void time0_int(void)interrupt 1/中断服务程序TH0=0 xD8;TL0=0 xf0;i+;if(i=50)P1_1=!P1_1;i=0;,方法1:用寄存器R2作计数器软件计数,中断处理方式。,方法2:用定时/计数器T1计数实现,定时/计数器T1工作于计数方式时,计数脉冲通过T1(P3.5)输入。设定时/计数器T0定时时间到对T1(P3.5)取反一次,则T1(P3.5)每20ms产生一个计数脉冲,那么定时500ms只须计数25次,设定时/计数器T1工作于方式2,初值X=256-25=231=11100111B=E7H,TH1=TL1=
14、E7H。因为定时/计数器T0工作于方式1,定时,则这时方式控制字为01100001B(61H)。定时/计数器T0和T1都采用中断方式工作。,汇编程序如下:ORG 0000HLJMP MAINORG 000BHMOV TH0,#0D8HMOV TL0,#0F0HCPL P3.5RETI,ORG 0100HMAIN:MOV TMOD,#61HMOV TH0,#0D8HMOV TL0,#0F0HMOV R2,#00HMOV TH1,#0E7HMOV TL1,#0E7HSETB EASETB ET0SETB ET1SETB TR0SETB TR1SJMP$END,ORG 001BHCPL P1.1RE
15、TI,C语言程序如下:#include/包含特殊功能寄存器库sbit P1_1=P11;sbit P3_5=P35;void main()TMOD=0 x61;TH0=0 xD8;TL0=0 xf0;TH1=0 xE7;TL1=0 xE7;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;while(1);void time0_int(void)interrupt 1/T0中断服务程序 TH0=0 xD8;TL0=0 xf0;P3_5=!P3_5;void time1_int(void)interrupt 3/T1中断服务程序 P1_1=!P1_1;,并行输入/输出接口,定时/计数器接
16、口,串行接口,中断系统,1,2,3,4,6.3 串行接口,异步通信与同步通信1.异步通信:一次传送一个字符(字节),位同步。,2.同步通信:一次传送多个字符(数据块),字符同步,波特率:波特率是指串行通信中,单位时间传送的二进制位数,单 位为bps。,MCS-51单片机串行口功能与结构,功能:MCS51有一个全双工的异步串行接口,可以用于同时收发数据的通信接口。发送、接收数据可通过查询或中断方式处理。它有四种工作方式,分别是方式0、方式1、方式2和方式3。,结构:,其中发送数据寄存器和接收数据寄存器合用一个SFRSBUF;控制寄存器包括两个SFR:SCON 和 PCON.,串行口控制寄存器SC
17、ON字节地址98H,电源控制寄存器PCON,SMOD,87H,D0,D1,D2,D3,D4,D5,D6,D7,PCON,当SMOD位为1,则串行口方式1、方式2、方式3的波特率加倍。,串行接口的工作方式,一、方式0:方式0是扩展移位寄存器的工作方式,以串行扩展IO接口。输出时将发送数据缓冲器中的内容串行地移到外部的移位寄存器,输入时格外部移位寄存器内容移入内部的输入移位寄存器,然后写入内部的接收数据缓冲器。在以方式0工作时,数据由RxD串行地输入输出,TXD输出移位脉冲,使外部的移位寄存器移位。波持率固定为振荡器频率的十二分之一。,1方式0输出 方式0输出时,串行口上外接74LSl64串行输入
18、并行输出移位寄存器的接口逻辑如图所示。TXD端输出的移位脉冲将RXD端输出的数据移入74LSl64。CPU对发送数据缓冲器SBUF写入一个数据,就启动串行口从低位开始串行发送,经过8个机器周期,串行口输出数据缓冲器内容移入外部的移位寄存器74LSl64,置位TI串行口停止移位,于是完成一个字节的输出。,74LS164串入并出移位寄存器,2方式0输入 方式0输入时,RxD作为串行数据输入线,TxD作为移位脉冲输出线,串行口与外接的并行输入串行输出的移位寄存器74LS166的接口逻辑如图所示。在REN1,RI0时启动串行口接收,TxD端输出的移位脉冲频率为fosc12,若fosc12MHz,移位速
19、率为ls位,经过8次移位,外部移位寄存器内容移入内部移位寄存器并写入SBUF,置位RI,停止移位,完成一个字节的输入,CPU读SBUF的内容使得到输入结果。,74LS166 并入(串入)串出移位寄存器,二、方式1:8位异步方式。数据格式:,1方式1输出 CPU向串行口发送数据缓冲器SBUF写入一个数据,就启动串行口发送。输出到停止位1,并置“l”发送中断标志TI,串行口输出完一个字符后停止工作,CPU执行程序判断TI1后清“0”TI,再向SBUF写入数据,启动串行口发送下一个字符。,2方式1输入 REN置“1”以后,就允许接收器接收。接收器以所选波特率的16倍的速率采样RxD端的电平。当检测到
![[信息与通信]第六章单片机内部资源及编程.ppt_第1页](https://www.31ppt.com/fileroot1/2023-5/20/1816607f-120c-4987-b784-33ecea0258b7/1816607f-120c-4987-b784-33ecea0258b71.gif)
![[信息与通信]第六章单片机内部资源及编程.ppt_第2页](https://www.31ppt.com/fileroot1/2023-5/20/1816607f-120c-4987-b784-33ecea0258b7/1816607f-120c-4987-b784-33ecea0258b72.gif)
![[信息与通信]第六章单片机内部资源及编程.ppt_第3页](https://www.31ppt.com/fileroot1/2023-5/20/1816607f-120c-4987-b784-33ecea0258b7/1816607f-120c-4987-b784-33ecea0258b73.gif)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息与通信 信息与通信第六章 单片机内部资源及编程 信息 通信 第六 单片机 内部 资源 编程

链接地址:https://www.31ppt.com/p-5615653.html