第6章+MCS-51单片机内部资源及编程课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第6章+MCS-51单片机内部资源及编程课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 单片机 内部 资源 编程 课件
- 资源描述:
-
1、第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程第第6章章 MCS-51单片机内部资源及编程单片机内部资源及编程 6.1 并行输入并行输入/输出接口输出接口6.2 定时定时/计数器接口计数器接口6.3 串行接口串行接口6.4 中断系统中断系统第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程6.1 并行输入并行输入/输出接口输出接口 MCS-51单片机的内部资源主要有:单片机的内部资源主要有:1、并行、并行I/O口;口;2、定时器、定时器/计数器;计数器;3、串行接口;、串行接口;4、中断系统。、中断系统。6.1.1 并行口应用与编程并行口应用与编程【例例5-1】
2、利用单片机的利用单片机的P1口接口接8个发光二极管,个发光二极管,P0口接口接8个开关,编程实现,当开关动作时,对应的个开关,编程实现,当开关动作时,对应的发光二极管亮或灭。发光二极管亮或灭。C51语言程序:语言程序:#include void main(void)unsigned char i;P0=0 xFF;for(;)i=P0;P1=i;只须把只须把P0口的内容读入后,通过口的内容读入后,通过P1口输出即可。口输出即可。汇编程序:汇编程序:ORG 0100H MOV P0,#0FFHLOOP:MOV A,P0 MOV P1,A SJMP LOOPMCS-51P1.7P1.6P1.1P1
3、.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程6.2 定时定时/计数器接口计数器接口定时方法:定时方法:1 1、硬件定时:、硬件定时:较长时间;不够灵活、方便;较长时间;不够灵活、方便;2 2、软件定时:、软件定时:编循环程序,时间精确;占用编循环程序,时间精确;占用CPUCPU;3 3、可编程定时器定时:、可编程定时器定时:对系统时钟脉冲记对系统时钟脉冲记数,灵活方便数,灵活方便。计数器有计数器有加加1计数计数或或减减1计数计数两种形式。两种形式。加加1计数:计满回计数:计满回0溢出;溢出;减减1计数:计满
4、回计数:计满回0。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程6.2.1 定时定时/计数器的主要特性计数器的主要特性1、MCS-51系列中:系列中:51子系列有子系列有2个个16位的可编程定时位的可编程定时/计数器:计数器:定时定时/计数器计数器T0和定时和定时/计数器计数器T1;52子系列有子系列有3个:还有一个定时个:还有一个定时/计数器计数器T2。2、每个定时、每个定时/计数器通过编程设定来实现:计数器通过编程设定来实现:对系统时钟(对系统时钟(fosc)计数实现)计数实现定时定时;对外部信号(对外部信号(T0/T1引脚)计数实现引脚)计数实现计数计数功能。功能。3、
5、每个定时、每个定时/计数器都有多种工作方式,通过编程可设定工计数器都有多种工作方式,通过编程可设定工作于某种方式。作于某种方式。T0有有4种工作方式;种工作方式;T1有有3种工作方式;种工作方式;T2有有3种工作方式。种工作方式。4、每一个定时、每一个定时/计数器定时计数时间到时产生溢出,使相应计数器定时计数时间到时产生溢出,使相应的溢出位置位,溢出可通过的溢出位置位,溢出可通过查询查询或或中断中断方式处理。方式处理。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程6.2.2 定时定时/计数器计数器T0、T1的结构及工作原理的结构及工作原理TH1TL1TH0TL0TCONTMO
6、D启动启动启动启动溢出溢出溢出溢出工工作作方方式式工工作作方方式式中断请求中断请求内部总线内部总线TcyT1T0第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程加法计数器在使用时注意两个方面:加法计数器在使用时注意两个方面:1、由于它是、由于它是加法计数器加法计数器,每来一个计数脉冲,加法器中,每来一个计数脉冲,加法器中的内容加的内容加1个单位,当由全个单位,当由全1加到全加到全0时计满溢出,因而,时计满溢出,因而,如果要计如果要计N个单位,则首先应向计数器置初值为个单位,则首先应向计数器置初值为X,且有:,且有:初值初值X=最大计数值(满值)最大计数值(满值)M计数值计数值N
7、 在不同的计数方式下,最大计数值(满值)不一样,在不同的计数方式下,最大计数值(满值)不一样,一般来说,当定时器一般来说,当定时器/计数器工作于计数器工作于n位计数方式时,它的位计数方式时,它的最大计数值(满值)为最大计数值(满值)为M=2n。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程2、当定时、当定时/计数器工作于计数器工作于计数方式计数方式时,对芯片引脚时,对芯片引脚T0(P3.4)或)或T1(P3.5)上的输入脉冲计数,)上的输入脉冲计数,计数过程如计数过程如下下:在每一个机器周期的在每一个机器周期的S5P2时刻对时刻对T0(P3.4)或)或T1(P3.5)上信号采
8、样一次,如果上一个机器周期采样到)上信号采样一次,如果上一个机器周期采样到高电平,下一个机器周期采样到低电平,则计数器在下一高电平,下一个机器周期采样到低电平,则计数器在下一个机器周期的个机器周期的S3P2时刻加时刻加1计数一次。计数一次。因而因而需要两个机器周期才能识别一个计数脉冲需要两个机器周期才能识别一个计数脉冲,所,所以以。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程6.2.3 定时定时/计数器的方式和控制寄存器计数器的方式和控制寄存器一定时一定时/计数器的方式寄存器计数器的方式寄存器TMOD其中:其中:C/T:定时或计数方式选择位:定时或计数方式选择位:当当C/T
9、=1时工作于计数方式:计数引脚时工作于计数方式:计数引脚T0(T1)输入的负脉冲;输入的负脉冲;当当C/T=0时工作于定时方式:计数内部机器周期脉冲。时工作于定时方式:计数内部机器周期脉冲。GATE:门控位,用于控制定时门控位,用于控制定时/计数器的启动是否受外部中断计数器的启动是否受外部中断请求信号的影响。请求信号的影响。M1、M0为工作方式选择位为工作方式选择位,用于对,用于对T0的的4种工作方式,种工作方式,T1的的3种工作方式进行选择,选择情况如下:种工作方式进行选择,选择情况如下:第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程二定时二定时/计数器的控制寄存器计数器的
10、控制寄存器TCON其中:其中:TF1:定时:定时/计数器计数器T1的溢出标志位,当定时的溢出标志位,当定时/计数器计数器T1计满时,计满时,由由使它置位,如中断允许则触发使它置位,如中断允许则触发T1中断。进入中断处理后由内中断。进入中断处理后由内部硬件电路部硬件电路。TR1:定时:定时/计数器计数器T1的启动位,可由的启动位,可由:当当TR1=1时启动;时启动;TR1=0时停止。时停止。TF0:定时:定时/计数器计数器T0的溢出标志位,当定时的溢出标志位,当定时/计数器计数器T0计满时,计满时,由由使它置位,如中断允许则触发使它置位,如中断允许则触发T0中断。进入中断处理后由内中断。进入中断
11、处理后由内部硬件电路部硬件电路。TR0:定时:定时/计数器计数器T0的启动位,可由的启动位,可由:当当TR0=1时启动;时启动;TR0=0时停止。时停止。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程5.2.3 定时定时/计数器的工作方式计数器的工作方式一、方式一、方式0 方式方式0是是13位的定时位的定时/计数方式,因而最大计数值(满值)为计数方式,因而最大计数值(满值)为M=213=8192。如计数值为如计数值为N,则置入的初值,则置入的初值X为:为:X=8192-N 如定时如定时/计数器计数器T0的计数值为的计数值为1000,则初值为,则初值为7192,转换成二进制数为
12、,转换成二进制数为1110000011000B,则,则TH0=11100000B=E0H,TL0=00011000B=18H。foscfosc第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程 方式方式0为为13位计数位计数,由,由TL0的低的低5位(高位(高3位未用)和位未用)和TH0的的8位组成。位组成。TL0的低的低5位溢出时向位溢出时向TH0进位,进位,TH0溢溢出时,置位出时,置位TCON中的中的TF0标志,向标志,向CPU发出中断请求。发出中断请求。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程二、方式二、方式1 方式方式1的结构与方式的结构与方式0
13、结构相同,只是把结构相同,只是把13位变成位变成16位,位,16位位的加法计数器被全部用上。的加法计数器被全部用上。由于是由于是16位的定时位的定时/计数方式,因而最大计数值(满值)为计数方式,因而最大计数值(满值)为M=216=65536。如计数值为。如计数值为N,则置入的初值,则置入的初值X为:为:X=65536-N如定时如定时/计数器计数器T0的计数值为的计数值为1000,则初值为,则初值为65536-1000=64536,转换成二进制数为,转换成二进制数为1111110000011000B,则则TH0=11111100B=FCH,TL0=00011000B=18 H。第第6 6章章 5
14、151单片机内部资源及编程单片机内部资源及编程 16X=2-N 方式方式1的计数位数是的计数位数是16位,由位,由TL0作为低作为低8位、位、TH0作为高作为高8位,组成了位,组成了16位加位加1计数器计数器。计数个数与计数初值的关系为:计数个数与计数初值的关系为:第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程三、方式三、方式2 方式方式2 2下,下,1616位的计数器只用了位的计数器只用了8 8位来计数,用的是位来计数,用的是TL0TL0(或(或TL1TL1)的)的8 8位来进行计数,而位来进行计数,而TH0TH0(或(或TH1TH1)用于)用于保存初值保存初值。当当TL0
15、TL0(或(或TL1TL1)计满时则溢出,一方面使)计满时则溢出,一方面使TF0TF0(或(或TF1TF1)置位,另一方面溢出信号又会触发上图中的三态门,使三态置位,另一方面溢出信号又会触发上图中的三态门,使三态门导通,门导通,TH0TH0(或(或TH1TH1)的值就自动装入)的值就自动装入TL0TL0(或(或TL1TL1)。)。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程 由于是由于是8位的定时位的定时/计数方式,因而最大计数值(满值)计数方式,因而最大计数值(满值)为为M=28=256。如计数值为。如计数值为N,则置入的初值,则置入的初值X为:为:X=256-N 如定时
16、如定时/计数器计数器T0的计数值为的计数值为100,则初值为,则初值为256-100=156,转换成二进制数为,转换成二进制数为10011100B,则,则TH0=TL0=10011100B。注意注意:由于方式:由于方式2计满后,溢出信号会触发三态门自动计满后,溢出信号会触发三态门自动地把地把TH0(或(或TH1)的值装入)的值装入TL0(或(或TL1)中,因而如)中,因而如果要重新实现果要重新实现N个单位的计数,个单位的计数,不用重新置入初值不用重新置入初值。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程 8X=2-N方式方式2为自动重装初值的为自动重装初值的8位计数方式。位
17、计数方式。工作方式工作方式2 2特别适合于用作较精确的脉冲信号发生器。特别适合于用作较精确的脉冲信号发生器。计数个数与计数初值的关系为:计数个数与计数初值的关系为:第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程四、方式四、方式3 方式方式3只有只有定时定时/计数器计数器T0才有,当才有,当M1M0两位为两位为11时,时,定时定时/计数器计数器T0工作于方式工作于方式3,方式,方式3的结构如下图。的结构如下图。foscfosc振荡器振荡器INT0T0第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程 方式方式3 3下下T0T0被分为被分为两个部分两个部分TL0TL
18、0和和TH0TH0,其中,其中,TL0TL0可作为定时可作为定时/计数器使用计数器使用,占用,占用T0T0的全部控制位:的全部控制位:GATEGATE、C/TC/T、TR0TR0和和TF0TF0;TH0TH0固定只能作定时器使用固定只能作定时器使用,对机器周期进行计数,这时它,对机器周期进行计数,这时它占用定时占用定时/计数器计数器T1T1的的TR1TR1位、位、TF1TF1位和位和T1T1的中断资源。的中断资源。foscfosc振荡器振荡器INT0T0第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程 方式方式3只适用于定时只适用于定时/计数器计数器T0,定时器定时器T1处于方
19、式处于方式3时相当于时相当于TR1=0,停止计数。,停止计数。工作方式工作方式3将将T0分成为两个独立的分成为两个独立的8位计数器位计数器TL0和和TH0。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程6.2.4 定时定时/计数器的初始化编程及应用计数器的初始化编程及应用一定时一定时/计数器的编程计数器的编程MCS-51单片机定时单片机定时/计数器初始化过程如下:计数器初始化过程如下:1根据要求选择方式,确定方式控制字,写入方式控制寄根据要求选择方式,确定方式控制字,写入方式控制寄存器存器TMOD。2计算计算定时定时/计数器的计数器的计数值计数值,再由计数值求得,再由计数值求
20、得初值初值,写入,写入初值寄存器(初值寄存器(TL/TH)。)。3开放开放定时定时/计数器中断(后面须编写中断服务程序)。计数器中断(后面须编写中断服务程序)。4设置定时设置定时/计数器控制寄存器计数器控制寄存器TCON的值,启动定时的值,启动定时/计数计数器开始工作。器开始工作。5等待定时等待定时/计数时间到,定时计数时间到,定时/计数到则执行计数到则执行中断中断服务程服务程序;如用序;如用查询查询处理则编写查询程序判断溢出标志,溢出标志处理则编写查询程序判断溢出标志,溢出标志等于等于1,则进行相应处理。,则进行相应处理。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程例:例
21、:T0运行于定时器状态,时钟振荡周期为运行于定时器状态,时钟振荡周期为12MHz,要求,要求定时定时100s。求不同工作方式时的定时初值。求不同工作方式时的定时初值C。解:解:fosc=12MHz T=1s X=100s/1s=(100)D=64H方式方式0(13位方式):位方式):C=213-64H=1F9CH方式方式1(16位方式):位方式):C=216-64H=FF9CH方式方式2、3(8位方式):位方式):C=28-64H=9CH注意:注意:工作方式工作方式0 0的初值装入方法:的初值装入方法:1F9CH=1F9CH=1 1111 1001 1111 1001 1 1100 1100
22、B B 可见,可见,TH0=0FCH,TL0=1CHTL0TL0的低的低5 5位位TH0TH0的的8 8位位MOV TH0,#0FCHMOV TL0,#1CHT=12/fosc第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程二定时二定时/计数器的应用计数器的应用 通常利用定时通常利用定时/计数器来计数器来产生周期性产生周期性的的事事件件。例如。例如:产生产生周期性波形。周期性波形。思路思路:利用周期性的定时,定时时间到则对利用周期性的定时,定时时间到则对输出端进行相应的处理输出端进行相应的处理。如:产生如:产生周期性的方波只须定时时间到对周期性的方波只须定时时间到对输出端取反一
23、次即可。输出端取反一次即可。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程【例【例6-2】设系统时钟频率为设系统时钟频率为12MHz,用定时,用定时/计数器计数器T0编编程实现从程实现从P1.0输出周期为输出周期为500s的方波。的方波。分析:分析:从从P1.0P1.0输出周期为输出周期为500500s s的方波,只须的方波,只须P1.0P1.0每每250250s s取反一次则可。取反一次则可。当系统时钟为当系统时钟为12MHz12MHz,定时,定时/计数器计数器T0T0工作于方式工作于方式2 2时,最时,最大的定时时间为大的定时时间为256256s s,满足,满足25025
24、0s s的定时要求,方式控制字的定时要求,方式控制字应设定为应设定为00000000 00100010B B(02H02H)。)。系统时钟为系统时钟为12MHz12MHz,定时,定时250250s s,计数值,计数值N N为为250250,初值,初值X=256-250=6X=256-250=6,则,则TH0=TL0=TH0=TL0=06H06H。500sT1T0第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程汇编程序:汇编程序:ORG0000HLJMP MAINORG 000BH ;T0中断处理程序中断处理程序CPL P1.0RETIORG 0100H ;主程序;主程序MAIN
25、:MOV TMOD,#02H ;选择;选择T0的方式的方式2,定时功能,定时功能MOV TH0,#06HMOV TL0,#06HSETB EASETB ET0SETB TR0 ;启动;启动T0SJMP$ENDC语言程序:语言程序:#include /包含特殊功能寄存器库包含特殊功能寄存器库sbit P1_0=P10;void main(void)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)采用)采用中断中断
展开阅读全文