- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MCS51系列单片机内部功能模块及其应用
第6章 MCS-51系列单片机的内部功能模块及其应用 ;MCS-51系列单片机的典型产品的内部功能模块包括P0、Pl、P2、P3四个双向8位并行口,T0、T1二个16位定时/计数器(52子系列还有第3个定时/计数器T2)和一个串行口。MCS-51系列所有的产品一般都具有这些I/O部件.除此以外,一些增强功能的新型5l系列的单片机还有多功能定时器、A/D转换器、实时时钟、I2C 串行BUS口、watchdog等一些功能模块。 ;6.1 MCS-51单片机内部的并行口; P0、P1、P2、P3口的l位的结构框图;在第2章已详细地介绍了MCS-51单片机的并行I/O端口,下面举个并行接口应用的例子,以加深对并行接口使用的理解。
【例6-1】对例6-1的电路图,单片机的P1.4~P1.7接4个发光二极管,P1.0~P1.3接4个开关,要求每按键中断一次,发光二极管显示开关状态。;要求对应的发光二极管亮或灭,只需把P1端口的内容读入,高、低4位互换,通过P1端口输出即可。
汇编语言参考程序为:
ORG 0000H
LJMP START
ORG 0003H
LJMP EXT0
ORG 0030H
START: SETB EA ;开中断总开关
SETB EX0 ;允许中断
SETB IT0 ;下降沿产生中断
MOV P1,#0FH ;设定P1端口低4位为输入状态
SJMP $
ORG 0100H
EXT0: MOV A,P1
SWAP A
MOV P1,A
RETI ;C语言参考程序为:
#includereg51.h
INT0 () interrupt 0 /* 中断函数 */
{
P1=0x0f; /*设定P1端口低4位为输入状态,输入端先置1,灯灭 */
P=4; /*读入开关状态,并左移4位,使开关反映在发光二极管上*/
}
main()
{
EA=1; /*开中断总开关*/
EX0=1; /*允许中断*/
IT0=1; /*下降沿产生中断*/
while(1); /*等待中断*/
} ;6.2 MCS-51单片机内部的定时器/计数器 ;6.2.2 MCS-51单片机内部的定时/计数器;图6-2 MCS-51系列单片机内部定时/计数器结构框图 ; 定时/计数器主要由特殊功能寄存器TH0、TL0、TH1、TL1以及TMOD、TCON组成。
定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。其中:
TH0(高8位)、TL0??低8位)构成16位加1计数器T0,用来存放T0的计数初值;
TH1(高8位)、TL1(低8位)构成加116位计数器T1,用来存放T1的计数初值;
这两个16位计数器都是16位的加1计数器。
TMOD用来控制两个定时/计数器的工作方式,TCON用作中断溢出标志并控制定时器的启停。 ; 加1计数器输入的计数脉冲有两个来源。
(1)是由系统的时钟振荡器输出脉冲经12分频后送来;
(2)是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。
如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。因此,由溢出时计数器的值减去计数初值才是加1计数器的计数值。;1)定时/计数器设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t 。
2)定时/计数器设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期采样T0或T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期期间装入计
原创力文档


文档评论(0)