历史上的今天
返回首页

历史上的今天

今天是:2025年05月08日(星期四)

正在发生

2018年05月08日 | 51单片机对两位 BCD拨盘 的读出程序

2018-05-08 来源:eefocus

问题:做了一个小设计,用的是AT89C2051,其中P1口接两位BCD指拨开关,P3.2接了一个开关,P3.3接了一个继电器。
两位BCD指拨开关的具体接法是公共端接P1.1和P1.2口,8421分别接在P1.3~P1.6口。
我想通过开关控制继电器开合。具体要求是:按开关的次数由BCD开关的十位来决定,即BCD上显示的是数字3,则按3次P3.2所接的开关,继电器才开始动作,显示5,则按5次继电器才动作,以此类推;而继电器开合时间由BCD开关的个位控制,如果BCD上显示的是数字3,则继电器开或合3分钟,是5则开或合5分钟。
不知道如何读入的P1口值并分开成两部分,请哪位前辈高手帮忙写个程序,让我学习学习。在此万分感谢。
悬赏分:50 - 解决时间:2009-9-12 14:27 
;============================
最佳答案:
利用两个BCD指拨开关,设定了按键次数和延时时间(分钟数);按键输入、继电器输出。
很简单,楼主写的非常清楚。
BCD指拨开关(又称为拨盘、拨码开关),其输出是按照8421形式,但是它有个公共端,输入高电平的时候,输出的8421码是高电平有效。
;----------------------------
;读入BCD(8421)拨码开关:
    SETB P1.1      ;屏蔽一组
    CLR  P1.0      ;P1.0所连接的拨盘有效
    MOV  A, P1     ;读入,低有效
    CPL  A         ;有效值变高
    RR   A
    RR   A
    ANL  A, #0FH   ;留下低四位
    MOV  R7, A     ;存好
    SETB P1.0      ;屏蔽另一组
    CLR  P1.1      ;P1.1所连接的拨盘有效
    MOV  A,   P1   ;读入,低有效
    CPL  A         ;有效值变高
    RR   A
    RR   A
    ANL  A, #0FH   ;留下低四位
    MOV  R6, A     ;存好
;这样,就将两组BCD码,存到了R6和R7。 

推荐阅读

史海拾趣

Fibrefab Limited公司的发展小趣事

为了进一步扩大市场份额,Fibrefab开始实施全球化战略。公司先后在亚洲、欧洲和美洲等地设立生产基地和研发中心,以满足不同地区客户的需求。同时,Fibrefab还积极与全球知名的电信运营商和设备制造商建立合作关系,共同推动光纤通讯技术的发展和应用。这一战略的实施不仅帮助Fibrefab拓展了海外市场,也提升了其品牌影响力和市场竞争力。

意华(CZT)公司的发展小趣事

为了进一步扩大规模和提升竞争力,意华先后成立了多家子公司,包括苏州意华电工有限公司、东莞意兆电子科技有限公司等。这些子公司的成立,不仅实现了公司在不同地域的资源整合和优势互补,也加速了公司的集团化发展进程。通过集团化管理,意华能够更好地协调各子公司之间的业务和资源,提高整体运营效率。

DUCATI公司的发展小趣事

为了实现公司的长远发展,意华于2010年开始筹备上市工作。经过多年的准备和努力,意华成功在资本市场上市,为公司的发展注入了新的活力。上市后,意华通过资本市场融资和资本运作,加速了公司的扩张和技术创新步伐。同时,公司也更加注重规范运作和透明度提升,赢得了投资者的信任和支持。

Adaptive Networks Inc公司的发展小趣事

为了进一步扩大规模和提升竞争力,意华先后成立了多家子公司,包括苏州意华电工有限公司、东莞意兆电子科技有限公司等。这些子公司的成立,不仅实现了公司在不同地域的资源整合和优势互补,也加速了公司的集团化发展进程。通过集团化管理,意华能够更好地协调各子公司之间的业务和资源,提高整体运营效率。

