单片机应用系统的组成.ppt
现在学习的是第1页,共45页一、一、LEDLED显示器的结构显示器的结构共阳与共阴共阳与共阴共阳共阳共阳共阳LEDLED扩展扩展扩展扩展:每个段笔画低电平每个段笔画低电平(“0”)(“0”)(“0”)(“0”)点亮;点亮;点亮;点亮;驱动功率要求很小;驱动功率要求很小;驱动功率要求很小;驱动功率要求很小;共阴共阴共阴共阴LEDLEDLEDLED扩展扩展:每个段笔画高电平每个段笔画高电平(“1”)(“1”)(“1”)(“1”)点亮;点亮;驱动功率要求较大;驱动功率要求较大;驱动功率要求较大;驱动功率要求较大;h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh hh g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh hh g f ah g f a公共阴极公共阴极高电平点亮高电平点亮公共阳极公共阳极低电平点亮低电平点亮低电平点亮低电平点亮VccVcc接地接地现在学习的是第2页,共45页一、一、LEDLED显示器的结构显示器的结构段选码段选码dpgfedcba4FH01001111h g f e d c b ah g f e d c b a公共公共阴阴极极a ab bc cd de ef fh h公共公共阴阴极极h g f e d c b ah g f e d c b aa ab bc cd de ef fh h公共公共阴阴极极h g f e d c b ah g f e d c b aa ab bc cd de ef fh h各段与字节中各位对应关系如下各段与字节中各位对应关系如下各段与字节中各位对应关系如下各段与字节中各位对应关系如下现在学习的是第3页,共45页一、一、LEDLED显示器的结构显示器的结构段选码段选码段选码段选码定义:定义:又称字型码,共又称字型码,共8Bit8Bit,每个位代表,每个位代表LEDLED的某个段的的某个段的“亮、灭亮、灭”状态。状态。作用:作用:为为LEDLED的的8 8个段提供个段提供“1 1、0”0”(“亮、灭亮、灭”状态)状态)实现不同的符号或数字的显示。实现不同的符号或数字的显示。现在学习的是第4页,共45页字符字符共阴极段码共阴极段码 共阳极段码共阳极段码字符字符共阴极段码共阴极段码 共阳极段码共阳极段码0 03FH3FHC0HC0Hc c39H39HC6HC6H1 106H06HF9HF9Hd d5EH5EHA1HA1H2 25BH5BHA4HA4HE E79H79H86H86H3 34FH4FHB0HB0HF F71H71H8EH8EH4 466H66H99H99HP P73H73H8CH8CH5 56DH6DH92H92HU U3EH3EHC1HC1H6 67DH7DH82H82HT T31H31HCEHCEH7 707H07HF8HF8Hy y6EH6EH91H91H8 87FH7FH80H80HH H76H76H89H89H9 96FH6FH90H90HL L38H38HC7HC7HA A77FH77FH88H88H“灭灭”00H00HFFHFFHb b7CH7CH83H83HLEDLED段码表(段码表(8 8段)段)现在学习的是第5页,共45页二、二、LEDLED显示器的显示方式显示器的显示方式静态显示静态显示静态显示静态显示每个数码管的每个数码管的I/O口线(即地址)口线(即地址)专用专用,分别与一分别与一个个8位的锁存器输出相连;位的锁存器输出相连;每个数码管在显示过程中每个数码管在显示过程中持续持续得到送显信号。得到送显信号。4位静态位静态LED电路,各位可独立显示电路,各位可独立显示现在学习的是第6页,共45页二、二、LEDLED显示器的显示方式显示器的显示方式静态显示静态显示静态显示静态显示静态显示特点静态显示特点:无闪烁;无闪烁;用元器件多;用元器件多;占占I/OI/O线多;线多;无须扫描;无须扫描;节省节省CPUCPU时间;时间;编程简单。编程简单。现在学习的是第7页,共45页二、二、LEDLED显示器的显示方式显示器的显示方式动态显示动态显示各个数码管的各个数码管的各个数码管的各个数码管的段码线段码线(即(即(即(即8位位I/O地址)地址)多路复用多路复用多路复用多路复用;各个数码管的各个数码管的各个数码管的各个数码管的位选线位选线位选线位选线(即(即4位位位位I/O地址)地址)共用共用共用共用;各个数码管各个数码管各个数码管各个数码管分时选通分时选通,在显示过程中轮流得到送显信号。,在显示过程中轮流得到送显信号。,在显示过程中轮流得到送显信号。,在显示过程中轮流得到送显信号。现在学习的是第8页,共45页二、二、LEDLED显示器的显示方式显示器的显示方式动态显示动态显示动态显示动态显示动态显示特点动态显示特点:有闪烁;有闪烁;用元器件少;用元器件少;占占I/OI/O线少;线少;必须扫描;必须扫描;花费花费CPUCPU时间;时间;编程复杂。编程复杂。现在学习的是第9页,共45页图(图(a)a)是显示过程是显示过程,某一时刻,只有一位,某一时刻,只有一位LEDLED被选通被选通 显示,其余位则是熄灭的;显示,其余位则是熄灭的;图(图(b)b)是实际显示结果是实际显示结果,人眼看到的是,人眼看到的是8 8位稳定的位稳定的 同时显示的字符。同时显示的字符。8 8位位位位LEDLED动态显示动态显示2003.10.10的过程的过程现在学习的是第10页,共45页动态扫描显示频率动态扫描显示频率1、6位位LED扫描显示的时间间隔要求扫描显示的时间间隔要求扫描显示频率不低于扫描显示频率不低于24Hz举例:举例:扫描显示频率为扫描显示频率为50Hz,6位位LED显示器。显示器。扫描周期为扫描周期为20ms假设显示一位保持假设显示一位保持1ms时间,时间,则显示完所有则显示完所有6位之后,只需位之后,只需6ms,于是另外于是另外14msCPU完全可以处理其它工作。完全可以处理其它工作。2、6位位LED扫描显示的时间间隔控制扫描显示的时间间隔控制可以通过定时中断完成,也可以通过软件延可以通过定时中断完成,也可以通过软件延时完成。时完成。现在学习的是第11页,共45页动态扫描显示频率动态扫描显示频率3、每一位显示的保持时间、每一位显示的保持时间上述保持上述保持1ms的时间应根据实际情况而定。的时间应根据实际情况而定。太小:太小:发光太弱,人眼无法看清。发光太弱,人眼无法看清。太大:太大:受限于临界闪烁频率;显示位增多,也受限于临界闪烁频率;显示位增多,也将占用大量的将占用大量的CPU时间。时间。4、动态显示实质:、动态显示实质:以牺牲以牺牲CPU时间换取元件和能耗的减少。时间换取元件和能耗的减少。现在学习的是第12页,共45页工作原理工作原理工作原理工作原理:从端口地址从端口地址从端口地址从端口地址0FEH0FEH送送送送段代码段代码段代码段代码;从端口地址从端口地址从端口地址从端口地址0FDH0FDH送送送送位选码位选码位选码位选码。段码虽同时到达段码虽同时到达段码虽同时到达段码虽同时到达 6 6个个个个LEDLED,但一次仅一个,但一次仅一个,但一次仅一个,但一次仅一个LEDLED被选中。被选中。被选中。被选中。利用利用利用利用“视觉暂留视觉暂留视觉暂留视觉暂留”,每送一个字符并选中相应位线,延时一会儿,每送一个字符并选中相应位线,延时一会儿,每送一个字符并选中相应位线,延时一会儿,每送一个字符并选中相应位线,延时一会儿,再送再送再送再送/选下一个选下一个选下一个选下一个循环扫描即可。循环扫描即可。循环扫描即可。循环扫描即可。LEDLED数码管数码管动态显示举例动态显示举例74077407+5V+5V段代码段代码地址地址(FEH)共阴共阴 数码管数码管上拉电上拉电阻阻1414位选码位选码地址地址(FDH)现在学习的是第13页,共45页LEDLED数码管数码管动态显示举例动态显示举例74077407+5V+5V段代码段代码地址地址(FEH)共阴共阴共阴共阴 数码管数码管数码管数码管上拉上拉上拉上拉电阻电阻电阻电阻位选码位选码地址地址(FDH)(10H)(11H)(12H)(13H)(14H)(15H)十万十万 万位万位 千位千位 百位百位 十位十位 个位个位显示缓冲区显示缓冲区待显数据放在显示缓冲区待显数据放在显示缓冲区:10H:10H15H15H单元中单元中现在学习的是第14页,共45页EXAM:MOV R0,#10HMOV A,#01HMOV R6,#06HEXAM1:MOV R0,AINC R0INC ADJNZ R6,EXAM1EXAM2:ACALLDISUPAJMPEXAM2主程序主程序;显示缓冲区首地址(个位地址)显示缓冲区首地址(个位地址);个位待显示的数字个位待显示的数字个位待显示的数字个位待显示的数字=1=1;数码管个数数码管个数数码管个数数码管个数;循环调用显示子程序循环调用显示子程序DISUP结果:结果:结果:结果:(10H)(11H)(12H)(13H)(14H)(15H)(10H)(11H)(12H)(13H)(14H)(15H)1 1 2 2 3 3 4 4 5 6 5 6现在学习的是第15页,共45页DISUP:MOV R0,#10H MOV R2,#0DFHDSP1:MOV A,R0 MOV DPTR,#DSEG MOVC A,A+DPTR MOV R1,#0FEH MOVX R1,A MOV R1,#0FDH MOV A,R2 MOVX R1,A ACALL DELY 显示子程序显示子程序;显显显显示示示示缓缓缓缓冲区指冲区指冲区指冲区指针针针针R0#10H#10H;位;位;位;位选码选码选码选码#0DFH=11011111B,;指向最左;指向最左;指向最左;指向最左LEDLED;从;从显显示示缓缓冲区取待冲区取待显显示字符示字符;DPTR DPTR 换码换码换码换码表首地址表首地址表首地址表首地址;取出段;取出段选码选码;R1 段段选码输选码输出口地址出口地址;输输输输出段出段出段出段选码选码选码选码;R1 R1 位位选码输选码输出端口地址出端口地址;输输输输出位出位出位出位选码选码选码选码;延;延;延;延时时时时现在学习的是第16页,共45页 INC R0 MOV A,R2 RR A MOV R2,A XRLA,#7FH JNZDSP1 RETDSEG:DB 3FH,06H,5BH,4FH显示子程序显示子程序;指向显示缓冲区中下一单元;指向显示缓冲区中下一单元;指向显示缓冲区中下一单元;指向显示缓冲区中下一单元;位选码初值;位选码初值=11011111B;位选码移位后;位选码移位后;位选码移位后;位选码移位后=11101111B;指向;指向;指向;指向6个个个个LEDLED中下一个数码管中下一个数码管中下一个数码管中下一个数码管;6位显示完位选码位显示完位选码位显示完位选码位显示完位选码=01111111B=01111111B;未完,继续显示;未完,继续显示;未完,继续显示;未完,继续显示现在学习的是第17页,共45页键盘接口键盘接口1、键盘的分类、键盘的分类键盘分编码键盘和非编码键盘。键盘分编码键盘和非编码键盘。编码键盘:编码键盘:由其内部硬件逻辑电路自动产生被按键的由其内部硬件逻辑电路自动产生被按键的编码。编码。特点:特点:使用方便,价格较贵。使用方便,价格较贵。如如BCD码键盘、码键盘、ASCLL码键盘等;码键盘等;非编码键盘:非编码键盘:而靠软件来识别的称为非编码而靠软件来识别的称为非编码键盘;键盘;n n 在单片机组成的测控系统及智能化仪器中,在单片机组成的测控系统及智能化仪器中,用的最多的是非编码键盘。用的最多的是非编码键盘。现在学习的是第18页,共45页键盘接口键盘接口2 2 2 2、矩阵键盘的结构、矩阵键盘的结构、矩阵键盘的结构、矩阵键盘的结构非非非非编编编编码码码码式式式式键键键键盘盘盘盘一一一一般般般般采采采采用用用用行行行行列列列列式式式式结结结结构构构构并并并并按按按按矩矩矩矩阵阵阵阵形形形形式式式式排排排排列列列列,如图所示。如图所示。如图所示。如图所示。4444行列式键盘的基本结构示行列式键盘的基本结构示行列式键盘的基本结构示行列式键盘的基本结构示意图意图意图意图n44表示有表示有4根行线和根行线和4根根列线;列线;n在每根行线和列线的交在每根行线和列线的交叉点上均分布叉点上均分布1个单触点个单触点按键按键,共有共有16个按键。个按键。现在学习的是第19页,共45页键盘接口键盘接口2 2、矩阵键盘的结构、矩阵键盘的结构非非非非编编编编码码码码式式式式键键键键盘盘盘盘一一一一般般般般采采采采用用用用行行行行列列列列式式式式结结结结构构构构并并并并按按按按矩矩矩矩阵阵阵阵形形形形式式式式排排排排列列列列,如图所示。如图所示。4444行列式键盘的基本结构示行列式键盘的基本结构示行列式键盘的基本结构示行列式键盘的基本结构示意图意图意图意图矩阵键盘按键的电平信号:矩阵键盘按键的电平信号:矩阵键盘按键的电平信号:矩阵键盘按键的电平信号:现在学习的是第20页,共45页键盘接口键盘接口2 2、矩阵键盘的结构、矩阵键盘的结构、矩阵键盘的结构、矩阵键盘的结构非非编编码码式式键键盘盘一一般般采采用用行行列列式式结结构构并并按按矩矩阵阵形形式式排排列列,如图所示。如图所示。如图所示。如图所示。4444行列式键盘的基本结构行列式键盘的基本结构行列式键盘的基本结构行列式键盘的基本结构示意图示意图示意图示意图非非编编码码键键盘盘应应主主要要解解决决以以下下几个问题:几个问题:(1)键的识别键的识别;(2)如何消除键的抖动如何消除键的抖动;(3)键的保护。键的保护。在在以以上上几几个个问问题题中中,最最主主要的是键的识别。要的是键的识别。现在学习的是第21页,共45页键盘接口键盘接口3 3 3 3、矩阵键盘的工作原理、矩阵键盘的工作原理识别闭合键通常采用行扫描法识别闭合键通常采用行扫描法。无键按下无键按下无键按下无键按下n n通过行线发出低电平信号:通过行线发出低电平信号:通过行线发出低电平信号:通过行线发出低电平信号:n n 如如如如果果果果该该该该行行行行没没没没有有有有键键键键按按按按下下下下,列列线线输输出端口为出端口为“1”信号信号信号信号;n n如如果果有有键键按按下下的的话话,列列线线输输出端口为非全出端口为非全“1”1”信号。信号。信号。信号。n n输出为输出为“0”0”的列上有键按下。的列上有键按下。的列上有键按下。的列上有键按下。n n输输输输出出出出为为为为“1”1”的的的的列列列列上上上上没没没没有有有有键键键键按按按按下。下。下。下。现在学习的是第22页,共45页键盘接口键盘接口3 3 3 3、矩阵键盘的工作原理、矩阵键盘的工作原理、矩阵键盘的工作原理、矩阵键盘的工作原理识别闭合键通常采用行扫描法识别闭合键通常采用行扫描法。第第第第3 3列有键盘按下列有键盘按下列有键盘按下列有键盘按下n n通过行线发出低电平信号:通过行线发出低电平信号:n n 如如如如果果果果该该该该行行行行没没没没有有有有键键键键按按按按下下下下,列列列列线线线线输输输输出端口为出端口为出端口为出端口为“1”信号信号信号信号;n n如如果果有有键键按按下下的的话话,列列线线输输出端口为非全出端口为非全“1”信号。信号。n n输输出出为为“0”的的列列上上有有键键按按下。下。n n输输输输出出出出为为为为“1”的的列列上上没没有有键键按按下。下。现在学习的是第23页,共45页4 4 4 4、矩阵键盘的工作过程、矩阵键盘的工作过程 读列输出端口(读列输出端口(4位)位)4行输出0000开始逐行扫描,判断具体按键位置逐行扫描,判断具体按键位置得到具体按键数值得到具体按键数值Y4列输出全1无无无无键键键键按按按按下下下下,返返返返回回回回N现在学习的是第24页,共45页输出行信号输出行信号1101读入列信号读入列信号0111列信号列信号 行信号行信号 0111 1101取反取反:1000 0010=82H”1”键按下键按下5、矩阵键盘的键值计算举例、矩阵键盘的键值计算举例现在学习的是第25页,共45页输出行信号输出行信号0111读入列信号读入列信号1110列信号列信号 行信号行信号 1110 0111取反取反:0001 10005、矩阵键盘的键值计算举例、矩阵键盘的键值计算举例=18H”A”键按下键按下现在学习的是第26页,共45页6、矩阵键盘的键值对应表、矩阵键盘的键值对应表字符0123456789ABCD EF键值81 82 42 22 84 44 24 88 48 28 18 14 12 11 21 41现在学习的是第27页,共45页键盘管理流程图键盘管理流程图延时去抖动延时去抖动延时去抖动延时去抖动调显示子程序调显示子程序调显示子程序调显示子程序逐行扫描逐行扫描逐行扫描逐行扫描有键按下?有键按下?有键按下?有键按下?行列信号拼装行列信号拼装行列信号拼装行列信号拼装转向各命令键转向各命令键转向各命令键转向各命令键处理程序处理程序处理程序处理程序N NY YY YN N图图图图9.7 键盘管理程序流程图键盘管理程序流程图键盘管理程序流程图键盘管理程序流程图有键按下有键按下有键按下有键按下?关显示关显示关显示关显示扫描整个键盘扫描整个键盘扫描整个键盘扫描整个键盘指向下一行指向下一行指向下一行指向下一行全行扫描完?全行扫描完?全行扫描完?全行扫描完?Y YN N求查表特征字求查表特征字求查表特征字求查表特征字特征字暂存特征字暂存特征字暂存特征字暂存设查表初值设查表初值设查表初值设查表初值查表求键值查表求键值查表求键值查表求键值找到了吗?找到了吗?找到了吗?找到了吗?N NY Y指向下一单元指向下一单元指向下一单元指向下一单元(行列信号在(行列信号在(行列信号在(行列信号在R2R2中,中,中,中,列信号在列信号在列信号在列信号在R3R3中)中)中)中)延时延时延时延时(键值在键值在键值在键值在R4R4中中中中)键已释放?键已释放?键已释放?键已释放?Y YN N键值键值键值键值=9=9?N NY Y键值键值键值键值99?N NY Y查命令键转移表查命令键转移表查命令键转移表查命令键转移表转数键转数键转数键转数键现在学习的是第28页,共45页键盘管理流程键盘管理流程v扫描键盘,判断有没有键按下;扫描键盘,判断有没有键按下;v获取合上键的行信号与列信号;获取合上键的行信号与列信号;v由行、列特征识别合上键的含义;由行、列特征识别合上键的含义;v根据键的特征进行分类;根据键的特征进行分类;v分类处理。分类处理。现在学习的是第29页,共45页列信号读入地址列信号读入地址0FBH(高高高高4 4位)位)位)位)键盘接口地址键盘接口地址行信号输出端口地址行信号输出端口地址行信号输出端口地址行信号输出端口地址0 0FDHFDH(低低4位)位)现在学习的是第30页,共45页键盘管理程序清单键盘管理程序清单ORG 0100HDIUP:DIUP:DIMS:DIMS:ORG0138HKEYBD:ACALLACALLDISPDISPKEYB1:MOVA,#00H MOVR1,#0FEH MOVX MOVXR1,R1,A A MOVR1,#0FDH MOVXR1,A;显示子程序显示子程序显示子程序显示子程序;延时子程序延时子程序延时子程序延时子程序;以下是键盘管理程序以下是键盘管理程序以下是键盘管理程序以下是键盘管理程序;00H00H是空格符(不显示)是空格符(不显示);段选码输出送段选码输出送R1R1;送灭码,关数码管显示送灭码,关数码管显示;行信号输出口地址送行信号输出口地址送行信号输出口地址送行信号输出口地址送R1R1;使行信号为使行信号为全全全全0 0问题问题1 1位选码没有输出,能实现关显示吗?位选码没有输出,能实现关显示吗?现在学习的是第31页,共45页键盘管理程序清单键盘管理程序清单ORG 0100HDISP:DISP:DIMS:DIMS:ORG0138HKEYBD:KEYBD:ACALLDISPKEYB1:KEYB1:MOVA,#00H MOVR1,#0FEH MOVXR1,A MOVR1,#0FDH MOVXR1,A MOV MOVR1,R1,#0FBH#0FBH MOVX MOVXA,A,R1R1;列信号输入口地址送列信号输入口地址送R1R1;取列信号到累加器取列信号到累加器;行信号输出口与位选码行信号输出口与位选码输出口地址送相同,即为输出口地址送相同,即为#0FDH#0FDH,使行信号为全,使行信号为全0的的同时同时6个个个个LEDLED同时选中,熄同时选中,熄灭。灭。现在学习的是第32页,共45页键盘管理程序清单键盘管理程序清单 ANL ANLA,A,#0F0H#0F0H XRLXRLA,A,#0F0H#0F0H JZ JZKEYBDKEYBD MOVR5,#0EHD15MS:ACALLDIMS DJNZR5,D15MS MOV MOVR2,R2,#0FEH#0FEH MOVR0,#0FDH MOVR1,#0FBH;列信号在高列信号在高列信号在高列信号在高4 4位位位位;判断是否有键合上判断是否有键合上;输入输入(A)=0F0HA)=0F0H时时时时,说明没说明没说明没说明没键合上键合上键合上键合上,结果结果结果结果(A)=00H;输入输入输入输入(A)0F0H时时,说明有说明有键合上键合上,结果结果(A)00H;无键合上再检查无键合上再检查无键合上再检查无键合上再检查;有键合上,调延时子序去有键合上,调延时子序去抖动抖动;FE=1111,1110FE=1111,1110为扫描第为扫描第为扫描第为扫描第1 1行行行行作准备作准备作准备作准备;行信号输出口地址送行信号输出口地址送行信号输出口地址送行信号输出口地址送R0;列信号输入口地址送列信号输入口地址送列信号输入口地址送列信号输入口地址送R1R1现在学习的是第33页,共45页键盘管理程序清单键盘管理程序清单KEYB2:KEYB2:MOVA,R2 MOVX MOVXR0,R0,A A MOVX MOVXA,A,R1R1 ANLA,#0F0H MOVR3,A CJNE A,#0F0H,KEYB3 MOV A,R2 RL RL A A MOVR2,A;逐行扫描(每次只有一行逐行扫描(每次只有一行逐行扫描(每次只有一行逐行扫描(每次只有一行信号为信号为信号为信号为0 0);读取列信号到累加器读取列信号到累加器;列信号在高列信号在高列信号在高列信号在高4 4位位位位;列信号暂存于列信号暂存于列信号暂存于列信号暂存于R3R3;(A)=0F0HA)=0F0H时时,说明该行对说明该行对应的应的4列中均没键合上列中均没键合上;(A)0F0HA)0F0H时时时时,说明该行对说明该行对说明该行对说明该行对应的应的应的应的4 4列中有键合上列中有键合上列中有键合上列中有键合上;没键合上没键合上没键合上没键合上,为扫描下为扫描下为扫描下为扫描下1 1行作行作行作行作准备准备准备准备现在学习的是第34页,共45页键盘管理程序清单键盘管理程序清单 XRL XRLA,A,#0EFH#0EFH JNZKEYB2 AJMPKEYBD;行信号行信号FEH=1111,1110;左移左移4次次1110,1111=EF;(A)=EFH(A)=EFH,说明说明说明说明4 4行扫描一行扫描一行扫描一行扫描一轮轮轮轮,结果结果结果结果(A)=00HA)=00H;(A)EFH,说明说明说明说明4 4行一轮还行一轮还行一轮还行一轮还没有扫描结束。没有扫描结束。没有扫描结束。没有扫描结束。结果结果结果结果(A)00H;检查各行是否都已扫描检查各行是否都已扫描检查各行是否都已扫描检查各行是否都已扫描;(A)00H,未扫描完一未扫描完一轮继续轮继续;返回主程序入口,进行新返回主程序入口,进行新返回主程序入口,进行新返回主程序入口,进行新一轮扫描一轮扫描一轮扫描一轮扫描现在学习的是第35页,共45页键盘管理程序清单键盘管理程序清单KEYB3:MOVA,R2 ANL ANLA,A,#0FH#0FH ORLA,R3 CPLA MOV MOV06H,06H,A A MOV MOVR4,R4,#00H#00H MOV DPTR,#KEYTBL MOV DPTR,#KEYTBLKEYB4:KEYB4:CLRCLRA A MOVC MOVCA,A+DPTRA,A+DPTR CJNE CJNE A,06H,NEQA,06H,NEQ AJMP AJMPEQQEQQ;行信号在行信号在行信号在行信号在R2R2的低的低4 4位位;取行信号到累加器取行信号到累加器;列信号在列信号在列信号在列信号在R3的高的高4位位;拼装后取反得特征字拼装后取反得特征字拼装后取反得特征字拼装后取反得特征字;特征字暂存特征字暂存;查找次数初值查找次数初值;设置表头地址设置表头地址设置表头地址设置表头地址;从表中取出某个特征字从表中取出某个特征字从表中取出某个特征字从表中取出某个特征字;与拼装得到的特征字比较与拼装得到的特征字比较与拼装得到的特征字比较与拼装得到的特征字比较,若相等若相等,则该特征字在表中则该特征字在表中则该特征字在表中则该特征字在表中的偏移量即为按键的键值的偏移量即为按键的键值的偏移量即为按键的键值的偏移量即为按键的键值;否则继续查找否则继续查找否则继续查找否则继续查找;相等,相等,(R4)=键值键值现在学习的是第36页,共45页键盘管理程序清单键盘管理程序清单NEQ:NEQ:INC INCR4R4 INC INCDPTRDPTR AJMP AJMPKEYB4KEYB4EQQ:MOV MOVR5R5,#0EH#0EHDLY:DLY:ACALL ACALLDIMSDIMS DJNZR5DLY MOVA,#00H MOVX MOVXR0,R0,A A MOVXA,R1 ANL ANLA,A,#0F0H#0F0H;查找次数加查找次数加1 1;查表指针加查表指针加查表指针加查表指针加1;继续从表中取得下一特征继续从表中取得下一特征继续从表中取得下一特征继续从表中取得下一特征字,并与键盘获取的特征字,并与键盘获取的特征字,并与键盘获取的特征字,并与键盘获取的特征字作比较字作比较字作比较字作比较问题问题2 2可以改为可以改为INCA吗?吗?;延时,等待键释放延时,等待键释放;4行输出均为行输出均为行输出均为行输出均为0 0;读取列信号到累加器读取列信号到累加器读取列信号到累加器读取列信号到累加器;列信号在高列信号在高4位位现在学习的是第37页,共45页键盘管理程序清单键盘管理程序清单 CJNE A,#0F0H,EQQ MOVA,R4 CJNE A,#09H,NOT9 AJMPAJMPNNNNNNNOT9:NOT9:JC JCNNNNNN MOV DPTR,#JMPTBL CLRC SUBBA,#0AH RL RL A A;(A)=0F0HA)=0F0H时时时时,说明没键合说明没键合上,即按键已经释放上,即按键已经释放;(A)0F0HA)0F0H时时,说明有键没说明有键没有释放有释放;按键已释放按键已释放,(R4)=键值键值;判断键值判断键值判断键值判断键值 9 9否否;等于等于9,转数字键处理,转数字键处理,转数字键处理,转数字键处理;小于小于9 9,转数字键处理,转数字键处理;设置命令键处理分支子程设置命令键处理分支子程设置命令键处理分支子程设置命令键处理分支子程序散转表头地址序散转表头地址序散转表头地址序散转表头地址(键值键值键值键值-10)*2=-10)*2=该命令键对应该命令键对应的跳转指令在表中的偏移的跳转指令在表中的偏移量量=(A);现在学习的是第38页,共45页键盘管理程序清单键盘管理程序清单 JMPJMPA+DPTRA+DPTRJMPTBL:JMPTBL:AJMPAAA AJMPAJMPBBBBBB AJMPAJMPCCCCCC AJMPAJMPDDDDDD AJMPEEE AJMPFFFNNN:NNN:.KEYTBL:KEYTBL:DB DB 81H81H DB82H DBDB 41H41H;转到各命令键分支转到各命令键分支转到各命令键分支转到各命令键分支;AAA,BBB;AAA,BBB为为A,BA,B各个各个按键处理程序的入口标号按键处理程序的入口标号;处理数字键处理数字键处理数字键处理数字键;0键的特征字键的特征字键的特征字键的特征字;1键的特征字键的特征字;F;F键的特征字键的特征字现在学习的是第39页,共45页列信号读入地址列信号读入地址0FBHFBH(高高高高4 4位)位)位)位)伟福实验箱键盘接口地址伟福实验箱键盘接口地址行信号输出端口地址行信号输出端口地址0FDH(低低低低4 4位)位)位)位)列信号读入地址列信号读入地址列信号读入地址列信号读入地址8001H(低低低低4 4位)位)位)位)行信号输出端口地址行信号输出端口地址8002H8002H(低低6位)位)位)位)现在学习的是第40页,共45页实验三实验三 数码管动态显示实验数码管动态显示实验 实验目的:实验目的:掌握数码管动态扫描显示的方法。掌握数码管动态扫描显示的方法。实验步骤:实验步骤:1)连线:连线:KEY/LED_CS接接CS0(伟伟福福实实验验箱箱,启启东东实实验验箱箱不不需需要要连线)连线)2)编写段选码表编写段选码表(伟福实验箱:(伟福实验箱:共阳极共阳极)lcode:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h DB 7fh,6fh,77h,7ch,39h,5eh,79h,71h 实验题目实验题目1 数码管动态显示数码管动态显示6位连续数字位连续数字 现在学习的是第41页,共45页实验题目实验题目1 数码管动态显示数码管动态显示6位连续数字位连续数字(启东实验箱:(启东实验箱:共阴极共阴极)lcode:DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;012345 DB 82H,0F8H,80H,90H,88H,83H ;6789AB DB 0C6H,0A1H,86H,8EH,8CH,0C1H ;CDEFPU DB 0C6H,0A1H,86H,8EH,8CH,0C1H ;CDEFPU 3)编编写写代代码码,固固定定输输出出显显示示缓缓冲冲区区中中数数据据所所对对应应的的字字符符(123456)。OUTBIT equ 08002h ;位控制口(位控制口(“1”选中)选中)OUTSEG equ 08004h ;段控制口段控制口通过修改显示缓冲区中的数据,依次验证转换表中各个字通过修改显示缓冲区中的数据,依次验证转换表中各个字节数据所对应的字符。节数据所对应的字符。现在学习的是第42页,共45页实验三实验三 数码管动态显示实验数码管动态显示实验 实验目的:实验目的:掌握数码管动态扫描显示的方法。掌握数码管动态扫描显示的方法。实验步骤:实验步骤:1)连线:连线:KEY/LED_CS接接CS0(伟伟福福实实验验箱箱,启启东东实实验验箱箱不不需需要要连线)连线)2)编写段选码表编写段选码表(伟福实验箱:(伟福实验箱:共阳极共阳极)lcode:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h DB 7fh,6fh,77h,7ch,39h,5eh,79h,71h 实验题目实验题目2 数码管滚动显示数码管滚动显示6位变化数字位变化数字 现在学习的是第43页,共45页实验题目实验题目2 数码管滚动显示数码管滚动显示6位变化数字位变化数字3)编写代码,显示缓冲区中数据所对应的字符:编写代码,显示缓冲区中数据所对应的字符:123456123456234567234567 ABCDEFABCDEFBCDEF0BCDEF0CDEF01CDEF01 .实验日期:实验日期:2010-4-21(下午下午5-6节节),工程楼,工程楼307现在学习的是第44页,共45页OVER!现在学习的是第45页,共45页