1.定时器/计数器: ? ? ? ? ? ? ? ? ?①作用:?用于计时系统,可实现软件计时、使程序每个一固定时间(“相比软件计时更 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 精准”)完成一项操作; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??替代“长时间的延时函数”,提高CPU的运行效率和处理速度(“相互独立,各 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 干各”) ????????????????????????????????????????????????(被占用现象举例:流水灯在delay时,此时按键检测的delay被占用 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 无法实现【CPU一条一条执行】,造成按键检 ????????????????????????????????????????????????????????????????????????????????测不灵敏现象。) ????????????????????????????????…… ? ? ? ? ? ? ? ?? ②STC89C52的定时器/计数器资源:?属于内部资源,其电路的连接和运转均在内部完 ??????????????????????????????????????????????????????????????????????????????成(注:单片机通过配置寄存器完成内部线路的 ?????????????????????????????????????????????????????????????????????????????????????????????连通); ????????????????????????????????????????????????????????????????????????????有3个(T0、T1、T2),T0和T1与传统的51单 ??????????????????????????????????????????????????????????????????????????????片机兼容,T2是此型号单片机增加的资源。 ??????????????????????????????????????????????????????????????????????????????????????????????(注:不同型号的单片机定时资源与操 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?作可能有不同。一般T0、T1的 ?????????????????????????????????????????????????????????????????????????????????????????????????????????操作方式在51单片机中通用) ?????????????????③分类与位数和范围: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
2.定时/计数器的结构及逻辑电路(注:单片机通过配置寄存器完成内部线路的连通):
(1)工作方式寄存器TMOD(“T”imer “Mod”e Control Register):
(2)控制寄存器TCON(“T”imer “Con”trol Register):
3.中断系统: ? ? ? ? ? ? ? ? ? ?①中断概念:通过硬件来改变CPU的运行方向 ? ? ? ? ? ? ? ? ? ?②中断流程:?? ? ? ? ? ? ? ? ? ? ?③中断源:能发出中断请求信号的各种事件(l/0设备、定时时钟、系统故障、软件设 ???????????????????????????????????????????????????????????????????????????????????????????定) ? ? ? ? ? ? ? ? ? ?④传统51单片机中断资源(3类共5个中断源【注:STC89C52有8个】): ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??外中断2个:INTO、INT1【由引脚INTO (P3.2)和INT1 (P3.3)引入】 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??定时中断2个:T0、T1【无引入端,请求在芯片内部发生,以记数溢出信号作 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?为中断请求,去置位一个溢出标志位】 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??串行中断1个:RI/TI【无引入端,请求在芯片内部发生。接收或发送完一帧串 ??????????????????????????????????????????????????????????????????行数据时,就产生一个中断请求。】 ? ? ? ? ? ? ? ? ? ?⑤传统51单片机中断优先级:?目的:为中断嵌套服务 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2级优先级【注:STC89C52有4级】 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???被控制对象:中断优先寄存器IP(0XB8) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???原则:㈠高级先与低级,高级可打断低级而低级不可? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?打断高级 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?㈡如果一个中断请求已被响应,则同级的其它中 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?断服务将被禁止。即同级中断不能嵌套 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?㈢如同级的多个中断请求同时出现,则按CPU查 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???询次序确定哪个中断请求被响应。 ???????????????????????????????????????????????????????????????????????????????????? ? 查询次序为:INT0(外部中断0) ????????????????????????????????????????????????????????????????????????????????????????????????????????????????↓ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? T0(定时器T0中断) ????????????????????????????????????????????????????????????????????????????????????????????????????????????????↓ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? INT1(外部中断1) ????????????????????????????????????????????????????????????????????????????????????????????????????????????????↓ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? T1(定时器T1中断) ????????????????????????????????????????????????????????????????????????????????????????????????????????????????↓ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RI/TI(串口中断) ? ? ? ? ? ? ? ? ? ?⑥传统51单片机中断系统的结构: ????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(注:TI和RI虽为两个中断请求, ??????????????????????????????????????????????????????????????但信号通过或门后进入中断系统, ??????????????????????????????????????????????????????????????故是一个中断源) ? ? ? ? ? ? ? ? ? ?⑦51单片机中断处理过程:
? ? ? ? ? ? ? ? ? ?⑧中断响应时间:至少3个机械周期(“获取+响应+执行”) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【注:一条指令的的最长执行时间为4个机械周期】
4.中断有关寄存器: ①TCON:②SCON:③IE: ④IP:
?5.定时器与中断系统配合工作框图:
6.定时器编写程序步骤: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
7.定时/计数器初值计算及设置:? ????????①初值计算: ????????②初值设置:
8.代码编写实践: ????????①独立按键控制共阳极LED流水灯方向: → ????????②定时器时钟(小时:分钟:秒): →
|