已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020 3 31 1 项目3简易秒表的设计与制作 本章内容 3 1认识单片机的中断系统 3 3利用单片机输出方波 3 2认识单片机定时器 计数器 3 5简易秒表的设计与制作 3 4简易计时器的设计 2020 3 31 2 项目3简易秒表的设计与制作 重点掌握单片机的中断系统及应用重点掌握单片机的定时器 计数器的结构及工作原理重点掌握单片机的定时器 计数器的应用 本章要点 2020 3 31 3 3 1任务1认识单片机的中断系统 单片机都具有实时处理能力 即能对外部或是内部发生的事件做出及时处理 这是靠中断技术来实现的 1 单片机的中断的魅力 单片机对外部或是内部事件的处理方式有两种 查询方式和中断方式 采用程序查询方式 CPU不能再做别的事 而是在大部分时间处于等待状态 使CPU的工作效率降低 为了提高CPU的利用效率和进行实时数据处理 CPU常采用中断方式对外部或是内部事件进行处理 1 中断的基本概念 当CPU正在处理某项事件时 如果外部或内部发生了紧急情况要求CPU迅速去处理 于是CPU暂停当前正在处理的工作 转去处理这紧急情况 待紧急情况处理完以后再回到原来被中断的地方继续执行原来被中断的程序 这一过程就称为中断 如图3 1所示 图3 1中断示意图 一 中断源 引起紧急情况的来源 可分为两大类 一类来自单片机内部 称之为内部中断源 另一类来自单片机外部 称之为外部中断源 中断请求 或中断申请 中断源要求服务的请求 中断服务 对中断请求 或中断申请 提供的服务 中断管理系统 能实现中断功能的硬件和软件 中断响应过程 中断管理系统处理事件的过程 单片机处理中断有4个步骤 中断请求 中断响应 中断处理和中断返回 二 两种中断 1 可屏蔽中断 可程控 开中断 关中断 软件设置允许 禁止CPU响应中断 2 非屏蔽中断 不可程控 关中断 有中断请求信号 CPU必须响应 INTR InterruptRequest 可屏蔽中断请求NMI Non MaskableInterrupt 非屏蔽中断 2 MCS 51中断系统 1 MCS 51单片机的中断源 MCS 51单片机的中断源共有5个 可分为如下三类 外部中断 INT0 INT1定时中断 T0 T1串行口中断 说明 外部中断源 当 INT0 P3 2 引脚 INT1 P3 3 引脚出现低电平或下降沿时定时中断源 内部定时 计数器T0 T1定时时间到 或计数值超限溢出时串行口中断源 一帧串口数据发送 接收完成 即一帧数据送出 或收到时 CPU响应中断后 只知道有中断源请求中断服务 但并不知道是5个中断源中的哪个中断源 CPU寻找哪个中断源发出中断请求的过程即为中断识别 中断识别的目的是获取中断服务程序入口地址 每个中断源都有一个位于ROM内的中断服务程序入口地址 中断服务程序入口地址如表3 1所示 表3 1中断服务程序入口地址 C51中不必考虑中断向量 使用中断号即可 C51中断服务函数声明的格式 函数名 interruptn usingm 函数体语句 2 MCS 51单片机中断系统的结构 MCS 51单片机中断系统结构图如图3 3所示 图3 3MCS 51单片机中断系统结构图 3 与MCS 51单片机中断系统有关的SFR 定时器控制寄存器TCON 主要用于保存中断信息 串行口控制寄存器SCON 主要用于保存中断信息 中断允许寄存器IE 主要用于控制中断的开放和关闭 中断优先级寄存器IP 主要用于设定优先级别 硬件查询电路 主要用于判定5个中断源的自然优先级别 TCON 88H 定时器控制寄存器 控制定时器的启动与停止 并保存T0 T1的溢出中断标志和外部中断的中断标志 TF1 TCON 7 定时器1溢出标志位 定时器1被启动计数后 从初值开始进行加1计数 当定时器1计满溢出时 由硬件自动使TF1置1 并申请中断 该标志一直保持到CPU响应中断后 才由硬件自动清0 也可用软件查询该标志 并由软件清0 TR1 TCON 6 定时器1启停控制位 IT1 TCON 2 外部中断1触发方式选择位 当ITl 0时 外部中断1为电平触发方式 当ITl 1时 外部中断1为边沿触发方式 IE1 TCON 3 外部中断1请求标志位 IEl 1表示外部中断1向CPU申请中断 当CPU响应外部中断1的中断请求时 由硬件自动使IE1清0 TF0 TCON 5 定时器0溢出标志位 其功能同TF1 TR0 TCON 4 定时器0启 停控制位 其功能同TR1 IE0 TCON 1 外部中断0请求标志位 其功能同IE1 IT0 TCON 0 外部中断0触发方式选择位 其功能同IT1 SCON 98H 串行口控制寄存器 低2位TI和RI保存串行口的接收中断和发送中断标志 TI SCON 1 串行发送中断请求标志 CPU将一个字节数据写入发送缓冲器SBUF后启动发送 每发送完一帧数据 硬件自动使TI置1 但CPU响应中断后 硬件并不能自动使TI清0 必须由软件使TI清0 RI SCON 0 串行接收中断请求标志 在串行口允许接收时 每接收完一帧数据 硬件自动使RI置1 但CPU响应中断后 硬件并不能自动使RI清0 必须由软件使RI清0 IE A8H 中断允许寄存器 控制CPU对中断的开放或屏蔽以及每个中断源是否允许中断 中断总允许标志 EA 1 允许全部 0 禁止全部串口中断允许标志 ES 1 允许 0 禁止定时中断0允许标志 ET0 1 允许 0 禁止定时中断1允许标志 ET1 1 允许 0 禁止外部中断0允许标志 EX0 1 允许 0 禁止外部中断1允许标志 EX1 1 允许 0 禁止 IP B8H 中断优先级寄存器 设定各中断源的优先级别 串口中断优先级标志 PS 1 高优先 0 低优先定时中断0优先级标志 PT0 1 高优先 0 低优先定时中断0优先级标志 PT1 1 高优先 0 低优先外部中断0优先级标志 PX0 1 高优先 0 低优先外部中断1优先级标志 PX1 1 高优先 0 低优先 四 中断优先级控制原则和控制逻辑 中断优先级是为中断嵌套服务的 如图 MCS 51具有2级优先级 1 优先级控制原则 1 低优先级中断不能打断高优先级的中断服务 但高优先级中断请求信号可以打断低优先级的中断服务 从而实现中断嵌套 2 如果一个中断请求已被响应 则同级的其它中断服务将被禁止 即同级中断不能嵌套 3 如同级的多个中断请求同时出现 则按CPU查询次序确定哪个中断请求被响应 查询次序为 INT0 T0 INT1 T1 RI TI 2 控制逻辑 1 利用中断优先级控制寄存器 2 2个不可寻址的优先级状态触发器 状态 0 或 1 4 单片机复位时 IP各位都被置0 所有中断源为低级中断 五 CPU响应中断必须满足如下条件 必须同时满足 有中断源发出中断请求中断总允许位EA 1请求中断的中断源的中断允许位为1 六 中断响应过程 1 关中断 屏蔽其它中断请求信号 2 保护断点 将断点地址压入堆栈保存 即当前PC值入栈 3 寻找中断源 中断程序入口地址 PC 转入中断服务 4 保护现场 将中断服务程序使用的所有寄存器内容入栈 5 中断处理 执行中断源所要求的程序段 链接中断处理6 恢复现场 恢复被使用寄存器的原有内容 7 开中断 允许接受其它中断请求信号 8 中断返回 执行RETI指令 堆栈断点地址 PC 程序跳转回断点处执行 RETI RET指令 通知CPU中断服务已结束 复位触发器 八 中断响应周期时序 每个机器周期的最后一个状态 S6 采样中断标志位 若有中断请求 将在下一个机器周期的第一个状态 S1 按优先级顺序进行中断查询 中断响应时间 正常中断响应时间为3 8个机器周期 如果有同级或高级中断服务 将延长中断响应时间 七 中断响应阻断 1 CPU正处在为一个同级或高级的中断服务中 即当有同级或高级中断服务 2 查询中断请求的机器周期不是当前指令的最后一个机器周期 即当CPU未执行完一条指令 3 当前执行返回指令RET RETI或访问IE IP的指令后 不能立即响应中断 还应再执行一条指令 然后才能响应中断 程序单步执行就是利用此原理 借助单片机的外部中断功能来实现的 3T 中断请求标志查询 1T产生 执行LCALL 2T 8T 执行RET RETI 访问IP IE 2T主程序中MUL DIV指令 4T执行LCALL指令 2T 4 中断请求的撤除 CPU响应某中断请求后 在中断返回前 应该撤消该中断请求 否则会引起另一次中断 定时器溢出中断请求的撤除CPU在响应中断后 硬件会自动清除中断请求标志TF0或TFl 串行口中断的撤除在CPU响应中断后 硬件不能清除中断请求标志TI和RI 而要由软件来清除相应的标志 外部中断的撤除边沿触发方式时 CPU响应中断后 硬件会自动清除中断请求标志IE0或IEl 电平触发方式时 CPU响应中断后 硬件会自动清除中断请求标志IE0或IEl 但由于加到INT0或INT1引脚的外部中断请求信号并未撤除 中断请求标志IE0或IEl会再次被置1 所以在CPU响应中断后应立即撤除INT0或INT1引脚上的低电平 4 电平方式外部中断请求的撤消 自动与强制撤除通过硬件自动地使标志位 IE0或IE1 清0 电平请求方式光靠清除中断标志 并不能彻底解决中断请求的撤除问题 需在中断响应后把中断请求输入端从低电平强制改为高电平 D触发器的直接置位端SD 得到负脉冲 ORLP1 01H P1输出高电平ANLP1 0FEH P1输出低电平软硬件相结合完成 硬件 自动清标志位 IE0或IE1清0 软件 撤消中断请求信号 由低电平改为高电平 2 单片机中断的应用 在使用单片机的中断功能时 需对中断系统进行初始化 其初始化步骤如下 开放CPU中断和有关中断源的中断允许 设置中断允许寄存器IE中相应的位 根据需要确定各中断源的优先级别 设置中断优先级寄存器IP中相应的位 根据需要确定外部中断的触发方式 设置定时器控制寄存器TCON中相应的位 实例3 1 如图3 5所示电路 要求采用中断方式编程实现按键按压一次 发光二级管的状态反转一次 发光二极管初始状态为灭 图3 5实例3 1电路图 参考程序如下 includesbitbutton P3 2 定义位变量sbitled P1 0 定义位变量voidint0 interrupt0 外部中断0中断子程序 led led 状态取反 voidmain button 1 为输入做准备EA 1 开总中断IT0 1 设置外部中断0为下降沿触发EX0 1 开外部中断0的中断开关led 0 初始状态为灭while 1 实例3 2 如图3 6所示电路 要求采用中断方式编程实现按键按压一次 数码管的值加1 到F时重新从0开始 数码管初始状态为黑屏 图3 6实例3 2电路图 参考程序如下 includesbitbutton P3 2 unsignedcharduan 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x77 0 x7c 0 x39 0 x5e 0 x79 0 x71 unsignedchari voidint0 interrupt0 P2 duan i i if i 16 i 0 voidmain button 1 EA 1 IT0 1 EX0 1 P2 0 while 1 实例3 3 如图3 7所示电路 编程验证两级外部中断的嵌套效果 要求key1优先级为低 key2优先级为高 key1按键按压一次led发光二极管闪烁5次 key2按键按压一次数码管从0循环显示到F led发光二极管初始状态为灭 数码管初始状态为黑屏 图3 7实例3 3电路图 参考程序如下 includesbitkey1 P3 2 sbitkey2 P3 3 sbitled P1 0 unsignedcharduan 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x77 0 x7c 0 x39 0 x5e 0 x79 0 x71 voiddelay unsignedintz unsignedintx y for x z x 0 x for y 125 y 0 y voidint0 interrupt0 unsignedcharj for j 0 j 10 j led led delay 500 voidint1 interrupt2 unsignedchari for i 0 i 16 i P2 duan i delay 500 voidmain key1 1 key2 1 IE 0 x85 IP 0 x04 IT0 1 IT1 1 P2 0 led 0 while 1 2020 3 31 29 3 2任务2认识单片机的定时器 计数器 定时 计数器是单片机系统一个重要的部件 其工作方式灵活 编程简单 使用方便 可用来实现定时控制 延时 频率测量 脉宽测量 信号发生 信号检测等 此外 定时 计数器还可作为串行通信中波特率发生器 1 单片机的定时器 计数器 MCS 51单片机有两个16位定时器 计数器 分别为T0和T1 T0和T1又分别可分为两个8位定时器 计数器 名为TH0 TL0和TH1 TL1 MCS 51单片机的定时器 计数器的本质都是是计数器 对MCS 51单片机来说 当选择单片机的机器周期作为计数对象时 它们是定时器 当对通过T0引脚 P3 4 或T1引脚 P3 5 引入的外部脉冲作为计数对象时 它们是计数器 定时 计数功能由软件控制和切换 如图3 8所示 图3 8MCS 51单片机定时器 计数器结构示意图 MCS 51单片机定时器 计数器工作原理如图3 9所示 图3 9MCS 51单片机定时器 计数器工作原理图 1 定时器 计数器的基本工作原理 当T0或T1用做定时器时 其计数脉冲来源于晶振时钟输出信号的12分频 即每个机器周期使计数器加1 当T0或T1用做计数器时 只要T0或T1引脚上有一个从1到0的负跳变 相应的计数器就加1 单片机只在每个机器周期的S5P2状态对T0及T1引脚上的电平进行一次采样 同时单片机需要用两个机器周期来识别一次负跳变 所以单片机计数器的最高计数频率为晶振频率的1 24 2 定时器 计数器的结构 MCS 51单片机定时器 计数器工作原理如图3 10所示 图3 10MCS 51单片机定时器 计数器结构图 3 定时器 计数器的控制 定时 计数器的控制关系 以T1为例 如图3 11所示 图3 11T1定时器 计数器控制关系图 与定时器 计数器有关的SFR主要有TMOD和TCON 定时器方式控制寄存器TMOD GATE 门控位 参与定时器的启停管理 0 软件启动定时器 即用指令使TCON中的TR1 TR0 置1即可启动定时器1 定时器0 1 软件和硬件共同启动定时器 即用指令使TCON中的TR1 TR0 置1时 只有外部中断INT1 INT0 引脚输入高电平时才能启动定时器1 定时器0 C T 模式选择位 0 定时 1 计数 M1M0 方式选择位 00 方式0 01 方式1 10 方式2 11 方式3 定时器控制寄存器SCON TF1 TCON 7 定时器1溢出标志位 当定时器1计满溢出时 由硬件自动使TF1置1 并申请中断 对该标志位有两种处理方法 一种是以中断方式工作 即TF1置1并申请中断 响应中断后 执行中断服务程序 并由硬件自动使TF1清0 另一种以查询方式工作 即通过查询该位是否为1来判断是否溢出 TF1置1后必须用软件使TF1清0 TR1 TCON 6 定时器1启停控制位 GATE 0时 用软件使TR1置1即启动定时器1 若用软件使TR1清0则停止定时器1 GATE 1时 用软件使TR1置1的同时外部中断INT1的引脚输入高电平才能启动定时器1 TF0 TCON 5 定时器0溢出标志位 其功能同TF1 TR0 TCON 4 定时器0启停控制位 其功能同TR1 IE1 TCON 3 外部中断1请求标志位 IT1 TCON 2 外部中断1触发方式选择位 IE0 TCON 1 外部中断0请求标志位 IT0 TCON 0 外部中断0触发方式选择位 2 定时器 计数器的工作方式 定时器 计数器共有4中工作方式 由TMOD寄存器中的M1M0决定 功能如表3 3所示 表3 3定时器 计数器工作方式 1 方式0 在方式0下 定时器 计数器是一个使用13位的定时 计数器 THi7 0 TLi4 0 以T1为例 方式0的逻辑结构图如图3 12所示 图3 12T1方式0逻辑结构图 在方式0下 定时时间t 213 X T机 s 计数初值X 213 t T机其中 T机是单片机的机器周期 12MHz时T机 1 s 则最大定时时间t 213 s 8 192ms 实例4 假设晶振频率为12MHz 计算定时器T1在方式0下定时时间为500 s时的定时初值 解 计数初值X 213 500 1 7692 1111000001100B注意 方式0的TL1高3位未用 可填0 即在低5位前插入3个0 因此X 1111000000001100B F00CH 2 方式1 在方式1下 定时器 计数器是一个使用16位的定时 计数器 THi TLi 以T1为例 方式1的逻辑结构图如图3 13所示 图3 13T1方式1逻辑结构图 在方式1下 定时时间t 216 X T机 s 计数初值X 216 t T机12MHz时 最大定时时间t 216 s 65 536ms 3 方式2 在方式2下 定时器 计数器是一个使用8位的能够自动重装初值的定时 计数器 THi中的8位用于存放定时初值或计数初值 TLi中的8位用于加1计数器 TLi溢出后 THi数值可自动装入TLi 以T1为例 方式2的逻辑结构图如图3 14所示 图3 14T1方式2逻辑结构图 在方式2下 定时时间t 28 X T机 s 计数初值X 28 t T机12MHz时 最大定时时间t 28 s 0 256ms 4 方式3 在方式3下 2个定时器 计数器共有三种状态 方式3的逻辑结构图如图3 15所示 图3 15方式3逻辑结构图 TH0 TF1 TR1组成的8位定时器 只能用于定时 TL0 TF0 TR0组成的8位定时 计数器 既可用于定时 也能用于计数 T1组成的无中断功能的定时器 5 不同工作方式的定时初值或计数初值的计算方法 不同工作方式的定时初值或计数初值的计算方法如下表3 4所示 装载计数初值时 THx X 256 TLx X 256 X 0 1 表3 4不同工作方式的定时初值或计数初值 2020 3 31 45 3 3任务3利用单片机输出方波 1 简易方波发生器的设计 初始化的步骤如下 1 定时器 计数器的初始化 确定定时器 计数器的工作方式 确定方式控制字 并写入TMOD 预置定时初值或计数初值 根据定时时间或计数次数 计算定时初值或计数初值 并写入TH0 TL0或TH1 TL1 根据需要开放定时器 计数器的中断 给IE中的相关位赋值 启动定时器 计数器 给TCON中的TR1或TR0置1 2 利用单片机的定时器 计数器设计简易方波发生器 实例3 4 在P1 0引脚输出周期为1ms 频率1kHz 的方波 要求采用定时器1方式1的查询法和中断法分别设计程序 晶振频率为12MHz 根据题意 只要使P1 0每隔500 s取反一次即可得到周期1ms的方波 因而T1的定时时间为500 s 解 计数初值X 216 T T机 65536 500 1 65036 FE0CH则TH1 0 xfeTL1 0 x0c定时器1方式1时 TMOD 0 x10 查询法参考程序 includesbitp1 0 P1 0 voidmain TMOD 0 x10 TH1 0 xfe TL1 0 x0c TR1 1 p1 0 0 while 1 while TF1 TF1 0 p1 0 p1 0 TH1 0 xfe TL1 0 x0c 中断法参考程序 includesbitp1 0 P1 0 voidtimer1 interrupt3 p1 0 p1 0 TH1 0 xfe TL1 0 x0c voidmain TMOD 0 x10 TH1 0 xfe TL1 0 x0c EA 1 ET1 1 TR1 1 while 1 2 调试与仿真运行 图3 17实例5电路图 图3 18实例5仿真波形图 2020 3 31 49 3 4任务4简易计时器的设计 1 认识LED数码管 LED显示元件是常见的人机交互输出设备 其作用是指示中间运行结果与运行状态 LED种类较多 常见的LED如图3 19所示 图3 19LED实物图 1 单个LED的驱动 常见的单个LED的驱动电路如图3 20所示电路 a 图中端口引脚输出低电平 则LED点亮 R1为限流电阻 避免流过LED电流过大 b 图中端口引脚输出低电平 则Q1导通 LED点亮 R2为限流电阻 图3 20常见的单个LED驱动电路 2 单个数码管的驱动 将多个LED封装在一起 即可构成笔划式数码管 数码管内部由七个条形发光二极管和一个小圆点发光二极管组成 根据各管的亮暗组合成字符 常见数码管有10根管脚 管脚排列及分类如下图3 21所示 其中COM为公共端 根据内部发光二极管的接线形式可分为共阴极和共阳极两种 图3 21数码管管脚排列及分类 使用时 共阴极数码管公共端接地 共阳极数码管公共端接电源 静态时 推荐使用10 15mA驱动电流 动态扫描时 平均电流4 5mA 由于常规的数码管起辉电流只有1 2mA 最大极限电流也只有10 30mA 所以它的输入端在5V电源或高于TTL高电平 3 5V 的电路信号相接时 一定要串加限流电阻 以免损坏器件 3 恒流驱动与非恒流驱动对数码管的影响 显示效果 由于发光二极管基本上属于电流敏感器件 其正向压降的分散性很大 并且还与温度有关 为了保证数码管具有良好的亮度均匀度 就需要使其具有恒定的工作电流 且不能受温度及其他因素的影响 另外 当温度变化时驱动芯片还要能够自动调节输出电流的大小以实现色差平衡温度补偿 安全性 即使是短时间的电流过载也可能对发光管造成永久性的损坏 采用恒流驱动电路后可防止由于电流故障所引起的数码管的大面积损坏 4 数码管使用条件 段及小数点上加限流电阻 使用电压 段 根据发光颜色决定 查引脚排布图 看一下每段的芯片数量是多少 当红色与黄色时 使用1 9V乘以每段的芯片串联的个数 当绿色与蓝色时 使用2 1V乘以每段的芯片串联的个数 使用电流 静态 总电流80mA 每段10mA 动态 平均电流4 5mA 峰值电流100mA 2 数码管的字形编码与显示方式 1 数码管的字形编码 数码管的8段正好组成一个字节 当单片机的并行口P0 P3驱动数码管时 通常要求数据位D0 D7分别与数码管的a b c dp对应相连 即数据位D0驱动a字段 数据位D1驱动b字段 依此类推 如表3 6所示 表3 6数据位与各显示段的对应关系 当单片机P1口驱动数码管时 P1口各管脚与数码管各显示段的连接关系如图3 23所示 a 与共阳极数码管相连 b 与共阴极数码管相连图3 23单片机并行口与数码管的连接关系 单片机P1口驱动数码管时 无论是驱动共阴极还是共阳极数码管 P1口各管脚与数码管的连接关系相同 如图3 23所示 单片机其它并行口和数码管各显示段的对应连接关系与P1口相同 要使数码管显示相应的字符 必须使单片机并行口输出相应的字形编码 也称段码 对照图3 23 a 驱动共阳极数码管时 P1口输出的数据为0 低电平 表示对应字段亮 数据为1 高电平 表示对应字段暗 不亮 驱动共阴极数码管时 输出的数据为0表示对应字段暗 数据为1表示对应字段亮 例如 数码管显示数字 0 时 对共阳极数码管 应使字段g和字段dp暗 其它6个字段亮 因此单片机输出的字型编码应为 11000000B 即C0H 对共阴极数码管 对应的字型编码应为 00111111B 即3FH 依此类推 可求得数码管字形编码如表3 7所示 表3 7数码管显示段码表 2 数码管的显示方式 点亮LED显示器有静态和动态两种方法 如图3 24所示 静态显示 b 动态显示 图3 24数码管的显示方式 静态显示 就是数码管的各笔划段都由具有锁存能力的I O端口引脚驱动 CPU将段码写入锁存器后 每个数码管都由锁存器持续驱动 直到下一次CPU更新锁存器存储的段码之前 数码管的显示不会改变 当需要用静态显示的方法驱动多个数码管时 就需要使用多个具有锁存能力的I O端口 动态显示 是把所有数码管的8个笔划段a g和dp同名端连在一起 而每一个数码管的公共极COM各自独立地受I O线控制 CPU向字段输出口送出字形码时 所有数码管接收到相同的字形码 但究竟是哪个数码管亮 则取决于COM端 动态扫描用分时的方法轮流控制各个数码管的COM端 使各个数码管轮流点亮 在轮流点亮数码管的扫描过程中 每位数码管的点亮时间极为短暂 只要数码管点亮的间隔小于人眼的视觉暂留时间 40ms 人们就会认为数码管是一直点亮的 多个数码管动态显示时需同时提供相应的段码和位码 3 60S计时器的设计 实例3 5 设计任务 设计一60s计时器 设计要求 1 设计2个按键 key1为启动键 key2为清零键 直接清零时 数码显示管上显示 00 2 计时器为60s内递加计时 计时间隔为1s 3 计时器递加到60s时 数码管显示 60 同时蜂鸣器发声 直到key2清零键按下蜂鸣器停止发声 设晶振频率为12MHz 分析 可选用T0的方式1进行定时 但方式1最大定时时间为65 536ms 为实现1s的定时 可设定时器T0的定时时间为50ms 定时器溢出20次则说明定时满1s 计数初值X 216 T T机 65536 50000 1 15536 3CB0H则TH0 0 x3cTL0 0 xb0定时器T0工作在方式1时 TMOD 0 x01 实例6硬件电路图设计如图3 25所示 图3 25实例3 5仿真图 参考程序如下 includeunsignedcharduan 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f sbitkey1 P1 0 sbitkey2 P1 1 sbitbeep P3 7 bitrun unsignedcharcount i voiddelay unsignedintz unsignedintx y for x z x 0 x for y 125 y 0 y voidmain P0 0 P2 0 key1 1 key2 1 TMOD 0 x01 TH0 0 x3c TL0 0 xb0 EA 1 ET0 1 while 1 if key1 0 run 1 count 0 elseif key2 0 run 0 count 0 if run TR0 1 else TR0 0 P0 duan 0 P2 duan 0 if count 60 beep 1 蜂鸣器响delay 1 调用1ms延时beep 0 蜂鸣器不响delay 1 调用1ms延时 voidtimer0 interrupt1 i if i 20 i 0 count if count 60 count 60 P0 duan count 10 P2 duan count 10 TH0 0 x3c TL0 0 xb0 2020 3 31 64 3 5任务5简易秒表的设计与制作 电子秒表是一种常用的测时仪器 具有显示直观 读取方便 功能多等优点 在日常生活中应用的较为广泛 利用单片机的定时器 计数器实现分 秒定时 结合按键和显示部件 很容易实现电子秒表的设计 1 硬件电路设计与软件程序设计 实例3 6 设计任务 设计一简易秒表 设计要求 1 4位LED数码管显示秒 分值 从右往左显示秒值的个位 十位 分值的个位 十位 个位能向十位进位 2 上电后首先显示0000 表示从0000秒开始计时 当时间显示到5959时 4位显示都清零 从零开始 3 设计3个独立式按键key1 key2 key3 分别实现启动 暂停 复位功能 分析 为方便编程 3个独立按键key1 key2 key3可分别接到外部中断0 外部中断1和定时器T0引脚上 采用中断方式 外部中断0 外部中断1设为下降沿
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- C语言试题选择题及答案
- 2025年安全员B证考试试题及参考答案详解【巩固】
- 2025年卫生事业管理模拟真题卷
- 三类人员安全员C证继续教育考试题库
- 宜宾职业技术学院高职单招测试题(含答案解析)
- 2022年11月屏东县直遴选面试真题带题目详解
- 2025年电工中级职业技能考试电工仪表维护试题卷
- 2025年一级建造师《项目管理》模拟试题第四套
- 山西省税务师考《涉税服务实务》:增值税考试试卷
- 2025年考研计算机408科目真题汇编与模拟试卷
- BOPP项目可行性研究报告
- 收割机收割协议合同范本
- 重晶石精深加工生产线项目可行性研究报告
- 八年级语文上册统编版第六单元 课外古诗词诵读(公开课一等奖创新教学设计)
- 泌尿外科教学病例讨论
- 中华人民共和国两用物项出口管制条例考试试卷试题及参考答案
- 监理加盟合同协议书范本
- 2025年综合类-热力司炉工考试-高级热力司炉工历年真题摘选带答案(5卷单选一百题)
- 公司区域协同管理办法
- 架子鼓教学基础课件
- 第2课时四分位数与箱线图
评论
0/150
提交评论