第6章MCS-51单片机内部资源及编程.ppt





《第6章MCS-51单片机内部资源及编程.ppt》由会员分享,可在线阅读,更多相关《第6章MCS-51单片机内部资源及编程.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 MCS-51单片机内部资源及编程 第6章MCS-51单片机内部资源及编程 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第6章 MCS-51单片机内部资源及编程 C51语言程序:#include void main(void)unsigned char i;P0=0 xff;for(;)i=P0;P1=i;第6章 MCS-51单片机内部资源及编程 6.2 定时定时/计数器接口计数器接口6.2.1 定时定时/计数器的主要特性计数器的主要特性1MCS-51系列
2、中51子系列有两个16位的可编程定时/计数器:定时/计数器T0和定时/计数器T1,52子系列有三个,还有一个定时/计数器T2。2每个定时/计数器既可以对系统时钟计数实现定时,也可以对外部信号计数实现计数功能,通过编程设定来实现。3每个定时/计数器都有多种工作方式,其中T0有四种工作方式;T1有三种工作方式,T2有三种工作方式。通过编程可设定工作于某种方式。4每一个定时/计数器定时计数时间到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。第6章 MCS-51单片机内部资源及编程 6.2.1 定时定时/计数器计数器T0、T1的结构及工作原理的结构及工作原理TH1TL1TH0TL0TC
3、ONTMOD启动启动溢出溢出工作方式工作方式中断请求内部总线TcyT1T0第6章 MCS-51单片机内部资源及编程 加法计数器在使用时注意两个方面。第一,由于它是加法计数器,每来一个计数脉冲,加法器中的内容加1个单位,当由全1加到全0时计满溢出,因而,如果要计N个单位,则首先应向计数器置初值为X,且有:初值初值X=最大计数值(满值)最大计数值(满值)M计数值计数值N 在不同的计数方式下,最大计数值(满值)不一样,一般来说,当定时器/计数器工作于R位计数方式时,它的最大计数值(满值)为2的R次幂。第二,当定时/计数器工作于计数方式时,对芯片引脚T0(P3.4)或T1(P3.5)上的输入脉冲计数,
4、计数过程如下:在每一个机器周期的S5P2时刻对T0(P3.4)或T1(P3.5)上信号采样一次,如果上一个机器周期采样到高电平,下一个机器周期采样到低电平,则计数器在下一个机器周期的S3P2时刻加1计数一次。因而需要两个机器周期才能识别一个计数脉冲,所以外部计数脉冲的频率应小于振荡频率的1/24。第6章 MCS-51单片机内部资源及编程 6.2.2 定时定时/计数器的方式和控制寄存器计数器的方式和控制寄存器一定时一定时/计数器的方式寄存器计数器的方式寄存器TMODTMODD7D6D5D4D3D2D1D0(89H)GATEC/TM1M0GATEC/TM1M0定时器1 定时器0其中:M1、M0为工
5、作方式选择位,用于对T0的四种工作方式,T1的三种工作方式进行选择,选择情况如下 M1M0工作方式方式说明00013位定时/计数器01116位定时/计数器1028位自动重置定时/计数器113两个8位定时/计数器(只有T0有)第6章 MCS-51单片机内部资源及编程 C/T:定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0时工作于定时方式。GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。二定时二定时/计数器的控制寄存器计数器的控制寄存器TCONTCOND7D6D5D4D3D2D1D0(88H)TF1TR1TF0TR0IE1IT1IE0IT0其中:TF1:
6、定时/计数器T1的溢出标志位,当定时/计数器T1计满时,由硬件使它置位,如中断允许则触发T1中断。进入中断处理后由内部硬件电路自动清除。TR1:定时/计数器T1的启动位,可由软件置位或清零,当TR1=1时启动;TR1=0时停止。第6章 MCS-51单片机内部资源及编程 TF0:定时/计数器T0的溢出标志位,当定时/计数器T0计满时,由硬件使它置位,如中断允许则触发T0中断。进入中断处理后由内部硬件电路自动清除。TR0:定时/计数器T0的启动位,可由软件置位或清零,当TR0=1时启动;TR0=0时停止。6.2.3 定时定时/计数器的工作方式计数器的工作方式一方式一方式0振荡器12TLx(低5位)
7、THx(高8位)TFx与或TxTRxGATEINTxS2S1C/TTcy中断请求第6章 MCS-51单片机内部资源及编程 方式1是13位的定时/计数方式,因而最大计数值(满值)为2的13次幂,等于8192。如计数值为N,则置入的初值X为:X=8192-N 如定时/计数器T0的计数值为1000,则初值为7192,转换成二进制数为1110000011000B,则TH0=11100000B,TL0=00011000B。二方式二方式1方式1的结构与方式0结构相同,只是把13位变成16位,16位的加法计数器被全部用上。由于是16位的定时/计数方式,因而最大计数值(满值)为2的16次幂,等于65536。如
8、计数值为N,则置入的初值X为:X=65536-N如定时/计数器T0的计数值为1000,则初值为65536-1000=64536,转换成二进制数为1111110000011000B,则TH0=11111100B,TL0=00011000B。第6章 MCS-51单片机内部资源及编程 三方式三方式2振荡器12TLx(8位)THx(8位)TFx与或TxTRxGATEINTxS2S1C/TTcy中断请求重装初值8 方式2下,16位的计数器只用了8位来计数,用的是TL0(或TL1)的8位来进行计数,而TH0(或TH1)用于保存初值。当TL0(或TL1)计满时则溢出,一方面使TF0(或TF1)置位,另一方面
9、溢出信号又会触发图6.5上的三态门,使三态门导通,TH0(或TH1)的值就自动装入TL0(或TL1)。第6章 MCS-51单片机内部资源及编程 由于是8位的定时/计数方式,因而最大计数值(满值)为2的8次幂,等于256。如计数值为N,则置入的初值X为:X=256-N 如定时/计数器T0的计数值为100,则初值为256-100=156,转换成二进制数为10011100B,则TH0=TL0=10011100B。注意:由于方式2计满后,溢出信号会触发三态门自动地把TH0(或TH1)的值装入TL0(或TL1)中,因而如果要重新实现N个单位的计数,不用重新置入初值。四方式四方式3 方式3只有定时/计数器
10、T0才有,当M1M0两位为11时,定时/计数器T0工作于方式3,方式3的结构如下图.方式3下,定时/计数器T0被分为两个部分TL0和TH0,其中,TL0可作为定时/计数器使用,占用T0的全部控制位:GATE、C/T、TR0和TF0;而TH0固定只能作定时器使用,对机器周期进行计数,这时它占用定时/计数器T1的TR1位、TF1位和T1的中断资源。第6章 MCS-51单片机内部资源及编程 振荡器12TL0(8位)TF0与或T0TR0GATEINT0S2S1C/TTcy中断请求TH0(8位)TF1S2中断请求T1TR1第6章 MCS-51单片机内部资源及编程 6.2.4 定时定时/计数器的初始化编程
11、及应用计数器的初始化编程及应用一定时一定时/计数器的编程计数器的编程MCS-51单片机定时/计数器初始化过程如下:1根据要求选择方式,确定方式控制字,写入方式控制寄存器TMOD。2根据要求计算定时/计数器的计数值,再由计数值求得初值,写入初值寄存器。3根据需要开放定时/计数器中断(后面须编写中断服务程序)。4设置定时/计数器控制寄存器TCON的值,启动定时/计数器开始工作。5.等待定时/计数时间到,到则执行中断服务程序;如用查询处理则编写查询程序判断溢出标志,溢出标志等于1,则进行相应处理。第6章 MCS-51单片机内部资源及编程 二定时二定时/计数器的应用计数器的应用 通常利用定时/计数器来
12、产生周期性的波形。利用定时/计数器产生周期性波形的基本思想是:利用定时/计数器产生周期性的定时,定时时间到则对输出端进行相应的处理。如产生周期性的方波只须定时时间到对输出端取反一次即可。【例【例6-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
13、=6,则TH0=TL0=06H。第6章 MCS-51单片机内部资源及编程 汇编程序:ORG 0000HLJMP MAINORG 000BH ;中断处理程序CPL P1.0RETIORG 0100H ;主程序MAIN:MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB EASETB ET0SETB TR0SJMP$ENDC语言程序:#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(v
14、oid)interrupt 1 /中断服务程序 P1_0=!P1_0;(1)采用中断处理方式的程序:采用中断处理方式的程序:第6章 MCS-51单片机内部资源及编程(2)采用查询方式处理的程序)采用查询方式处理的程序汇编程序:ORG 0000HLJMP MAINORG 0100H ;主程序MAIN:MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB TR0LOOP:JBC TF0,NEXT ;查询计数溢出SJMP LOOPNEXT:CPL P1.0SJMP LOOPSJMP$ENDC语言程序:#include /包含特殊功能寄存器库sbit P1_0=P10;v
15、oid main()char i;TMOD=0 x02;TH0=0 x06;TL0=0 x06;TR0=1;for(;)if(TF0)TF0=0;P1_0=!P1_0;/查询计数溢出第6章 MCS-51单片机内部资源及编程 如果定时时间大于65536s,这时用一个定时/计数器直接处理不能实现,这时可用两个定时/计数器共同处理或一个定时/计数器配合软件计数方式处理。【例【例6-3】设系统时钟频率为12MHZ,编程实现从P1.1输出周期为1s的方波。根据例6-2的处理过程,这时应产生500ms的周期性的定时,定时到则对P1.1取反就可实现。由于定时时间较长,一个定时/计数器不能直接实现,可用定时/
16、计数器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。第6章 MCS-51单片机内部资源及编程(1)用寄存器R2作计数器软件计数,中断处理方式。汇编程序:ORG 0000HLJMP MAINORG 000BHLJMP INTT0ORG 0100
17、HMAIN:MOV TMOD,#01HMOV TH0,#0D8HMOV TL0,#0F0HMOV R2,#00HSETB EASETB ET0SETB TR0SJMP$INTT0:MOV TH0,#0D8HMOV TL0,#0F0HINC R2CJNE R2,#32H,NEXTCPL P1.1MOV R2,#00HNEXT:RETIEND第6章 MCS-51单片机内部资源及编程 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;TR0=1
18、;while(1);void time0_int(void)interrupt 1 /中断服务程序TH0=0 xD8;TL0=0 xf0;i+;if(i=50)P1_1=!P1_1;i=0;第6章 MCS-51单片机内部资源及编程(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=E7H。因为定时/计数器T
19、0工作于方式1,定时,则这时方式控制字为01100001B(61H)。定时/计数器T0和T1都采用中断方式工作。汇编程序如下:ORG 0000HLJMP MAINORG 000BHMOV TH0,#0D8HMOV TL0,#0F0HCPL P3.5RETIORG 001BHCPL P1.1RETI第6章 MCS-51单片机内部资源及编程 ORG 0100HMAIN:MOV TMOD,#61HMOV TH0,#0D8HMOV TL0,#0F0HMOV R2,#00HMOV TH1,#0E7HMOV TL1,#0E7HSETB EASETB ET0SETB ET1SETB TR0SETB TR1S
20、JMP$ENDC语言程序如下:#include /包含特殊功能寄存器库sbit P1_1=P11;sbit P3_5=P35;void main()第6章 MCS-51单片机内部资源及编程 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中断服务程序 P
21、1_1=!P1_1;第6章 MCS-51单片机内部资源及编程 6.3 串行接口串行接口6.3.1 通讯的基本概念通讯的基本概念一并行通信和串行通信一并行通信和串行通信计算机01001001计算机01001001(或外设)D0D1D2D3D4D5D6D7控制或选通状态计算机计算机(或外设)计算机与外界的通信有两种基本方式:并行通信和串行通信。第6章 MCS-51单片机内部资源及编程 根据信息传送的方向,串行通信可以分为单工、半双工和全双工3种。(a)A B(b)(c)A B A B s s二同步通信和异步通信二同步通信和异步通信串行通信按信息的格式又可分为异步通信和同步通信两种方式。1串行异步通
22、信方式串行异步通信方式 串行异步通信方式的特点是数据在线路上传送时是以一个字符(字节)为单位,未传送时线路处于空闲状态,空闲线路约定为高电平“1”。传送一个字符又称为一帧信息,传送时每一个字符前加一个低电平的起始位,然后是数据位,数据位可以是58位,低位在前,高位在后,数据位后可以带一个奇偶校验位,最后是停止位,停止位用高电平表示,它可以是1位、1位半或2位。格式如图.第6章 MCS-51单片机内部资源及编程 第n+1个字符起始位奇偶校验位停止位下一个起始位D2D1D0D3D4D5D6D7数据位D0D10010/10/10/10/10/10/10/10/10/10/10/1D2第n个字符 由于
23、一次只传送一个字符,因而一次传送的位数比较少,对发送时钟和接收时钟的要求相对不高,线路简单,但传送速度较慢。2串行同步通信方式串行同步通信方式串行同步通信方式的特点是数据在线路上传送时以字符块为单位,一次传送多个字符,传送时须在前面加上一个或两个同步字符,后面加上校验字符,格式如图:同步字符1同步字符2数据块校验字符1校验字符2同步方式时一次连续传送多个字符,传送的位数多,对发送时钟和接收时钟要求较高,往往用同一个时钟源控制,控制线路复杂,传送速度快。第6章 MCS-51单片机内部资源及编程 三波特率三波特率波特率是指串行通信中,单位时间传送的二进制位数,单位为bps。在异步通信中,传输速度往
24、往又可用每秒传送多少个字节来表示(Bps)。它与波特率的关系为:波特率(bps)=一个字符的二进制位数字符/秒(Bps)例如:每秒传送200个字符,每个字符1位起始位、8个数据位、1个校验位和1个停止位。则波特率为2200bps。6.3.2 MCS-51单片机串行口功能与结构单片机串行口功能与结构一功能一功能MCS-51单片机具有一个全双工的串行异步通信接口,可以同时发送、接收数据,发送、接收数据可通过查询或中断方式处理,使用十分灵活第6章 MCS-51单片机内部资源及编程 它有四种工作方式,分别是方式0、方式1、方式2和方式3。其中:方式0,称为同步移位寄存器方式,一般用于外接移位寄存器芯片
25、扩展I/O接口。方式1,8位的异步通信方式,通常用于双机通信。方式2和方式3,9位的异步通信方式,通常用于多机通信。二结构二结构发送SBUF接收SBUF发送控制器接收控制器输入移位寄存器串行口控制寄存器波特率发生器串行口中断内部总线门+RXD(P3.0)TXD(P3.1)RITI第6章 MCS-51单片机内部资源及编程 MCS-51单片机串行口主要由发送数据寄存器、发送控制器、输出控制门、接收数据寄存器、接收控制器、输入移位寄存器等组成 从用户使用的角度,它由三个特殊功能寄存器组成:发送数据寄存器和接收数据寄存器合起用一个特殊功能寄存器SBUF(串行口数据寄存器),串行口控制寄存器SCON和电
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 单片机 内部 资源 编程

限制150内