书签 分享 收藏 举报 版权申诉 / 126
上传文档赚钱

类型第6章+MCS-51单片机内部资源及编程课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4069014
  • 上传时间:2022-11-08
  • 格式:PPT
  • 页数:126
  • 大小:2.90MB
  • 【下载声明】
    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)采用)采用中断中断

    26、处理方式的程序:处理方式的程序:第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程/*-REG51.HHeader file for generic 80C51 and 80C31 microcontroller.Copyright(c)1988-2002 Keil Elektronik GmbH and Keil Software,Inc.All rights reserved.-*/#ifndef _REG51_H_#define _REG51_H_/*BYTE Register */sfr P0 =0 x80;sfr P1 =0 x90;sfr P2 =0 xA0;sfr

    27、P3 =0 xB0;sfr PSW =0 xD0;sfr ACC =0 xE0;sfr B =0 xF0;sfr SP =0 x81;sfr DPL =0 x82;sfr DPH =0 x83;sfr PCON=0 x87;sfr TCON=0 x88;sfr TMOD=0 x89;sfr TL0 =0 x8A;第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程sfr TL1 =0 x8B;sfr TH0 =0 x8C;sfr TH1 =0 x8D;sfr IE =0 xA8;sfr IP =0 xB8;sfr SCON=0 x98;sfr SBUF=0 x99;/*BIT Re

    28、gister */*PSW */sbit CY =0 xD7;sbit AC =0 xD6;sbit F0 =0 xD5;sbit RS1 =0 xD4;sbit RS0 =0 xD3;sbit OV =0 xD2;sbit P =0 xD0;/*TCON */sbit TF1 =0 x8F;sbit TR1 =0 x8E;sbit TF0 =0 x8D;sbit TR0 =0 x8C;sbit IE1 =0 x8B;sbit IT1 =0 x8A;sbit IE0 =0 x89;sbit IT0 =0 x88;/*IE */sbit EA =0 xAF;sbit ES =0 xAC;sbit

    29、 ET1 =0 xAB;sbit EX1 =0 xAA;sbit ET0 =0 xA9;sbit EX0 =0 xA8;/*IP */sbit PS =0 xBC;sbit PT1 =0 xBB;sbit PX1 =0 xBA;sbit PT0 =0 xB9;sbit PX0 =0 xB8;/*P3 */sbit RD =0 xB7;sbit WR =0 xB6;sbit T1 =0 xB5;sbit T0 =0 xB4;sbit INT1=0 xB3;sbit INT0=0 xB2;sbit TXD =0 xB1;sbit RXD =0 xB0;/*SCON */sbit SM0 =0 x9

    30、F;sbit SM1 =0 x9E;sbit SM2 =0 x9D;sbit REN =0 x9C;sbit TB8 =0 x9B;sbit RB8 =0 x9A;sbit TI =0 x99;sbit RI =0 x98;#endif第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程(2)采用)采用查询查询方式处理的程序:方式处理的程序:C语言程序:语言程序:#include /包含特殊功能寄存器库包含特殊功能寄存器库sbit P1_0=P10;void main()char i;TMOD=0 x02;TH0=0 x06;TL0=0 x06;TR0=1;for(;)if(TF0

    31、)TF0=0;P1_0=!P1_0;/查询计数溢出查询计数溢出 汇编程序:汇编程序:ORG 0000HLJMP MAINORG 0100H ;主程序;主程序MAIN:MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB TR0LOOP:JBC TF0,NEXT ;查询;查询T0计数溢出位计数溢出位SJMP LOOPNEXT:CPL P1.0SJMP LOOPSJMP$END第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程 如果定时时间大于如果定时时间大于65536s,这时用一个定时,这时用一个定时/计数器直接处理不能实现,这时可用:计数器直接处理不

    32、能实现,这时可用:1、2个定时个定时/计数器共同处理;计数器共同处理;2、1个定时个定时/计数器配合软件计数方式处理。计数器配合软件计数方式处理。【例例6-3】设系统时钟频率为设系统时钟频率为12MHz,编程实现从编程实现从P1.1输出周期为输出周期为1s的方波。的方波。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程 这时这时应产生应产生500ms的的周期定时周期定时,定时到则对,定时到则对P1.1取反就可实现。取反就可实现。由于定时时间较长,一由于定时时间较长,一个定时器个定时器不能直接实现,可用定时不能直接实现,可用定时/计数器计数器T0产生周期性为产生周期性为10ms的

    33、定时,然后的定时,然后用一个寄存器用一个寄存器R2对对10ms计数计数50次次或或T1对对T0输出的输出的20ms计数脉冲计数计数脉冲计数25次次实现。实现。系统系统时钟时钟12MHz,T0定时定时10ms,计数值,计数值N为为10000,只能选方式只能选方式1,(R2对对10ms计计数数50次次)方式方式控制字为控制字为00000001B(01H)。)。求初值求初值X:X=65536-10000=55536 =11011000 11110000BTH0=11011000B=D8H,TL0=11110000B=F0H。每每20ms输出输出1个下降沿个下降沿计计25次次分析:分析:第第6 6章章

    34、 5151单片机内部资源及编程单片机内部资源及编程(1)用寄存器)用寄存器R2作计数器软件计数,中断处理方式。作计数器软件计数,中断处理方式。汇编程序:汇编程序:ORG 0000HLJMP MAINORG 000BHLJMP INTT0ORG 0100HMAIN: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:RETI ENDC语言

    35、程序:语言程序:#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;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 6章章 5151单片机内部资源及编程单片机内部资源及编程(2)用定时用定时/计数器计数器T1计数实现:计数实现:T1工作于计数方式时,计数脉冲通过工

    36、作于计数方式时,计数脉冲通过T1(P3.5)输入。输入。T0定时时间到对定时时间到对T1(P3.5)取反一次,则取反一次,则T1(P3.5)每)每20ms产生一个计数脉冲,那么定时产生一个计数脉冲,那么定时500ms只须计数只须计数25次。次。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程设设定时定时/计数器计数器T1工作于方式工作于方式2,计数模式,计数模式,初值初值X=256-25=231=11100111B=E7H,TH1=TL1=E7H。定时定时/计数器计数器T0工作于方式工作于方式1,定时模式,方式控,定时模式,方式控制字为制字为01100001B(61H)。)。定

    37、时定时/计数器计数器T0和和T1都采用中断方式工作。都采用中断方式工作。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程汇编程序如下:汇编程序如下:ORG 0000HLJMP MAIN ORG 000BH;T0中断入口中断入口MOV TH0,#0D8HMOV TL0,#0F0HCPL P3.5RETI ORG 001BH;T1中断入口中断入口CPL P1.1RETI ORG 0100H;主程序入口;主程序入口MAIN:MOV TMOD,#61HMOV TH0,#0D8HMOV TL0,#0F0HMOV TH1,#0E7HMOV TL1,#0E7HSETB EA;开总中断;开总中

    38、断SETB ET0;允许;允许T0中断中断SETB ET1;允许允许T1中断中断SETB TR0;qidong SETB TR1SJMP$ENDC语言程序如下:语言程序如下:#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 x

    39、D8;TL0=0 xF0;P3_5=!P3_5;void time1_int(void)interrupt 3 /T1中断服务程序中断服务程序 P1_1=!P1_1;第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程长定时方法:增加一个软件长定时方法:增加一个软件计数器或一个硬件计数器。计数器或一个硬件计数器。本题采用硬件方式:本题采用硬件方式:T0T0定时定时,定时,定时10ms10ms;T1T1计数计数T0T0的定时跳变信号的定时跳变信号P1.0P1.0的负跳变次数,计满的负跳变次数,计满5050个跳变为个跳变为1 1秒。秒。(查询方法)(查询方法)START:MOV TMO

    40、D,#61H MOV TL1,#0CDH MOV TH1,#0CDH CLR P1.0 SETB TR1;启动启动T1计数计数LOOP1:CPL P1.7LOOP2:MOV TL0,#78H MOV TH0,#0ECH SETB TR0;启动启动T0定时定时LOOP3:JBC TF0,LOOP4 SJMP LOOP3LOOP4:MOV TL0,#78H MOV TH0,#0ECH CPL P1.0 JBC TF1,LOOP1 SJMP LOOP2T=2s,X=5105个个T,而最大只能,而最大只能65536个个T,不能满足要求,必须借助硬件计数器或软件循环。不能满足要求,必须借助硬件计数器或软

    41、件循环。T0定时初值:定时初值:(方式(方式1)t=10ms,X=5000D=1388H,C=216-5000=EC78H T1计数初值:计数初值:(方式(方式2)X=50D,C=28-50=CDHP P1.71.7驱动驱动LEDLED亮亮1 1秒灭秒灭1 1秒地闪烁,设时钟频率为秒地闪烁,设时钟频率为6MHz6MHz。例:例:第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程#includesbit P1_0=P10;sbit P1_7=P17;timer0 interrupt 1 using 1 /*T0中断服务程序中断服务程序*/P1_0=!P1_0;/*10ms定时时间到

    42、定时时间到,P1.0反相反相*/TH0=(65536-5000)/256;/*计数初值重装载计数初值重装载*/TL0=(65536-5000)%256;timer1 interrupt 3 using 2 /*T1中断服务程序入口中断服务程序入口*/P1_7=!P1_7;/*1s定时时间到定时时间到,灯改变状态灯改变状态*/main()P1_7=0;/*置灯初始灭置灯初始灭*/P1_0=1;/*保证第一次反相便开始计数保证第一次反相便开始计数*/TMOD=0 x61;/*定时器定时器0工作在方式工作在方式1定时,定时器定时,定时器1工作在方式工作在方式2计数计数*/TH0=(65536-500

    43、0)/256;/*预置计数初值预置计数初值*/TL0=(65536-5000)%256;TH1=256-50;TL1=256-50;IP=0 x08;/*置优先级寄存器置优先级寄存器*/EA=1;/*CPU开中断开中断*/ET0=1;/*开开T0中断中断*/ET1=1;/*开开T1中断中断*/TR0=1;/*启动启动T0*/TR1=1;/*启动启动T1*/for(;)reg51.h文件定义了所有文件定义了所有8051的特殊功能寄存器及中断的特殊功能寄存器及中断利利用用C51程程序序实实现现第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程6.3 串行接口串行接口6.3.1 通讯的

    44、基本概念通讯的基本概念一、并行通信和串行通信一、并行通信和串行通信计算机与外界的通信有两种基本方式:计算机与外界的通信有两种基本方式:并行通信并行通信和和串行通信串行通信。并行并行数据传送数据传送 同步同步 串行串行 异步(用于单片机中)异步(用于单片机中)计计 算算 机机01001001计计算算机机01001001(或外设)(或外设)D0D1D2D3D4D5D6D7控制或选通控制或选通状态状态计计算算机机计计算算机机(或外设)(或外设)第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程 并行数据传送并行数据传送串行数据传送串行数据传送原理原理各数据位同时传送各数据位同时传送数据

    45、位按位顺序进行数据位按位顺序进行优点优点传送速度快、效率高传送速度快、效率高最少只需一根传输线即可完成:成本低最少只需一根传输线即可完成:成本低缺点缺点数据位数数据位数传输线根数:成本高传输线根数:成本高速度慢速度慢应用应用传送距离传送距离30米,用于计算机内部米,用于计算机内部几米几千公里,用于计算机与外设之间几米几千公里,用于计算机与外设之间根据信息传送的方向,串行通信可以分为单工、半双工和全双工根据信息传送的方向,串行通信可以分为单工、半双工和全双工3种:种:(a)A B(b)(c)A B A B s s第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程二、同步通信和异步通

    46、信二、同步通信和异步通信串行通信按信息的格式又可分为串行通信按信息的格式又可分为异步通信异步通信和和同步通信同步通信两种方式。两种方式。1、串行异步通信方式、串行异步通信方式特点:数据特点:数据在线路上传送时是以一个在线路上传送时是以一个字符字符(字节)为单位,未传送时(字节)为单位,未传送时线路处于空闲状态,空闲线路约定为高电平线路处于空闲状态,空闲线路约定为高电平“1”。传送一个字符又。传送一个字符又称为一帧信息,传送时每一个字符前加一个低电平的起始位,然后是称为一帧信息,传送时每一个字符前加一个低电平的起始位,然后是数据位,数据位可以是数据位,数据位可以是58位,低位在前,高位在后,数据

    47、位后可以位,低位在前,高位在后,数据位后可以带一个奇偶校验位,最后是停止位,停止位用高电平表示,它可以是带一个奇偶校验位,最后是停止位,停止位用高电平表示,它可以是1位、位、1位半或位半或2位。格式如图:位。格式如图:由于一次只传送一个字符,因而一次传送的位数比较少,对发由于一次只传送一个字符,因而一次传送的位数比较少,对发送时钟和接收时钟的要求相对不高,线路简单,但传送速度较慢。送时钟和接收时钟的要求相对不高,线路简单,但传送速度较慢。第第n+1个字符个字符起始位起始位奇偶校验位奇偶校验位停止位停止位下一个起始位下一个起始位D2D1D0D3D4D5D6D7数据位数据位D0D10010/10/

    48、10/10/10/10/10/10/10/10/10/1D2第第n个字符个字符空闲空闲“1”第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程2、串行同步通信方式、串行同步通信方式 串行同步通信方式的特点是数据在线路上传送时以串行同步通信方式的特点是数据在线路上传送时以字符块字符块为单为单位,一次传送多个字符,传送时须在前面加上一个或两个同步字符,位,一次传送多个字符,传送时须在前面加上一个或两个同步字符,后面加上校验字符,格式如图:后面加上校验字符,格式如图:同步方式时一次连续传送多个字符,传送的位数多,对发送同步方式时一次连续传送多个字符,传送的位数多,对发送时钟和接收时钟要

    49、求较高,往往用同一个时钟源控制,控制线路复时钟和接收时钟要求较高,往往用同一个时钟源控制,控制线路复杂,传送速度快。杂,传送速度快。三、波特率三、波特率波特率是指串行通信中,单位时间传送的二进制位数,单位为波特率是指串行通信中,单位时间传送的二进制位数,单位为bps。在异步通信中,传输速度往往又可用每秒传送多少个字节来在异步通信中,传输速度往往又可用每秒传送多少个字节来表示(表示(Bps)。它与波特率的关系为:)。它与波特率的关系为:波特率(波特率(bps)=1个字符的二进制位数个字符的二进制位数字符字符/秒(秒(Bps)例如:每秒传送例如:每秒传送200个字符,每个字符个字符,每个字符1位起

    50、始位、位起始位、8个数据位、个数据位、1个校验位和个校验位和1个停止位。则波特率为个停止位。则波特率为2200bps。第第6 6章章 5151单片机内部资源及编程单片机内部资源及编程异步串行通信的信号形式:异步串行通信的信号形式:1、远距离直接传输数字信号,信号会发生畸变,因此要、远距离直接传输数字信号,信号会发生畸变,因此要把数字信号转变为模拟信号再进行传送。可利用光缆、把数字信号转变为模拟信号再进行传送。可利用光缆、专用通信电缆或电话线。专用通信电缆或电话线。方法:通常使用频率调制法(频带传送方式)。方法:通常使用频率调制法(频带传送方式)。通常:通常:“1”:1270Hz或或2225Hz

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第6章+MCS-51单片机内部资源及编程课件.ppt
    链接地址:https://www.163wenku.com/p-4069014.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库