EF Johnson Technologies Inc公司的发展小趣事

作为一家具有社会责任感的企业,EF Johnson公司始终关注环境保护和社会公益。公司积极响应国家节能减排政策,采用环保材料和清洁能源进行生产活动。同时,EF Johnson还积极参与社会公益活动,捐赠资金和物资支持教育事业和贫困地区的发展。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

DLG Hanbit公司的发展小趣事

随着技术的不断进步和市场需求的增长,DLG Hanbit公司意识到技术创新是保持竞争力的关键。公司加大了对研发的投入,引进了一批高端人才,并建立了完善的研发体系。经过几年的努力,公司成功开发出了一系列具有自主知识产权的半导体产品,如高性能的处理器、存储器等。这些产品凭借卓越的性能和稳定的品质,在市场上赢得了良好的口碑,公司也逐渐拓展了市场份额。

问答坊 | AI 解惑

矢量控制中电流采样值的定点Q格式处理

矢量控制中电流采样值的定点Q格式处理…

查看全部问答>

Intel 80C51 教程

这是一本关于Intel 80C51 以及广大的51 系列单片机的书这本书介绍给读者一些新的技术使你的8051 工程和开发过程变得简单请注意这本书的目的可不是教你各种 8051 嵌入式系统的解决方法。…

查看全部问答>

在DSP6000中怎样编写您的第一个程序(一)

一、C语言编写详解 1.工程目录最好放在: CCStudio_v3.3\\MyProjects路径下 2.CSS下和DSP6000编程紧密相关的目录结构:   a.CCStudio_v3.3\\C6000\\csl\\include ---DSP6000常用头文件   b.CCStudio_v3.3\\C6000\\csl\\li ...…

查看全部问答>

msp430时钟的怪问题 谁告诉我我加分

    我用的是msp4302132,只有一个XT,接了16M晶振,我把XT的8分频用作ACLK,把ACLK用于TA产生40K的PWM波形,同时把XT不分频用作MCLK,我把ACLK,MCLK,40K PWM的三个引脚都测量了,40K波形正确,ACLK端口无输出,MCLK端口输出1.1-1.2M的波 ...…

查看全部问答>

请教哪有开源的用C++写的Linux驱动程序

我一直用C++写Windows驱动,想知道哪有开源的用C++写的Linux驱动,拿来学习研究。…

查看全部问答>

请教大侠如何从filedisk的映像文件中读出文件信息

在不加载filedisk的情况下,直接从它的映像文件(.img)中提取出它的文件目录和信息,可以吗?…

查看全部问答>

关于WIN7下HID设备的问题

    使用XP下的DDK做的一个HID识别的程序, XP下一切正常,在WIN7下只能够将鼠标识别出来,请问有什么方法可以解决这个问题?有没有支持WIN7的DDK之类的SDK包?…

查看全部问答>

香水版主请教STM8S103的问题!!

我在写EEPROM 后 ADC通道会被自动发变(ADC 是采用连续,扫描模式).请问一下可能是什么原因,我都找了两天了 (eeprom 读写都正常) 另外还有一个问题: 我调用内部的asin() 时如果不关中断结果是错的!!     麻烦回复!!!…

查看全部问答>

分享我的DIY版LED显示屏

制作初衷:送女友生日礼物制作材料:AT89C52,74HC138,MBI5020,电容,电阻,16*16 LED,按键实现效果:显示单个汉字,汉字逐列左移,根据点阵设计可实现简单动画效果;可操作按键切换显示模式供电方式:3节5号电池或手机电池…

查看全部问答>

运行测试及典型误差源——《使用2790型数字源表开关系统测试双安全气囊充气机模块》

运行测试 按照“基础编程指南”一节中出现的顺序进行测试是一种可行的双充气泵安全气囊模块测试方案。如前所述,分流条测试往往进行多次,以确保分流条功能正常而且连接正确。示例代码试演示本指南中讨论的所有测量功能,但是这些功能的使用取决 ...…

查看全部问答>