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

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

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

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

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

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

中断与定时器1、中断执行主程序1.2中断源 8052单片机有5个中断源,即:外部中断0、定时器0、外部中断1、定时器1、串口,详情见下表:1.3中断响应条件 中断源有中断请求; 此中断源的中断允许位为1; 单片机开中断(即EA=1)。 8052单片机的中断系统2个优先级,可实现二级中断嵌套,详细中断控制图如下:1.4与中断有关的寄存器 1、定时/计数器中断锁存寄存器TCONRI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。注意,RI必须由软件清除。 TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。3、中断允许控制寄存器IE4、中断优先级控制寄存器IP5、定时/计数器模式控制寄存器TMODC/T:定时/计数模式选择位。C/T=0为定时模式;C/T=1为计数模式。 M1、M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。2、定时器2.1定时/计数器的工作方式 1、方式0 方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。2、方式1 方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器。3、方式2 方式2为自动重装初值的8位计数方式。2.2定时器的初始化 对TMOD赋值,以确定T0和T1的工作方式。 计算初值,并将其写入TH0、TL0或TH1、TL1。 中断方式时,则对IE赋值,开放中断。 使TR0或TR1置位,启动定时/计数器定时或计数。实战:用定时/计数器T0的方式1,产生50ms的定时,并使P1.7引脚上输出周期为500ms的方波,采用中断方式,设系统时钟频率为12MHz。 解:1、计算计数初值X: 由于晶振为12MHz,所以机器周期Tcy为1s。所以: N=t/Tcy=50000/1=50000 X=65536-50000=15536=3CB0H 即应将3CH送入TH0中,B0H送入TL0中 2、求T1的方式控制字TMOD: M1M0=01,GATE=0,C/T=0,股TMOD=0x01; 1、利用定时/计数器T0从P1.0输出周期为0.5s的方波,让发光二极管以1HZ闪烁,设晶振频率为12MHz。。 2、利用定时/计数器T1产生定时时钟,控制8个LED灯从第一个到第八个逐一点亮,单个亮时间为400ms,并循环。 3、用定时器0设计一个30s的倒计时时钟,并在数码管上显示,当定时时间到时,蜂鸣器响2s后关闭,并循环。 4、用定时器1设计一个时钟,并用数码管显示时、分、秒等信息。