1、LED点阵显示控制点阵显示控制 项目四 项目项目4 4 LED点阵显示控制点阵显示控制 知识与能力目标知识与能力目标 理解并掌握矩阵键盘接口电路及软件处理方法。理解并掌握矩阵键盘接口电路及软件处理方法。1 理解并掌握理解并掌握LED点阵显示屏接口电路及软件处理方法。点阵显示屏接口电路及软件处理方法。2 学会使用汇编语言进行复杂学会使用汇编语言进行复杂I/O口控制程序的分析与设计。口控制程序的分析与设计。3 学会使用学会使用C语言进行复杂语言进行复杂I/O口控制程序的分析与设计。口控制程序的分析与设计。4 熟练使用熟练使用Keil uVsion3与与Proteus软件。软件。5 项目项目4 LE
2、D点阵显示控制点阵显示控制 4.1.1 控制要求与功能展示控制要求与功能展示 4.1.3 汇编语言程序分析与设计汇编语言程序分析与设计 4.1.5 基于基于Proteus的调试与仿真的调试与仿真 4.1.2 硬件系统与控制流程分析硬件系统与控制流程分析 4.1.4 C语言程序分析与设计语言程序分析与设计 任务任务4.1 LED按键指示灯控制按键指示灯控制 4.2.2 硬件系统与控制流程分析硬件系统与控制流程分析 4.2.1 控制要求与功能展示控制要求与功能展示 4.2.3 汇编语言程序分析与设计汇编语言程序分析与设计 4.2.4 C语言程序分析与设语言程序分析与设计计 4.2.5 基于基于Pr
3、oteus的调试与仿真的调试与仿真 任务任务4.2 LED点阵数显控制点阵数显控制 4.3.2 硬件系统与控制流程分析硬件系统与控制流程分析 4.3.1 控制要求与功能展示控制要求与功能展示 4.3.3 汇编语言程序分析与设计汇编语言程序分析与设计 4.3.4 C语言程序分析与设计语言程序分析与设计 4.3.5 基于基于Proteus的调试与仿真的调试与仿真 任务任务4.3 键控键控LED点阵显示控制点阵显示控制 任务任务4.1 LED按键指示灯控制按键指示灯控制 4.1.1 控制要求与功能展示控制要求与功能展示 实物运行视频实物运行视频 4.1.1 控制要求与功能展示控制要求与功能展示 LE
4、D按键指示灯控制电路原理图按键指示灯控制电路原理图 任务任务4.1 LED按键指示灯控制按键指示灯控制 4.1.2 4.1.2 硬件系统与控制流程分析硬件系统与控制流程分析 1.1.任务硬件系统分析任务硬件系统分析 矩阵键盘电路又称为行列键盘它矩阵键盘电路又称为行列键盘它是用是用N条条I/O线作为行线,用线作为行线,用M条条I/O线线作为列线所组成的键盘,在行线和列作为列线所组成的键盘,在行线和列线的每个交叉点上设置一个按键,这线的每个交叉点上设置一个按键,这样就可以构成一个样就可以构成一个N*M个按键的键盘。个按键的键盘。4.1.2 4.1.2 硬件系统与控制流程分析硬件系统与控制流程分析
5、项目中所采用的是一个项目中所采用的是一个2*2式的键盘,其中式的键盘,其中P1.0、P1.1接矩阵接矩阵键盘的行,键盘的行,P1.2、P1.3接矩阵键盘的列,为了提高电路的可靠性,接矩阵键盘的列,为了提高电路的可靠性,图中行列线上均接有一个上拉电阻。图中行列线上均接有一个上拉电阻。4.1.2 4.1.2 硬件系统与控制流程分析硬件系统与控制流程分析 (1)对对P1口赋值口赋值0 xFE,将第一行的接口设为低电平,其余各接口,将第一行的接口设为低电平,其余各接口 设为高设为高电平电平。方法一方法一 采用逐行扫描的方式采用逐行扫描的方式 图图4-4 逐行扫描法键盘各端口状态(一)逐行扫描法键盘各端
6、口状态(一)4.1.2 4.1.2 硬件系统与控制流程分析硬件系统与控制流程分析 (2)读入读入P1口数据,与口数据,与0 xFE进行比较是否相等,若相等则第一行中无按键按下;进行比较是否相等,若相等则第一行中无按键按下;若不相等则第一行中有按键按下。当判断有按键按下后,再次分析读入的数据,若不相等则第一行中有按键按下。当判断有按键按下后,再次分析读入的数据,若数据等于若数据等于0 x FA则是第一行第一列按键被按下。则是第一行第一列按键被按下。4.1.2 4.1.2 硬件系统与控制流程分析硬件系统与控制流程分析 (2)读入读入P1口数据,与口数据,与0 xFE进行比较是否相等,若相等则第一行
7、中无进行比较是否相等,若相等则第一行中无按键按下;若不相等则第一行中有按键按下。当判断有按键按下后,再按键按下;若不相等则第一行中有按键按下。当判断有按键按下后,再次分析读入的数据,若数据等于次分析读入的数据,若数据等于0 xF6则是第一行第二列按键被按下。则是第一行第二列按键被按下。4.1.2 4.1.2 硬件系统与控制流程分析硬件系统与控制流程分析 (3)(3)若第一行扫描完毕,对若第一行扫描完毕,对P1P1口重新赋值口重新赋值0 xFD0 xFD,将第二,将第二行的接口设为低电平,其余各接口设为高电平,与第行的接口设为低电平,其余各接口设为高电平,与第1 1行行扫描的处理方法类似在此不详
8、细说明。扫描的处理方法类似在此不详细说明。4.1.2 4.1.2 硬件系统与控制流程分析硬件系统与控制流程分析 (1)对对P1口赋值口赋值0 xF3,将各按键行接口置高电平,各列接口置低电平,将各按键行接口置高电平,各列接口置低电平,如图如图4-7所示。所示。方法二方法二 采用行列组合的方式采用行列组合的方式 图图4-7 行列组合法键盘各端口状态(一)行列组合法键盘各端口状态(一)4.1.2 4.1.2 硬件系统与控制流程分析硬件系统与控制流程分析 (2)读入读入P1口数据,与口数据,与0 xF3进行比较是否相等,若相等则此时无按键进行比较是否相等,若相等则此时无按键按下继续读值判断;若不相等
9、则此时有按键按下。当判断有按键按下后,按下继续读值判断;若不相等则此时有按键按下。当判断有按键按下后,再次分析读入的数据,若数据等于再次分析读入的数据,若数据等于0 xF2则是第一行按键被按下,此时赋则是第一行按键被按下,此时赋键值为键值为1;若数据等于;若数据等于0 xF1则是第二行按键被按下,此时则是第二行按键被按下,此时 赋键值为赋键值为3。4.1.2 4.1.2 硬件系统与控制流程分析硬件系统与控制流程分析 (3)3)当确认按键的行数后,紧接着重新赋值当确认按键的行数后,紧接着重新赋值P1P1口为口为0 xFC0 xFC,将按键行接口置低电平,列接口置高电平。将按键行接口置低电平,列接
10、口置高电平。4.1.2 4.1.2 硬件系统与控制流程分析硬件系统与控制流程分析 (4)重新读入并分析重新读入并分析P1口数据,若数据等于口数据,若数据等于0 xF8则是第一列按键被则是第一列按键被 按下,按下,此时将键值加上此时将键值加上0;若数据等于;若数据等于0 xF4则是第二列按键被按下,此时则是第二列按键被按下,此时 将键值加将键值加上上1。(5)由以上步骤可得:第一个按键按下时,由以上步骤可得:第一个按键按下时,K赋值为赋值为1。第二个按键按。第二个按键按 下时,下时,K最终值为最终值为2。第三个按键按下时,。第三个按键按下时,K最终值为最终值为3。第四个按键按下时,。第四个按键按
11、下时,K最终值最终值为为4。若按键为若按键为M列、列、N行。则第行。则第2步第步第y行行K值为值为1+M(y-1),第,第4步第步第x列列K值为值为K+(x-1)。4.1.2 4.1.2 硬件系统与控制流程分析硬件系统与控制流程分析 程序控制流程图(键盘逐行扫描法)4.1.2 4.1.2 硬件系统与控制流程分析硬件系统与控制流程分析 程序控制流程图(键盘行列组合法)4.1.3 汇编语言程序分析与设计汇编语言程序分析与设计 1、任务相关汇编指令、任务相关汇编指令 (1 1)比较不等跳转指令:比较不等跳转指令:CJNE 使用格式:使用格式:CJNE ,使用说明:使用说明:判断目的操作数与源操作数是
12、否相等,不等则跳转至地址操判断目的操作数与源操作数是否相等,不等则跳转至地址操作数中执行,否则顺序执行(即从下一条指令开始执行);同时当源操作数作数中执行,否则顺序执行(即从下一条指令开始执行);同时当源操作数小于或等于目的操作数时,小于或等于目的操作数时,Cy为为0,而当源操作数大于目的操作数时,而当源操作数大于目的操作数时,Cy为为1。使用示例:使用示例:CJNE A,#10H,D1 ;判断;判断A中的内容是否和立即数中的内容是否和立即数10H相等,相等,;不等则转至地址为;不等则转至地址为D1处执行,否则不跳,处执行,否则不跳,;同时按顺序往下执行;同时按顺序往下执行 D1:4.1.3
13、汇编语言程序分析与设计汇编语言程序分析与设计 (2 2)不带进位加法指令:不带进位加法指令:ADD 使用格式使用格式:ADD A,使用说明:使用说明:该指令是完成两个该指令是完成两个8位二进制数的相加运算,结果存放在位二进制数的相加运算,结果存放在累加器累加器A中。中。使用示例:使用示例:ADD A,Rn ADD A,Rn ;(;(A A)+(RnRn)A A ADD A,direct ADD A,direct ;(;(A A)+(directdirect)A A ADD A,Ri ADD A,Ri ;(;(A A)+(RiRi)A A ADD A,#data ADD A,#data ;(;(
14、A A)+dataA+dataA 4.1.3 汇编语言程序分析与设计汇编语言程序分析与设计 (3 3)带进位加法指令:带进位加法指令:ADDC 使用格式使用格式:ADDC A,使用说明:使用说明:该指令除了完成两个该指令除了完成两个8位二进制数的相加运算,还要与进位二进制数的相加运算,还要与进位标志位位标志位Cy的值相加,结果存放在累加器的值相加,结果存放在累加器A中。若中。若Cy=0,则这组指令同,则这组指令同ADD指令。带进位加法指令主要用在多字节加法运算中。指令。带进位加法指令主要用在多字节加法运算中。使用示例:使用示例:ADDC A,Rn ADDC A,Rn ;(;(A A)+(RnR
15、n)+(CYCY)A A ADDC A,direct ADDC A,direct ;(;(A A)+(directdirect)+(CYCY)A A ADDC A,Ri ADDC A,Ri ;(;(A A)+(RiRi)+(CYCY)A A ADDC A,#data ADDC A,#data ;(;(A A)+data+data+(CYCY)A A 4.1.3 汇编语言程序分析与设计汇编语言程序分析与设计 (4 4)带借位减法指令带借位减法指令:SUBB 使用格式:使用格式:SUBB A,使用说明:使用说明:该指令的操作功能是将累加器该指令的操作功能是将累加器A中的内容减去源操作数中中的内容减
16、去源操作数中的值或常数并减去进位标志的值或常数并减去进位标志Cy的值,运算结果存入累加器的值,运算结果存入累加器A中。中。使用示例:使用示例:SUBB A,Rn SUBB A,Rn ;(;(A A)-(RnRn)-(CYCY)A A SUBB A,direct SUBB A,direct ;(;(A A)-(directdirect)-(CYCY)A A SUBB A,Ri SUBB A,Ri ;(;(A A)-(RiRi)-(CYCY)A A SUBB A,#data SUBB A,#data ;(;(A A)-data data-(CYCY)A A 4.1.3 汇编语言程序分析与设计汇编语言程序分析与设计 (5 5)乘法指令:乘法指令:MUL 使用格式:使用格式:MUL AB 使用说明:使用说明:该乘法指令的功能是将累加器该乘法指令的功能是将累加器A和寄存器和寄存器B中的两个中的两个8位位 无符无符号整数相乘,号整数相乘,16位乘积的低位乘积的低8位存入累加器位存入累加器A,高,高8位存入寄存器位存入寄存器B。当。当B的值的值不等于不等于0时,时,OV=1,否则,否则OV=0。使用