欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    单片机应用技术课件.ppt

    • 资源ID:3676042       资源大小:1.82MB        全文页数:81页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机应用技术课件.ppt

    项目二 定制器控制,任务一 数码显示任务二 按键识别任务三 定时时间的设定任务四 定时器,单片机应用技术 高职高专 ppt 课件,任务一 数码显示,任务要求,本任务要求应用4位数码管分别显示片内存储器30H33H单元的数值(假设存储单元的内容为14)。知识目标:(1)认识8段数码管的外形和内部结构。(2)知道8段数码管的显示原理。(3)了解单片机对数码管的控制方式。技能目标:(1)会设计单片机与数码管静态显示的接口电路和控制程序。(2)会设计单片机与数码管动态显示的接口电路和控制程序。,单片机应用技术 高职高专 ppt 课件,任务一 数码显示,知识链接,1.数码管简介,(1)数码管的结构,单片机应用技术 高职高专 ppt 课件,(2)数码管的显示原理(共阳极数码管),知识链接,单片机应用技术 高职高专 ppt 课件,(3)数码管的字形编码,单片机应用技术 高职高专 ppt 课件,任务一 数码显示,知识链接,2.数码管显示方式,(1)静态显示,静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止,显示字形点亮的各段是持续点亮的,没有闪烁,此时的显示亮度主要取决于各段的驱动电流。,例2-1 应用单片机控制2位数码管分别显示“1”和“2”。试设计电路并编写程序。,单片机应用技术 高职高专 ppt 课件,任务一 数码管显示,知识链接,1)电路设计。,图2-2 74HC245引脚图,表2-2 74HC245逻辑功能表,AB/,单片机应用技术 高职高专 ppt 课件,图2-3 两位数码管静态显示电路图,知识链接,单片机应用技术 高职高专 ppt 课件,2)程序清单(LI2_1.ASM):,ORG 0000h JMP START ORG 0100HSTART:MOV P1,#0F9H MOV P2,#0A4H SJMP$END,知识链接,单片机应用技术 高职高专 ppt 课件,(2)动态显示方式,知识链接,选用动态显示的系统中一般有多位数码管,各位数码管不是同时点亮显示,而是逐位轮流的点亮(也称逐位扫描)。对每一位数码管而言,每隔一段时间点亮一次,每次点亮一定时间。这样,虽然每个数码管都是亮灭变化的,但只要选择合适的点亮时间和间隔时间,由于人的视觉暂留作用和发光二极管的余辉效应,使人肉眼看到的每个数码管都是稳定显示。一位接一位地轮流点亮各位数码管,这种逐位点亮显示器的过程称为位扫描。,3.堆栈指令介绍,PUSH direct;(SP)+1(SP),(direct)(SP,POP direct;(SP)(direct),(SP)-1(SP),例2-2 试分析下面指令序列的执行结果。MOV SP,#60H MOV DPTR,#1234H PUSH DPL PUSH DPH,指令序列执行的最终结果:(61H)34H,(62H)12H,(SP)62H。,知识链接,电路设计,任务一 数码管显示,程序设计,任务一 数码管显示,ORG 0000H LJMP MAIN ORG 0100HMAIN:MOV SP,#60H MOV R0,#30H;设置显示数值30H34H是14 MOV R1,#4 MOV A,#01HLOOP1:MOV R0,A INC A INC R0 DJNZ R1,LOOP1LOOP:MOV R3,#4;共4位数码管动态显示 ACALL DISPLAY AJMP LOOP,程序设计,MOV A,R0 MOVC A,A+DPTR MOV P0,A SETB P2.0 CLR P2.0;查表求段码并锁存输出 MOV A,R2;位码左移,准备点亮下一个数码管 RL A MOV R2,A INC R0 ACALL DELAY MOV P0,#0FFH;关显示 SETB P2.0 CLR P2.0 DJNZ R3,DIS1;循环点亮下一个数码管 POP ACC RET,;数码管动态显示子程序;R3是入口参数,存放显示位数DISPLAY:PUSH ACC CLR P3.6 SETB P2.7 MOV R2,#0FEH;R2单元存放位码值 MOV R0,#30H;30H单元存放显示数值 MOV DPTR,#SEGADIS1:MOV A,R2 MOV P0,A SETB P2.1 CLR P2.1;锁存输出位码,;延时1ms子程序DELAY:MOV R7,#02HD1EL2:MOV R6,#70HD1EL1:DJNZ R6,D1EL1 DJNZ R7,D1EL2 RET;共阳极数码管段码表SEGA:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH END,程序设计,任务一 数码管显示,1.技能训练(1)在学习板上实现一个数码管静态显示字形“3”。(2)在学习板上实现8个数码管分别显示数字18。(3)增加任务中的延时时间,观察数码管的显示情况。2.知识思考(1)什么是数码管的静态显示?(2)简述数码管动态显示过程。(3)什么情况下数据需要保护?本任务程序中可以将“PUSH”和“POP”两条指令去掉吗?,拓展训练,任务一 数码管显示,任务二 按键识别,任务要求,选用4个按键,编号分别是“14”,当某个键按下后,应用数码管显示按键编号。知识目标:(1)看懂单片机和独立式按键的接口电路。(2)了解独立式按键的工作原理。(3)掌握按键消抖的方法。(4)看懂单片机和矩阵式按键的接口电路。(5)了解矩阵式按键的工作原理。技能目标:(1)会设计单片机与数码管静态显示的接口电路和控制程序。(2)会设计单片机与数码管动态显示的接口电路和控制程序。(3)知道矩阵式按键的识别及控制方法。,知识链接,任务二 按键识别,1.按键的分类根据结构,按键可分为两类 触点式开关按键 无触点式开关按键根据接口原理按键可分为两类 编码键盘 非编码键盘,2.单片机对键盘的控制方式,知识链接,(1)查询方式:指在程序中用一段专门的扫描和读按键程序不停查询有无按键按下,确定键值。特点:电路简单,但需要占用单片机的机器时间。(2)定时扫描方式:指利用单片机内的定时器来产生定时中断,然后在定时中断的服务程序中扫描,检查有无按键按下,确定键值。特点:电路也比较简单,不占用单片机的机器时间,但需要占应用定时器,同时定时的时间不能过长,否则可能检测不到相应得按键。(3)中断扫描方式:指当有键按下时由相应的硬件电路产生中断信号,单片机在中断服务程序中扫描,检查有无按键按下,确定键值。特点:硬件电路上必须要产生中断线,需要与门和非门来产生。但中断方式不占用单片机的机器时间,也不会出现定时方式时的检测不到键盘的情况。,3.键盘接口,问题:由于机械触点的弹性作用,触点在闭合和断开瞬间的电接触情况不稳定,造成了电压信号的抖动现象。抖动时间:一般为110ms(如图2-5 所示)。后果:会引起单片机对于一次键操作进行多次处理,因此必须设法消除抖动现象。措施:软件消抖、硬件消抖,软件消抖,;延时10ms子程序DELAY10:MOV R7,#20;1sD10EL0:MOV R6,#255;1sD10EL1:DJNZ R6,D10EL1;2s,执行255次 DJNZ R7,D10EL0;2s,循环执行20次 RET;2s延时时间计算:1+1+2255+220+2=1026310000s=10ms。,(2)硬件消抖,图2-6 硬件消抖电路,4.独立式按键,独立式按键结构,图2-7 独立式与单片机接口电路图,;查询方式扫描一次键盘的程序 JPDL:MOV A,#0FFH MOV P1,A;置P1口为输入状态JPDL0:MOV A,P1;键状态输入 JNB ACC.0,JPDL1;检测0号键是否按下,按下转 JNB ACC.1,JPDL2;检测1号键是否按下,按下转 JNB ACC.2,JPDL3;检测2号键是否按下,按下转 JNB ACC.3,JPDL4;检测3号键是否按下,按下转 RET;无键按下返回JPDL1:ACALLPS1;PS4 分别为每个按键的功能子程序 RETJPDL2:ACALLPS2 RETJPDL3:ACALLPS3 RET JPDL4:ACALLPS4 RET,5.矩阵式键盘,矩阵式键盘的结构及原理,图2-8 矩阵键盘结构图,(2)矩阵式键盘按键的识别,以8号键的识别为例来说明扫描法识别按键的过程:按键按下时,与此按键相连的行线与列线短路导通,行线在无按键按下时处于高电平。显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此必须使所有列线处在低电平。只有这样,当有按键按下时,该按键所在的行电平才会由高电平变为低电平。CPU根据行电平的变化,就能判定相应的行有键按下。8 号键按下时,第3行一定为低电平。然而第3行为低电平时,能否肯定是8号键按下呢?回答是否定的,因为9、10、11号键按下,同样会使第3行为低电平。为进一步确定具体键,不能使所有列线在同一时刻处于低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依次循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。,(3)键盘的编码,对于矩阵式键盘,按键的位置由行号和列号惟一确定,因此可分别对行号和列号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。如图2-8中的8号键,它位于第3行,第0列,因此,其键盘编码应为30H。采用上述编码对于不同行的键离散性较大,不利于散转指令对按键进行处理。因此,可采用依次排列键号的方式对按键进行编码。以图2-8中的44键盘为例,可将键号编码为:01H、02H、03H、0EH、0FH、10H 等16个键号。编码的相互转换可通过计算或查表的方法实现。,6.键盘扫描程序,键盘扫描程序一般应包括以下内容。_ 判别有无按键按下。_ 键盘扫描取得闭合键的行、列值。_ 用计算法或查表法得到键值。_ 判断闭合键是否释放,如没释放则继续等待。_ 将闭合键键号保存,同时转去执行该闭合键的功能。,7.指令介绍,(1)CJNE指令。指令格式是:CJNE 目的,源,rel,共有4条:CJNE A,#data,rel;(A)与data比较,如果A=data,则顺序执行,否则转移CJNE A,direct,rel;(A)与(direct)比较,若相等则顺序执行,否则转移CJNE Rn,#data,rel;(Rn)与data比较,若相等则顺序执行,否则转移CJNE Ri,#data,rel;(Ri)与data比较,若相等则顺序执行,否则转移,图2-9 CJNE操作示意图,例2-3 将内部 RAM 的一个数据块(首址为DATA1)传送到内部数据RAM(首址为DATA2),遇到传送的数据为00H 时停止。程序清单:MOV R1,#DATA1;设置数据指针 MOV R0,#DPTA2;设置数据指针 LP1:MOV A,R1;读数据 CJNE A,#00H,LP2;(A)00H,则转移 RET;(A)00H,结束传送 LP2:MOV R0,A;送数到内部RAM INC R0;修改指针 INC R1;修改指针 SJMP LP1;继续传送,(2)累加器A判零指令,有两条:JZ rel;若(A)0,则转移,否则顺序向下执行 JNZ rel;若(A)0,则转移,否则顺序向下执行,在例2-3中,如果利用“JZ”指令的程序如下:MOV R1,#DATA1;设置数据指针 MOV R0,#DATA2;设置数据指针LP1:MOV A,R1;读数据 JZ LP2;判断传送数据是否为00H,是则转移 MOV R0,A;数据不为00H,送内部RAM INC R0;修改地址指针 INC R1;修改外部RAM地址指针 SJMP LP1;继续传送LP2:RET;结束传送,返回主程序,电路设计,任务二 键盘识别,本任务硬件主要由单片机、键盘、显示数码管组成。键盘选择4个按键,采用独立键盘控制,电路如图2-7所示,其编号分别是“14”。键值显示电路如图2-4所示,但只选用其中一个数码管静态显示。,程序设计,任务二 键盘识别,ORG 0000H AJMP START ORG 0100H START:CLR P2.0 CLR P3.6 SETB P2.7 MOV P0,#0FEH;输出数码管公共端信号 SETB P2.1;开通U14 CLR P2.1;锁存U14LOOP:ACALLDLJP AJMPLOOP;独立按键识别子程序DLJP:MOV P1,#0FFH MOV A,P1;读键盘状态 CJNE A,#0FH,XDOU;有键按下消抖处理DLJPR:RET;无键按下则再读键盘状态,程序设计,XDOU:MOV 40H,A;把读的键盘状态放在40H的地址 ACALL DELAY10;延时 MOV A,P1;再读键盘状态 CJNE A,40H,DLJPR;比较两次读键盘状态,如不同则返回 JB ACC.0,SS2;S1键未按下,转SS2 ACALL PS1;1号键按下,显示1 AJMP DLJPRSS2:JB ACC.1,SS3;S2键未按下,转SS3 ACALL PS2;2号键按下,显示2 AJMP DLJPRSS3:JB ACC.2,SS4;S3键未按下,转SS4 ACALL PS3;3号键按下,显示3 AJMP DLJPRSS4:JB ACC.3,DLJPR;S4键未按下,读键盘 ACALL PS4;4号键按下,显示4 AJMP DLJPR,程序设计,PS1:MOV P0,#0F9H;1号键键处理子程序 SETBP2.0 CLRP2.0 RET;1号键按下,显示1PS2:MOV P0,#0A4H;2号键键处理子程序 SETBP2.0 CLRP2.0 RET;2号键按下,显示2PS3:MOV P0,#0B0H;3号键键处理子程序 SETBP2.0 CLRP2.0 RET;3号键按下,显示3PS4:MOV P0,#99H;4号键键处理子程序 SETBP2.0 CLRP2.0 RET;4号键按下,显示4,1.技能训练(1)应用PROTEUS仿真矩阵键盘的键值显示。(2)应用学习板完成按键S1每按下一次,数码管显示值加一的功能(复位后数码管显示0)。(3)画出本任务完整电路图。2.知识思考(1)独立式键盘的工作原理是什么?(2)说明矩阵键盘的按键识别过程。(3)键盘消抖的方法有哪些?,拓展训练,任务三 定时时间的设定,任务三 定时时间的设定,任务要求,本任务要求应用独立式按键,使用3个按键,S1为定时时间加1键,S2为减1键,S3定时时间清零键。要求定时时间范围099秒,定时时间的设定值应用两位数码管显示。,知识目标:(1)进一步理解独立按键工作原理。(2)理解逻辑运算指令和数据交换指令。技能目标:(1)会应用按键设定定时时间。(2)会编写16进制数转换为10进制数程序。(3)会应用逻辑运算指令和数据交换指令。(4)会设计码型转换程序,知识连接,逻辑操作指令,(1)逻辑与操作指令(6 条)ANL A,direct;对A中的内容和直接寻址单元中的内容执行与操作,结果存到A中ANL A,#data;对A中的内容和立即数执行与操作,结果存到A中ANL A,Rn;对A中的内容和寄存器Rn中的内容执行与操作,结果存到A中ANL A,Ri;对A中的内容和工作寄存器Ri所指的地址单元中的内容执行与操作,结果存到A中ANL direct,A;对直接寻址单元中的内容和A中的内容执行与操作,结果存到直接寻址单元中ANL direct,#data;对直接寻址单元中的内容和立即数执行与操作,结果存到直接寻址单元中,(2)逻辑或操作指令(6 条)ORL A,direct;对A中的内容和直接寻址单元中的内容执行或操作,结果存到A中ORL direct,#data;对直接寻址单元中的内容和立即数执行逻辑或操作,结果存在直接寻址单元中ORL A,#data;对A中的内容和立即数执行逻辑或操作,结果存在A中ORL A,Rn;对A中的内容和寄存器Rn中的内容执行逻辑或操作,结果存到A中ORL direct,A;对直接寻址单元中的内容和A中的内容执行逻辑或操作,结果存在直接寻址单元中ORL A,Ri;对A中的内容和工作寄存器Ri所指的地址单元中的内容执行或操作,结果存在A中,知识连接,(3)逻辑异或操作指令(6条)XRL A,direct;对A中的内容和直接寻址单元中的内容执行异或操作,结果存在A中XRL direct,#data;对直接寻址单元中的内容和立即数执行异或操作,结果存在直接寻址单元中XRL A,#data;对A中的内容和立即数执行异或操作,结果存在A中XRL A,Rn;对A中的内容和寄存器Rn中的内容执行异或操作,结果存在A中XRL direct,A;对直接寻址单元中的内容和A中的内容执行异或操作,结果存在直接寻址单元中XRL A,Ri;对A中的内容和工作寄存器Ri所指的地址单元中的内容执行异或操作,结果存在A中,知识连接,2.交换指令(5条),XCH A,Rn;(A)(Rn),累加器与工作寄存器Rn中的内容互换XCH A,direct;(A)(direct),累加器与直接寻址单元中的内容互换XCH A,Ri;(A)(Ri),累加器与工作寄存器Ri所指存储单元中的内容互换XCHD A,Ri;(A3-0)(Ri)3-0),累加器与工作寄存器Ri所指存储单元中内容的低半字节互换SWAP A;(A3-0)(A7-4),累加器中内容的高、低半字节互换,知识连接,例2-4 拆字程序,把R7的内容拆开,高4位送到片内RAM的30H单元中,低4位送到31H中。程序如下:MAIN:MOV A,R7 ANL A,#0F0H;屏蔽高位 SWAP A;交换A中高低位的内容 MOV 30H,A;R7的高4位送到30H中 MOV A,R7;再读入R8中的内容 ANL A,#0FH;屏蔽高位 MOV 31H,A;R7的低4位送到31H SJMP$,知识连接,3.乘除法指令,MUL AB;(A)(B)(A)和(B),将累加器A中的内容与寄存器B中的内容相乘,结果的低8位存在累加器A中,高8位存在寄存器B中DIV AB;(A)/(B)(A)和(B),将累加器A中的内容除以寄存器B中的内容,所得商存在累加器A中,余数存在寄存器B中。,例如,若(A)=FBH(251),(B)=12H(18),执行指令“DIV AB”后,(A)=0DH(13),(B)=11H(17),(OV)=0,(CY)=0。,知识连接,4.码型的转换,16进制与ASCII的转换,表2-3 十六进制与ASCII码的对应关系表,知识连接,例2-5 将1位十六进制数转换成相应的ASCII码。设该十六进制数存放于累加器A中,转换后的ASCII码存放于R1中。一位十六进制只占累加器A的低四位,转换前应先屏蔽掉没用的高4位,然后判断其是否小于A,判断方法是将其与A相减,看是否有借位。有借位说明小于A,ASCII码是将其加30H,否则将其加37H。程序清单(LI2_7.ASM)如下:HTOASC:ANL A,#0FH;屏蔽高四位 MOV R5,A;暂存R5中 CLR C;清借位位 SUBB A,#0AH;判断十六进制数的大小 MOV A,R5;取回原十六进制数 JC XYA;有借位,转至XYA ADD A,#37H;大于A,加37H SJMP ABCXYA:ADD A,#30H;小于A,加30HABC:MOV R1,A RET,(2)BCD码(十进制数的二进制编码),表2-4 8421BCD码编码表,BCD码是一种具有十进制权的二进制编码。BCD码种类较多,常用的是8421码。8421码是一种采用4位二进制数来代表一位十进制数的代码系统。在这个代码系统中,十组4位二进制数分别代表了09中的十个数字符号。,知识连接,(3)十六进制数转换成BCD码格式的十进制数,例2-6 将两位十六进制数转换成两位BCD码(设数值范围是099)。099范围的十六进制数占一个字节单元,假设存放于片内RAM的34H单元中,将该16进制数除10,得到的商是BCD码的十位,存放到R4中,得到的余数是BCD码的个位,存放到R5中。程序清单(LI2_8.ASM)如下:MOV A,34HHTOBCD:MOV B,#10;16进制转换10进制子程序 DIV AB MOV R4,A MOV R5,B RET,知识连接,电路设计,实现本任务功能的电路主要包括两部分电路(1)4个独立式按键,它们与单片机的接口电路如图2-7所示;(2)数码管显示电路,电路参考图2-4,该秒表的时间设定范围是099秒,选用低位两个数码管显示设定的秒值即可。,任务三 定时时间的设定,程序设计,程序清单(A2_3.ASM)ORG 0000H LJMP MAIN ORG 0100HMAIN:MOV SP,#60H MOV 30H,#00H MOV 32H,#00H MOV 34H,#00H LOOP1:MOV R3,#2 ACALL DISPLAY;动态显示子程序,参考A2_1.ASM ACALL DLJP;独立按键扫描子程序,参考A2_2.ASM SJMP LOOP1,任务三 定时时间的设定,PS1:INC 34H;S1按键处理子程序,单击S1键定时时间加1 MOV A,34H CJNE A,#100,PS11 MOV 34H,#00H MOV A,34H PS11:ACALL HTOBCD;将定时时间转换十进制 MOV 30H,R4;将定时时间送显示单元 MOV 31H,R5 RETPS2:DEC 34H;S2按键处理子程序;单击S1键定时时间减1 MOV A,34H CJNE A,#0FFH,PS21 MOV 34H,#99 MOV A,34H PS21:ACALL HTOBCD;将定时时间转换十进制 MOV 30H,R4;将定时时间送显示单元 MOV 31H,R5 RET,程序设计,;S3按键处理子程序PS3:MOV 34H,#0;单击S3键,定时时间清零 MOV A,34H PS21:ACALL HTOBCD;将定时时间转换十进制 MOV 30H,R4;将定时时间送显示单元 MOV 31H,R5 RET;S4按键处理子程序PS4:RET;单击S4键,直接返回 END,任务三 定时时间的设定,拓展训练,1.技能训练(1)写出本任务完整程序清单。(2)将累加器A中的8位二进制数转换成3位BCD码格式的十进制数。2.知识思考(1)执行下列指令序列后,相关寄存器、存储单元及标志如何变化?,2)MOV A,#89H MOV 32H,#98H ORL 32H,A,4)MOV A,#89H SWAP A RLC A(讨论C的内容),1)MOV A,#98H MOV R4,#11H ANL A,R4,3)CLR A CPL A XRL A,#77H,任务三 定时时间的设定,(2)已知(A)=7AH和(CY)=1,试指出执行下列程序后的最终结果。1)MOV A,#0FH 2)MOV A,#0BBH CPL A CPL A MOV 30H,#00H RR A ORL 30H,#0ABH MOV 40H,#AAH RL A ORL A,40H 3)ANL A,#0FFH 4)ORL A,#0FH MOV 30H,A SWAP A XRL A,30H RRC A RLC A XRL A,#0FH SWAP A ANL A,#0F0H(4)什么是BCD码?,拓展训练,任务三 定时时间的设定,任务四 定时器,任务要求 本任务要实现定时器功能,定时范围099秒,4位数字显示,显示精度0.01秒。4个按键实现定时器的控制,单击S1键定时时间加1,单击S2键定时时间减1,单击S3键定时时间清零,S4是重新定时按键。数码管进行计时显示和设定时间的显示,当定时时间到,声音提示。知识目标:(1)熟悉中断系统结构和中断处理过程。(2)掌握定时计数器的工作原理。(3)明白定时/计数器的结构。技能目标:(1)会设置定时/计数器的工作方式。(2)会计算定时初值。(3)会对定时计数器初始化。(4)会编写定时/计数器相关程序。,知识连接,中断的基本概念,CPU正在处理某一事件A时,事件B请求CPU迅速去处理(中断请求或中断申请);CPU暂停事件A的处理,转去处理事件B(中断响应);事件B处理结束后,CPU又回到事件A暂停的地方继续处理事件A(中断返回),这一过程称为中断。中断源:事件B是引起CPU中断的根源。断点:事件A被暂停的地方。中断服务处理:事件B的过程,也称为中断处理。中断服务程序:CPU处理事件B需要执行的程序。中断系统:实现中断的所有部件。,任务四 定时器,2.89C51单片机的中断系统,(1)89C51单片机中断系统的结构,图2-10 单片机中断系统的结构,知识连接,(2)中断源及中断请求标志,1)INT0外部中断请求0,中断请求标志为IE0。该中断源的中断请求信号由INT0(P3.2)引脚输入,有效信号通过硬件自动置位IE0=1,请求中断。2)INT1外部中断请求1,中断请求标志为IE1。该中断源的中断请求信号由INT1(P3.3)引脚输入,有效信号通过硬件自动置位IE1=1,请求中断。,TCON的格式如下:,说明:外部中断源有两种请求触发方式,低电平触发和下降沿触发,具体选择那种方式要通过TCON的IT0和IT1进行设置。IT0:外部中断请求INT0的触发方式设置位。IT0可由软件置“1”或清“0”。当IT0为0时,选择为电平触发方式,INT0低电平有效。ITl:外部中断请求INT1的触发方式设置位,意义和 IT0 类似。,3)定时器/计数器T0,中断请求标志为TF0。片内计数器T0计数满溢出,自动置位TF0=1,产生中断请求。CPU响应中断后,标志位TF0自动清零。4)定时器/计数器T1,中断请求标志为TF1。片内计数器T1计数满溢出,自动置位TF1=1,产生中断请求。CPU响应中断后,标志位TF0自动清零。,知识连接,5)串行口,该中断源有两个中断请求标志位,RI(串行口控制寄存器SCON 的D0位)和TI(串行口控制寄存器SCON 的D1位)。当串行接口接收完一桢串行数据时,置位RI=1,产生接收中断请求;当串行接口发送完一桢串行数据时,置位TI=1,产生发送中断请求。CPU响应中断后,标志位RI和TI都不能自动清零,必须在中断服务程序中通过软件清零。,SCON的格式如下:,知识连接,IE的格式如下:,中断允许寄存器IE各位的功能如下:EA:中断允许总控制位。EA0,CPU屏蔽所有中断请求;EA1,CPU开放所有中断。ES:串行口中断允许位。ET1:T1的溢出中断允许位。EX1:外部中断1中断允许位。ET0:T0 的溢出中断允许位。EX0:中断0中断允许位。,Ei=1,允许中断;Ei=0,禁止中断。,(3)中断优先级寄存器IP,IP的格式如下:,PS 串行口中断优先级控制位。PT1 定时/计数器T1中断优先级控制位。PX1 外部中断1中断优先级控制位。PT0 定时器T0中断优先级控制位。PX0 外部中断0 中断优先级控制位。,Pi=1,设置为高优先级Pi=0,设置为低优先级,知识连接,中断优先级相应原则:1)低优先级可被高优先级中断,而高优先级中断源不能被任何中断源所中断。2)任何一种中断(不管是高级还是低级),一旦得到响应,不会再被它的同级中断所中断。3)当几个同优先级的中断同时申请中断,响应哪一个中断源将取决于内部查询顺序,或称为辅助优先级结构,其优先级排列如下表所示。,知识连接,(4)中断的处理过程 1)中断响应条件和时间中断响应条件有三个:中断源有中断请求;此中断源的中断允许位为1;CPU开中断(EA=1)。上述三个条件必须同时满足,CPU才有可能响应中断。在下列情况之一时,CPU将封锁对中断的响应,虽然响应中断的三个条件都满足,但是不响应。第一:CPU正在处理一个同级或更高级别的中断请求;第二:现行的机器周期不是当前正在执行指令的最后一个周期。单片机有单周期、双周期、三周期指令,当前执行指令是单字节没有关系,如果是双字节或四字节的,就要等整条指令都执行完了,才能响应中断(因为中断查询是在每个机器周期都可能查到的);第三:当前正执行的指令是返回批令(RETI)或访问IP、IE寄存器的指令,则CPU至少再执行一条指令才响应中断。这些指令都是与中断有关的,如果正访问IP、IE则可能会开、关中断或改变中断的优先级,而中断返回指令则说明本次中断还没有处理完,所以都要等本指令处理结束,再执行一条指令才响应中断。,2)中断响应过程将内部的优先级状态触发器置1,以阻止后来的同级或低级的中断请求;执行一条硬件LCALL指令,使断点的地址入栈,然后将相应的中断服务程序入口地址送PC;执行中断服务程序。中断响应过程的前两项是由中断系统硬件电路自动完成的,而中断服务程序要由用户自己编写。,表2-6 中断服务程序入口地址表,知识连接,3)中断返回,这个过程是通过指令RETI实现的。中断服务程序的最后一条指令必须是RETI。RETI指令使CPU结束中断服务程序的执行,返回到曾经被中断的程序处,继续执行原来的程序。RETI指令的具体功能是:将中断响应时压入堆栈保存的断点地址从栈顶弹回PC,CPU从原来中断的地方继续执行程序将相应中断优先级状态触发器清0。,知识连接,例2-7 应用按钮K,模拟外部中断源,电路如图2-11所示,单击按钮,就产生一个外部中断请求。89C51单片机响应中断请求,将数码管显示数值加1。数码管显示参考图2-4,选择两位数码管动态显示。,图2-11 一个外部中断源电路,程序清单(LI2_9.ASM):ORG0000H LJMP MAIN ORG 0013H LJMP PP0 ORG 0030HMAIN:MOVSP,#60H MOV30H,#0 MOV31H,#0 MOV34H,#0SETB EA SETB EX1 SETBPX1SETB IT1,LOOP:MOVR3,#2 ACALLDISPLAY SJMPLOOPPP0:PUSHACCINC34HACALL HTOBCDMOV30H,R4MOV31H,R5POP ACC RETI,3.89C51单片机的定时计数器,(1)定时器/计数器的组成结构,图2-12 定时/计数器结构图,知识连接,(2)定时器/计数器的工作方式寄存器,TMOD的格式如下:,TMOD各位含义如下:,GATE,门控制。当GATE=0时,只要用软件使TCON的TR0或TR1为1,就可以启动相应的定时/计数器;当GATE=1时,要用软件使TCON的TR0或TR1为1,同时外部中断引脚也为高电平时,才能启动定时/计数器工作。,或,:定时/计数器功能选择位。当=1时,作为计数器实现对外部脉冲计数;当=0 时,作为定时器实现定时控制。,知识连接,M1 和M0,工作方式选择位。定时器/计数器有4 种工作方式,可通过M1、M0 进行设置,见表2-7。表2-7 定时/计数器工作方式设置表,知识连接,(3)定时/计数器控制寄存器TCON格式:,TCON的低4 位用于控制外部中断前面已经介绍,这里只介绍高4 位,各位含义如下:TF0,TF1分别为定时器T0、T1的计数溢出中断请求标志位。计数器计数溢出时,该位由硬件置1。使用查询方式时,此位作为状态位供CPU查询,查询后需由软件清0;使用中断方式时,此位作为中断请求标志位,CPU响应中断后由硬件自动清0。TR0,TR1分别为定时器T0、T1的运行控制位,可由软件置1 或清0。(TR0)或(TR1)1,启动定时/计数器工作;(TR0)或(TR1)0,停止定时/计数器工作。,知识连接,(4)定时/计数器的工作方式,1)方式0:16 位寄存器(由特殊功能寄存器TL0 和TH0 组成)只用了13 位,由TH0 的8 位和TL0 的低5 位组成一个13 位的定时/计数器,TL0 的高3 位未用,其最大的计数次数应为213次。,图2-13 工作方式0 的逻辑结构图,2)方式1:由特殊功能寄存器TL0 和TH0 组成一个16 位的定时/计数器,其最大的计数次数应为216次。除了计数位数不同外,方式1 与方式0的工作过程相同。,3)方式2:是自动重装初值的8 位定时/计数器。8 位寄存器TL0 作为计数器,TH0用于存放计数初值,启动前,TL0 和TH0装入相同的初值,当TL0计数溢出时,在将中断标志位TF0置1的同时,TH0的初值自动重新装入TL0。,图2-14 工作方式2 的逻辑结构图,4)方式3:方式3只适用于定时/计数器T0,定时/计数器T1不能工作在方式3。此方式时定时计数器T0 分为两个独立的8 位计数器:TL0 和TH0,其逻辑结构如图2-15所示,TL0 使用T0的状态控制位C/T、GATE、TR0 及INT0,而TH0 被固定为个8位定时器(不能作外部计数方式),并使用定时器Tl 的状态控制位TRl 和TFl,同时占用定时器T1 的中断源。,图2-15 方式3 逻辑结构图,(5)定时器初值的计算,计数方式:计数初值=满值-计数值=2N-计数值。定时方式:计数值=定时时间机器周期,计数初值=满值-计数值=2N-定时时间机器周期。,定时和计数两种方式都是启动定时器后从初值开始加1计数,计数满溢出置中断请求标志位。不同工作方式只是计数位数不同,满值不等,但计算方法相同,假设计数位数为N,则满值都是2N。,知识连接,例2-8 利用定时器T0的方式0定时模式,在P1.0引脚上输出周期为10ms的方波。设单片机的晶振频率fosc=12MHz。,程序(LI2_10.ASM)如下:ORG 0000HLJMP MAINORG 000BH;T0中断服务程序入口地址LJMP PINT0;转T0服务程序实际地址ORG 0100HMAIN:MOV TMOD,#00H;置T0方式字MOV TL0,#18H;置定时器初值MOV TH0,#63H SETB EA;CPU开中断SETB ET0;T0中断允许SETB TR0;启动T0运行SJMP$;等待中断ORG 0200H;实际的T0中断服务程序起始地址PINT0:MOV TL0,#18H;重装初值MOV TH0,#63HCPL P1.0;定时时间到取反P1.0输出RETIEND,例2-9 已知晶振12MHz,测量由(P3.3)引脚输入的外部脉冲宽度,所测得的高8位值存入30H单元,低8位存于31H单元。,程序(LI2_11.ASM)如下:ORG 0000HLJMPMAINORG 0030HMAIN:MOV TMOD,#90H;应用T1,定时方式1,GATE=1MOV TH1,#0MOV TL1,#0;T1初值设为0JB P3.3,$;等待INT1变为低SETB TR1;INT1变低电平,TR1置1JNB P3.3,$;等待INT1变高JB P3.3,$;等待INT1再次变低,这段时间计数器计数CLR TR1;再次变低后停止计数MOV 30H,TH1;保存测量结果MOV 31H,TL1SJMP$END,4.蜂鸣器简介,图2-17 单片机与扬声器接口电路,蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机I/O引脚输出的电流较小,驱动不了蜂鸣器,因此需要增加一个电流放大的电路。,知识连接,电路设计,本任务电路分三部分(1)按键部分,参考图2-7(2)显示部分,参考图2-4(3)发声部分,参考图2-17,任务四 定时器,程序清单(A2_4.ASM)如下:;30H 显示十位;31H 显示个位;32H 显示0.1位;33H 显示.01位;34H 存放设定的定时时间;35H 计时整数部分;36H 计时小数部分ORG 0000HLJMP MAINORG000BHLJMPPRT0ORG 0100HMAIN:MOV SP,#60HCLR P3.5MOV R0,#30HMOV R1,#7MOV A,#0H,LOOP:MOV R0,AINC R0DJNZ R1,LOOPMOV TMOD,#01H;T0定时方式1MOV TH0,#0D8H;T0定时10ms初值MOV TL

    注意事项

    本文(单片机应用技术课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开