




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机应用技术第1页,共83页,2022年,5月20日,2点48分,星期二项目二 定制器控制任务一 数码显示任务二 按键识别任务三 定时时间的设定任务四 定时器单片机应用技术 高职高专 ppt 课件第2页,共83页,2022年,5月20日,2点48分,星期二任务一 数码显示任务要求本任务要求应用4位数码管分别显示片内存储器30H33H单元的数值(假设存储单元的内容为14)。 知识目标: (1)认识8段数码管的外形和内部结构。 (2)知道8段数码管的显示原理。 (3)了解单片机对数码管的控制方式。 技能目标: (1)会设计单片机与数码管静态显示的接口电路和控制程序。 (2)会设计单片机与数码管动
2、态显示的接口电路和控制程序。单片机应用技术 高职高专 ppt 课件第3页,共83页,2022年,5月20日,2点48分,星期二任务一 数码显示知识链接1.数码管简介(1) 数码管的结构单片机应用技术 高职高专 ppt 课件第4页,共83页,2022年,5月20日,2点48分,星期二(2) 数码管的显示原理(共阳极数码管)字型码位码知识链接单片机应用技术 高职高专 ppt 课件第5页,共83页,2022年,5月20日,2点48分,星期二(3) 数码管的字形编码显示字形共阳极共阴极dpgfedCba段码dpgfedcba段码011000000C0H001111113FH111111001F9H00
3、00011006H210100100A4H010110115BH310110000B0H010011114FH41001100199H0110011066H51001001092H011011016DH61000001082H011111017DH711111000F8H0000011107H81000000080H011111117FH91001000090H011011116FHA1000100088H0111011177HB1000001183H011111007CHC11000110C6H0011100139HD10100001A1H010111105EHE1000011086H011
4、1100179HF100011108EH0111000171HP100011008CH0111001173HU11000001C1H001111103EHY1001000191H011011106EH.011111117FH1000000080H灭11111111FFH0000000000H单片机应用技术 高职高专 ppt 课件第6页,共83页,2022年,5月20日,2点48分,星期二任务一 数码显示知识链接2. 数码管显示方式(1) 静态显示静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止,显示字形点亮的各段是持续点亮的,没有闪烁,此时的显示亮度主要取决于各段的驱动电流
5、。 例2-1 应用单片机控制2位数码管分别显示“1”和“2”。试设计电路并编写程序。单片机应用技术 高职高专 ppt 课件第7页,共83页,2022年,5月20日,2点48分,星期二任务一 数码管显示知识链接1)电路设计。 图2-2 74HC245引脚图表2-2 74HC245逻辑功能表AB/输入输入/输出AnBnLLA=B输入LH输入B=AHX高阻高阻单片机应用技术 高职高专 ppt 课件第8页,共83页,2022年,5月20日,2点48分,星期二图2-3 两位数码管静态显示电路图知识链接单片机应用技术 高职高专 ppt 课件第9页,共83页,2022年,5月20日,2点48分,星期二2)程
6、序清单(LI2_1.ASM): ORG 0000h JMP START ORG 0100HSTART: MOV P1,#0F9H MOV P2,#0A4H SJMP $ END知识链接单片机应用技术 高职高专 ppt 课件第10页,共83页,2022年,5月20日,2点48分,星期二(2)动态显示方式知识链接 选用动态显示的系统中一般有多位数码管,各位数码管不是同时点亮显示,而是逐位轮流的点亮(也称逐位扫描)。对每一位数码管而言,每隔一段时间点亮一次,每次点亮一定时间。这样,虽然每个数码管都是亮灭变化的,但只要选择合适的点亮时间和间隔时间,由于人的视觉暂留作用和发光二极管的余辉效应,使人肉眼看
7、到的每个数码管都是稳定显示。一位接一位地轮流点亮各位数码管,这种逐位点亮显示器的过程称为位扫描。 第11页,共83页,2022年,5月20日,2点48分,星期二3.堆栈指令介绍PUSH direct ;(SP)+1(SP),(direct)(SPPOP direct ;(SP)(direct),(SP)-1(SP) 例2-2 试分析下面指令序列的执行结果。 MOV SP,#60H MOV DPTR,#1234H PUSH DPL PUSH DPH指令序列执行的最终结果:(61H)34H,(62H)12H,(SP)62H。知识链接第12页,共83页,2022年,5月20日,2点48分,星期二电路
8、设计任务一 数码管显示第13页,共83页,2022年,5月20日,2点48分,星期二程序设计任务一 数码管显示 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第14页,共83页,2022年,5月20日,2点48分,星期二程序设计MOV A,R0 MOVC A,A+DPT
9、R 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,#SEG
10、ADIS1: MOV A,R2 MOV P0,A SETB P2.1 CLR P2.1;锁存输出位码 第15页,共83页,2022年,5月20日,2点48分,星期二;延时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程序设计任务一 数码管显示第16页,共83页,2022年,5月20日,2点48
11、分,星期二1.技能训练(1)在学习板上实现一个数码管静态显示字形“3”。(2)在学习板上实现8个数码管分别显示数字18。(3)增加任务中的延时时间,观察数码管的显示情况。2.知识思考(1)什么是数码管的静态显示?(2)简述数码管动态显示过程。(3)什么情况下数据需要保护?本任务程序中可以将“PUSH”和“POP”两条指令去掉吗?拓展训练任务一 数码管显示第17页,共83页,2022年,5月20日,2点48分,星期二任务二 按键识别任务要求选用4个按键,编号分别是“14”,当某个键按下后,应用数码管显示按键编号。知识目标:(1)看懂单片机和独立式按键的接口电路。(2)了解独立式按键的工作原理。(
12、3)掌握按键消抖的方法。(4)看懂单片机和矩阵式按键的接口电路。(5)了解矩阵式按键的工作原理。技能目标:(1)会设计单片机与数码管静态显示的接口电路和控制程序。 (2) 会设计单片机与数码管动态显示的接口电路和控制程序。 (3)知道矩阵式按键的识别及控制方法。第18页,共83页,2022年,5月20日,2点48分,星期二知识链接任务二 按键识别1.按键的分类根据结构,按键可分为两类 触点式开关按键 无触点式开关按键根据接口原理按键可分为两类 编码键盘 非编码键盘第19页,共83页,2022年,5月20日,2点48分,星期二2.单片机对键盘的控制方式知识链接(1)查询方式:指在程序中用一段专门
13、的扫描和读按键程序不停查询有无按键按下,确定键值。 特点:电路简单,但需要占用单片机的机器时间。(2)定时扫描方式:指利用单片机内的定时器来产生定时中断,然后在定时中断的服务程序中扫描,检查有无按键按下,确定键值。 特点:电路也比较简单,不占用单片机的机器时间,但需要占应用定时器,同时定时的时间不能过长,否则可能检测不到相应得按键。(3)中断扫描方式:指当有键按下时由相应的硬件电路产生中断信号,单片机在中断服务程序中扫描,检查有无按键按下,确定键值。特点:硬件电路上必须要产生中断线,需要与门和非门来产生。但中断方式不占用单片机的机器时间,也不会出现定时方式时的检测不到键盘的情况。第20页,共8
14、3页,2022年,5月20日,2点48分,星期二3.键盘接口问题:由于机械触点的弹性作用,触点在闭合和断开瞬间的电接触情况不稳定,造成了电压信号的抖动现象。抖动时间:一般为110ms(如图2-5 所示)。后果:会引起单片机对于一次键操作进行多次处理,因此必须设法消除抖动现象。 措施:软件消抖、硬件消抖抖动时间10ms开关动作时间100ms“ 1 ”“ 0 ”10ms按下抖动闭合稳态释放抖动第21页,共83页,2022年,5月20日,2点48分,星期二软件消抖 ;延时10ms子程序DELAY10: MOV R7,#20;1sD10EL0: MOV R6,#255;1sD10EL1: DJNZ R
15、6,D10EL1;2s,执行255次 DJNZ R7,D10EL0;2s,循环执行20次 RET;2s延时时间计算:1+1+2255+220+2=1026310000s=10ms。(2)硬件消抖图2-6 硬件消抖电路第22页,共83页,2022年,5月20日,2点48分,星期二4.独立式按键独立式按键结构 图2-7 独立式与单片机接口电路图第23页,共83页,2022年,5月20日,2点48分,星期二;查询方式扫描一次键盘的程序 JPDL: MOV A,#0FFH MOV P1,A ;置P1口为输入状态JPDL0: MOV A,P1 ;键状态输入 JNB ACC.0, JPDL1 ;检测0号键
16、是否按下,按下转 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 第24页,共83页,2022年,5月20日,2点48分,星期二5.矩阵式键盘矩阵式键盘的结构及原理图2-8 矩阵键盘结构图第25页,共83页,2022年,5月20日,2点4
17、8分,星期二(2)矩阵式键盘按键的识别以8号键的识别为例来说明扫描法识别按键的过程: 按键按下时,与此按键相连的行线与列线短路导通,行线在无按键按下时处于高电平。显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此必须使所有列线处在低电平。只有这样,当有按键按下时,该按键所在的行电平才会由高电平变为低电平。CPU根据行电平的变化,就能判定相应的行有键按下。 8 号键按下时,第3行一定为低电平。然而第3行为低电平时,能否肯定是8号键按下呢?回答是否定的,因为9、10、11号键按下,同样会使第3行为低电平。为进一步确定具体键,不能使所有列线在同一时刻处于低电平,可在某
18、一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依次循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。第26页,共83页,2022年,5月20日,2点48分,星期二(3)键盘的编码对于矩阵式键盘,按键的位置由行号和列号惟一确定,因此可分别对行号和列号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。如图2-8中的8号键,它位于第3行,第0列,因此,其键盘编码应为30H。采用上述编码对于不同行的键离散性较大,不利于散转指令对按键进行处理。因此,可采用依次排列键号的方式对按键进行编码。以图2-8中的44键盘为例,可将键号编码为:01H、02H
19、、03H、0EH、0FH、10H 等16个键号。编码的相互转换可通过计算或查表的方法实现。第27页,共83页,2022年,5月20日,2点48分,星期二6.键盘扫描程序键盘扫描程序一般应包括以下内容。_ 判别有无按键按下。_ 键盘扫描取得闭合键的行、列值。_ 用计算法或查表法得到键值。_ 判断闭合键是否释放,如没释放则继续等待。_ 将闭合键键号保存,同时转去执行该闭合键的功能。第28页,共83页,2022年,5月20日,2点48分,星期二7.指令介绍(1)CJNE指令。指令格式是:CJNE 目的,源,rel,共有4条:CJNE A,#data,rel ;(A)与data比较,如果A=data,
20、则顺序执行,否则转移CJNE A,direct,rel ;(A)与(direct)比较,若相等则顺序执行,否则转移CJNE Rn,#data,rel ;(Rn)与data比较,若相等则顺序执行,否则转移CJNE Ri,#data,rel ;(Ri)与data比较,若相等则顺序执行,否则转移图2-9 CJNE操作示意图第29页,共83页,2022年,5月20日,2点48分,星期二例2-3 将内部 RAM 的一个数据块(首址为DATA1)传送到内部数据RAM(首址为DATA2),遇到传送的数据为00H 时停止。 程序清单: MOV R1 ,#DATA1 ; 设置数据指针 MOV R0 ,#DPTA
21、2 ; 设置数据指针 LP1:MOV A ,R1 ; 读数据 CJNE A , #00H, LP2 ;(A)00H,则转移 RET ;(A)00H,结束传送 LP2:MOV R0 ,A ; 送数到内部RAM INC R0 ; 修改指针 INC R1 ; 修改指针 SJMP LP1 ; 继续传送第30页,共83页,2022年,5月20日,2点48分,星期二(2)累加器A判零指令,有两条: JZ rel ; 若(A)0,则转移,否则顺序向下执行 JNZ rel ; 若(A)0,则转移,否则顺序向下执行在例2-3中,如果利用“JZ”指令的程序如下: MOV R1, #DATA1 ; 设置数据指针 M
22、OV R0, #DATA2 ; 设置数据指针LP1: MOV A, R1 ; 读数据 JZ LP2 ; 判断传送数据是否为00H,是则转移 MOV R0, A ; 数据不为00H,送内部RAM INC R0 ; 修改地址指针 INC R1 ; 修改外部RAM地址指针 SJMP LP1 ; 继续传送LP2: RET ; 结束传送,返回主程序第31页,共83页,2022年,5月20日,2点48分,星期二电路设计任务二 键盘识别本任务硬件主要由单片机、键盘、显示数码管组成。键盘选择4个按键,采用独立键盘控制,电路如图2-7所示,其编号分别是“14”。键值显示电路如图2-4所示,但只选用其中一个数码管
23、静态显示。第32页,共83页,2022年,5月20日,2点48分,星期二程序设计任务二 键盘识别 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 ;无键按下则再读键盘状态第33页,共83页,
24、2022年,5月20日,2点48分,星期二程序设计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
25、AJMP DLJPRSS4: JB ACC.3, DLJPR ;S4键未按下,读键盘 ACALL PS4 ;4号键按下,显示4 AJMP DLJPR第34页,共83页,2022年,5月20日,2点48分,星期二程序设计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
26、,#99H ;4号键键处理子程序 SETBP2.0 CLRP2.0 RET ;4号键按下,显示4第35页,共83页,2022年,5月20日,2点48分,星期二1.技能训练(1)应用PROTEUS仿真矩阵键盘的键值显示。(2)应用学习板完成按键S1每按下一次,数码管显示值加一的功能(复位后数码管显示0)。(3)画出本任务完整电路图。2.知识思考(1)独立式键盘的工作原理是什么?(2)说明矩阵键盘的按键识别过程。(3)键盘消抖的方法有哪些? 拓展训练任务三 定时时间的设定第36页,共83页,2022年,5月20日,2点48分,星期二任务三 定时时间的设定任务要求 本任务要求应用独立式按键,使用3个
27、按键, S1为定时时间加1键, S2为减1键, S3定时时间清零键。要求定时时间范围099秒,定时时间的设定值应用两位数码管显示。 知识目标:(1)进一步理解独立按键工作原理。(2)理解逻辑运算指令和数据交换指令。技能目标:(1)会应用按键设定定时时间。(2)会编写16进制数转换为10进制数程序。(3)会应用逻辑运算指令和数据交换指令。(4)会设计码型转换程序 第37页,共83页,2022年,5月20日,2点48分,星期二知识连接逻辑操作指令(1)逻辑与操作指令(6 条)ANL A,direct ;对A中的内容和直接寻址单元中的内容执行与操作,结果存到A中ANL A,#data ;对A中的内容
28、和立即数执行与操作,结果存到A中ANL A,Rn ;对A中的内容和寄存器Rn中的内容执行与操作,结果存到A中ANL A,Ri ;对A中的内容和工作寄存器Ri所指的地址单元中的内容执行与操作,结果存到A中ANL direct,A ;对直接寻址单元中的内容和A中的内容执行与操作,结果存到直接寻址单元中ANL direct,#data ;对直接寻址单元中的内容和立即数执行与操作,结果存到直接寻址单元中第38页,共83页,2022年,5月20日,2点48分,星期二(2)逻辑或操作指令(6 条)ORL A,direct ;对A中的内容和直接寻址单元中的内容执行或操作,结果存到A中ORL direct,#
29、data ;对直接寻址单元中的内容和立即数执行逻辑或操作,结果存在直接寻址单元中ORL A,#data ;对A中的内容和立即数执行逻辑或操作,结果存在A中ORL A,Rn ;对A中的内容和寄存器Rn中的内容执行逻辑或操作,结果存到A中ORL direct,A ;对直接寻址单元中的内容和A中的内容执行逻辑或操作,结果存在直接寻址单元中ORL A,Ri ;对A中的内容和工作寄存器Ri所指的地址单元中的内容执行或操作,结果存在A中知识连接第39页,共83页,2022年,5月20日,2点48分,星期二(3)逻辑异或操作指令(6条)XRL A,direct ;对A中的内容和直接寻址单元中的内容执行异或操
30、作,结果存在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中知识连接第40页,共83页,2022年,5月20日,2点48分,星期二2.交换指令(5条)XCH A,Rn ;(A)(Rn), 累加器与工
31、作寄存器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),累加器中内容的高、低半字节互换知识连接第41页,共83页,2022年,5月20日,2点48分,星期二例2-4 拆字程序,把R7的内容拆开,高4位送到片内RAM的30H单元中,低4位送到31H中。程序如下:MAIN: MOV A,R7 ANL A,#0F0H ;屏
32、蔽高位 SWAP A ;交换A中高低位的内容 MOV 30H,A ;R7的高4位送到30H中 MOV A,R7 ;再读入R8中的内容 ANL A,#0FH ;屏蔽高位 MOV 31H,A ;R7的低4位送到31H SJMP $知识连接第42页,共83页,2022年,5月20日,2点48分,星期二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(2
33、51),(B)=12H(18),执行指令“DIV AB”后,(A)=0DH(13),(B)=11H(17),(OV)=0,(CY)=0。知识连接第43页,共83页,2022年,5月20日,2点48分,星期二4.码型的转换16进制与ASCII的转换表2-3 十六进制与ASCII码的对应关系表十六进制数ASCII码十六进制数ASCII码十六进制数ASCII码十六进制数ASCII码030H434H838HC43H131H535H939HD44H232H636HA41HE45H333H737HB42HF46H知识连接第44页,共83页,2022年,5月20日,2点48分,星期二例2-5 将1位十六进制
34、数转换成相应的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:
35、 ADD A,#30H;小于A,加30HABC: MOV R1,A RET第45页,共83页,2022年,5月20日,2点48分,星期二(2) BCD码(十进制数的二进制编码)表2-4 8421BCD码编码表十进制数8421码十进制数8421码00000B50101B10001B60110B20010B70111B30011B81000B40100B91001BBCD码是一种具有十进制权的二进制编码。BCD码种类较多,常用的是8421码。8421码是一种采用4位二进制数来代表一位十进制数的代码系统。在这个代码系统中,十组4位二进制数分别代表了09中的十个数字符号 。知识连接第46页,共83页,
36、2022年,5月20日,2点48分,星期二 (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知识连接第47页,共83页,2022年,5月20日,2点48分,星期二电路设计实现本
37、任务功能的电路主要包括两部分电路(1)4个独立式按键,它们与单片机的接口电路如图2-7所示;(2)数码管显示电路,电路参考图2-4,该秒表的时间设定范围是099秒,选用低位两个数码管显示设定的秒值即可。任务三 定时时间的设定第48页,共83页,2022年,5月20日,2点48分,星期二程序设计程序清单(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 A
38、CALL DLJP ;独立按键扫描子程序,参考A2_2.ASM SJMP LOOP1任务三 定时时间的设定第49页,共83页,2022年,5月20日,2点48分,星期二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,PS2
39、1 MOV 34H,#99 MOV A,34H PS21: ACALL HTOBCD ;将定时时间转换十进制 MOV 30H,R4 ;将定时时间送显示单元 MOV 31H,R5 RET第50页,共83页,2022年,5月20日,2点48分,星期二程序设计;S3按键处理子程序PS3: MOV 34H,#0 ;单击S3键,定时时间清零 MOV A,34H PS21: ACALL HTOBCD ;将定时时间转换十进制 MOV 30H,R4 ;将定时时间送显示单元 MOV 31H,R5 RET;S4按键处理子程序PS4: RET ;单击S4键,直接返回 END任务三 定时时间的设定第51页,共83页,
40、2022年,5月20日,2点48分,星期二拓展训练1.技能训练(1)写出本任务完整程序清单。(2)将累加器A中的8位二进制数转换成3位BCD码格式的十进制数。2.知识思考(1)执行下列指令序列后,相关寄存器、存储单元及标志如何变化?2)MOV A,#89H MOV 32H,#98H ORL 32H,A4)MOV A,#89H SWAP A RLC A(讨论C的内容)1)MOV A,#98H MOV R4,#11H ANL A,R43)CLR A CPL A XRL A,#77H任务三 定时时间的设定第52页,共83页,2022年,5月20日,2点48分,星期二(2)已知(A)=7AH和(CY)
41、=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码? 拓展训练任务三 定时时间的设定第53页,共83页,2022年,5月20日,2点48分,星期二任务四 定时器任务要求 本任务要实现定时器功能,
42、定时范围099秒,4位数字显示,显示精度0.01秒。4个按键实现定时器的控制,单击S1键定时时间加1,单击S2键定时时间减1,单击S3键定时时间清零,S4是重新定时按键。数码管进行计时显示和设定时间的显示,当定时时间到,声音提示。知识目标:(1)熟悉中断系统结构和中断处理过程。(2)掌握定时计数器的工作原理。(3)明白定时/计数器的结构。技能目标:(1)会设置定时/计数器的工作方式。(2)会计算定时初值。(3)会对定时计数器初始化。(4)会编写定时/计数器相关程序。第54页,共83页,2022年,5月20日,2点48分,星期二知识连接中断的基本概念 CPU正在处理某一事件A时,事件B请求CPU
43、迅速去处理(中断请求或中断申请);CPU暂停事件A的处理,转去处理事件B(中断响应);事件B处理结束后,CPU又回到事件A暂停的地方继续处理事件A(中断返回),这一过程称为中断。中断源:事件B是引起CPU中断的根源。断点:事件A被暂停的地方。中断服务处理:事件B的过程,也称为中断处理。中断服务程序:CPU处理事件B需要执行的程序。中断系统:实现中断的所有部件。任务四 定时器第55页,共83页,2022年,5月20日,2点48分,星期二2.89C51单片机的中断系统(1)89C51单片机中断系统的结构图2-10 单片机中断系统的结构知识连接第56页,共83页,2022年,5月20日,2点48分,
44、星期二(2)中断源及中断请求标志1)INT0外部中断请求0,中断请求标志为IE0。该中断源的中断请求信号由INT0(P3.2)引脚输入,有效信号通过硬件自动置位IE0=1,请求中断。2)INT1外部中断请求1,中断请求标志为IE1。该中断源的中断请求信号由INT1(P3.3)引脚输入,有效信号通过硬件自动置位IE1=1,请求中断。TCON的格式如下:位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H说明:外部中断源有两种请求触发方式,低电平触发和下降沿触发,具体选择那种方式要通过TCON的IT0和IT
45、1进行设置。IT0:外部中断请求INT0的触发方式设置位。IT0可由软件置“1”或清“0”。当IT0为0时,选择为电平触发方式,INT0低电平有效。ITl:外部中断请求INT1的触发方式设置位,意义和 IT0 类似。 第57页,共83页,2022年,5月20日,2点48分,星期二3)定时器/计数器T0,中断请求标志为TF0。片内计数器T0计数满溢出,自动置位TF0=1,产生中断请求。CPU响应中断后,标志位TF0自动清零。4)定时器/计数器T1,中断请求标志为TF1。片内计数器T1计数满溢出,自动置位TF1=1,产生中断请求。CPU响应中断后,标志位TF0自动清零。知识连接第58页,共83页,
46、2022年,5月20日,2点48分,星期二5)串行口,该中断源有两个中断请求标志位,RI(串行口控制寄存器SCON 的D0位)和TI(串行口控制寄存器SCON 的D1位)。当串行接口接收完一桢串行数据时,置位RI=1,产生接收中断请求;当串行接口发送完一桢串行数据时,置位TI=1,产生发送中断请求。CPU响应中断后,标志位RI和TI都不能自动清零,必须在中断服务程序中通过软件清零。SCON的格式如下:位D7D6D5D4D3D2D1D0SCON TIRI 位地址99H98H知识连接第59页,共83页,2022年,5月20日,2点48分,星期二IE的格式如下:位D7D6D5D4D3D2D1D0IE
47、EA-ESET1EX1ET0EX0位地址AFHACHABHAAHA9HA8H中断允许寄存器IE各位的功能如下:EA: 中断允许总控制位。 EA0,CPU屏蔽所有中断请求; EA1,CPU开放所有中断。ES:串行口中断允许位。ET1 :T1的溢出中断允许位。EX1:外部中断1中断允许位。ET0:T0 的溢出中断允许位。EX0:中断0中断允许位。Ei=1,允许中断;Ei =0,禁止中断。第60页,共83页,2022年,5月20日,2点48分,星期二(3)中断优先级寄存器IPIP的格式如下:位D7D6D5D4D3D2D1D0IP-PSPT1PX1PT0PX0位地址BCHBBHBAHB9HB8HPS
48、串行口中断优先级控制位。PT1 定时/计数器T1中断优先级控制位。PX1 外部中断1中断优先级控制位。PT0 定时器T0中断优先级控制位。PX0 外部中断0 中断优先级控制位。Pi=1,设置为高优先级Pi=0,设置为低优先级知识连接第61页,共83页,2022年,5月20日,2点48分,星期二中 断 源辅助优先级结构外部中断0定时/计数器T0外部中断1定时/计数器T1串行口中断最高最低中断优先级相应原则:1)低优先级可被高优先级中断,而高优先级中断源不能被任何中断源所中断。2)任何一种中断(不管是高级还是低级),一旦得到响应,不会再被它的同级中断所中断。3)当几个同优先级的中断同时申请中断,响
49、应哪一个中断源将取决于内部查询顺序,或称为辅助优先级结构,其优先级排列如下表所示。知识连接第62页,共83页,2022年,5月20日,2点48分,星期二(4)中断的处理过程 1)中断响应条件和时间中断响应条件有三个:中断源有中断请求;此中断源的中断允许位为1;CPU开中断(EA=1)。上述三个条件必须同时满足,CPU才有可能响应中断。在下列情况之一时,CPU将封锁对中断的响应,虽然响应中断的三个条件都满足,但是不响应。第一:CPU正在处理一个同级或更高级别的中断请求;第二:现行的机器周期不是当前正在执行指令的最后一个周期。单片机有单周期、双周期、三周期指令,当前执行指令是单字节没有关系,如果是
50、双字节或四字节的,就要等整条指令都执行完了,才能响应中断(因为中断查询是在每个机器周期都可能查到的);第三:当前正执行的指令是返回批令(RETI)或访问IP、IE寄存器的指令,则CPU至少再执行一条指令才响应中断。这些指令都是与中断有关的,如果正访问IP、IE则可能会开、关中断或改变中断的优先级,而中断返回指令则说明本次中断还没有处理完,所以都要等本指令处理结束,再执行一条指令才响应中断。第63页,共83页,2022年,5月20日,2点48分,星期二2)中断响应过程将内部的优先级状态触发器置1,以阻止后来的同级或低级的中断请求;执行一条硬件LCALL指令,使断点的地址入栈,然后将相应的中断服务
51、程序入口地址送PC;执行中断服务程序。中断响应过程的前两项是由中断系统硬件电路自动完成的,而中断服务程序要由用户自己编写。 表2-6 中断服务程序入口地址表中断源中断服务程序入口地址外部中断00003H定时器T0000BH外部中断10013H定时器T1001BH串行口0023H知识连接第64页,共83页,2022年,5月20日,2点48分,星期二3)中断返回,这个过程是通过指令RETI实现的。 中断服务程序的最后一条指令必须是RETI。 RETI指令使CPU结束中断服务程序的执行,返回到曾经被中断的程序处,继续执行原来的程序。 RETI指令的具体功能是:将中断响应时压入堆栈保存的断点地址从栈顶
52、弹回PC,CPU从原来中断的地方继续执行程序将相应中断优先级状态触发器清0。知识连接第65页,共83页,2022年,5月20日,2点48分,星期二例2-7 应用按钮K,模拟外部中断源,电路如图2-11所示,单击按钮,就产生一个外部中断请求。89C51单片机响应中断请求,将数码管显示数值加1。数码管显示参考图2-4,选择两位数码管动态显示。图2-11 一个外部中断源电路第66页,共83页,2022年,5月20日,2点48分,星期二程序清单(LI2_9.ASM): ORG0000H LJMP MAIN ORG 0013H LJMP PP0 ORG 0030HMAIN: MOVSP,#60H MOV
53、30H,#0 MOV31H,#0 MOV34H,#0SETB EA SETB EX1 SETBPX1SETB IT1LOOP: MOVR3,#2 ACALLDISPLAY SJMPLOOPPP0:PUSHACCINC34HACALL HTOBCDMOV30H,R4MOV31H,R5POP ACC RETI第67页,共83页,2022年,5月20日,2点48分,星期二3.89C51单片机的定时计数器(1)定时器/计数器的组成结构图2-12 定时/计数器结构图知识连接第68页,共83页,2022年,5月20日,2点48分,星期二(2)定时器/计数器的工作方式寄存器TMOD的格式如下:位D7D6D5
54、D4D3D2D1D0TMODGATEM1M0GATEM1M0T1方式控制字T0方式控制字TMOD各位含义如下:GATE,门控制。当GATE=0时,只要用软件使TCON的TR0或TR1为1,就可以启动相应的定时/计数器;当GATE=1时,要用软件使TCON的TR0或TR1为1,同时外部中断引脚也为高电平时,才能启动定时/计数器工作。 或:定时/计数器功能选择位。当 =1时,作为计数器实现对外部脉冲计数;当 =0 时,作为定时器实现定时控制。知识连接第69页,共83页,2022年,5月20日,2点48分,星期二M1 和M0,工作方式选择位。定时器/计数器有4 种工作方式,可通过M1、M0 进行设置
55、,见表2-7 。表2-7 定时/计数器工作方式设置表M1M0工作方式说明00方式013位定时/计数器01方式116位定时/计数器10方式2可自动重装初值的8位定时/计数器11方式3T0分成两个独立的8位定时/计数器;T1此方式停止计数知识连接第70页,共83页,2022年,5月20日,2点48分,星期二(3)定时/计数器控制寄存器TCON格式:位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88HTCON的低4 位用于控制外部中断前面已经介绍,这里只介绍高4 位,各位含义如下:TF0,TF1分别为定时器T
56、0、T1的计数溢出中断请求标志位。计数器计数溢出时,该位由硬件置1。使用查询方式时,此位作为状态位供CPU查询,查询后需由软件清0;使用中断方式时,此位作为中断请求标志位,CPU响应中断后由硬件自动清0。TR0,TR1分别为定时器T0、T1的运行控制位,可由软件置1 或清0。(TR0)或(TR1)1,启动定时/计数器工作; (TR0)或(TR1)0,停止定时/计数器工作。知识连接第71页,共83页,2022年,5月20日,2点48分,星期二(4)定时/计数器的工作方式1)方式0:16 位寄存器(由特殊功能寄存器TL0 和TH0 组成)只用了13 位,由TH0 的8 位和TL0 的低5 位组成一
57、个13 位的定时/计数器,TL0 的高3 位未用,其最大的计数次数应为213次。 图2-13 工作方式0 的逻辑结构图2)方式1:由特殊功能寄存器TL0 和TH0 组成一个16 位的定时/计数器,其最大的计数次数应为216次。除了计数位数不同外,方式1 与方式0的工作过程相同。第72页,共83页,2022年,5月20日,2点48分,星期二3)方式2: 是自动重装初值的8 位定时/计数器。8 位寄存器TL0 作为计数器,TH0用于存放计数初值,启动前,TL0 和TH0装入相同的初值,当TL0计数溢出时,在将中断标志位TF0置1的同时,TH0的初值自动重新装入TL0。 图2-14 工作方式2 的逻
58、辑结构图第73页,共83页,2022年,5月20日,2点48分,星期二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 逻辑结构图第74页,共83页,2022年,5月20日,2点48分,星期二(5)定时器初值的计算计数方式:计数初值= 满值 - 计数值
59、=2N - 计数值。定时方式:计数值=定时时间机器周期, 计数初值=满值-计数值 =2N -定时时间机器周期。 定时和计数两种方式都是启动定时器后从初值开始加1计数,计数满溢出置中断请求标志位。不同工作方式只是计数位数不同,满值不等,但计算方法相同, 假设计数位数为N,则满值都是2N。知识连接第75页,共83页,2022年,5月20日,2点48分,星期二例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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 亲子培训总结
- 市场主管年终工作总结
- 我们上路了课件
- 幼师师风师德培训
- 拍卖利润分配协议
- 回款协议书(2篇)
- 教科版(2017)科学五年下册《做个保温杯》说课(附反思、板书)课件
- 企业管理决策概述
- 《植物通过光合作用固定光能》说课课件-2024-2025学年济南版(2024)初中生物学七年级下册
- 企业科学管理方法
- 课件-DeepSeek从入门到精通
- 马拉松赛事运营服务方案
- 东北财经大学《服务礼仪X》综合作业答卷
- 四川大学-刘龙飞-毕业答辩PPT模板
- 丽声北极星分级绘本第一级下The King's Yu Player教学设计
- 显微操作技术(全面)
- 两立体相交相贯
- fTU使用说明书
- 日本文学史-中世17页
- 幼儿园班本课程的在实践中的研究
- ProE5.0全套教程(完整版)
评论
0/150
提交评论