ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:219.15KB ,
资源ID:25821686      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25821686.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(以8155作为接口的键盘显示系统的设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

以8155作为接口的键盘显示系统的设计.docx

1、以8155作为接口的键盘显示系统的设计单片机原理课程设计报告设计题目:以8155作为接口的键盘显示系统的设计 专业班级: 自动化 学 号: 姓 名: 指导教师: 沈怀洋 起止日期:2015年12月28日2016年1月3日目 录1课程设计目的 12课程设计要求 13设计内容 13.1设计方案 13.2 硬件各单元电路的设计 23.2.1显示部分的设计 23.2.2键盘部分的设计 73.3 软件设计 103.3.1 程序框图 113.3.2 程序清单 124总结 14参考文献 14附 录 15 1课程设计目的(1)加深对单片机原理的理解;(2)培养实践动手能力,开发创新思维;(3)提高分析、解决问

2、题的能力;(4)了解单片机系统开发流程。2课程设计要求(1)设计一个以8155作为单片机扩展并行接口的键盘显示系统;(2)设计以单片机为核心的键盘和显示系统硬件电路和软件程序,主要分为以下两部分设计:设计单片机显示电路和显示部分软件程序;设计单片机键盘电路和键盘部分软件程序;(3)设计总的实用电路并写出总的软件程序清单。3设计内容3.1设计方案根据课程设计要求,设计一个以8155作为接口的键盘显示系统,通过各硬件部分的连接原理,得到如图一所示的键盘显示系统。图一 以单片机为核心的键盘显示系统如图一所示的键盘显示系统,单片机使用8155的I/O端口扩展,通过PC口与键盘的连接接收来自键盘的信号,

3、通过PA口发送位选信号到八段LED显示器的公共端,通过PB口发送段选信号分别连接到八段LED显示器的ag和SP引脚上。这样由键盘和8155以及单片机构成键盘显示系统的键盘部分,由显示器和8155以及单片机构成键盘显示系统的显示部分,下面分别详细介绍设计。3.2 硬件各单元电路的设计3.2.1显示部分的设计(1) 显示部分概述单片机的键盘显示系统的显示部分是由8个八段LED显示器构成的。八段LED显示器是一种把8个LED显示段(分别为A、B、C、D、E、F、G、DP,其中DP 是小数点位段)集成在一起的显示设备,如图二所示,具有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个LED显示段的

4、阳极接在一起,为阳极公共端G。共阴型就是把多个LED显示段的阴极接在一起,为阴极公共端。 八段LED显示器的显示分为静态和动态两种。静态显示的特点是各个LED显示器能够文档地同时显示各自的字形,在任何时刻,所有的数码管同时亮,缺点是占用单片机的资源,并且比较耗电;动态显示是指各LED显示器轮流地一位一位的显示各个字符,在某一时刻,只有一位LED显示器亮,因为人的视觉暂留,在看到8个八段LED显示器时好像是同时显示不同字形,但必须保证扫描速度足够快,字符才不闪烁。本次课程设计的显示系统选择使用的是动态显示方式,八段LED显示器采用共阳型。动态显示有利于减少显示系统在显示时占有单片机CPU的资源,

5、并且减少硬件电路的耗能,从而提高显示系统的可靠性。图二 八段LED显示器元件图(2) 显示电路的构成单片机采用动态显示的方法控制LED显示器的显示,使用软件查表的方法,预先将LED能显示的字形码组成一个有顺序的字形表,通过在单片机的RAM中建立一个显示缓冲区,在显示缓存区的存储单元个数与显示系统的LED显示器个数相等,它们是一一对应的,八个存储单元对应八个LED显示器;其中显示缓冲区的每个存储单元保存LED显示器需要显示的字符在字形表中的地址偏移量,单片机通过这个地址偏移量查找出所要显示字符的字形码。D7D6D5D4D3D2D1D0TM2TM1IEBIEAPC2PC1PBPA表一 8155命令

6、字如表一所示,8155的命令字共有8位,其中D3和D2是PC口的四种方式控制位,D1和D0分别是PA口和PB口的输入/输出方式控制字,根据硬件电路设计,8155芯片的PA口和PB口作为显示输出,故PA=1,PB=1;PC口作为键盘输入,工作在ALT1方式,PC1=PC2=0,在使用8155前,需要为其送03H的方式控制字。 如表二所示,片选输入线,单片机选中8155芯片工作,I/O端口选通输入线,选中8155芯片某一I/O寄存器工作。根据图三所示,可知单片机的P2.7引脚连接到引脚,当=0时,使8155芯片工作,令P2.7=0;单片机的P2.6引脚连接,当=1时,使8155的I/O端口工作,令

7、P2.6=1。A7A6A5A4A3A2A1A0所选端口01*000命令/状态寄存器01*001A口01*010B口01*011C口01*100计数器低8位01*101计数器高8位01*RAM单元表二 8155端口地址分配单片机和8155芯片其他引脚连接:ALE为允许地址输入线,与单片机的ALE引脚相连,当ALE=1时,8155允许AD7-AD0上地址锁存到“地址锁存器”,否则,地址锁存器处于封锁状态。:8155的同单片机的相连,为写命令线,为读命令线,当=0, =1时,8155处于读数据状态; =1, =0时,8155为写数据状态。:RESET是8155芯片的总清输入线,它与单片机的RESET

8、引脚相连,当单片机的从RESET引脚输出一个大于600ns宽的正脉冲到8155芯片的RESET引脚时,8155将处于总清状态,PA、PB、PC口都定义为输入方式。由上得出8155端口地址分配如下: 0400 命令/状态口 0401 PA口(位选口) 0402 PB口(段选口) 0403 PC口(键盘输入口)(3) 电路所用到的芯片 8个八段LED显示器、PNP三极管、8155、单片机、电阻、电源VCC(4) 显示电路的连接单片机通过8155对8个八段LED显示器进行连接,达到控制显示器的目的,使用单片机的P1和P2口作为地址数据分时复用口,P1口的8个引脚分别与8155的AD口的8个引脚相连;

9、其中8155的PA口通过PNP三极管作为驱动器和LED的控制端G相连接,PA口作为位选口,控制LED的亮灭;8155的PB口作为段选口,与LED显示器各段对应的引脚a,b,c,d,e,f,g,SP连接。图三 显示系统电路的构成驱动电路由8个PNP三极管构成,如图三所示,根据驱动数码管段码能力,本课程设计设计采用数码管位选端与PNP三极管集电极相连,三极管发射极接5V直流电源,三极管基极与8155芯片PA口相连,数码管段选端与PB口相连。通过单片机的所有P1口和部分P2口对8155芯片进行控制,达到单片机对8个八位LED显示器位、段的控制。(5) 显示部分的调试程序1程序框图图四 显示系统程序设

10、计框图如图四所示的程序框图,先给8155送方式控制字,在确定了8155的端口地址后,得到偏移量,即显示缓冲区的每个存储单元用于存放相应LED显示器要显示的字符在字形码表中的地址偏移量,因此CPU就可以根据这个地址偏移量通过查询字形码表找出所要显示字符的字形码表,送到8155芯片的PB口,即可显示数,下面为程序清单。2程序清单 ORG 1000H DISPLAY:MOV PSW,#18H;使寄存器工作在01#区 MOV A,#03H;方式控制字03H送A MOV DPTR,#0400H;DPTR指向8155的命令口 MOVX DPTR,A;方式控制字03H送给8155命令口DISPLAY1:MO

11、V R0,#80H;显示缓冲区初始地址80H送R0 MOV R3,#0FEH;字位码0FEH送R3 MOV A,R3;字位码0FEH送A LD0:MOV DPTR,#0401H;DPTR指向8155的PA口 MOVX DPTR,A;将字位码送给8155的PA口 MOV DPTR,#0402H;DPTR指向8155的PB口 MOV A,R0;将要显示字符的偏移量送A ADD A,#0DH;对A进行地址修正,加0DH MOVC A,A+PC;查字形码表 MOVX DPTR,A;将所显示字符码送给8155的PB口 ACALL DELAY;调用延时1ms子程序 INC R0;寄存器R0中的数加一,指向

12、下一缓冲地址 MOV A,R3;字位码送A JNB ACC.7,LD1;判断累加器A的最高位是否为0,若为0,则LD1 RL A;若不为0,字位码左移一位 MOV R3,A;将左移一位后的数送回R3 AJMP LD0;跳转到LD0,将显示下一数码 LD1:RET;返回主程序 DATATAB:DB 0C0H,0F9H,0A4H,0B0H,99H ;八段LED显示器字形码表 DB 92H, 82H ,0F8H, 80H, 90H DB 88H, 83H ,0C6H,0A1H,86H DB 8EH, 0FFH,0CH, 89H, 7FH DB 0BFH DELAY:MOV R7,#02H;延时1ms

13、的子程序 DELAY1:MOV R6,#0FFH DELAY2:DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET 3.2.2键盘部分的设计(1) 键盘部分概述 键盘作为单片机的输入设备,可以通过键盘的输入实现人机通讯。根据键盘的大小可以分为独立连接式和矩阵式两类;根据对按键的译码方法又可分为编码键盘和非编码键盘两种,编码键盘主要通过硬件电路产生被按键的键码和一个选通脉冲,选通脉冲常用在单片机中断请求,用以通知被按键的键码,但是这种键盘硬件电路太复杂,不适合单片机使用;非编码键盘只是通过每个按键与相应连接点的接通和断开,键码是通过相应的扫描处理程序形成的,非编码键盘的硬件电路简

14、单,适合单片机使用。(2) 键盘电路的构成图五 键盘系统电路键盘电路由四个按键KEY1、KEY2、KEY3、KEY4和四个电阻构成独立式非编码键盘,按键的另一端和8155的PC口连接,同时与电阻相连,电阻另一端与+5V电源连接,当有按键按下时,PC的某一端口就从高电平变成了低电平。通过扫描程序对PC口进行扫描,就可扫描出哪个键被按下。键盘键值表的编码规则是按顺序编码,上述四个键按顺序分别编码为01H、02H、03H、04H。按键的去抖动处理。在按下某个按键时,被按的按键簧片总会有轻微的抖动,通常抖动持续10ms左右。所以CPU在按键抖动期间扫描键盘一定会得到错误的键盘键值,最好的去抖动方法是使

15、CPU在检测到有按键按下时延时20ms再进行扫描键盘,以获得准确的键值。窜键处理。当用户操作键盘时,不小心按下了一个以上按键,发生了窜键。CPU处理窜键的原则是最后放开的按键被认为是真正按下的键。因此在处理窜键时,预先设定一个窜键标志寄存器,在键盘扫描前清零。当窜键标志寄存器不为零时,即有窜键发生,则要求CPU返回主程序重新开始下一次扫描,获取最后真正按下的键;当没有窜键发生时,所获得的就是真的键值。(3) 键盘电路所用到的元件按键、电阻、电源VCC、8155、单片机(4) 键盘电路的连接键盘电路的连接如图所示,大部分连接电路已经在显示电路中介绍,这部分只介绍键盘和8155的连接。键盘电路的连

16、接如图所示,键盘的一端分别和PC0、PC1、PC2、PC3连接,另一端都和地连接,电阻的一端与PC口连接,同键盘并联,但是另一端接的是电源。(5) 键盘部分调试程序1程序框图图六 键盘系统程序设计框图如图六的流程图所示,键盘扫描程序由主程序段和求键值程序段构成。当没有键按下时,使累加器A=0FFH作为主程序判断的标志;当有键按下时,经过键盘扫描,在经过查表,得到按键的键值。以下为详细设计的程序清单。2程序清单ORG 0100HKEY:MOV DPTR,#0403H;DPTR指向8155的PC口MOVX A,DPTR;读取PC口的状态ANL A,#0FH;屏蔽高四位CJNE A,#0FH,KEY

17、SCAN;如果有键按下,则KEYSCANSJMP EXIT;如果没有键按下,则EXITKEYSCAN:ACALL DY12MS;延时12秒去抖动KEYSM1:MOV DPTR,#0403H;DPTR再次指向8155的PC口MOVX A,DPTR;重新读取PC口的状态ANL A,#0FH;屏蔽高四位CJNE A,#0FH,JSADD;判断是否真的有键按下,如果有键按下,则JSADDMOV A,#0FFHEXIT:SJMP DONE;如果没有键按下,则跳转到DONEJSADD:JB ACC.0,JSADD1;如果KEY1按键没有被按下,则JSADD1MOV A,#00HAJMP JSADD4;跳转

18、到JSADD4JSADD1:JB ACC.1,JSADD2;如果KEY2按键没有被按下,则JSADD2MOV A,#01HAJMP JSADD4JSADD2:JB ACC.2,JSADD3;如果KEY3按键没有被按下,则JSADD3MOV A,#02HAJMP JSADD4JSADD3:JB ACC.3,JSADD4;如果KEY3按键没有被按下,则JSADD4MOV A,#03HJSADD4:MOV DPTR,#TAB;DPTR指向键值表的初始地址MOVC A,A+DPTR;得到键值送ADONE:RET;返回TAB:DB 01H, 02H, 03H, 04H ;键值表DY12MS:MOV R7

19、,#18H;延时12ms子程序DY12MS1:MOV R6,#0FFHDY12MS2:DJNZ R6,DY12MS2DJNZ R7,DY12MS1RET3.3 软件设计设计此电路可以作为计数器使用,所以根据硬件电路设计了分秒计时器。各个键的功能如下:KEY1:开始键或暂停开始键 KEY2:暂停键KEY3:复位键KEY4 :确认键 (防止误操作)本软件设计只能计时99分钟59秒,超过99分钟59秒将重新开始计时。设计原理如下1 单片机和其他硬件刚插上电工作时,显示器就显示了一遍数,其中对应的数码为:(为了使设计便于表述,将显示器显示的数做成相应的表格)显示器1显示器2显示器3显示器4显示器5显示

20、器6显示器7显示器8PCA00b00 然后进行键盘扫描,当只按下KEY1键时,显示数码为:显示器1显示器2显示器3显示器4显示器5显示器6显示器7显示器8d-A00b00之后按下KEY4键后,显示器4,5,7,8开始显示计时的数。 当只按下KEY2键时,计时器仍在计数,显示数码为:显示器1显示器2显示器3显示器4显示器5显示器6显示器7显示器8E-A*b*当按下KEY4键后,显示器4,5,7,8一直显示到暂停为止计时的数。 当只按下KEY3键时,计时器仍然在计数并且显示,显示数码为:显示器1显示器2显示器3显示器4显示器5显示器6显示器7显示器8F-A*b*之后按下KEY4键后,显示器4,5,

21、7,8开始重新从00开始计时。根据上述设计原理和需要实现的功能,设计出下面所示的程序框图和程序清单。3.3.1 程序框图图七 分秒计时器程序设计框图3.3.2 程序清单ORG 0030HSTART:MOV 87H,#11H;给数据缓冲区赋初始值MOV 86H,#0CHMOV 85H,#0AHMOV 82H,#0BHMOV 81H,#00HMOV 80H,#00HMOV 83H,#00HMOV 84H,#00HLP:ACALL DISPLAY;调用显示子程序ACALL KEY;调用键盘扫描子程序CJNE A,#0FFH,LOOP1;判断是否有键按下LJMP LP;若无键按下,则LPLOOP1:J

22、NB ACC.0,LP;如果KEY1按键没有被按下,则LPMOV 87H,#0DH;按下KEY1键后,再次为缓冲区赋初值MOV 86H,#14HMOV R2,#01HLJMP YES;跳转到YESPRO1:JB ACC.1,PRO2;如果KEY2按键没有被按下,则PRO2MOV 87H,#0EHMOV 86H,#14HMOV R2,#02HLJMP YESPRO2:JB ACC.2,PRO3;如果KEY3按键没有被按下,则PRO3MOV 87H,#0FHMOV 86H,#14HMOV R2,#03HLJMP YESYES:ACALL DISPLAY;重新调用显示子程序ACALL KEY;重新调

23、用键盘扫描子程序PRO3:JB ACC.3,LP;如果KEY4按键没有被按下,则LPMOV A,R2CJNE A,#01H,FIRST;确认是否KEY1按下,否则FIRSTACALL TIME;调用计时子程序LX:MOV 80H,R1;给数据缓冲区送计时数据MOV 81H,R3MOV 83H,R4MOV 84H,R5MOV A,R1ACALL DISPLAY;调用显示子程序CJNE A,#0AH,LX;判断秒的个位是否计时到10,否则LXMOV R1,#00H;到10,给R1送0INC R3MOV A,R3CJNE R3,#06H,LX;判断秒的十位是否计时到6,否则LXMOV R3,#00H

24、INC R4MOV A,R4CJNE R4,#0AH,LX;判断分的十位是否计时到10,否则LXMOV R4,#00HINC R5MOV A,R5CJNE R5,#0AH,LX;判断分的十位是否计时到10,否则LXLJMP STARTFIRST:CJNE A,#02H,SECOND;确认是否KEY2按下,否则SECONDCLR TR0;暂停计时PAUSE:ACALL DISPLAYAJMP PAUSESECOND:LJMP START;复位重新从0开始计数ORG 0300H;计时子程序TIME:MOV TMOD,#01H ;使T0的定时方式为01MOV TH0,#3CH;装入初始值MOV TL

25、0,#0B0HMOV IE,#82H;开T0中断SETB TR0;启动T0开始计数MOV RO,#14H;SJMP $;等待中断ORG 000BHAJMP BRT0ORG 0080HBRT0:DJNZ R0,NEXT;若未到1s,则NEXTMOV RO,#14H;否则恢复R0初值INC R2;计时1s次数NEXT:MOV TH0,#3CH;重装初始值MOV TL0,#0B0HRETIEND注:显示和键盘子程序略去,可直接使用以上详细介绍的键盘和显示子程序,其中DISPLAY是显示子程序,KEY是键盘子程序。4总结通过这次课程设计,让我明白了键盘显示系统的设计方法,也锻炼了自己的思维能力,将单片

26、机的零散的知识串到一起,设计出一个实用电路。首先硬件方面,通过原理图的绘制和思考,使我对单片机的接口有了更深的理解,熟悉了一些单片机常用的电路引脚和连接方法。在软件方面,通过对键盘扫描程序和显示程序的设计,让我学会了分析问题和解决问题的能力,加深了对所学理论知识的理解和运用,使我的思维得到了锻炼。这次设计就是让我们将知识学以致用,将书本上学到的知识应用于实践。尽管这次课程设计遇到了许多的问题,但是也都一一得以解决,比如显示系统的软件程序设计时,遇到了很多问题,但是经过向沈老师的指导,并且和同学们的讨论,使得难懂的问题得到解决;感谢沈老师和同学的热情帮助,没有你们,我不可能顺利完成这次课程设计。

27、这次课程设计同时也磨练了我的耐心,遇到困难时不要退缩,要静下心来去寻找解决问题的方法,否则很难有最后的成功。因此,我觉得这次的课程设计对我而言算是一次全新的尝试,也是一次很好的锻炼,让我迈出了单片机开发设计的第一步,我相信只要不断努力,单片机开发水平一定会有很大的提高和进步。参考文献1 胡汉才.单片机原理及其接口技术.北京:清华大学出版社,20102 康华光电子技术基础.北京:高等教育出版社,20053 何立民单片机应用系统设计北京:北京航空航天大学出版社,19934 楼然笛单片机开发北京:人民邮电出版社,19945 潘永雄,沙河.电子线路CAD实用教程.西安:西安电子科技大学出版社,20126 付家才单片机控制工程实践技术北京:化学工业出版社,20047 李光才单片机课程设计实例指导北京:北京航空航天大学出版社,20048 朱定华单片机原理及接口技术实验北京:北方交通大学出版社,20029 刘湘涛江世明单片机原理与应用. 北京:电子工业出版社,200610黄正谨综合电子设计与实践东南大学出版社2002 评语:指导教师: (签字)年 月 日 附 录

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1