




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,胡景春,单片机原理及应用,4.1并行口及其应用4.2定时器及其应用4.3串行接口UART4.489C52FLASH程序存储器,第四章MCS-51单片机功能模块及其应用,4.1并行口及其应用,MCS51单片机中有个双向(位)并行I/O端口(线),每线都配备独立的端口锁存器、输出驱动器和输入缓冲器,用于与外界设备之间交换信息4.1.1P0口。,P0口一位结构图,P0口除了作普通的I/O口,直接和外部设备打交道外;还用作片外总线的地址总线AB0-AB7的低八位和数据总线。注:单片机复位后4个端口对外均呈现高电平,P2口除了作普通的I/O口,直接和外部设备打交道外;还用作片外总线的地址总线的高八位地址线AB8-AB15,P2口P0口在作输出入口使用时,由于它无内部上拉电阻,为了在口线上输出高电平并具有一定的驱动能力,必须外接上拉电阻。注意:作输入口使用时,为了防止口锁存器对输入口线的输入信号造成影响,必须先往口锁存器写1。同理,P2口作输入时,也必须先往口锁存器写1。,P2口一位结构图,P1口一位结构图,P1口只用作普通输入输出口,P1口从单片机的使用角度来看,P1是一个真正的双向口,而其他三个端口都是准双向口。注意:和P0、P2口一样,为防止口锁存器对输入口线造成影响,P1口作输入时,也必须先往口锁存器写1。,P3口一位结构图,P3口除了作普通的I/O口(功能和P1口一样)直接和外部设备打交道外;还具有第二功能。,P3.0串行输入口(RXD)P3.1串行输出口(TXD)P3.2外中断0(INT0)P3.3外中断1(INT1)P3.5定时/计数器1的外部输入口(T1)P3.6外部数据存储器写选通(WR)P3.4定时/计数器0的外部输入口(T0)P3.7外部数据存储器读选通(RD),4.3中断系统应用举例,【例1.1】:如图所示为电加热锅炉控制工作原理图和单片机控制系统:当压力报警信号发出时,要求排汽电磁阀通电,打开排汽电磁阀以减少锅炉内蒸汽压力;当低水位限位报警信号发出时,打开进水阀进水;当高水位限位报警信号发出时,关闭进水阀停止进水;当温度达到100时,关闭电加热丝;当温度低于95时,接通电加热丝。请设计控制软件。,图4-3电加热锅炉控制工作示意图,解:从示意图和控制系统电原理图中可以看出,该系统有5个中断源,而单片机只有2个外部中断请求,本系统中5个中断源通过或非门后接入外部中断1。5个中断源中哪个发生中断请求还需要通过查询程序进行判断,查询顺序的先后决定了这5个中断源的优先级高低。参考程序如下:,ORG0000HLJMPMAINORG0013HLJMPINT1ORG0100HMAIN:SETBEX1;允许INT1中断SETBEA;开中断HALT:SJMPHALT;等待中断ORG1000H中断服务程序:INT1:JBP1.0PRESS;P1.0=1转压力报警服务程序LOOP1:JBP1.1HIGH;P1.1=1转高水位服务程序JBP1.2LOW;P1.2=1转低水位服务程序,LOOP2:JBP1.3HEATOFF;P1.3=1转100服务程序JBP1.4HEATON;P1.4=1转95服务程序LOOP3:RETIPRESS:SRTBP1.5;压力报警服务程序JBP1.0PRESSCLRP1.5SJMPLOOP1HIGH:CLRP1.6;高水位服务程序SJMPLOOP2LOW:SETBP1.6;低水位服务程序SJMPLOOP2HEATOFF:CLRP1.7;100服务程序SJMPLOOP3HEATON:SETBP1.7;95服务程序SJMPLOOP3END,5.1定时/计数器的概述5.2定时/计数器的控制5.3定时/计数器的工作方式5.4定时/计数器的一般编程步骤5.5定时/计数器的应用举例,第五章MCS-51单片机的定时/计数器,5.1定时/计数器概述,在单片机的内部结构中,有两个16位可编程的定时/计数器,它们具有四种工作方式,其控制字和状态均在相应的特殊功能寄存器中,通过对控制寄存器的编程,就可方便地选择适当的工作方式。,5.2定时/计数器的控制,1、定时器控制寄存器TCON(88H),TR0:定时/计数器0运行控制位。=0停止,=1开始工作(与GATE位的状态有关),软件置位,软件复位。TR1:定时/计数器1运行控制位。(用法与TR0类似)TF0、TF1:分别是定时、计数器T0、T1的溢出标志位。,2、定时方式寄存器TMOD(89H),GATE:门控位.GATE=0启动不受/INT0或/INT1的控制;GATE=1启动受/INT0或/INT1的控制。C/T:外部计数器/定时器方式选择位C/T=0定时方式;C/T=1计数方式M1M0工作模式选择位(编程可决定四种工作模式)。,5.3定时/计数器的工作方式,5.3.1工作方式013位定时/计数器,定时器/计数器方式0的计数器结构:,图5-2方式0等效逻辑结构,在计数工作方式下,计数器的计数值范围是:2021318192在定时工作方式时,定时时间的计算公式为:定时时间=(8192-计数初值)晶振周期12=(8192-计数初值)机器周期计数初值=8192-定时时间/机器周器=2n-定时时间/机器周期如果单片机的晶振选为6.000MHz,则最长定时时间为:(81920)1/610-612=1638410-6(s)=16384(us)。,定时器/计数器运行控制的情况:、由TR0控制的情况要运行控制位TR0能够控制定时器/计数器的运行,其或门的输出一定要为1,这就意味着GATE要设置为0或者INT0=1。因此在单片机的定时或计数应用中,要注意定时器方式寄存器TMOD的GATE位一定要设置为0。、由INT0控制的情况要能用INT0来控制定时器/计数器的运行,TR0和GATE均应设置为1。这种情况可用于测量外部信号的脉冲宽度。,例5.1设单片机晶振频率为6MHZ,使用定时器1以方式0产生周期为500s的等宽正方波连续脉冲,并由P1.0输出。以查询方式完成。解:计算计数初值欲产生500s的等宽正方波脉冲,只需在P1.0端以250s为周期交替输出高低电平即可实现,为此定时时间应为250s。使用6MHZ晶振,则一个机器周期为2s。方式0为13位计数结构。设待求的计数初值为X,则(213X)210-6=25010-6求解得:X=8067。二进制数表示为0001111110000011B。十六进制(按方式0的13位11111100XXX00011)表示得:高8位为0FCH,低5位为03H,。,、相关控制寄存器的设定TMOD各位的设定。设定方式0:M1M0=00;实现定时:C/T=0;定时应用:GATE=0。TCON(地址:88H)是可以位寻址的,又因与该题有关的位只有TR1,故这里采用位寻址方式,用设置TR1=1来启动定时器T1,TR1=0来停止定时器T1。IE题目要求采用查询方式,当定时时间到定时器溢出标志位TF1置1时,不允许产生中断,故应禁止中断,即置IE=00H。,、参考程序:,ANLTMOD,#0FH;设置T1为定时工作方式0ORLTMOD,#00H;且不影响T0的工作MOVTH1,#0FCH;置计数初值MOVTL1,#03HMOVIE,#00H;禁止中断LOOP:SETBTR1;启动定时器JBCTF1,LOOP1;查询计数溢出AJMPLOOPLOOP1:MOVTH1,#0FCH;重新设置计数初值MOVTL1,#03HCPLP1.0;输出取反AJMPLOOP;重复循环END,5.3.2工作方式116位定时/计数器,图5-3方式1等效逻辑结构,在计数工作方式下,计数器的计数值范围是:20216165536在定时工作方式时,定时时间的计算公式为:定时时间=(65536-计数初值)晶振周期12=(65536-计数初值)机器周期计数初值=65536-定时时间/机器周器=2n-定时时间/机器周期如果单片机的晶振选为6.000MHz,则最长定时时间为:(655360)1/610-612=13107210-6(s)=131072(us)。,例2.2设单片机晶振频率为6MHZ,要求使用定时器0工作方式1产生周期为500s的等宽正脉冲,并在P1.0端输出。试编写采用中断方式完成的相关程序。解:、计算计数初值(216-X)1/610-612=25010-6X=65411=FF83H,即可得:TH0=0FFH,TL0=83H、设置各相关控制寄存器TMOD应设置为XXXX0001B;IE和TCON均采用位寻址方式。,参考程序:ORG0000HSTART:AJMPMAINORG000BHAJMPINTERORG0100HMAIN:ANLTMOD,#0F0H;置定时器0工作方式1ORLTMOD,#01HMOVTH0,#0FFH;设置计数初值MOVTL0,#83HSETBEA;CPU开中断SETBET0;定时器0开中断SETBTR0;启动定时器0SJMP;等待中断INTER:MOVTH0,#0FF;重新设置计数初值MOVTL0,#83HCPLP1.0;输出取反RETI;中断返回END,2.3.3工作方式28位循环计数,图2-4方式2等效逻辑结构,方式2与方式0、1的区别:工作方式0和工作方式1的最大特点就是计数溢出后,计数器为全0,因而循环定时或循环计数应用时就存在反复设置初值的问题,这给程序设计带来许多不便,同时也会影响计时精度。工作方式2就具有自动重装载功能,即自动加载计数初值,所以也有的文献称之为自动重加载工作方式。在这种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不再象方式0和方式1那样需要“人工干预”,由软件重新赋值,而是由预置寄存器TH以硬件方法自动给计数器TL0重新加载。方式2在串口通讯时,常用作波特率发生器。,例2.3已知晶振频率fosc=6MHz,要求使用定时器0以工作方式2产生100s定时,在P1.0输出周期为200s的连续正方波脉冲。试编写相关程序。解:、计算计数初值在6MHZ晶振下,一个机器周期为2s,假设计数初值为X,则:(28-X)210-6=10010-6求解得:X=206=0CEH、各有关控制寄存器的设置IE和TCON均采用位寻址方式,即分别将应位置“1”或“0”。TMOD的设置:定时器/计数器0为方式2,M1M0=10;为实现定时功能C/T应设置为0;为允许定时器/计数器0能通过TR0进行运行控制,须使GATE=0;定时器/计数器1不用,通常应不改变其参数,故应将其屏蔽起来,、参考程序(查询方式),ANLTMOD,#0F0H;设置定时器0ORLTMOD,#02H;为工作方式2MOVTH0,#0CEH;设置计数初值MOV,TL0,#0CEHMOVIE,#00H;禁止中断SETBTR0;启动定时LOOP:JBCTF0,LOOP1;查询计数溢出AJMPLOOPLOOP1:CPLP1.0;输出方波,初值自动装入AJMPLOOP,、参考程序(中断方式)主程序:ANLTMOD,#0F0HORLTMOD,#02HMOVTH0,#0CEHMOVTL0,#0CEHSETBEA;CPU开中断SETBET0;定时器0开中断SETBTR0;启动定时SJMP;等待中断中断服务程序:CLPP1.0RETI,5.3.4工作方式3双8位定时方式,图5-5方式3等效逻辑结构,前三种工作方式,对两个定时器/计数器的设置和使用是完全相同的。但是在工作方式3下,两个定时器/计数器的设置和使用却是不同的。1、工作方式3下的定时器/计数器0在工作方式3下,定时器/计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以用作计数,又可以用作定时,定时器/计数器0的各控制位和引脚信号全归它使用。其功能和操作与方式0和方式1完全相同,而且逻辑电路结构也极其类似,如图513a所示。定时器/计数器0的高8位TH0,则只能作为简单的定时器使用。而且由于定时器/计数器0的控制位已被TL0占用,因此只好借用定时器/计数器1的控制位TR1和TF1。即以计数溢出去置位TF1,而定时的启动和停止则由TR1的状态控制。在工作方式3下,定时器/计数器0可以构成两个定时器或一个定时器一个计数器。,2、在定时器/计数器0设置为工作方式3时的定时器/计数器1定时器/计数器1不能工作于方式3,只能工作于方式0、方式1或方式2。且在定时器/计数器0已工作于方式3时,定时器/计数器1通常用作串行口的波特率发生器,以确定串行通信的速率。因为已没有计数溢出标志位TF1可供使用,因此只能把计数溢出直接送给串行口,如图514所示。当作为波特率发生器使用时,只需设置好工作方式,便可自动运行。如要停止工作,只需送入一个把它设置为方式3的方式控制字就可以了。,5.4定时/计数器的一般编程步骤,首先必须对定时计数器进行初始化,然后再开启定时或计数。简单的总结一下,定时器/计数器的初始化包括以下内容。(1)确定工作方式对TMOD赋值;如:MOVTMOD,#06H指令,设定T0为计数器工作方式。(2)预置定时计数器中计数的初值直接写入TH和TL;如MOVTH0,#00H两条指令,设定计数初值。MOVTL0,#00H(3)开放定时器/计数器的中断对IE位赋值;(4)启动定时器/计数器。如:SETBTR0(5)计数初值的计算方法N=8192-定时时间/机器周器=2n-定时时间/机器周期n视工作方式不同而不同。方式0,n=13,最多计数脉冲是8192个。方式1,n=16,最多计数脉冲是65536个。方式2和方式3,n=8,最多计数脉冲是256个。,5.5定时/计数器的应用举例,【例5.4】:单片机对按键次数(99次)进行计数,并在发光二极管上实时显示。,图5-6例5.4的硬件电路图,任务描述:用手按动按键S3,每按键一次S3引脚上出现一个负脉冲,单片机计数一次,并实时将按键次数以BCD码方式,在发光二极管上面显示。,图5-7【例5.4】流程图,ORG0000HL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字视频传输编码效率评估报告
- 锡矿企业竞争力评估报告
- 煤制油生产工专业技能考核试卷及答案
- 技术服务市场品牌竞争分析报告
- 路基路面工岗位操作规程考核试卷及答案
- 运维风险控制报告
- 羽毛球拍制作工质量追溯知识考核试卷及答案
- 矿井防灭工入职考核试卷及答案
- 细胞工程育种案例效果评析
- 个人职业成长分析报告模板与指导
- 2025年蜀道投资集团有限责任公司招聘笔试备考题库附答案详解(达标题)
- 美术基础 课件 第1、2章 美术简介;素描
- 2025年廉价航空行业研究报告及未来发展趋势预测
- 新能源企业盈利能力分析-以比亚迪股份有限公司为例
- 国家奖学金申请答辩汇报
- 2025年“学宪法讲宪法”知识竞赛题库含答案
- 2024年辽宁省地矿集团招聘真题
- 2025年绿化工技师试题及答案
- 【《基于哈佛分析框架的爱尔眼科公司财务分析(数据图表论文)》13000字】
- 榆林市无人机管理办法
- 建筑公司安全管理制度范本
评论
0/150
提交评论