单片机 模拟电路遥控器(16路或32路)的部分功能 设计2.docVIP

单片机 模拟电路遥控器(16路或32路)的部分功能 设计2.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机 模拟电路遥控器(16路或32路)的部分功能 设计2

河北工业大学计算机硬件技术基础 (MCS-51单片机原理及应用) 课程设计任务书 学院:土木学院 班级: 交运021 设计人:李洪波 成绩 . 一 题目:模拟电路遥控器(16路或32路)的部分功能设计 二 总体设计思想 在单片机应用系统中,同时需要使用键盘与显示器接口时,为了节省I/O口线,常把键盘和显示器电路做在一起,构成键盘和显示电路。本设计即为一个典型的用8155扩展I/O口的键盘,显示器接口电路。 程序所实现的功能就是:对键盘进行扫描,应用编程扫描方式判断按键按下情况,然后再LED显示器中显示相应的键盘值。同时对应的指示灯闪烁。 键扫描子程序的设计要考虑以下四个方面: 1.盘上有无键闭合 方法是使PA口输出全“0”,读PC口状态。若PC口全为“1”,则键盘上没有键闭合;若PC口不全为“1”,则有键闭合。 2.去除键的机械抖动 方法是判断到键盘上有键闭合后,延时一段时间在判别键盘的状态。若仍有键闭合,则认为有一个键处于稳定的闭合期,否则认为是键的抖动。 3.判别闭合键的键号 方法是对键盘上的列线进行扫描,扫描口PA依次输出。相应地顺次读出PC口的状态。若PC口全为“1”,则列线输出为“0”的这一列上没有键闭合,否则这一列上有键闭合。闭合键的键号等于为低电平的列号加上为低电平的行的首键号。 N=行首键号+列号 4.使CPU对键的一次闭合仅做一次处理 方法是等待闭合键释放以后再做处理。本设计的程序中把显示作为去抖动延时子程序,这可使得显示器进入键入子程序后始终是亮的。本程序返回后输入键的键号在A累加器中。 按上述方法得出的A值只是扫描码的偏移量,然后按键位置以及偏移量制作查表程序。最后使LED显示器显示相应的键位值。 指示灯闪烁方法: 键盘数值在送去LED显示的同时在用DPTR指针对TAB2进行查表,把数值送P1口,可点亮相应的指示灯,要使其闪烁,还需进行延时后把P1口置0FFH值,保证延时后指示灯变暗。 三 硬件系统设计 所需设备:8155单片机,八路反向驱动器,六路反向驱动器,键盘,LED显示器。 四 软件系统设计 程序流程图: 五 程序清单 org 0000h start: mov sp,#60h mov dptr,#0ff20h mov a,#03h movx @dptr,a mov 70h,#00 key1: acall ks1 ; 调用判有无程序 jnz lk1 ;累加器不为0转移 n1: acall dir ;调用延时子程序,延时6MS ajmp key1 lk1: acall dir ;延时12MS acall dir acall ks1 jnz lk2 acall dir ajmp key1 lk2: mov r2,#0feh ;列扫描码送R2 mov r4,#0 ;R4是列记数单元 lk4: mov dptr,#0ff21h ;列扫描码送PA口 mov a,r2 movx @dptr,a inc dptr inc dptr movx a,@dptr ;读C口 jb acc.0,lone ;0行为高电平,转判一行 mov a,#0 ;0行首键号送A ajmp lkp lone: jb acc.1,ltwo ;转判2行 mov a,#08h ;1行首键号送A ajmp lkp ltwo: jb acc.2,lthr ;转判3行 mov a,#10h ;2行首键号送A ajmp lkp lthr: jb acc.3,lfor ;转判4行 mov a,#18h ;3行首键号送A ajmp lkp lfor: jb acc.4,next ;转判下一列 mov 70h,#19h ;#19值送A ajmp key1 lkp: add a,r4 ;行首键号+列号=键号 mov dptr,#tab1 ; 进入查表程序 movc a,@a+dptr ; 按位扫描码查找相应数值 mov 70h,a

您可能关注的文档

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档