专业课程设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 1 专业课程设计 机自学院 石 一、课程设计内容: 利用Intel 8086CPU、8259、8253、8255芯片和LED、按钮开关等元器件设计一个键盘显示系统。 其中:LED显示器共8位,要求每10ms从右到左显示一遍。键盘为4×8阵列(键名为:0~9,A~F,F1~F16),要求每当按键“F1”时显示字符串,其余键扫描后的处理程序暂不考虑。 要求:画出系统连接图,并编写相关控制程序。(理论设计,不作上机要求) 二、系统连接图: 三、控制程序及简要说明 1、键盘设计 键盘为4×8阵列,如设计图所示,制成8×8点阵。其中8行任选4行就是4×8阵列。共需要32个按键组成,且按键是放置在行线和列线的交叉点上。 2、按键处理 判别键盘上有无键闭合:其方法为扫描口PA0~PA7输出全为“0”,读PB口的状态,若PB0~PB3为全“1”(键盘上行线全为高电平),则键盘上没有闭合键;若PB0~PB3不为全“1”,则有键处于闭合状态。 作为一个按键从没有按下到按下以及释放是一个完整的过程。当按下一个按键时,总希望某个命令只执行一次,而在按键按下的过程中,不要有干扰进来,因为,在按下的过程中,一旦有干扰过来,可能造成误触发过程。因此在按键按下的时候,要把手上的干扰信号以及按键的机械接触等干扰信号过滤掉,因此可以采用软件滤波的方法去除这些干扰。在程序设计时,从按键被识别按下之后,延时5ms以上,从而避开了干扰信号区域。 判别闭合键建号:对键盘的列线进行扫描,扫描口PA0~PA7依次输出: PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 : 0 1 1 1 1 1 1 1 相应读PB口状态,若PB0~PB3为全“1”,则列线输出为“0”的这;一列上没有键闭合;否则,这一列上有键闭合。闭合键的键号等于为低电平的列号加上为低电平的行的首键号。例如:PA口的输出,读出PB0~PB3为1101,则1行1列相较的键处于闭合状态,第一行的首键号为8,列号位1,闭合键的键号为: N=行首键号+列号=8+1=9 使CPU对键的一次闭合仅作一次处理:采用的方法为等待闭合键释放以后再判别新的键输入。 在单片机系统中,CPU除了对键盘进行处理外,还要进行数据处理、结果输出显示及其它各种控制,因此键盘处理不应占用CPU过多的时间,但又必须保证CPU能够检测到键盘的工作。为提高CPU的工作效率,可采用中断扫描方式。当无键闭合时,CPU工作,当有键闭合时,产生中断请求,CPU转去执行键盘扫描子程序并执行相应的功能。 键盘状态判别子程序: KEYSTAT: SETB P2.0 MOV R1, #1 CLR A MOVX @R1, A MOV R1, #3 MOVX A, @R1 ANL A, 0FH CJNE A, #0FH, KEYS_Y SETS B RET KEYS_Y: CLR B RET 读闭合键建号子程序: KEYI: SETB P2.0 MOV R2, #0FEH MOV R4, #O KEYI_0: MOV R1, #1 MOV A, R2 MOVX @R1, A MOV R1, #3 MOVX A, @R1 JB ACC.0, KEYI_1 MOV A, #0 SJMP KEYI_P KEYI_1: JB ACC.1, KEYI_2 MOV A, #8 SJMP KEYI_P KEYI_2: JB ACC.2, KEYI_3 MOV A, #10H SJMP KEYI_P KEYI_3: JB ACC.3, KEYI_NEXT MOV A, #18H KEYI_P: ADD A, R4 CLR B RET KEYI_NEXT: CJNE R4, #7, KEYI_GOON SETB B RET KEYI_GOON:INC R4 MOV A, R2 RL A MOV R2,

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档