资源预览内容
第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
第9页 / 共27页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
6.3 利用利用MCS-51的串行口实现键盘和显示器接口的串行口实现键盘和显示器接口1 1接口电路接口电路 应用MCS-51单片机的串行口方式0的输出方式,在串行口外接移位寄存器74LS164,构成键盘和显示器接口,其硬件接口如下页图所示(图中只画出三位LED静态显示和16个按键,用户根据需要可以扩展)。采用静态显示,软件设计比较简单,节约CPU的资源。 2 2软件设计软件设计显示子程序如下:显示子程序如下: ORG 1000H DSPSER:SETB P3.3; 开放显示输出MOV R7, #03H; 送出的显示段码个数MOV R0, #7FH; 7FH7DH为显示缓冲区 DSPS1:MOV A, R0; 取出要显示的数据ADD A, #0DH; 加上偏移量MOVC A, A+PC; 查段码表TAB1MOV SBUF, A; 经过串行口将段码送出 DSPS2:JNB TI, DSPS2; 数据发送完?CLR TIDEC R0; 指向下一个数据单元DJNZ R7, DSPS1; 三个显示器是否全部显示?CLR P3.3; 三个数据显示完,关闭送显示数据通道RET TAB1: DB; 段码表键盘扫描子程序如下:键盘扫描子程序如下: KEYS1:MOV A,#00HMOV SBUF, A; 扫描键盘全部输出0 KSY0:JNB TI, KSY0; 数据发送完?CLR TI KSY1:JNB P3.4, PKS1; 有键闭合吗?有则转PKS1处理JB P3.5, KSY1; 第二行有键闭合吗? PKS1:ACALL DELAY10; 调用延时10ms子程序,键盘去抖JNB P3.4, PKS2; 有键闭合吗?JB P3.5, KSY1; 无键闭合,是抖动 PKS2:MOV R7, #08H; 不是抖动引起的 MOV R6, #0FEH ; 判断是哪个键按下? MOV R3, #00HMOV A, R6 KSY2:MOV SBUF, A KSY3:JNB TI, KSY3; 等待串行口发送完CLR TIJNB P3.4, PKONE; 是第一行的某键按下?JB P3.5, NEXT; 是第二行的某键按下?MOV R4, #08H; 第二行有键按下AJMP PKS3 PKONE:MOV R4, #00H; 第一行有键按下 PKS3:MOV SBUF, #00H; 等待键的释放 KSY4:JNB TI, KSY4; CLR TI KSY5:JNB P3.4, KSY5; 是第一行的某键按下?JNB P3.5, KSY5MOV A, R4ADD A, R3RET NEXT:MOV A, R6; 判断下一列是否有键按下RL AMOV R6, AINC R3DJNZ R7, KSY2; 8列是否全部扫描完?AJMP KEYS1; 扫描完成 DELAY10: ; 延时10ms子程序RET END6.3.3 6.3.3 利用专用芯片实现键盘和显示器接口利用专用芯片实现键盘和显示器接口 键盘的处理和显示的处理可由专用芯片完成,键盘和显示器管理专用芯片种类较多,常用的键盘和显示器管理专用芯片有Intel公司的8279芯片,可实现64个按键、 16位LED显示器的管理。 在由单片机组成的控制系统中,大多数外围电路是处于各种各样的复杂环境中,如控制对象可能处于大电流、高电压的情况。控制的执行机构可能是电动机、继电器或电磁铁等大功率机构。因此,单片机不可能和这些外部机构直接连接。通常必须采取两个基本措施:一是采用隔离的方法把单片机的工作环境与外电路隔离开来;另一种是采用电流接续的办法扩大输出电流的能力,以驱动各种外电路。6.4.1 6.4.1 扩大驱动电流的方法扩大驱动电流的方法1 1、采用晶体三极管扩大输出电流、采用晶体三极管扩大输出电流2 2、采用带驱动电路的逻辑门扩大驱动电流、采用带驱动电路的逻辑门扩大驱动电流3 3、采用达林顿管作驱动器扩大驱动电流、采用达林顿管作驱动器扩大驱动电流 下面分别给出具体电路图下面分别给出具体电路图6.4 MCS-516.4 MCS-51单片机功率驱动接口技术单片机功率驱动接口技术1、三极管三极管的概述半导体三极管也称为晶体三极管,可以说它是电子电路中最重要的器件。它最主要的功能是电流 放大和开关作用。 三极管顾名思义具有三个电极。二极管是由一个PN结构成的,而三极管由两个PN结构成,共用的一个电极成为三极管的基极(用字母b表示)。其他的两个电极成为集电极(用字母c表示)和发射极(用字母e表示)。由于不同的组合方式,形成了一种是NPN型的三极管,另一种是PNP型的三极管。三极管 的种类很多,并且不同型号各有不同的用途。三极管大都是塑料封装或金属封装,常见三极管的外观如图,大的很大,小的很小。三极管的电路符号有两种:有一个箭头的电极是发射极,箭头朝外的是NPN型三极管,而箭头朝内的是PNP型。实际上箭头所指的方向是电流的方向。 电子制作中常用的三极管有9 0 系列,包括低频小功率硅管9013(NPN)、9012(PNP),低噪声管9014(NPN),高频小功率管9018(NPN)等。它们的型号一般都标在塑壳上,而样子都一样,都是TO-92标准封装。半导体三极管的管脚判别半导体三极管的管脚判别 在安装半导体三极管之前,首先搞清楚三极管的管脚排列。一方面可以通过查手册获得,另一方面也可利用电子仪器进行测量,下面讲一下利用万用表判定三极管管脚的方法。首先判定PNP型和NPN型晶体管:用万用表的R1kW(或R100W)档,用黑表笔接三极管的任一管脚,用红表笔分别接其他两管脚。若表针指示的两阻值均很大,那么黑表笔所接的那个管脚是PNP型管的基极;如果万用表指示的两个阻值均很小,那么黑表笔所接的管脚是NPN型的基极;如果表针指示的阻值一个很大,一个很小,那么黑表笔所接的管脚不是基极。需要新换一个管脚重试,直到满足要求为止。进一步判定三极管集电极和发射极:首先假定一个管脚是集电极,另一个管脚是发射极;对NPN于型三极管,黑表笔接假定是集电极的管脚,红表笔接假定是发射极的管脚(对于PNP型管,万用表的红、黑表笔对调);然后用大拇指将基极和假定集电极连接(注意两管脚不能短接),这时记录下万用表的测量值;最后反过来,把原先假定的管脚对调,重新记录下万用表的读数,两次测量值较小的黑表笔所接的管脚是集电极(对于PNP 型管,则红表笔所接的是集电极)。2、逻辑门3、达林顿管ULN2003内部逻辑电路图例题:设计使单片机唱歌的程序;在接在单片机的P2.0上的小喇叭唱八月桂花香实验 ;执行结果:程序运行后在在单片机的P2.0上的小喇叭唱八月桂花香;本实验源程序如下:;*;* Date : 2004.4.20 -*;* Support Mb:0735-2197559 E-mail:c51cn163.com -*;* Create by :dengdewu http:/www.c51.cn 更多例程请登陆网站-*;* 网站单片机学习资料同步更新,敬请新老朋友随时关注 -*;* ORG 0000H LJMP START ORG 000BH ;中断入口 INC 20H ;中断服务程序,中断计数器加1 MOV TH0,#0D8H MOV TL0,#0EFH ;12M晶振,形成10毫秒中断 RETISTART: MOV SP,#50H MOV TH0,#0D8H MOV TL0,#0EFH MOV TMOD,#01H ;设定定时器工作方式 MOV IE,#82HMUSIC0: NOP MOV DPTR,#DAT ;表头地址送DPTR MOV 20H,#00H ;中断计数器清0 MOV B,#00H ;表序号清0MUSIC1: NOP CLR A MOVC A,A+DPTR ;查表取代码 JZ END0 ;是00H,则结束 CJNE A,#0FFH,MUSIC5 LJMP MUSIC3MUSIC5: NOP MOV R6,A INC DPTR MOV A,B MOVC A,A+DPTR ;取节拍代码送R7 MOV R7,A SETB TR0 ;启动计数MUSIC2: NOP CPL P2.0 MOV A,R6 MOV R3,A CPL A MOV P1,A ;显示(修改者加入的显示) CPL A LCALL DEL MOV A,R7 CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否? ;不等,则继续循环 MOV 20H,#00H ;等于,则取下一代码 INC DPTR LJMP MUSIC1 MUSIC3: NOP CLR TR0 ;休止100毫秒 MOV R2,#0DHMUSIC4: NOP MOV R3,#0FFH LCALL DEL DJNZ R2,MUSIC4 INC DPTR LJMP MUSIC1END0: MOV R2,#64H ;歌曲结束,延时1秒后继续MUSIC6: MOV R3,#00H LCALL DEL DJNZ R2,MUSIC6 LJMP MUSIC0DEL: ;延时子程序 NOP DEL3: MOV R4,#05HDEL4: NOP DJNZ R4,DEL4 NOP DJNZ R3,DEL3 RETDAT: ;数据表格存放在ROM中。DB 18H, 30H, 1CH, 10H,20H, 40H, 1CH, 10H, 18H, 10H, 20H, 10HDB 1CH, 10H, 18H, 40H,1CH, 20H, 20H, 20H, 1CH, 20H, 18H, 20HDB 20H, 80H, 0FFH,20H,30H, 1CH, 10H, 18H, 20H, 15H, 20H, 1CHDB 20H, 20H, 20H, 26H,40H, 20H, 20H, 2BH, 20H, 26H, 20H, 20HDB 20H, 30H, 80H, 0FFH,20H, 20H, 1CH, 10H, 18H, 10H, 20H, 20HDB 26H, 20H, 2BH, 20H, 30H, 20H, 2BH, 40H, 20H, 20H, 1CH, 10HDB 18H, 10H, 20H, 20H, 26H, 20H, 2BH, 20H, 30H, 20H, 2BH, 40HDB 20H, 30H, 1CH, 10H,18H, 20H, 15H, 20H, 1CH, 20H, 20H, 20HDB 26H, 40H, 20H, 20H, 2BH, 20H, 26H, 20H, 20H, 20H, 30H, 80HDB 20H, 30H, 1CH, 10H,20H, 10H, 1CH, 10H, 20H, 20H, 26H, 20HDB 2BH, 20H, 30H, 20H,2BH, 40H, 20H, 15H, 1FH, 05H, 20H, 10HDB 1CH, 10H, 20H, 20H,26H, 20H, 2BH, 20H, 30H, 20H, 2BH, 40HDB 20H, 30H, 1CH, 10H,18H, 20H, 15H, 20H, 1CH, 20H, 20H, 20HDB 26H, 40H, 20H, 20H,2BH, 20H, 26H, 20H, 20H, 20H, 30H, 30HDB 20H, 30H, 1CH, 10H,18H, 40H, 1CH, 20H, 20H, 20H, 26H, 40HDB 13H, 60H, 18H, 20H,15H, 40H, 13H, 40H,18H, 80H, 00HEND例题例题2 2:使继电器按一下按键就吸合,放开按键:使继电器按一下按键就吸合,放开按键就不吸合的程序。就不吸合的程序。P2.0P2.0接继电器,接继电器,P1.2P1.2接继电接继电器合灯,器合灯,P1.4P1.4接继电器断开灯。接继电器断开灯。程序设计如下:程序设计如下: org 00h ;源程序起始地址源程序起始地址 jmp main ;跳转到跳转到MAIN org 0050h ;主程序开始地址主程序开始地址main:clr p2.0 ;关继电器和灯关继电器和灯 clr p1.2;灯灯1灭灭 setb p1.4 ;灯灯2亮亮loop: jb p3.6,lop1 ;键没按下则去;键没按下则去lop1 setb p2.0 ;否则继电器吸合;否则继电器吸合 setb p1.2 ;灯;灯1亮亮 clr p1.4 ;灯;灯2灭灭 jmp lop2lop1: clr p2.0 ;继电器松开;继电器松开 clr p1.2 ;灯;灯1灭灭 setb p1.4 ;灯;灯2亮亮lop2: nop ajmp loop ;循环;循环 ret end
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号