51单片机学习日志——2020.10.26~11.1
(其实就是学习笔记)
(1)中断系统
中断源
使用中断:
(1)需要使用哪个中断,选择相应的符号
(2)触发条件
(3)中断函数中,想要实现什么
需要以下代码(以外部中断0为例):
EA1=1;//打开总中断开关
EXO=1;、、打开外部中断0
ITO=0/1;设置外部中断的触发方式
void int0 () interrupt 0
{
do anything that you want
}
(原理图)
外部中断0:p32口;外部中断1:p33口
{
//设置 INT0
IT0=1;//跳变沿出发方式(下降沿)
EX0=1;//打开 INT0 的中断允许。
EA=1;//打开总中断
}
void main()
{
Int0Init(); // 设置外部中断 0
while(1);
}
void Int0() interrupt 0 //外部中断 0 的中断函数
{
delay(1000); //延时消抖
if(k3==0)
{
led=~led;
}
(2)定时器和计数器
定时器/计数器与单片机CPU相互独立,工作不需要CPU参与。
51单片机的定时器/计数器(T0/T1)是根据机器内部时钟或者是外部的脉冲信号对寄存器中的数据加1.
TMOD是工作方式寄存器,用于设置定时、计数器的工作方式,低四位用于T0,高四位用于T1