预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共29页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第9章定时器/计数器的应用1.实训目的 掌握定时器/计数器定时功能的使用方法 掌握定时器初值的计算方法 掌握定时中断程序的编程方法 2.功能设计 主程序:定时器T0的初始化,应用P1口控制发光二极管L1~L8的亮暗交替显示。 定时器T0中断:T0产生10s的定时中断,当定时时间到时,8个发光二极管全灭,并持续一段时间(延时1s)。3.背景知识 8051单片机的定时器/计数器T0(T1)为16位计数器,有4种工作方式。每种工作方式的特点见书中表9.1。 本题目需要T0定时10s,直接使用表9.1中的4种方式均不能达到要求。如果采用方式1,定时100ms,则中断10次时间为100ms×100=10000ms=10s。 (1)定时器工作方式寄存器TMOD设置如书中所示。 (2)定时器/计数器控制寄存器TCON设置如书中所示。(3)定时器/计数器初始值计算 Tini(初始值)=2N-定时时间/机器周期 其中N是定时器/计数器的定时器长度,与定时器/计数器的工作方式有关。机器周期是晶振周期的12倍,若晶振为12MHz,则机器周期为1μs,若晶振为6MHz,则机器周期为2μs。 如要求定时100ms(100000μs),晶振采用6MHz,则定时器/计数器工作在方式1下的初始值为:Tini=216-100000/2=1553615536 转换为十六进制数为3CB0H。(TL0)=3CH,(TH0)=0B0H。中断次数计数器(R3)=10。 (4)T0中断的入口地址为000BH。4.硬件原理与资源分配 硬件原理图如图9.1所示。 硬件资源分配:P1口为8位输出口,驱动8个发光二极管。R5为循环计数器。 图9.1T0定时实训硬件原理图5.参考程序 ORG0000H AJMPMAIN ;转主程序 ORG000BH ;T0中断入口地址 AJMPJT0 ;转T0处理程序 MAIN:NOP ;主程序段 MOVSP,#40H ;设定堆栈 MOVA,#0FFH MOVP1,A ;初始化P1口 MOVR5,#100 MOVTMOD,#01H ;写控制字,T0工作方式1 MOVTH0,#0B0H ;设定初始值 MOVTL0,#3CHSETBTR0 ;启动T0 SETBET0 ;允许T0中断 SETBEA ;开总中断 LOOP:MOVA,#0AAH MOVP1,A ;点亮L1、L3、L5、L7 LCALLYS1 ;调用延时1s程序 MOVA,#55H MOVP1,A ;点亮L2、L4、L6、L8 LCALLYS1 ;调用延时1s子程序 AJMPLOOP ;主程序循环,如果有中断,则转中断处理程序 JT0:NOP ;外部中断0处理程序,如果有中断0则转此段 CLREA ;关总中断 PUSHACC ;保护现场PUSH02H PUSH03H PUSH04H DJNZR5,RRT MOVR5,#100 MOVA,#0FFH ;L1~L8全灭 MOVP1,A LCALLYS1 ;调用延时1s子程序 RRT:MOVTH0,#3CH ;重装初始值 MOVTL0,#0B0H POP04H ;恢复现场 POP03H POP02HPOPACC SETBEA ;开中断 RETI ;中断返回 DLS:MOVR1,#0FFH LOP1:MOVR2,#0FFH LOP:DJNZR2,LOP DJNZR1,LOP1 RET END 子程序YS1见第6章例6.3。 6.总结与提高 定时器/计数器是单片机内部重要的功能部件,灵活运用定时器/计数器的功能,不仅能够节约硬件资源,而且还能使程序简练、控制灵活。在使用定时器/计数器时应注意以下几个方面: (1)应根据所要求的定时时间长度和定时的重复性,合理选择定时器的工作方式。 (2)定时器/计数器的初始化,包括设定TMOD、写入定时初值、设置中断系统和启动定时器运行等。(3)若将定时器/计数器用于计数方式,则外部脉冲必须从P3.4(T0)或P3.5(T1)引脚输入,且外部脉冲的最高频率不能超过时钟频率的1/24。 在方式0、方式1、方式2状态下定时器T0、T1的工作是一样的,灵活运用这两个内部定时器,可以大大提高单片机的工作效率,减少对系统硬件资源的占用,降低成本。1.实训目的 掌握定时器的使用及定时中断程序的设计方法 掌握方波信号发生器的设计方法 2.功能设计 用单片机的P3.1端口输出一定频率的方波。P1口外接K1~K8共8个按键,用来设定输出方波的频率,共8个档位。系统晶振为12MHz。3.背景知识 (1)若P3.1的输出状态定时翻转,则P3.1端口输出一定频率的方波。假设以定时器T0定时8ms(8000μs)为基本定时时间,则P3.1端口输出方波的周期为16ms。选择T0方式