




免费预览已结束,剩余67页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章定时 计数器 本章学习目标 能正确描绘定时 计数器的4种工作方式 重点掌握方式1 方式2的应用学会定时 计数初值的计算能读懂教材中的控制实例 学会编写同等难度的中断 定时 计数程序 5 定时 计数器 1 日常生活中定时 计数的例子 如闹钟 画 正 统计选票 家用水表对水量的计数 2 单片机应用系统中定时计数的需求 如用单片机控制的打铃器 空调的定时开关 啤酒自动生产线上对酒瓶的计数装置等 3 80C51单片机片内的定时 计数器 两个 位可编程的定时 计数器 T0和T1 都能定时和对外部事件进行计数 此外 T1还可以作为串行接口的波特率发生器 5 1 1定时 计数器的结构 定时和计数的原理 1 计数定时 计数器的实质是加 计数器 位 其原理类似于古代用来计时的水钟 假设计满一小时需要100 000 000滴 这称为水钟的计数容量 16位定时 计数器的计数容量是65536 单片机是对脉冲个数计数 计数器每接收到一个脉冲 计数值加1 当接收满65535个脉冲后 再来一个脉冲 计数值清0表明这一轮计数结束 同时将标志位TF0或TF1置1 2 定时单片机内部的计数器用作定时器时 是对标准的时钟进行了计数 每来一个时钟脉冲 计数器加1 只要保证计数脉冲的间隔相等 则计数值就代表了时间的流逝 见图4 9 它是由单片机的晶振经过12分频后得到 由于晶振的频率很准 所以这个时钟脉冲的时间间隔也很准 不难算出 当单片机采用12 的晶振时 它提供给计数器的脉冲频率是 脉冲周期就是 微秒 图4 9定时 计数器T0的结构示意图 单片机内部的16位定时 计数器由高8位和低8位两个寄存器组成 T0由TH0和TL0组成 T1由TH1和TL1组成 定时 计数器的计数值就存放在这里面 定时 计数器T1的结构与T0相同 图4 9定时 计数器T0的结构示意图 2 定时 计数器的结构 再以水钟为例 当水不断落下 下面容器中的水不断变多 最终总有一滴水使得容器完全充满 这时如果再有一滴水落下 就会发生 溢出 与此类似 16位定时 计数器计满65536个脉冲时 也会发生溢出 定时 计数器溢出后标志位TF0 或TF1 由0变1 由此能够引发定时中断 在中断定时方式下 这就像定时的时间一到 闹钟就会响一样 如果采用12 的晶振 对应的脉冲周期是 微秒 计满65536个脉冲所对应的时间就是65 536ms 3 定时 计数值的设置 再回到水钟的例子上去 刚才假设下面容器滴入100 000 000滴水才会满 现在我们在开始滴水之前先放入一勺水 这样问题就解决了 计数器的道理是一样的 只要用预置数的方法先在计数容器内存入一个初值 通常称为时间常数 如我们要计100 那就存入65436 只要再来100个脉冲 就刚好会溢出 引发中断 计数器初值的设置 在主频为12MHz的情况下 每个时钟脉冲是1微秒 则计满65536个脉冲需65 536毫秒 如要定时10毫秒则存入初值55536 10毫秒是10000微秒 需计数10000个脉冲 可见 定时器的定时时间长短与系统时钟和定时器初值有关 定时器初值的设置 4 10定时 计数器的控制关系 5 2定时 计数器的控制在单片机中有两个特殊功能寄存器与定时 计数有关 它们就是TMOD和TCON 定时 计数器T0 T1就由它们来控制 TMOD用于设置工作方式 TCON用于控制其启动 停止和中断申请 1 定时器工作方式寄存器TMODTMOD用于设置T0和T1的工作方式 字节地址为89H 不能按位寻址 其格式和各位的含义如下 2 定时 计数器控制寄存器TCONTCON的低4位用于控制外部中断 高4位用于控制定时 计数器的启动和中断申请 TF0 或TF1 当计数溢出时 TF0 或TF1 会自动由0变1 告诉我们计数已满 我们可以通过查询TF0 或TF1 位的状态来判断计时时间是否已到 如果采用定时中断方式 则TF0 或TF1 由0变1时 能自动引发中断 TR0 或TR1 由图4 11可知 只有当TR0 或TR1 为1时 开关1才能闭合 计数脉冲才能进入计数器 故TR0 或TR1 称为运行控制位 可用指令 SETBTR0 或TR1 来置位以启动定时 计数器运行 或用指令 CLRTR0 或TR1 来关闭定时 计数器的工作 一切全靠编程人员控制 图4 11定时 计数器T0方式0的逻辑结构示意图 5 3定时 计数器的工作方式80C51单片机定时 计数器T0有4种工作方式 方式0 1 2 3 T1有3种工作方式 方式0 1 2 1 方式0当TMOD的M1M0 00时 定时 计数器工作于方式0 方式0为13位定时 计数器 由TL0的低5位和TH0 8位 共同完成计数功能 TL0的高3位可忽略 当TL0的低5位溢出时 向TH0产生进位 TH0溢出时 将定时器中断请求标志位TF0置1 可申请中断 也可对TF0进行查询 图4 11定时 计数器T0方式0的逻辑结构示意图 2 方式1当M1M0 01时 定时 计数器工作于方式1 方式1的计数位数是16位 由TL0作为低8位 TH0作为高8位共同构成 其余操作同方式0 图4 12定时 计数器T0方式1的逻辑结构示意图 3 方式2当M1M0 10时 定时 计数器工作于方式2 这是自动重装初值的8位计数方式 它省去了方式0和方式1在多次重复计数状态下必须重新设定计数初值的麻烦 但是却付出了减小定时时间的代价 图4 13定时 计数器T0方式2的逻辑结构示意图 特别适合于制作比较精确的脉冲信号发生器 4 方式3方式3只适用于定时 计数器T0 当T1被设定为方式3状态时 将停止计数 当M1M0 11时 T0工作于方式3 此时TL0和TH0作为两个相互独立的8位定时 计数器使用 TL0既可定时又可计数 它使用T0的各控制位 引脚和中断源 即C GATE TR0 TF0 T0 P3 4引脚 P3 2引脚 TH0此时只能用作内部定时功能 它借用了定时 计数器T1的控制位TR1和T1的中断标志位TF1 其启动和停止只受TR1控制 图4 14定时 计数器T0方式3的逻辑结构示意图 定时器T1无工作方式3 当定时器T0工作在方式3时 定时器T1可设置为方式0 方式1和方式2 4 4 1应用指导1 定时 计数器的定时 计数范围定时 计数器工作于不同方式下的位数不同 它所具有的计数范围也不一样 工作方式0 13位定时 计数方式 因此 最多可以计到213 也就是8192次 工作方式1 16位定时 计数方式 因此 最多可以计到216 也就是65536次 工作方式2和工作方式3 都是8位定时 计数方式 因此 最多可以计到28 也就是256次 如果我们需要超过计数器计数范围的定时或计数功能 应该怎样做 4 4定时 计数器应用与训练 2 时间常数初值的计算定时 计数器只要预设一个时间常数初值 就可以完成不超过其计数范围的任意大小的计数 算法如下 定时时间常数初值X 方式0X 8192 t fosc 12 方式1X 65536 t fosc 12 方式2 方式3X 256 t fosc 12 其中t是需要定时的时间 单位是微秒 fosc是晶振 计数时间常数X 方式0X 8192 S方式1X 65536 S方式2 方式3X 256 S说明 式中S是需要计数的次数 假设流水线上一个包装是12盒 要求每到12盒就产生一个动作 用单片机的工作方式0来控制 应当预置的计数初值是多少呢 对了 就是8192 12 8180 3 定时 计数器的初始化对80C51单片机的定时 计数器编程的初始化方法 对TMOD赋值 以确定T0和T1的工作方式 计算时间常数初值 并将其写入TH0 TL0或TH1 TL1 采用中断定时方式时 需对IE赋值开中断 置位TR0或TR1 启动定时 计数器 4 4 2基本训练 初始化训练 例3 某牛奶生产线上一个包装是12盒 要求每生产12盒就执行装箱操作 用80C51单片机来控制 请编写初始化程序 1 思路与计算 要确定定时器 T0或T1 选择其工作方式 我们以T0的工作方式2为例 计算时间常数并赋值给TH0 TL0 X 256 S 256 12 244 0F4H 2 初始化程序 MOVTMOD 06H T0作计数器 工作于方式2MOVTH0 0F4H 装入时间常数初值MOVTL0 0F4H 自动重装时间常数MOVIE 00H 用查询方式确定计满12盒 或MOVIE 82H 使用T0中断 计满12盒后 自动申请中断SETBTR0 启动T0波特率发生器3 总结 对计数过程是否结束有查询和中断两种方法 要合理选择 并在程序设计中正确体现 4 4 3应用实例1 定时 计数器用于外部脉冲宽度的测量 1 测量原理 可以利用定时 计数器方式寄存器TMOD中的门控位GATE与引脚配合使用 控制定时 计数器的启动与停止 当GATE 1时 要求TR1 l 且为高电平 才能启动定时器T1计数工作 如果出现低电平 则T1停止计数 当GATE 0时 只要TR1 1就可以启动定时器 而与的输入状态无关 可以利用定时 计数器方式寄存器TMOD中的门控位GATE与引脚配合使用 控制定时 计数器的启动与停止 当GATE 1时 要求TR1 l 且为高电平 才能启动定时器T1计数工作 如果出现低电平 则T1停止计数 当GATE 0时 只要TR1 1就可以启动定时器 而与的输入状态无关 利用上述特点 将被测脉冲信号从 P3 3 引入 在T1的程序初始化中令GATE 1 同时 SETBTR1 这样脉冲信号的上升沿就能启动T1计数 脉冲信号下降沿能使T1停止计数 利用定时器T1的计数值m乘以机器周期就可以得到被测脉冲信号的宽度TW 2 硬件电路硬件电路简图如图4 15 3 程序设计利用80C51的内部RAM30H 31H单元保存被测脉冲宽度对应的计数值 参考程序如下 ORG0000HAJMPMAINORG0100HMAIN MOVSP 60H 设堆栈指针MOVTMOD 90H 设置控制字 T1工作于方式 1 GATE 1MOVTH1 00H 设定计数初值为00H MOVTL1 00HL1 JBP3 3 L1 等待输入变为低电平SETBTR1 预置TR1 1 准备启动T1L2 JNBP3 3 L2 等待上升沿 以便开始计数L3 JBP3 3 L3 是高电平则计数继续CLRTR1 低电平则停止计数MOVA TL1 读低位计数值MOV30H A 低位计数值存于30HMOVA TH1 读高位计数值MOV31H A 高位计数值存于31HEND 4 总结与思考定时 计数器还可用于测量脉冲信号的频率 周期等 本实例是利用定时 计数器的门控位 GATE 测量脉冲宽度 但要注意 在晶振12MHz的情况下 被测脉冲宽度范围最大为65535 1 s 65 536ms 如果要测量脉冲信号的周期 该如何去做 2 计数器用于绕线机的控制绕线机常用于对电机或变压器的绕组进行绕制 图4 16是绕线机的控制电路 当按下工作按钮以后 机器启动 绕线机在直流电机和减速齿轮的带动下开始工作 当绕线架上的线圈绕到规定的圈数时 绕线机会自动停止绕线 如果再次按下工作按钮 绕线机会重复以上过程 图4 16绕线机的控制电路控制说明 1 软件控制P1 0 0时 绕线机开始绕线 P1 0 1时 绕线机不绕线 2 绕线机每绕一圈 绕线机脉冲产生电路就产生一个脉冲信号 1 工作原理由于单片机复位后P1口的输出状态全部为1 所以系统上电后 P1 0输出高电平 1 绕线机不工作 当按下工作按钮以后 P1 1输入低电平 0 当程序检测到P1 1 0时 在程序指令的控制下从P1 0输出低电平 0 绕线机开始绕线 绕线机每绕一圈 定时 计数器T1的输入引脚上就会产生一个负跳变的输入脉冲 因此 只要用定时 计数器T1的计数功能控制好输入脉冲的个数 就等于控制了绕线机的绕线圈数 当绕线机缠绕到指定的圈数时 定时 计数器T1引发计数中断 在程序指令的控制下 P1 0将输出的高电平 1 使电机停转 制动器恢复制动 于是系统回到最初的停机状态 我们假设绕线架的规定匝数是5000圈 为控制这个圈数 可以设定定时 计数器T1用作计数器且工作在方式1 于是确定其计数初值为 初值 65536 5000 60536 0EC78H所以 TH1 0ECH TL1 78H 2 控制程序参考程序如下 ORG0000HAJMPMAINORG001BHAJMPCOUNTORG0100H MAIN MOVTMOD 50H 设置T1为计数器 工作于方式1MOVTH1 0ECH 设定计数初值MOVTL1 78HMOVSP 60H 设堆栈指针SETBET1 开T1中断SETBEA CPU开中断CLRF0 用户标志F0清0 WAIT MOVC P1 1 等待启动JCWAIT P1 1 1 等待CLRP1 0 启动设备SETBTR0 T1开始计数 LOOP JNBF0 等待计数5000中断SETBP1 0 绕线机停止工作CLRTR0 T1停止计数CLRF0 清0SJMPWAIT 等待重新启动ORG0200H T1中断服务程序起始地址COUNT MOVTH1 0ECH 重新设定计数初值MOVTL1 78HSETBF0 用户标志置1RETI 中断返回END 4 4课题与实训8简易方波发生器 一 实训目的掌握定时器初值的计算方法学习定时器的使用及定时中断程序的设计方法掌握方波信号发生器的设计方法二 课题要求1 基本要求 利用定时 计数器T1 工作于方式0 采用查询方式 在P1 0引脚输出频率为500Hz的方波 并用示波器进行观察 晶振采用12MHz 2 较高要求 利用定时 计数器T1 工作于方式0 采用中断方式 在P1 0引脚输出频率为500Hz的方波 并用示波器进行观察 晶振采用12MHz 三 背景知识1 方波产生原理使P1 0引脚的输出状态定时翻转 则该端口能输出一定频率的方波 2 方式0的时间常数初值定时 计数器工作于方式0状态下 定时 计数的长度是13位 应用前面给出的时间常数初值的计算公式X 8192 t fosc 12 我们可以很方便地计算出时间常数初值 但在将其装入定时 计数器的TH TL寄存器时 必须要注意 将计算结果的高8位装入TH1 或TH0 低5位装入TL1 或TL0 这一环节是非常容易出错的 以该实训T1方式0产生500Hz的方波 周期是2ms 为例 需要进行1ms的定时 时间常数初值X 8192 1 10 3 12 106 12 8192 1000 7192 1C18H 0001110000011000B以13位二进制数表示 是1110000011000B 则 TL1 00011000B 18H TH1 11100000B 0E0H定义TMOD 00000000B 四 硬件电路该实训硬件电路十分简单 见图4 17 图4 17简易方波发生器的硬件电路 五 参考程序 1 P1 0输出500Hz方波 查询方式ORG0000HLJMPMAIN 跳至主程序ORG0100HMAIN MOVTMOD 00H 置T1工作于方式0MOVTH1 0E0H 装入时间常数初值MOVTL1 18HSETBTR1 启动T1LOOP JNBTF1 LOOP 查询等待CLRTF1 清TF1CPLP1 0 P1 0取反 MOVTH1 0E0H 重新装入时间常数初值MOVTL1 18HAJMPLOOP 继续生成波形END 2 P1 0输出500Hz方波 中断方式ORG0000HLJMPMAIN 跳至主程序ORG001BH T1的中断入口地址LJMPFANGBO 转至中断服务程序ORG0100HMAIN MOVTMOD 00H 置T1工作于方式0MOVTH1 0E0H 装入时间常数初值MOVTL1 18HSETBET1 允许T1中断SETBEA CPU开中断SETBTR1 启动T1 SJMP 等待中断FANGBO CPLP1 0 P1 0取反MOVTH1 0E0H 重新装入时间常数初值MOVTL1 18HRETI 中断返回END 六 总结与提高1 总结本实训利用定时器T1的定时功能 以两种形式输出频率为500Hz方波 在实际应用中 方波的频率可能要根据现场测量参数 给定参数或按照某种函数关系而变化 因此输出波形的频率在编程时还是未知的 2 提高定时 计数器的计时范围有限 当晶振采用12MHz时 方式1的计时时间最长 也只有65 536ms 当需要定时的时间超出了定时 计数器的计数范围 如需定时2秒 这时可以采用以下两种方法来处理 定时器 软件计数的方法思路是 利用定时 计数器T1 工作于方式1 实现50ms 次的定时 只要定时40次即可实现2s定时 可以算出定时 计数器T1工作于方式1时 时间常数初值为X 65536 t fosc 12 65536 50 10 3 12 106 12 15536 3CB0H于是 TH1 3CH TL1 0B0H 定义TMOD 00010000B 此处只给出延时2s的查询方式子程序 DELAY MOVR3 40 设置定时器溢出次数SETBTR1 启动T1开始计时D1 MOVTH1 3CH 装入时间常数初值MOVTL1 0B0H D2 JBCTF1 D3 TF1为1否 是则跳至D3 并清TF1 AJMPD2 否 则跳至D2D3 DJNZR3 D1 R3 0 不是 跳到D1CLRTR1 是 则停止计数RET 采用两个定时器串联的方法思路是 将两个定时器中的一个 如T0 设置为定时方式 另一个 T1 设置成计数方式 将定时器T0计满产生的输出 通过一根I O口线 如P1 0 连接到计数器T1的计数脉冲输入端P3 5 从而实现更长时间的定时 5中断与定时 计数器综合应用举例 4 5 1概述 定时 计数功能与中断一样 都是单片机的常用功能 两者常常同时使用 如实训7就是简单的中断 定时综合应用实例 在这类程序的编制过程中 要注意这样几个问题 选择合适的中断和定时 计数方式 如外部中断是采用电平触发还是脉冲下降沿触发 定时 计数是用自动重装方式还是每次定时结束后用软件重装 确定定时结束的判别方法 用中断还是查询 如采用中断 与其它中断的优先级如何确定 是否会影响系统功能 正确初始化 合理分配控制功能 5 2课题与实训9音乐门铃 一 实训目的1 掌握中断与定时 计数综合程序的设计方法2 学习音乐门铃的设计过程二 课题要求在单片机P1 0引脚外接扬声器 唱出 祝你生日快乐 歌 三 背景知识1 音频脉冲的产生声音的频谱范围约在几十到几千赫兹 若能利用程序来控制单片机某个口线的 高 电平或 低 电平 则在该口线上就能产生一定频率的方波 接上喇叭就能发出一定频率的声音 若再利用延时程序控制 高 低 电平的持续时间 就能改变输出频率 从而改变音调 例如 要产生中音1 从表4 5可知 中音1的频率为523Hz 周期T 1 523 1912 s 其半周期为1912 2 956 s 因此只要在P1 0引脚产生半周期为956 s的方波 即可听到持续的1音 C调各音符频率与计数初值的对应表如下 注 不发音的简谱码用 0 表示 2 音乐节拍的生成要唱出一首歌 只产生出音频脉冲还不够 还要考虑节拍 定义 每个音符占用一个字节 字节的高4位代表音符的高低 低4位表示该音符的节拍 如果一拍为0 4秒 则1 4拍是0 1秒 只要设定延迟时间就可获得节拍的时间 我们也可以设1 4拍为1个DELAY 则1拍应该是4个DELAY 只要求得1 4拍的DELAY时间 其余的节拍就是它的倍数 见表 表4 6节拍与节拍码对照表 3 建立音乐的步骤 先把谱的音符找出 然后由上表建立时间常数初值T的顺序表 标号为TABLE1 建立音符和节拍表 标号为TABLE 将构成发音符的计数值放在其中 TABLE表的结构为 简谱码 代表音符 为高4位 节拍码 表示节拍数 为低4位 在唱歌程序中对每一个有节拍的音符能通过设计共同生成音符节拍码 本程序的音符节拍码表见表4 5 1 1 4拍的延迟时间 187毫秒DELAY MOVR5 02D1 MOVR4 187D2 MOVR3 248DJNZR3 DJNZR4 D2DJNZR5 D1DJNZR6 DELAYRET 2 歌谱生日快乐歌C3 4 5 565 7 5 565 祝你生日快乐祝你生日快乐 5 5 76 我们高声歌唱祝你生日快乐 四 硬件电路 图4 18音乐的应用电路 五 参考程序 ORG0000HLJMPMAIN 跳至主程序ORG001BH T1的中断入口地址LJMPTIM1 转至中断服务程序ORG0100HMAIN MOVTMOD 10H 置T1工作于方式1SETBET1 开T1中断SETBEA CPU开中断MAIN1 MOV60H 00H 取简谱码指针NEXT MOVA 60H 简谱码指针装入AMOVDPTR TABLE 指向简谱码TABLE表地址MOVCA A DPTR 简谱码存入AMOVR1 A 简谱码暂存R1JZSTOP 是否取到结束码00 ANLA 0FH 没有 则取低4位的节拍码MOVR6 A 取到的节拍码存入R6MOVA R1 将取到的简谱码再装入ASWAPA 高低4位交换ANLA 0FH 取低4位的音符码 JNZSING 取到的音符码是否为0 CLRTR1 是 则不发音AJMPDT 转至DTSING DECA 对取到的非0音符码减1MOV22H A 音符码暂存22HRLA 乘2MOVDPTR TABLE1 至TABLE1取与高字节相 对应的频率初值 MOVCA A DPTR MOVTH1 A 取到的高字节存入TH1MOV21H A 取到的高字节存入21HMOVA 22H 重装取到的音符码RLA 乘2INCA 加1MOVCA A DPTR 至TABLE1取与低字节相对 应的频率初值MOVTL1 A 取到的低字节存入TL1MOV20H A 取到的低字节存入20HSETBTR1 启动T1 开始计时 DT LCALLDELAY 1 4拍的基本单位时间187毫秒INC60H 将简谱码指针加1 AJMPNEXT 取下一个码STOP CLRTR1 计时停止AJMPMAIN1 重复循环TIM1 PUSHACC 保护A值PUSHPSW 保护PSWMOVTH1 21H 重装入时间常数初值MOVTL1 20H 重装入时间常数初值CPLP1 0 P1 0取反 发声POPPSW 恢复PSWPOPACC 恢复ARETIDELAY MOVR5 2 187毫秒子程序 决定音乐节拍D2 MOVR4 187 D3 MOVR3 248 DJNZR3 DJNZR4 D3 DJNZR5 D2 DJNZR6 DELAY RETTABLE1 DW64260 64400 64524 64580DW64684 64777 64820 64898DW64968 65030 65058 65110DW65157 65178 65217TABLE 1DB82H 01H 81H 94H 84HDB0B4H 0A4H 04HDB82H 01H 81H 94H 84HDB0C4H 0B4H 04H DB0E2H 01H 0E1H 0D4H 0B4HDB0C4H 0B4H 04HDB00END 六 总结与提高制作音乐门铃的关键就是对乐谱建表 包括T值表和简码表 以表4 5的T值表为例 对于简单的乐谱 只需再增加高音区和低音区的几个音符 其余部分不变 而简码表则不然 它要随着每个音的音符和节拍而定 因曲目而异 2DB82H 01H 81H 0F4H 0D4HDB0B4H 0A4H 94H 下面给出 两只老虎 的乐谱 你能制作出它的音乐门铃吗 两只老虎4 4 1231 1231 345 345 两只老虎两只老虎跑得快跑得快 565431 565431 151 151 一只没有耳朵一只没有尾巴真奇怪真奇怪 4 6外部中断源的扩展 在单片机控制系统中 外部中断的使用非常重要 通过它可以中断CPU的运行 转去处理更为紧迫的外部事务 如报警 电源掉电保护等 80C51单片机仅提供了两个外部中断源 在实际控制系统中可能出现多个外部中断 因此有必要对外部中断源进行扩展 4 6 1利用定时器溢出中断扩展外部中断源 即把内部不使用的定时 计数器出借给外部中断使用 方法如下 将80C51单片机闲置的定时 计数器的初值设为全1 只要从计数引脚 T0 T1 输入一个脉冲就可以使其引起中断 可以采用下面的程序初始化T1 MOVTMOD 60H T1工作于方式2MOVTL1 0FFH 设为全1MOVTH1 0FFHSETBTR1 启动T1SETBET1 开T1中断SETBEA CPU开中断 中断服务程序 RETI 4 6 2利用中断与查询相结合的方式扩展 电路如图4 19所示 当CPU检测到的中断请求信号时 由P1口查询判断中断源 点亮相应的发光二极管 源程序如下 ORG0000HAJMPMAIN 设主程序入口ORG0003H 中断入口AJMPLL 转中断服务程序ORG0100H 主程序起始地址MAIN ORLP1 0FFH P1口置输入 SETBIT0 设边沿触发SETBEX0 允许中断SETBEA 开中断AJMP 等待中断 ORG0200HLL JNBP1 0 LED1 IN0没中断 再判断下一个CLRP1 4 IN0中断 灯L0亮LED1 JNBP1 1 LED2 IN1未中断CLRP1 5 IN1中断 L1亮LED2 JNBP1 2 LED3 IN2未中断CLRP1 6 IN2中断 L2亮LED3 JNBP1 3 END0 IN3未中断CLRP1 7 IN3中断 L3亮END0 RETI 返回END 除此之外 还可以采用串行口方式和中断控制芯片8259来扩展 本章小结 中断系统及定时 计数器是单片机的重要组成部分 利用中断技术能够更好地发挥单片机系统的处理能力 有效地解决慢速工作的外设与快速工作的CPU之间的矛盾 从而提高了CPU的工作效率 增强了它的实时处理能力 中断处理一般包括中断请求 中断响应 中断服务 中断返回四个环节 80C51单片机中断系统有5个中断源 即外部中断0和外部中断1 定时 计数器T0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业沙发清洗方案(3篇)
- DB23-T3006-2021-人工影响天气地面作业安全事故现场处置与报告规范-黑龙江省
- DB23-T2911-2021-细绿萍种植及收获技术规程-黑龙江省
- DB23-T2902-2021-冷季型草坪草混播种植技术规程-黑龙江省
- DB23-T2850-2021-公共视频监控系统建设规范-黑龙江省
- 培训学习报销管理制度
- 地铁施工设备管理制度
- 关于公司保险管理制度
- 储罐清洗公司管理制度
- 公司破产员工管理制度
- 正规防水补漏合同模板
- 中建EPC项目报批报建工作操作指引
- 《言语治疗技术》考试复习题库(附答案)
- 《义务教育数学课程标准(2022年版)》初中内容解读
- 气压传动课件 项目八任务一 公共汽车门气压传动系统
- 制鞋业鞋类产品设计与生产流程规范
- DB42-T 2275-2024 消防给水设施物联网系统技术标准
- Unit4Friendsforever短文巧记单词学习任务单高中英语
- 2024年春七年级地理下册 第8章 第三节 俄罗斯教案 (新版)湘教版
- 1旅游概述《旅游学概论》省公开课一等奖全国示范课微课金奖课件
- DL∕T 5390-2014 发电厂和变电站照明设计技术规定
评论
0/150
提交评论