预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共23页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第八章MCS-51与数码显示器和键盘的接口一、MCS-51与数码显示器接口数码显示器是单片机应用产品中最常用的廉价的输出设备,它由8个发光二极管按一定规律排列而成,当某一发光二极管导通时,则会被点亮,控制不同组合的二极管导通,就能显示出各种字符。1.显示器的结构常用的显示器结构如图所示:A.共阳极显示器B.共阴极显示器a.采用8位锁存器74LS273作为静态显示器接口b.采用移位寄存器74LS164作为静态显示器接口MCS-51串行口工作于方式0输出显示段码:F9H显‘1’更新显示器子程序:DIR:MOVR7,#08HMOVR0,#7FHDL0:MOVA,@R0ADDA,#0BHMOVCA,@A+PCMOVSBUF,A2 DL1:JNBT1,DL13CLRT12DECR01DJNZR7,DL02 RET1TAB:DBC0H,F9H,A4H,B0H,99HB.动态显示方式所谓动态显示是指一位一位地轮流点亮各位显示器。对于每一位显示器来说,每隔一段时间点亮一次,通常点亮时间为1mS左右,相隔时间为20mS6位共阴显示器和8155的接口逻辑如图所示:其中:8155A口作为段数据口,8155A口扫描输出总是只有一位为高电平。对于6位显示器,在MCS-51RAM中,设置了6个单元的显示缓冲区即79H-7FH,它用来存放显示数据。更新显示器子程序如下:DIR:MOVR0,#79HMOVR3,#01HMOVA,R3LD0:MOVDPTR,#7F01HMOVX@DPTR,AINCDPTRMOVA,@R0ADDA,#0DHMOVCA,@A+PCDIR1:MOVX@DPTR,AACALLDL1INCR0MOVA,R3JBACC.5,LD1RLAMOVR3,ASJMPLD0LDI:RETDSEG:DB3FH,06H,5BH,DL1:MOVR7,#02HDL:MOVR6,#FFHDL6:DJNZR6,DL6DJNZR7,DLRET二、拨码盘接口1.BCD拨码盘的构造BCD拨码盘具有0~9十个位置,每个位置都有相应的指示,一个拨码盘可以输入1个十进制数据。每个BCD拨码盘后面有5位引出线,其中一位为输入控制线(编号为A),另外4位是数据线(编号为8,4,2,1)。拨码被拨到某一个位置时,输入控制线(A)分别与4位数据线中的某几位接通。如果把接通的位定义为1,不通的线定义为0,则拨码盘数据线的状态就是拨盘位置所指示的BCD码。2.接口电路3.拨码盘数据输入程序INBCD:MOVR0,#30HMOVA,P1MOVP1,#7FHXCHDA,@RO MOVA,P1RET SWAPAMOV@R0,AMOVP1,#0BFHMOVA,P1 XCHDA,@R0INCR0MOVP1,#0DFHMOVA,P1XCHA,@R0MOVP1,#0EFH三、键盘接口键盘是由若干个按键组成的开关矩阵,它是单片机最简单的输入设备,操作员可以通过键盘输入数据或命令,实现人机通信。1.键盘工作原理一个4X4的键盘结构如图所示:A.按键与否的判别我们使所有行为低自列线读入数据,若列线中有一位为低,则可判为有键按下,否则全为高为无键按下。B.按键的识别由于矩阵网络上每一个键都可以由它所在的行与列来定位。所以,我们可使第一行至第四行逐行为低,通过读入数据来识别是何键按下。例如:当使行2为低,读入列值时,其列2值为低,则可判是键5按下。C.键抖动及消除键按下和释放时存在着机械抖动,其对应的列线电压波形如图示,通常抖动时间为5-10mS。2.键盘接口电路3.键输入程序A.键输入程序功能a.判别键盘上有无键闭合使PA0-7输出为“0”,读PC口,若PC0-3为全“1”,则无键闭合,否则为有键闭合。b.消键抖动当判别到有键闭合时,延时10mS后再判别键盘状态,若仍有键闭合,则为有键按下,否则认为是键的抖动。c.确定闭合键的键号设第一列至第四列的列值为00H、08H、10H、18H则键号N=行号+列值d.对键的一次闭合仅作一次处理等待闭合键释放后进行键处理。 e.各按键对应的键值如下:B.程序清单:KEY1:ACALLKS1KS1:MOVDPTR,#7F01H JNZLK1MOVA,#00HNI:ACALLDIRMOVX@DPTR,AAJMPKEY1INCDPTRLK1:ACALLDIRINCDPTRACALLDIRMOVA,@DPTRACALLKS1CPLAJNZLK2ANLA,#0FHACALLDIRRETAJMPKEY1LK2:MOVR2,#FEHMOVR4,#00HLK4:MOVDPTR,#7F01HMOVA,R2MOVX@DPTR,AINCDPTRLK3:ACALLDIR INCDPTR ACALLKS1 MOVXA,@DPTRJNZLK3 JBACC.0,LONEPOPACC M