很久没接触单片机了,对单片机几乎都忘记了。这几天有个项目的测试要用到单片机。所以收集了以下资料,以备下次需要时不用到处搜索了)
1 中段系统8051共有5个中断源:外中断INT0(P3.2)、外中段INT1(P3.3)、片内定时/计数器溢出中断TF0和TF1、片内串行口中段TI或RI。
这几个中断源由TCON和SCON两个特殊功能寄存器控制。
①
IT0和IT1:IT0为外外部中断INT0触发方式控制位。可通过软件设置活清除。IT0=0,为电平触发方式(低电平有效);IT0=1,为下降沿触发方式。IT1是外部中段INT1的控制位,作用与设置同IT0。
②
IE0和IE1:IE0为外中段INT0的请求标志位,当CPU检测到INT0端有中断请求信号时,有硬件置位,IE0=1。中段响应后转向中断服务子程序,有硬件自动清零,IE0 =0。IE1为外部中断INT1的请求标志位。作用与设置于IE0相同。
③
TR0和TR1:TR0为定时器T0的启动/停止控制位,TR0可由用户通过软件设置。TR0=1,定时器T0开始计数;TR0=0,定时器T0停止计数。TR1为T1的启动/停止控制位,作用与设置和TR0相同。
④
TF0和TF1:TF0为定时器T0的溢出只能高端标准位。当定时器T0产生溢出后(由全1变全0),TF0被硬件自动复位,TF0=1;当T0的中断被CPU响应后,自动被硬件清零。TF1为T1的溢出中段标志位,作用与设置同TF0。
D2~D7为串口收发控制,和中断有关的为D0位和D1位。 TI为串口发送中段标志位,当串口发完一帧数据时,由硬件自动置位TI。TI不能自动复位,必须友软件清零。 RI为接收中断标志位。当接收完一帧数据后,由硬件置位RI。RI不能自动复位,必须有软件清零。 TCON和SCON设置了中断源及中断方式后,中断的允许或禁止还受到中断允许控制寄存器(IE)的控制。 ①
EA:中断的总控制位,EA=0,CPU禁止所有中断。EA=1,CPU开放所有中断,但每个中断是否真的开放,还收到IE中相应中断的控制位的控制。 ②
ES:串行口中断控制位,ES=0,屏蔽所以串行口中断;ES=1,允许串行口中断。 ③
ET1,ET0:定时/计数器T1/T0的中断控制位。为0时禁止相应的中断,为1允许相应的中断。 ④
EX1,EX0:外中断INT1/INT0的中断允许控制位。为0时禁止相应的中断,为1时允许相应的中断。 2 定时器/计数器8051单片机内部有两个定时/计数器。定时/计数器T0由特殊功能寄存器TL0和TH0构成。定时/计数器T1由TL1和TH1构成。T0和T1的中断控制见TCON。T0和T1的工作方式由TMOD寄存器控制。 M1,M0=10
方式2,自动重新装入计数初值的8位定时器/计数器 M1,M0=11
方式3,两个8为定时器/计数器(仅适用于T0) C/T:定时方式/计数方式选择位。C/T=0,选择定时器工作方式;C/T=1,选择计数器工作方式。当选择定时器工作方式时,计数脉冲频率为OSC的12分频。当选择定时工作时,有计数引脚T0输入。 GATE:门控位。GATE对定时器的影响如图1.1所示。 3 串行口SM0,SM1=00,方式0,8位同步以为寄存器,波特率为fosc/12; SM0,SM1=01,方式1,10位异步通信,波特率由定时器控制; SM0,SM1=10,方式2,11位异步通信,波特率为fosc/64活fosc/32; SM0,SM1=11,方式3,11位一步通信,波特率由定时器控制。 (2)
SM2:多机通信控制位。SM2主要用于方式2和方式3。在方式0时,要设置SM2=0; (3)
REN:允许接收控制位。REN=1,允许接收。 波特率加倍,当SMOD为1时,波特率加倍。SMOD是PCON的第D7。 ①
IDL为空闲方式控制位。为1时,进入空闲待机工作方式。 ②
PD为掉电工作方式控制位。IDL=1,PD=1,单片机进入掉电工作方式。 ③
GF0,GF1为通用标志位,描述中断是来自正常允许还是来自空闲方式。 注:K为定时器T1的位数;TC为定时器T1的预置初值 |