【新编】微控制器系统设计与应用课程

上传人:tang****xu5 文档编号:124876382 上传时间:2020-03-14 格式:PPT 页数:76 大小:2.74MB
返回 下载 相关 举报
【新编】微控制器系统设计与应用课程_第1页
第1页 / 共76页
【新编】微控制器系统设计与应用课程_第2页
第2页 / 共76页
【新编】微控制器系统设计与应用课程_第3页
第3页 / 共76页
【新编】微控制器系统设计与应用课程_第4页
第4页 / 共76页
【新编】微控制器系统设计与应用课程_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《【新编】微控制器系统设计与应用课程》由会员分享,可在线阅读,更多相关《【新编】微控制器系统设计与应用课程(76页珍藏版)》请在金锄头文库上搜索。

1、 微控制器系统设计与应用 刘燎原 江苏建筑职业技术学院 回顾 u 一 动态显示 u1 什么是动态显示 u2 动态显示步骤 1个数码管步骤 1 送段值 2 送位选 公共端 3 延时 4 关闭 3 加驱动方法 三极管 锁存器 实验总结 u 实验板数码管动态显示 假设要求第一个数码管先显示百位 例如2 则 1 送段值 P0输出段值5BH P2 6 1 数据进入 P2 6 0 数据锁存 段值送 入数码管的段值端 2 送位选 P0输出位选值FEH P2 7 1 数据进入 P2 7 0 数据锁存 位选 值送入数码管的位选端 3 延时 其他两个数码管类似这三个步骤 回顾 u 二 中断 u1 中断源 u 5个

2、 u2 中断优先级 u 2个 3 外部中断 P3 2 P3 3 4 外部中断寄存器 IE EA EX0 ET0 EX1 ET1 ES TCON IE0 IT0 IE1 IT1 IP PX0 PT0 PX1 PT1 PS 中断程序如何编写 uVoid main u u 中断初始化 u 一边做平时的工作 一边等待中断来 u uVoid 名字 interrupt 0 3 u u 要求CPU做的事情 u 项目四 倒计时 单片机定时计数器 上节课复习 u 举出生活中中断的例子 u 中断过程包括哪几个步骤 中断请求 中断响应 中断处理 中断返回 u 单片机内有哪个中断源 外部中断 2 内部中断 3 定时器

3、 计数器 导入 单片机应用系统中定时计数的需求 u 如用单片机控制的打铃器 空调的定时开关 啤酒自动生产线上对 酒瓶的计数装置等 以实现定时控制 以实现对外界事件进行计数 u 用到定时 计数 u 实现定时 实现方式 u 1 软件定时 延时程序 占用CPU u 2 不可编程硬件定时 555 u 3 可编程定时 8253 单片机定时 计数器 AT89S51内部有两个定时 计数器 定时 计数器到底是什么 一 定时 计数器概述 u 1 核心 定时 计数器的核心部件是16位二进制加1计数器 TH0 TL0或 TH1 TL1 特性 1 每来一个计数脉冲信号 T0或T1会在原来计数值 或初值 的基 础上加1

4、 2 直到计满 再来一脉冲 计数值清0 会发生溢出 向CPU发出中断请求 告诉CPU这次计数结束 再开始下一轮计数 这就像闹钟定时的时间一到 闹钟就会响一样 2 计数和定时有什么不同 类比生活中计数 定时 定时1分钟 所以定时也是一种计数 16位加1计数器 00H 20H 计数 脉冲 21H FFH FFH 计数 脉冲 TF 1 向CPU发出中断请求 3 单片机中的定时 计数器 两个定时 计数器分别叫T0 T1 计数脉冲从哪来 当需要计数时 计数脉冲来自于外部脉冲源 P3 4 P3 5 当需要定时时 计数脉冲来自于系统机器周期 时钟振荡器经12分频以后的脉冲信号 u 1 计数器 l对外部信号计

5、数 外部计数脉冲从T0 P3 4 和T1 P3 5 输入 开关接在下面 来 一个脉冲 下降沿 将加1计数 脉冲 信号 u 2 定时器 u 定时器也是一种计数器 u 开关接在上面 计数脉冲信号是振荡器经过12分频后信号 这是什么信号 l振荡器 晶振 的12分频信号 l如果晶振为12MHZ 则计数脉冲信号T 12 1 12M 1uS 机器周期 l即定时就是每过一个机器周期 1uS 计数器加1 直至计满溢出 定时结束 l定时器的定时时间与晶振频率和计数次数 初值等有关有关 l若计数器对此信号计数100次 则定时时间 100 1 s 100 s 脉冲 信号 单片机如何定义定时或计数功能 单片机定时或计

