单片机第四章精.ppt

上传人:石*** 文档编号:64366901 上传时间:2022-11-29 格式:PPT 页数:74 大小:5.73MB
返回 下载 相关 举报
单片机第四章精.ppt_第1页
第1页 / 共74页
单片机第四章精.ppt_第2页
第2页 / 共74页
点击查看更多>>
资源描述

《单片机第四章精.ppt》由会员分享,可在线阅读,更多相关《单片机第四章精.ppt(74页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、单片机课件 第四章2022/11/281第1页,本讲稿共74页4.1 4.1 概述概述4.1.1 4.1.1 程序设计语言程序设计语言1.1.机器语言机器语言2.2.汇编语言汇编语言3.3.高级语言高级语言2022/11/282第2页,本讲稿共74页 机器语言机器语言 用二进制代码表示的指令系统称为机器语用二进制代码表示的指令系统称为机器语言系统,简称为机器语言。言系统,简称为机器语言。汇编语言汇编语言用助记符表示指令系统的语言称为汇编语言用助记符表示指令系统的语言称为汇编语言或符号语言,或符号语言,用汇编语言编写的程序称为汇编语言程序。用汇编语言编写的程序称为汇编语言程序。2022/11/2

2、83第3页,本讲稿共74页 但是,计算机不能直接识别在汇编语言中出现的字母、数字和符号,需要但是,计算机不能直接识别在汇编语言中出现的字母、数字和符号,需要将其转换成用二进制代码表示的机器语言程序,才能够识别和执行。通常把这将其转换成用二进制代码表示的机器语言程序,才能够识别和执行。通常把这一转换(翻译)工作称为一转换(翻译)工作称为汇编。汇编。汇编可以由程序员通过查指令表把汇编指令程汇编可以由程序员通过查指令表把汇编指令程序转换为机器语言程序,这个过程称为序转换为机器语言程序,这个过程称为人工汇编。人工汇编。目前基本上由专门的程序来目前基本上由专门的程序来进行汇编,这种程序称为进行汇编,这种

3、程序称为汇编程序汇编程序。经汇编程序汇编而得到的机器语言程序,。经汇编程序汇编而得到的机器语言程序,计算机能够识别和执行,因此这一机机器语言程序称为目的程序或目标程序,计算机能够识别和执行,因此这一机机器语言程序称为目的程序或目标程序,而汇编语言程序称为源程序。这三者之间的关系如而汇编语言程序称为源程序。这三者之间的关系如下图下图所示。所示。2022/11/284第4页,本讲稿共74页图图 汇编过程示意图汇编过程示意图 2022/11/285第5页,本讲稿共74页 高级语言高级语言 高级语言,比如高级语言,比如BASIC、FORTRAN、COBOL及及PASCAL,C语言等,这种语言不仅直观、

4、易学、易懂,而且通用性强,易于移植到不语言等,这种语言不仅直观、易学、易懂,而且通用性强,易于移植到不同类型的机器中去。同类型的机器中去。计算机也不能直接识别和执行高级语言,需要将其转换为机计算机也不能直接识别和执行高级语言,需要将其转换为机器语言才能识别和执行。对于高级语言,这一转换工作通常称器语言才能识别和执行。对于高级语言,这一转换工作通常称为为编译或者解释编译或者解释。进行编译或者解释的专用程序称为。进行编译或者解释的专用程序称为编译程序或编译程序或者解释程序。者解释程序。2022/11/286第6页,本讲稿共74页4.1.2 4.1.2 编制程序的步骤编制程序的步骤1.1.任务分析(

5、硬件、软件系统分析)任务分析(硬件、软件系统分析)2.2.确定算法和工作步骤;确定算法和工作步骤;3.3.程序总体设计和流程图绘制程序总体设计和流程图绘制关于流程图符号:关于流程图符号:开始、结束开始、结束-圆角矩形圆角矩形工作任务工作任务-矩形矩形判断分支判断分支-菱形菱形程序流向程序流向-程序连接程序连接-开始结束2022/11/287第7页,本讲稿共74页4.4.分配内存,确定程序与数据区存放地址;分配内存,确定程序与数据区存放地址;5.5.编写源程序;编写源程序;6.6.调试、修改,最终确定程序。调试、修改,最终确定程序。2022/11/288第8页,本讲稿共74页4.1.3 4.1.

6、3 方法技巧方法技巧1.1.模块化设计(按功能分:显示、打模块化设计(按功能分:显示、打 印、输入、发送等)印、输入、发送等)2.2.尽量采用循环及子程序结构(节省内存)尽量采用循环及子程序结构(节省内存)2022/11/289第9页,本讲稿共74页4.1.4 4.1.4 汇编语言的规范汇编语言的规范1.1.汇编语言源程序由以下两种指令构成汇编语言源程序由以下两种指令构成汇编语句(指令语句)汇编语句(指令语句)伪指令(指示性语句)伪指令(指示性语句)2.2.汇编语句的格式:汇编语句的格式:标号标号:操作码操作码操作数操作数;注释;注释数据表示形式:数据表示形式:二进制(二进制(B B)、十六进

7、制)、十六进制(H)(H)、十进制、十进制(D(D或省略或省略)、ASCIIASCII码(以单引号标识)码(以单引号标识)2022/11/2810第10页,本讲稿共74页3.3.伪指令:控制汇编用的特殊指令,这些指令不属伪指令:控制汇编用的特殊指令,这些指令不属 于指令系统,不产生机器代码。于指令系统,不产生机器代码。2022/11/2811第11页,本讲稿共74页常用的伪指令vORGORG汇编起始地址汇编起始地址汇编起始地址汇编起始地址格式:格式:ORG ORG 表达式表达式 如:如:ORG 0000HORG 0000H注:注:表达式必须为表达式必须为1616位地址值位地址值。程序中可以有。

8、程序中可以有多条多条ORGORG语句语句,但定义,但定义的起始地址既的起始地址既不要交叉,也不要重叠不要交叉,也不要重叠必须必须从小地址向大地址从小地址向大地址分配程序分配程序所占空间。所占空间。2022/11/2812第12页,本讲稿共74页u END END 程序结束伪指令程序结束伪指令 注:注:一定放在程序末尾!一定放在程序末尾!v EQU EQU 赋值伪指令赋值伪指令 格式:格式:字符名称字符名称 EQU EQU 数值或汇编符号数值或汇编符号 例:例:AAAAEQUEQU30H30HK1K1EQUEQU40H40HMOV AMOV A,AAAA;(30H(30H)AAMOV AMOV

9、A,K1K1;(40H40H)AA2022/11/2813第13页,本讲稿共74页vDBDB 从指定单元开始定义(存储)若干个字节的数据或从指定单元开始定义(存储)若干个字节的数据或ASCIIASCII码字符,常用于定义数据常数表。码字符,常用于定义数据常数表。数据与数据之间用数据与数据之间用“,”分割。分割。格式:格式:DB DB 字节常数或字节常数或ASCIIASCII字符字符例例:ORGORG 1000H 1000HDBDB34H34H,0DEH0DEH,A A,B BDBDB0AH0AH,0BH0BH,20202022/11/2814第14页,本讲稿共74页vDWDW 从指定单元开始定

10、义(存储)从指定单元开始定义(存储)若干个字若干个字的数据的数据 或或ASCIIASCII码字符。码字符。格式:格式:DWDW字常数字常数或或ASCIIASCII字符字符 例:例:ORG 2000HORG 2000HDWDW1234H1234H,B BDWDW0AH0AH,20202022/11/2815第15页,本讲稿共74页v BITBIT 位地址符号指令。位地址符号指令。把位地址赋于规定的字符名称。把位地址赋于规定的字符名称。格式格式:字符名称字符名称BITBIT位地址位地址例:例:ABCABCBITBITP1.1P1.1QQQQBITBITP3.2P3.22022/11/2816第16

11、页,本讲稿共74页4.2 简单程序设计 程程序序结结构构一一般般采采用用以以下下三三种种基基本本控控制制结结构构,即即顺顺序序结结构构、分分支支结结构构和和循循环环结结构构来来组组成成,再再加加上上使使用用广广泛泛的的子子程程序序及及查查表表程程序序,共共有有五五种种基基本本结构。结构。2022/11/2817第17页,本讲稿共74页 顺序结构是按照逻辑操作顺序,从某一条指令开始逐条顺序顺序结构是按照逻辑操作顺序,从某一条指令开始逐条顺序执行,直至某一条指令为止。执行,直至某一条指令为止。也称为简单程序或直线程序。也称为简单程序或直线程序。4.2.1 顺序结构程序设计 特特特特点点点点:从从从

12、从第第第第一一一一条条条条指指指指令令令令开开开开始始始始依依依依次次次次执执执执行行行行每每每每一一一一条条条条指指指指令令令令,直直直直到到到到程程程程序序序序执行完毕,中间没有转移指令,没有分支。执行完毕,中间没有转移指令,没有分支。执行完毕,中间没有转移指令,没有分支。执行完毕,中间没有转移指令,没有分支。只有一个入口一个出口。只有一个入口一个出口。只有一个入口一个出口。只有一个入口一个出口。2022/11/2818第18页,本讲稿共74页例例:将:将2020H H单元的压缩单元的压缩BCDBCD码拆成两个码拆成两个ACSIIACSII码存入码存入2121H H、22H22H单元。单元

13、。2022/11/2819第19页,本讲稿共74页方法1(20H)A10HBA/B,A中为高中为高4位位BCD码,码,B中为低中为低4位位BCD码码B+30HBB(21H)A+30HAA(22H)开始结束2022/11/2820第20页,本讲稿共74页源程序源程序 ORG 2000H ORG 2000HMOV AMOV A,20H20HMOV BMOV B,#10H#10HDIV ABDIV ABORL BORL B,#30H#30HMOV 21HMOV 21H,B BORL AORL A,#30H#30HMOV 22HMOV 22H,A AENDEND;除以;除以1010H H;高高4 4位

14、位BCDBCD码转换位码转换位ASCIIASCII码码;低低4 4位位BCDBCD码转换位码转换位ASCIIASCII码码2022/11/2821第21页,本讲稿共74页0(21H)(20H)AA与(21H)的低4位交换(21H)+30H(21H)A的高低半字节交换A+30HAA(22H)开始结束方法2:2022/11/2822第22页,本讲稿共74页 ORG 2000H MOV R0,#21H MOV R0,#0 MOV A,20H XCHD A,R0 ORL 21H,#30H SWAP A ORL A,#30H MOV 22H,A END;清21H单元;低4位BCD码送21H单元,;低4位

15、BCD码转换位ASCII码;高4位BCD码转换位ASCII码源程序2022/11/2823第23页,本讲稿共74页例例:设两个:设两个1616位数据分别存在位数据分别存在23H23H、22H22H和和33H33H、32H32H单单元,求二者之和,并送入元,求二者之和,并送入43H43H和和42H42H单元。单元。2022/11/2824第24页,本讲稿共74页4.2.24.2.2 分支程序 分支程序可根据要求分支程序可根据要求无条件无条件或或条件地条件地改变程序执行流向。改变程序执行流向。编写分支程序主要在于正确使用编写分支程序主要在于正确使用转移指令转移指令。分支程序有:单。分支程序有:单分

16、支结构、双分支结构、多分支结构(散转)分支结构、双分支结构、多分支结构(散转)条件成立?下条指令程序段A单分支结构YN条件成立?程序段AYN程序段A双分支结构2022/11/2825第25页,本讲稿共74页K=?程序段nn0程序段1多分支结构程序段012022/11/2826第26页,本讲稿共74页例、已知例、已知X X、Y Y均为均为8 8位二进制有符号数,分别存在位二进制有符号数,分别存在30H30H31H31H中,试编制能实现下列符号函数的程序:中,试编制能实现下列符号函数的程序:2022/11/2827第27页,本讲稿共74页2022/11/2828第28页,本讲稿共74页例例1 1:

17、设变量:设变量x x以补码形式存放在片内以补码形式存放在片内RAM 30HRAM 30H单元中,单元中,变量变量y y与与x x的关系是:的关系是:编程根据编程根据x x的值求的值求y y值并放回原单元。值并放回原单元。2022/11/2829第29页,本讲稿共74页A=?y=x+50y=20Hy=x0取x 即(30h)A开始存y 即y 30h结束2022/11/2830第30页,本讲稿共74页 ORG 1000HSTART:MOV A,30H JZ NEXT ;x=0,转移 ANL A,#80H ;保留符号位 JZ ED ;x0,转移 MOV A,#05H ;x0,不转移 ADD A,30H

18、 MOV 30H,A SJMP ED NEXT:MOV 30H,#20H ED:SJMP$2022/11/2831第31页,本讲稿共74页 S0S0单独按下,单独按下,红灯亮红灯亮,其余灯灭;其余灯灭;S1S1单独按下,单独按下,绿灯亮绿灯亮,其余其余灯灭;灯灭;其余情况,其余情况,黄灯亮。黄灯亮。例已知电路如图所示,要求实现:例已知电路如图所示,要求实现:2022/11/2832第32页,本讲稿共74页解:程序如下解:程序如下SGNL:ANL P1,#11100011BSGNL:ANL P1,#11100011B;红绿黄灯灭红绿黄灯灭 ORL P1,#00000011BORL P1,#000

19、00011B;置置P1.0P1.0、P1.1P1.1输入态输入态,P1.5P1.5P1.7P1.7状态不变状态不变SL0:JNB P1.0,SL1SL0:JNB P1.0,SL1 ;P1.0=0,S0;P1.0=0,S0未按下未按下,转判转判S1S1 JNB P1.1,RED JNB P1.1,RED ;P1.0=1,S0;P1.0=1,S0按下按下;且且P1.1=0,S1P1.1=0,S1未按下未按下,转红灯亮转红灯亮YELW:SETB P1.4YELW:SETB P1.4 ;黄灯亮黄灯亮 CLR P1.2CLR P1.2 ;红灯灭红灯灭 CLR P1.3CLR P1.3 ;绿灯灭绿灯灭 S

20、JMP SL0SJMP SL0 ;转循环转循环SL1:JNB P1.1,YELWSL1:JNB P1.1,YELW ;P1.0=0,S0;P1.0=0,S0未按下未按下;P1.1=0,S1;P1.1=0,S1未按下未按下,转黄灯亮转黄灯亮GREN:SETB P1.3GREN:SETB P1.3 ;绿灯亮绿灯亮 CLR P1.2CLR P1.2 ;红灯灭红灯灭 CLR P1.4CLR P1.4 ;黄灯灭黄灯灭 SJMP SL0SJMP SL0 ;转循环转循环RED:SETB P1.2RED:SETB P1.2 ;红灯亮红灯亮 CLR P1.3CLR P1.3 ;绿灯灭绿灯灭 CLR P1.4CL

21、R P1.4 ;黄灯灭黄灯灭 SJMP SL0SJMP SL0 ;转循环转循环 2022/11/2833第33页,本讲稿共74页 4.2.3 4.2.3 循环程序循环程序循环程序一般由:初始化部分 循环体部分-处理部分、修改部分、控制部分 结束部分其结构一般有两种:先进入处理部分,再控制循环 至少执行一次循环体 先控制循环,再进入处理部分 循环体是否执行,取决于判断结果。2022/11/2834第34页,本讲稿共74页开始设置循环初值循环处理循环修改结束处理结束循环结束?开始设置循环初值循环处理循环修改结束处理结束循环结束?NYYN2022/11/2835第35页,本讲稿共74页循环控制的一般

22、方法:循环控制的一般方法:v 循环次数已知循环次数已知 利用循环次数控制利用循环次数控制v 循环次数未知循环次数未知 利用关键字控制利用关键字控制2022/11/2836第36页,本讲稿共74页例:50ms延时子程序。设晶振频率为12MHz,则机器周期为1us。2022/11/2837第37页,本讲稿共74页DEL:MOV R7,#200 ;1MCDEL1:MOV R6,#123 ;1MC NOP ;1MC DJNZ R6,$;2MC DJNZ R7,DEL1 ;2MC RET ;2MC延时时间:t=1+200(1+1+2*123)+2+2 50000us=50ms2022/11/2838第3

23、8页,本讲稿共74页例、设在片外中的处开始有一个码例、设在片外中的处开始有一个码字符串,该字符串以结束,编程将它们从口输出字符串,该字符串以结束,编程将它们从口输出2022/11/2839第39页,本讲稿共74页例、设在片外中的例、设在片外中的2000H2000H单元处开始有一个数据块,数据单元处开始有一个数据块,数据块长度块长度100100,试统计正数、负数及零的个数,分别存在,试统计正数、负数及零的个数,分别存在30H30H、32H32H和和32H32H单元。单元。2022/11/2840第40页,本讲稿共74页所谓调用子程序,暂时中断主程序的执行,而转到子程序的入口地址去执行子程序。4.

24、2.4 4.2.4 子程序子程序RETLCALL SUB图 子程序的调用与返回 2022/11/2841第41页,本讲稿共74页子程序设计优点:子程序设计优点:提高编程效率;提高编程效率;程序逻辑结构简单,便于阅读;程序逻辑结构简单,便于阅读;缩短程序长度,节省存储空间缩短程序长度,节省存储空间使程序模块化、通用化,便于交流共享资源使程序模块化、通用化,便于交流共享资源便于按照某种功能调试。便于按照某种功能调试。2022/11/2842第42页,本讲稿共74页子程序设计时注意事项:子程序设计时注意事项:1.1.给子程序赋一个名字。实际为入口地址代号。给子程序赋一个名字。实际为入口地址代号。2.

25、2.要能正确传递参数:要能正确传递参数:入口条件:子程序中要处理的数据如何给予。入口条件:子程序中要处理的数据如何给予。出口条件:子程序处理结果如何存放。出口条件:子程序处理结果如何存放。(寄存器、存储器、堆栈方式)(寄存器、存储器、堆栈方式)3.3.保护与恢复现场:保护与恢复现场:保护现场:保护现场:压栈指令压栈指令PUSHPUSH 恢复现场:恢复现场:弹出指令弹出指令POPPOP4.4.子程序可以嵌套子程序可以嵌套2022/11/2843第43页,本讲稿共74页LCALL ARETRETLCALL B 图 子程序的嵌套调用与返回2022/11/2844第44页,本讲稿共74页2022/11

26、/2845第45页,本讲稿共74页例:将20H单元开始存放的10个数据每隔2ms,从P1口输出。2022/11/2846第46页,本讲稿共74页例例 内部内部RAM 20HRAM 20H单元开始存有单元开始存有8 8个数,试找出其中最大的个数,试找出其中最大的数,送入数,送入MAXMAX单元。(利用子程序)单元。(利用子程序)2022/11/2847第47页,本讲稿共74页例例 在在P1.0P1.0脚产生脚产生20ms20ms的方波信号。(利用子程序)的方波信号。(利用子程序)2022/11/2848第48页,本讲稿共74页2022/11/2849第49页,本讲稿共74页4.2.5 4.2.5

27、 查表程序查表程序用于查表的指令有两条:用于查表的指令有两条:MOVC A,A+MOVC A,A+DPTRDPTR MOVC A,A+MOVC A,A+PCPC 当用当用DPTRDPTR作基址寄存器时作基址寄存器时,查表的步骤分三步:,查表的步骤分三步:基址值(表格首地址)基址值(表格首地址)DPTRDPTR;变址值(表中要查的项与表格首地址之间的变址值(表中要查的项与表格首地址之间的 间隔字间隔字节数)节数)A A;执行执行MOVC AMOVC A,A+DPTRA+DPTR。2022/11/2850第50页,本讲稿共74页【例例】要求将要求将30H30H中的显示数字转换为显示字段码并通中的显

28、示数字转换为显示字段码并通过过P1P1口输出。已知共阴字段码表首址为口输出。已知共阴字段码表首址为TABDTABD。2022/11/2851第51页,本讲稿共74页解:编程如下:解:编程如下:CHAG:MOV DPTR,#TABDCHAG:MOV DPTR,#TABD;置共阴字段码表首址置共阴字段码表首址MOV A,30H MOV A,30H ;读显示数字读显示数字 MOVC A,A+DPTR MOVC A,A+DPTR;查表查表,转换为显示字段码转换为显示字段码 MOV P1,A MOV P1,A ;输出显示字段码输出显示字段码 RET RET ;TABD:DB 3FH,06H,5BH,4F

29、H,66HTABD:DB 3FH,06H,5BH,4FH,66H;0;04 4共阴字段码表共阴字段码表 DB 6DH,7DH,07H,7FH,6FHDB 6DH,7DH,07H,7FH,6FH;5;59 9共阴字段码表共阴字段码表2022/11/2852第52页,本讲稿共74页【例例】将存在将存在HEXHEX单元的一个十六进制数的低单元的一个十六进制数的低4 4位,转换位,转换成成ASCIIASCII码并送回码并送回HEXHEX单元(采用查表程序)。单元(采用查表程序)。2022/11/2853第53页,本讲稿共74页例:利用查表法求平方和 ,设a、b、c分别存于内部RAM的DA、DB、DC三

30、个单元中。2022/11/2854第54页,本讲稿共74页 MOV A,DA ;取a ACALL SQR ;调用查表子程序 MOV R1,A ;a的平方暂存R1中 MOV A,DB ;取b ACALL SQR ;调用查表子程序 ADD A,R1 ;求出平方和暂存阿A中 MOV DC,A ;结果存于DC 中 SJMP$SQR:MOV DPTR,#TAB ;子程序 MOVC A,A+DPTR RETTAB:DB 0,1,4,9,16,25,36,49,64,81 END 利用累加器或寄存器传递参数2022/11/2855第55页,本讲稿共74页例:从200人的档案中,查找一个叫张三的人,若查到将其

31、地址存入R3R2中,否则将R3R2清零,表格首地址为TAB.设张三的个人信息在30H单元。2022/11/2856第56页,本讲稿共74页一一.按键连接方式按键连接方式 独立式按键独立式按键 独立式按键是每个按键占用一根独立式按键是每个按键占用一根I/OI/O端线端线。特点:特点:各按键相互独立,电路配置灵活;各按键相互独立,电路配置灵活;按键数量较多时,按键数量较多时,I/OI/O端线耗费较多,电路结构繁杂;端线耗费较多,电路结构繁杂;软件结构简单。软件结构简单。适用于按键数量较少的场合适用于按键数量较少的场合。矩阵式键盘矩阵式键盘 I/OI/O端线分为行线和列线,按键跨接在行线和列线上,按

32、键按下时,行线与列线发生端线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线发生短路短路。特点:特点:占用占用I/OI/O端线较少;端线较少;软件结构教复杂。软件结构教复杂。适用于按键较多的场合适用于按键较多的场合。4.3 4.3 简单简单I/OI/O口的并口直接驱动口的并口直接驱动2022/11/2857第57页,本讲稿共74页8031+5VI/OP1R8二、独立式按键工作原理2022/11/2858第58页,本讲稿共74页原理-当任何一个键被按下时,与其相连的输入线被置成“0”,未按下时该线为“1”。独立式按键电路的结构和处理程序简单,扩展方便,但其占用的独立式按键电路的结构

33、和处理程序简单,扩展方便,但其占用的IO口线相对较多,不适合在按键数量较多的场合下采用。口线相对较多,不适合在按键数量较多的场合下采用。2022/11/2859第59页,本讲稿共74页键处理程序键处理程序START:MOV A ,#0FFH ;先置;先置P1口为口为“1”MOV P1,AMOV A,P1 ;输入键状态;输入键状态JNB ACC.0,P0F ;查询;查询0号键号键JNB ACC.1,P1F ;查询;查询1号键号键JNB ACC.2,P2F ;查询;查询2号键号键JNB ACC.3,P3F ;查询;查询3号键号键JNB ACC.4,P4F ;查询;查询4号键号键JNB ACC.5,

34、P5F ;查询;查询5号键号键JNB ACC.6,P6F ;查询;查询6号键号键JNB ACC.7,P7F ;查询;查询7号键号键LJMP START键盘扫描键盘扫描2022/11/2860第60页,本讲稿共74页P0F:LJMP PROM0 ;入口地址表;入口地址表P1F:LJMP PROM1P6F:LJMP PROM6P7F:LJMP PROM7PROM0:.;0号键功能程序号键功能程序PROM7:.;7号键功能程序号键功能程序.LJMP START ;0号键处理完返回键盘扫描号键处理完返回键盘扫描LJMP START ;7号键处理完返回键盘扫描号键处理完返回键盘扫描.2022/11/28

35、61第61页,本讲稿共74页三.行列式键盘工作原理(P123)特点:节省I/O口线2022/11/2862第62页,本讲稿共74页2.2.矩阵式键盘按键的识别方法矩阵式键盘按键的识别方法 采用扫描法采用扫描法 使所有列为低电平,检查各行线电平是否有变化,有变化则有使所有列为低电平,检查各行线电平是否有变化,有变化则有健按下;健按下;使某列为低电平,其余各列为高电平,再依次检查各行线电平的变化,使某列为低电平,其余各列为高电平,再依次检查各行线电平的变化,某行线电平变低,则此行、列交点处按键按下。某行线电平变低,则此行、列交点处按键按下。1.矩阵式键盘的工作原理矩阵式键盘的工作原理 无健按下时,

36、行线处于高电平状态;当有健按下时行线电平由将无健按下时,行线处于高电平状态;当有健按下时行线电平由将由与此行线相连的列线的电平确定。由与此行线相连的列线的电平确定。2022/11/2863第63页,本讲稿共74页健扫描程序流程为:健扫描程序流程为:2022/11/2864第64页,本讲稿共74页先判断有无键按下列线全置0000,然后读入行线状态,若没有键按下,则行线状态为全1(1111);若有任一键按下,则行线状态不为全(1111);再确认哪个键被按下列线逐行输出0(如1110),然后输入行线状态,若没有键按下,则行线状态为全1(1111);若有任一键按下,则行线状态不为全为1(如0111,说

37、明右上角那个键被按下)键盘识别过程:2022/11/2865第65页,本讲稿共74页 健号的确定健号的确定 通通常常都都以以键的的排排列列顺序序安安排排键号号。这样,各各行行的的首首号号依依次次是是00H00H、04H04H、08H08H、0CH0CH,如列号按,如列号按0 03 3顺序,序,则键号的号的计算算为:键码=行首号行首号+列号。列号。2022/11/2866第66页,本讲稿共74页动态显示方式动态显示方式:在某一瞬时显示一位,依次循环扫描,轮流显:在某一瞬时显示一位,依次循环扫描,轮流显示,由于人的视觉滞留效应,人们看到的是多位同时稳定显示。示,由于人的视觉滞留效应,人们看到的是多

38、位同时稳定显示。特点特点:占用:占用I/OI/O端线少,电路较简单,编程较复杂,端线少,电路较简单,编程较复杂,CPUCPU要要定时扫描刷新显示。一般适用于显示位数较多的场合。定时扫描刷新显示。一般适用于显示位数较多的场合。四四.LED.LED数码管显示方式数码管显示方式静态显示方式静态显示方式:每一位字段码分别从:每一位字段码分别从I/OI/O控制口输出,保持控制口输出,保持不变直至不变直至CPUCPU刷新。刷新。特点特点:编程较简单,但占用:编程较简单,但占用I/OI/O口线多,一般适用于显口线多,一般适用于显示位数较少的场合。示位数较少的场合。2022/11/2867第67页,本讲稿共7

39、4页1.静态LED-亮度大,硬件、软件相对简单,可以 用并行或串行方式。2022/11/2868第68页,本讲稿共74页连结形式:连结形式:显示各位的所有显示各位的所有相同字段线连在一起,相同字段线连在一起,共共8 8段,由一个段,由一个8 8位位I/OI/O口控制;口控制;每一位的公共端每一位的公共端(共阳或共阴(共阳或共阴COMCOM)由另一个由另一个I/OI/O口控制。口控制。2、动态显示方式动态显示方式-分时使各数码管轮流点亮,硬件简单。2022/11/2869第69页,本讲稿共74页LEDLED数码管数码管动态显示举例动态显示举例工作原理工作原理:从:从P0P0口送段代码口送段代码,

40、P1,P1口送位选信号。段码虽同时到达口送位选信号。段码虽同时到达 6 6个个LEDLED,但一次仅一个,但一次仅一个LEDLED被选中。利用被选中。利用“视觉暂留视觉暂留”,每送一个,每送一个字符并选中相应位线,延时一会儿字符并选中相应位线,延时一会儿,再送再送/选下一个选下一个循环扫描即循环扫描即可。可。2022/11/2870第70页,本讲稿共74页P1.5 P1.5 P1.4PP1.4P1.3P11.3P1.2P1.2P1.2P1.02P1.0P0.7 P0.7 P0.6 P0.6 P0.5 P0.5 P0.4 P0.4 P0.3 P0.3 P0.2 P0.2 P0.1 P0.1 P0

41、.0P0.07406 OC7406 OC门门 X 3X 3上拉上拉电阻电阻1414+5V+5VAT89C51共阴共阴 数码管数码管位位选选线线段段代代码码2022/11/2871第71页,本讲稿共74页要求要求:此处为共阴数码管,此处为共阴数码管,P0P0口送段代码,口送段代码,P1P1口送位选信号。通过口送位选信号。通过查表实现动态显示。查表实现动态显示。条件条件:待显数据:待显数据(00H(00H09H)09H)已放在已放在:7FH:7FH7AH7AH单元中单元中(分别对应十分别对应十万位个位万位个位)说明说明:由于用了反相驱动器:由于用了反相驱动器74067406,要用共阳译码表。,要用

42、共阳译码表。2022/11/2872第72页,本讲稿共74页7406 OC7406 OC门门 X 3X 3+5V+5V(7FH)(7EH)(7DH)(7CH)(7BH)(7AH)十万十万 万位万位 千位千位 百位百位 十位十位 个位个位数据缓冲区数据缓冲区 /显示缓冲区显示缓冲区2022/11/2873第73页,本讲稿共74页DIR:MOV DPTR,#DSEG ;DIR:MOV DPTR,#DSEG ;数码管译码表首址数码管译码表首址 MOV R0MOV R0,#7AH ;#7AH ;待显缓冲区个位地址待显缓冲区个位地址 MOV R3MOV R3,#01H ;#01H ;个位的位选信号个位的

43、位选信号=01H=01HLD1LD1:MOV AMOV A,R0 ;R0 ;通过通过R0R0间接寻址间接寻址 MOVC A,A+DPTR ;MOVC A,A+DPTR ;查表查表 MOV P0,A ;MOV P0,A ;字段码送到字段码送到P0P0口口 MOV P1MOV P1,R3 ;R3 ;字位选择送到字位选择送到P1P1口口 LCALL DELY ;LCALL DELY ;调延时调延时1ms1ms子程序子程序 INC R0 ;R0 INC R0 ;R0 指向下一字节指向下一字节 MOV AMOV A,R3R3 JB ACC.5 JB ACC.5,LD2 ;LD2 ;判是否发完判是否发完6 6个数?个数?RL A ;R1RL A ;R1指向下一个位指向下一个位 MOV R3MOV R3,A ;A ;位选信号存回位选信号存回R1R1 SJMP LD1 ;SJMP LD1 ;跳去再显示下一个数跳去再显示下一个数LD2LD2:RET ;RET ;发完发完6 6个数就返回个数就返回DSEGDSEG:DB 0C0H,0F9H,0A4H,0B0H,99H;DB 0C0H,0F9H,0A4H,0B0H,99H;共阳译码表共阳译码表 DB 92H,82H,0F8H,80H,90HDB 92H,82H,0F8H,80H,90H2022/11/2874第74页,本讲稿共74页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com