TMOD TCON SCON
TMOD:定时器/计数器T0¦T1的方式寄存器
方式寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址的寄存器,字节地址为89H。
其格式为:
TMOD结构图
=================================================================================
其中低四位定义定时器/计数器T0,高四位定义定时器/计数器T1,各位的说明:
Ⅰ,GATE——门控制。
●GATE=1时,由外部中断引脚INT0、INT1和控制寄存器的TR0,TR1来启动定时器。
当INT0引脚为高电平时TR0置位,启动定时器T0;
当INT1引脚为高电平时TR1置位,启动定时器T1。
●GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。
Ⅱ,C/T——功能选择位
置位时选择计数功能,清零时选择定时功能。
Ⅲ,M0、M1——方式选择功能
由于有2位,因此有4种工作方式
================================================================
M1M0 工作方式 计数器模式 TMOD(设置定时器模式)
0 0 方式0 13位计数器 TMOD=0x00
0 1 方式1 16位计数器 TMOD=0x01
1 0 方式2 自动重装8位计数器 TMOD=0x02
1 1 方式3 T0分为2个8位独立计数器,T1为无中断重装8位计数器 TMOD=0x03
================================================================
TCON
TCON(Timer Control Register)定时器/计数器控制寄存器
TCON在特殊功能寄存器中,字节地址为88H,位地址(由低位到高位)为88H一8FH,由于有位地址,十分便于进行位操作。
TCON的作用是控制定时器的启、停,标志定时器溢出和中断情况。
TCON的格式如下图所示。其中,TFl,TRl,TF0和TR0位用于定时器/计数器;IEl,ITl,IE0和IT0位用于中断系统。
各位定义如下:
TF1:定时器1溢出标志位。当字时器1计满溢出时,由硬件使TF1置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。
TR1:定时器1运行控制位。由软件清“0”关闭定时器1。当GATE=1,且INT1为高电平时,TR1置“1”启动定时器1;当GATE=0,TR1置“1”启动定时器1。
TF0:定时器0溢出标志。其功能及操作情况同TF1。
TR0:定时器0运行控制位。其功能及操作情况同TR1。
IE1:外部中断1请求标志。
IT1:外部中断1触发方式选择位。
IE0:外部中断0请求标志。
IT0:外部中断0触发方式选择位。
TCON中低4位与中断有关,我们将在下节课讲中断时再给予讲解。由于TCON是可以位寻址的,因而如果只清溢出或启动定时器工作,可以用位操作命令。例如:执行“CLR TF0”后则清定时器0的溢出;执行“SETB TR1”后可启动定时器1开始工作(当然前面还要设置方式定)。
定时器/计数器的初始化
由于定时器/计数器的功能是由软件编程确定的,所以一般在使用定时/计数器前都要对其进行初始化,使其按设定的功能工作。初始货的步骤一般如下:
1、确定工作方式(即对TMOD赋值);
2、预置定时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1);
3、根据需要开放定时器/计数器的中断(直接对IE位赋值);
4、启动定时器/计数器(若已规定用软件启动,则可把TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需给外引脚步加启动电平。当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时)。
下面介绍一下确定时时/计数器初值的具体方法。
因为在不同工作方式下计数器位数不同,因而最大计数值也不同。
现假设最大计数值为M,那么各方式下的
最大值M值如下:
方式0:M=213=8 192
方式1:M=216=65 536
方式2:M=28=256
方式3:定时器0分成两个8位计数器,所以两个M均为256。
因为定时器/计数器是作“加1”计数,并在计数满溢出时产生中断,因此初值X可以这样计算:
X=M-计数值
SCON (Serial Port Control Register) 在51单片机中代表这是串口控制寄存器
scon控制寄存器
scon控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98h,其结构格式如下:
表1 scon寄存器结构
scon d7 d6 d5 d4 d3 d2 d1 d0
sm0 sm1 sm2 ren tb8 rb8 ti ri
位地址 9fh 9eh 8dh 9ch 9bh 9ah 99h 98h
各控制位功能介绍如下:
(1).sm0、sm1:串行口工作方式控制位。
sm0,sm1 工作方式
00 方式0
01 方式1
10 方式2
11 方式3
(2).sm2:多机通信控制位。
多机通信是工作于方式2和方式3,sm2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及sm2=1时,只有当接收到第9位数据(rb8)为1时,才把接收到的前8位数据送入sbuf,且置位ri发出中断申请,否则会将接受到的数据放弃。当sm2=0时,就不管第位数据是0还是1,都得将数据送入sbuf,并发出中断申请。即此时ri是否置位由sm2和rb8共同决定。
工作于方式0时,sm2必须为0。
(3).ren:允许接收位。
ren用于控制数据接收的允许和禁止,ren=1时,允许接收,ren=0时,禁止接收。
(4).tb8:发送接收数据位8。
在方式2和方式3中,tb8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,tb8=0为数据,tb8=1时为地址。
(5).rb8:接收数据位8。
在方式2和方式3中,rb8存放接收到的第9位数据,用以识别接收到的数据特征。
(6).ti:发送中断标志位。
可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,ti=1表示帧发送结束,ti可由软件清“0”。
(7).ri:接收中断标志位。
可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,ri=1表示帧接收完成。
在串口中断处理时,ti,ri都需要软件清"0",硬件置位后不可能自动清0,此外,在进行缓冲区操作时,需要es=0,以防止中断出现。
TMOD TCON SCON相关推荐
- 单片机原理及应用知识总结(持续更新)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 第一章 单片机的基础知识 第二章 51单片机及硬件结构 51单片机指令系统及汇编语言 前言 自己的一些总结,欢迎阅读指正! ...
- C52单片机中断定时系统思路和实现代码
最近拿到了单片机的课程设计题目,乍一看还挺简单的,就是一个简单的电子时钟,想都没想就直接把我arduinod的DS1302时钟模块拿来直接就做出来了,好家伙这两天仔细读了题目才发现直接指出了不能用DS ...
- 简述单片微型计算机屏蔽的作用,单片机原理及应用试题库 - 答案
A.栈底单元 B.7FH单元 C .栈底单元地址加1 D.栈底单元地址减1 19. 89C51单片机中,唯一一个用户不能直接使用的寄存器是( C ) A.P S W B.D P T R C .P C ...
- STC51-串口通信
1 并行与串行基本通信方式 随着单片机系统的广泛应用和计算机网络技术的普及,单片机的通信功能愈来愈显得重要.单片机通信是指单片机与计算机或单片机与单片机之间的信息交换,通常单片机与计算机之间的通信我们 ...
- 80c51汇编语言指令格式中的非必须,求单片机答案
求单片机答案0 a315093562014.06.24浏览1266次分享举报 在下列各题的(A).(B).(C).(D)4个选项中,只有一个是正确的,请选择出来.16. 对程序存储区数据传送,应采用助 ...
- 发现好文!51单片机特殊功能寄存器 /I/O口操作 /中断/ 定时器/ 串口通信/ ---位寻址解释由来--以及程序例程
51单片机特殊功能寄存器有哪些_功能是什么 最近学习中对寄存器的概念理解很迷惑,I/O口操作/中断/定时器/串口通信四大模块的寄存器应用不太明白,这篇文章,解释的不错,希望帮到各位! 1.21个寄存器 ...
- C语言编周期100ms的方波信号,单片机系统设计 - 2020学年春(邸志刚)-中国大学mooc-题库零氪...
项目一 :设计交通灯 相关知识:单片机简介随堂测验 1.下列器件中带ROM的是(). A.8031 B.8032 C.80C32. D.8051 2.下列器件中带EPROM的是(). A.8051 B ...
- 单片机C51复习题(课后习题及答案)
第1章 思考题及习题 一.填空题 除了单片机这一名称之外,单片机还可以称为____或____. 单片机与普通微型计算机的不同之处在于其将____.____和____3部分,通过内部____连接在一起, ...
- 51单片机外部中断的使用以及优先级设置
51单片机中断的使用及优先级设置 51单片机有两个外部中断,两个定时器/计数器,两个外部中断分别是int0,int1.定时器/计数器分别是t0,t1,还有一个串口中断TI/RI,加起来有五个中断.它们 ...
- 南京廖华微型计算机原理答案,微机原理习题库含答案
DW TAB1,TAB2,70H 6.试编写程序,查找在内部RAM的30H~50H单元中是否有0AAH这一数据.若有,则将51H单元置为"01H":若未找到,则将51H单元置为&q ...
最新文章
- APP不同上线情况对应的测试流程
- [译][Tkinter 教程10] Text 控件
- vue-cli脚手架构建项目注意事项(填坑)
- 【python3】通过hashlib 和base64 对字符串进行加密
- MYSQL的函数有哪些?(3.字符串函数)
- java peek函数_Java 8 Stream Api 中的 peek 操作
- c++学习书籍推荐《超越C++标准库:Boost库导论》下载
- 《Servlet和JSP学习指南》一导读
- python办公室应用_Python干货:玩转办公室软件(一)PP还能这样玩!
- JS获取短信验证码60秒
- 熟悉常规B/S、C/S系统开发实现原理
- springMVC实现的crud操作
- 手写Spring框架
- python调用其它程序
- 使用redis所维护的代理池抓取微信文章
- php账号管理工具,微信公共账号第三方管理工具开发(一)
- 图钉能按到墙上吗_图钉怎么钉在墙上
- 黑客劫持域名步骤大曝光
- 泰勒级数+牛顿迭代公式+最简单的C语言求根号的值
- codeup27980 乘法算式(NOIP1996普及组第1题)