历史上的今天
返回首页

历史上的今天

今天是:2025年01月11日(星期六)

2018年01月11日 | 4键六位数显示程序

2018-01-11 来源:eefocus

4键六位数显示程序

        org  00h
start:  MOV   r4,#06h
        MOV   r0,#30h
clear:  MOV   @r0,#00h

        inc  r0
        djnz r4,clear
l1:     MOV   r3,#0f7h           ;扫描初值(P13=0)
        MOV   r1,#00h            ;取码指针
l2:     MOV   a,r3               ;开始扫描
        MOV   p1,a               ;将扫描值输入至P1
        MOV   a,p1               ;读入P1值,判断是否有键按下?
        MOV   r4,a               ;存入R4,以判断是否开放
        setb c                  ;C=1
        rrc  a                  ;扫描下一行(P13~P10)
        MOV   r3,a               ;存回扫描寄存器
        jc   l2                 ;C=1?是则P10尚未扫描到
        jmp  l1                 ;C=0则4行已扫描完毕
keyin:  MOV   r7,#60             ;消除抖动
d2:     MOV   r6,#248
        djnz r6,$
        djnz r7,d2
d3:     MOV   a,p1              ;读入P1值
        xrl  a,r4              ;与上次读入值作比较
        jz   d3                ;ACC=0则相等,表示按钮未放
        MOV   a,r1              ;按钮已放开,取码指针载入累加器
        MOV   dptr,#table       ;数据指针指到TABLE
        MOV c a,@a+dptr         ;至TABLE取码
        xch  a,30h             ;旧(30H)值存入(31H)
        xch  a,31h             ;旧(31H)值存入(32H)
        xch  a,32h             ;旧(32H)值存入(33H)
        xch  a,33h             ;旧(33H)值存入(34H)
        xch  a,34h             ;旧(34H)值存入(35H)
        call disp              ;调用显示子程序
        jmp  l1
disp:   MOV   a,35h
add     a,#50h                 ;D6数据值加上74138扫描值
        MOV   p0,a              ;显示D6
        call delay             ;扫描延时
        MOV   a,34h     
        add  a,#40h            ;显示数据值加上74138扫描值
        MOV   p0,a              ;显示D5
        call delay             ;扫描延时
        MOV   a,33h         
        add  a,#30h            ;D4数据值加上74138扫描值
        MOV   p0,a              ;显示D4
        call delay             ;扫描延时
        MOV   a,32h             
        add  a,#20h            ;D3数据值上加上74138
        MOV   p0,a              ;显示D3
        call delay             ;扫描延时
        MOV   a,30h       
        add  a,#00h            ;D1数据值加上74138扫描值
        MOV   p0,a              ;显示D1
        call delay             ;扫描延时
delay:  MOV   r7,#06            ;显示器扫描时间
d1:     MOV   r6,#248           ;
        djnz r6,$              ;
        djnz r7,d1             ;
        ret
        org  300h
table:  db     0ch,08h,04h,00h   ;
        db     0dh,09h,05h,01h   ;
        db     0eh,0ah,06h,02h   ;
        db     0fh,0bh,07h,03h   ;
        end


推荐阅读

史海拾趣

GC Electronics公司的发展小趣事
将水位传感器或温度传感器安装在冷却系统的适当位置,确保能够准确监测到水量或水温。
Electrocube Inc公司的发展小趣事

Electrocube Inc公司高度重视产品质量管理。公司建立了严格的质量管理体系,从原材料采购到生产流程控制,再到产品检验和售后服务,每一个环节都严格把关。这种对质量的执着追求,使得Electrocube Inc公司的产品具有极高的可靠性和稳定性,赢得了客户的信赖和好评。

Conexcon Group公司的发展小趣事

随着全球化进程的加速,Conexcon Group积极实施国际化战略,将业务拓展至海外市场。公司通过在海外设立研发中心和生产基地,进一步提升了自身的研发能力和生产效率。同时,公司还加强了与国际知名品牌的合作,通过共同推广和营销活动,提升了自身品牌在国际市场的知名度和影响力。这些举措不仅为公司带来了丰厚的利润回报,也为公司的长远发展奠定了坚实的基础。