6、数的初值怎么设置 编程设定 单片机定时中断相关的寄存器 设置单片机处理定时中断的各种情况 u 与定时 计数有关的特殊功能寄存器 定时器 的高 位 低 位 存放 计数值 定时器 的高 位 低 位 存放 计数值 定时控制寄存器 定时方式寄存器 二 定时 计数器的相关寄存器 工作方式寄存器 定时器方式寄存器TMOD的作用是设置T0 T1的工作方式 TMOD的格式 各位的功能说明 1 M1 M0位 工作方式选择位 1 M1 M0位 工作方式选择位 2 计数 定时功能选择位 0 设置为定时器方式 计数器的输入是内部时钟脉冲 其周 期等于机器周期 实际上是对机器周期进行计数 从计数值可以求得 计数的时间

7、所以称为定时器模式 1 设置为计数器方式 计数器的输入来自T0 P3 4 或T1 P3 5 端的外部脉冲 对外部输入引脚T0 P3 4 或T1 P3 5 的外 部脉冲 负跳变 计数 允许的最高计数频率为晶振频率的1 24 M1 M0 方式说 明 0 0013 位定时器 TH的 8 位和TL的低 5 位 0 1116 位定时器 计数器 1 02自动重装入初值的 8 位计数器 1 13 T0 分成两个独立的 8 位计数器 T1 在方式 3 时停止工作 3 GATE 门控位 用于控制定时器的启动是否受外部中断源信号的影响 GATE 0 定时的启动与外部中断无关 把TCON寄存器中的TR1 TR0 置

8、1即 可启动定时器1 定时器0 常用 GATE 1 由控制位TR1 TR0 和引脚INT0 INT1 共同控制启动 只有在没 有外部中断请求信号的情况下即外部中断引脚 INT0 INT1 引脚 1时 把 TR1 TR0 置1才能定时器启动 用于检测低电平时间 例如 要设定T0工作在定时方式2 TMOD 0X02 不能位寻址 00000010 u 定时器 计数器控制寄存器TCON u u TF0 TF1分别是定时器 计数器T0 T1 的溢出标志位 加法计数器计满溢出时硬件 自动置1 申请中断 u 对该标志位有两种处理方法 一种是以中断方式工作 即TF1置1并申请中断 响应中断后 执行中断服务程序

9、 并由硬件自动使TF1清0 另一种以查询方式工作 即通过查询该位是否为1来判断是否溢出 TF1置1后必须 用软件使TF1清0 u TR1 TR0 分别是定时器 计数器T1 T0 的定时器1启停控制位 GATE 0时 用软件使TR1置1即启动定时器1 若用软件使TR1清0则停止定时器1 GATE 1时 用软件使TR1置1的同时外部中断INT1的引脚输入高电平才能启动定 时器1 所以初始化时 只涉及到TR0 1 例 启动TR0 u TCON属于特殊功能寄存器 地址能被8整除 所以可位操作 这里用位操作方便 u TR0 1 TF1TR1TF0TR0IE1IT1IE0IT0 u 寄存器总结 3个特殊功

10、能寄存器 IE TMOD TCON 导入 例如要求单片机检测计数200个脉冲信号 u 定时器 计数器用于定时或计数时 必须按照需要给计数器设置初 值 定时器 计数器在计数初值的基础上以加1的方式进行计数 在 计数器从全1变为全0时 将自动产生溢出中断请求 表示此次定时 计数结束 计数初值怎么设置 定时 计数器有四种工作方式 实际使用中应用选择哪种 u 三 定时 计数器的计数容量及初值 u 1 最大计数容量 次数 u 最大计数容量与计数器的二进制位数有关 关系为2N u 举例 若为2位计数器 00 01 10 11 最大计数值为2N 4 u 2 计数初值 u 计数不一定是从0开始 这要根据需要来