Cofan Usa Inc公司的发展小趣事

在快速发展的过程中,Cofan Usa Inc公司意识到供应链管理的重要性。为了确保产品质量和交货期的稳定性,公司开始优化供应链管理流程,与优质供应商建立长期合作关系,并引入先进的供应链管理系统。这些举措有效提升了公司的运营效率和市场竞争力。

广州盛炬(GZSJ)公司的发展小趣事

随着产品线的不断丰富和技术实力的提升,Cofan Usa Inc公司开始积极拓展国内外市场。通过与各大电商平台和实体零售商建立合作关系,公司成功将产品推向更广泛的消费者群体。同时,公司注重品牌建设,通过精准的市场定位和有效的营销策略,逐渐树立了独特的品牌形象。

ALLIED [Allied Electronics]公司的发展小趣事

在快速发展的过程中,Cofan Usa Inc公司意识到供应链管理的重要性。为了确保产品质量和交货期的稳定性,公司开始优化供应链管理流程,与优质供应商建立长期合作关系,并引入先进的供应链管理系统。这些举措有效提升了公司的运营效率和市场竞争力。

问答坊 | AI 解惑

一个按钮通过SetWindowPos( )函数移动了位置,通过ShowWindow(SW_HIDE)却隐藏不了,怪事!

一个按钮通过SetWindowPos( )函数移动了位置,通过ShowWindow(SW_HIDE)却隐藏不了,怪事!…

查看全部问答>

关于对数据总线操作的问题

最近写了个应用程序对数据总线上的数据进行操作,关于物理地址和虚拟地址的映射我知道 假设*vi_adress为映射好的虚拟地址 先是写操作 *vi_adress=tmp  (tmp是数据) 这个操作是成功的 现在我想读取外面从过来的数据 tmp=*vi_adress& ...…

查看全部问答>

准备PCB打样还有5CM*6CM的空白位置,有需要的联系我,仅限今日20:00之前

已经有人联系 [ 本帖最后由 rogerangel 于 2011-6-29 22:49 编辑 ]…

查看全部问答>

DDR测试内容与规范

DDR测试内容与规范,不错的资料:  …

查看全部问答>

TI m3 IO的状态

看datasheet上说All GPIO pins are tri-stated by default。请问这个tri-stated是一个什么状态?…

查看全部问答>

小功率LED驱动电源

   保险丝,压敏电阻,热敏电阻,EMI,EMC,整流,PFC,漏极尖峰吸收,IC,电流检测,频率设定,反馈(TL431,光耦,运放),输出.  我现在是在弄电焊机相关方面的工作,可以感觉工作不怎么给力,后听个同学介绍说LED方面还行,这样就自己去学习了下LED ...…

查看全部问答>

[视频分享] Stellaris LaunchPad入门讲座第一课——实验一:LaunchPad内置程序演示

欢迎参加 Stellaris EK-LM4F120XL LaunchPad 入门讲座的在线培训。本次的在线培训将分为多个部分,包括视频讲解和实际的调试操作。第一课介绍了 TI 的 Stellaris LM4F 系列微控制器及其外设和工具。在本章中,您将了解 Stellaris 线路图以及更多 ...…

查看全部问答>

关于DRV8833驱动振动电机的问题

大家好,最近在做一个振动电机实验,选用的是扁平电机(手机振动电机)和空心杯电机,驱动芯片选用的是TI的有刷直流电机驱动器DRV8833,按照官方的电路搭了一个电路,外接电压5V,逻辑控制3.3V,发现接上电机毫无反应,测试电压发现电机没接上时,输 ...…

查看全部问答>

STc单片机外扩RAM具体怎么确定端口地址的,

我想要STC15F2K32S2单片机连接CH372,具体的这个端口地址到底是如何确定的啊?哪位大侠能跟我讲一下,有资料更好,谢谢咯!感激不尽哪!…

查看全部问答>

跪求PLL问题

大神有没有关于74HC4046组成的锁相环电路啊,求原理图啊,,,有的话分享一下哈,不胜感激,我也分享一点资料哈。。。 …

查看全部问答>