11、设定 这个预先设定的计数起点值称为 计数初值 u u FFFFH u 最大计数容量 u 初值 u u 0000H u 计数值 初值 最大计数容量 u 举例 一个杯子的总容量为最大计数容量 已经装了少量的水为初值 还能装多 少水位计数值 u 四 定时 计数器的工作方式 MCS 51单片机的T C有4种工作方式 分别由TMOD寄存器中的M1 M0两位的二进制编 码所决定 u 1 方式0 13位计数器 在方式0下 T0和T1工作在13位的定时 计数器方式 由TH的高 8 位和TL的低 5 位组成 u u 当T1的低五位TL1计满时向它的高八位TH1进位 当T1的13位计数器加到全部为 1 以 后 再

12、加1就产生溢出 这时置TCON的TF1为 1 同时把计数器全部变 0 然后从 0 开始继续计数 u 计数值范围 0 1111111111111 8191 u 最大计数容量213 8192 u 如计数值为N 则置入的初值X为 u X N 8192 u 例如 若定时 计数器T0的计数值为1000 则初值为7192 把初值转换成二进制数为1110000011000B 则TH0 11100000B TL0 00011000B 脉冲 信号 u 2 方式1 16位计数器 在方式1下 T0和T1工作在16位的定时 计数器方式 由TH的高 8 位和TL的低 8 位组成 u u 当T1的低8位TL1计满时向它的

13、高八位TH1进位 当T1的16位计数器加到全 部为 1 以后 再加1就产生溢出 这时置TCON的TF1为 1 同时把计数 器全部变 0 然后从 0 开始继续计数 u 最大计数次数216 65536 u 如计数值为N 则置入的初值X为 u X N 65536 u 如定时 计数器T0的计数值为1000 则初值为65536 1000 64536 u 把初值转换成二进制数为1111110000011000B u 则TH0 11111100B TL0 00011000B 脉冲 信号 u 3 方式2 8位自动重装初值计数器 在方式2下 TL0用作8位计数器 TH0用作初值寄存器 u 当T1的8位计数器加到

14、全部为 1 以后 再加1就产生溢出 这时置TCON的TF1为 1 同时 TH1中的初值装入TL1TL1又从初值开始计数 u 最大计数次数28 256 u 如计数值为N 则置入的初值X为 u X N 256 u 如定时 计数器T0的计数值为100 则初值为256 100 156 u 把初值转换成二进制数为10011100B u 则TH0 TL0 10011100B 脉冲 信号 特别适合于产生比较精确的连 续脉冲信号 u 4 方式3 2个独立的8位计数器 方式3只适用于定时器T0 TL0既能作定时器也能作计数器使用 而TH0只能作定 时器使用而不能作计数器使用 u比较 方式0 1 2 1 3种方式

15、的最大区别是计数位数不同 13 16 8 所以最大计 数值或定时时间也不同 2 工作方式0和工作方式1的特点就是计数溢出后 计数器变为全0 因而循环定时或循环计数应用时就存在反复设置初值 工作方式2具有自动重装载功能 即自动加载计数初值 u 以方式1为例 16位 最大计数容量65536 如果采用12 的晶振 对应的脉冲周期是 微秒 计满 65536个脉冲所对应的时间就是65 536ms 计数 只要用预置数的方法先在计数容器内存入一个初值 如我们 要计100次 那就存入65436初值 只要再来100个脉冲 就刚 好会溢出 引发中断 那么 定时初值计算 u 五 定时 计数初值计算 u 由 计数值

16、计数初值 最大计数容量 得到 u 计数值 计数初值 机器周期 最大计数容量 机器周期 u 计数次数 机器周期 计数初值 机器周期 最大计数容量 机器周期 u 定时时间 计数初值 机器周期 最大计数容量 机器周期 u 即 定时时间 最大计数容量 初值 机器周期 u 所以 定时初值 最大计数容量 定时时间 机器周期 u 2N 定时时间 机器周期 不同工作方式的定时初值或计数初值的计算方法如下表所示 工作方式 计计数位数 最大计计数容量 最大定时时时时 间间 定时时初值计值计 算公 式 计计数初值计值计 算公式 方式013213 8192213 T机X 213 T T机X 213 计数值 方式116216 65536216 T机X 216 T T机X 216 计数值 方式2828 25628 T机X 28 T T机X 28 计数值 u 举例 定时1秒 晶振12MHZ 方式1 初值为多少 u 如何产生1秒定时信号 u 晶振12MHZ 机器周期1us u 4种工作方式中 最大计数容量是方式1 65536 u 则65536us 65 536ms u 所以定1次不够 u 那就定多次 累计在一起 构成

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号