历史上的今天
返回首页

历史上的今天

今天是:2025年01月14日(星期二)

正在发生

2018年01月14日 | 3X4键盘4位动态移位LED显示程序

2018-01-14 来源:eefocus

;-------------------------------------------------------
;程序名称:3X4矩阵键盘4位动态移位LED显示程序 *
;实现功能:扫描出键盘的键值并在4位LED上分别显示 *
;MCU: STC89C58RD+ 支持ISP功能 *
;p0口接LED段码 p2.4(第一位LED片选)~~p2.0(第4位片选)*
;p1.6 p1.5 p1.4 p1.3 *

; p1.2 *
; 3 X 4矩阵 p1.1 *
; p1.0 *
;-------------------------------------------------------
org 0000H
mov 30h,#00h ;将30H个位显示缓冲单元清零
mov 31h,#00h ;将31H十位显示缓冲单元清零
mov 32h,#00h ;将32H百位显示缓冲单元清零
mov 33h,#00h ;将33H千位显示缓冲单元清零
loop_r0: mov r0,#00h ;LED位计数器初始值
ajmp main ;跳主程序
org 0030h
;************************************************************
MAIN: ;主程序

LCALL DISPLAY ; 调显示子程序
LCALL KEY ; 调键盘子程序
AJMP MAIN ; 返回
;*******************************************************
loop_jishu: inc r0
CJNE R0,#01h,LOOP_02H
mov 30h,r3
ajmp main
ret
loop_02h: CJNE R0,#02h,LOOP_03H
mov 31h,r3
ajmp main
ret
loop_03h: CJNE R0,#03h,LOOP_04H
mov 32h,r3
ajmp main
ret
loop_04h: CJNE R0,#04h,LOOP_r0
mov 33h,r3
ajmp main
ret
CJNE R0,#05h,main
ajmp loop_r0
ret

;***********************************************************
KEY: MOV P1,#0FFH
CLR P1.0 ;扫KEY1
JB P1.3,KEY1_4 ;P1.3为高电平,跳出,扫描下个I/O口,P1.3为低电平执行下一句
ACALL DELAY10ms ;延时消抖再确认按下
key1__3: JB P1.3,KEY1_4 ;确认跳出,不确认执行下一句
MOV r3,#088H ;*
lcall display
jnb p1.3,key1__3
LJMP loop_jishu
KEY1_4: JB P1.4 ,KEY1_5
ACALL DELAY10ms
KEY1__4: JB P1.4 ,KEY1_5
MOV r3,#0F8H ;7
lcall display
jnb p1.4,key1__4
LJMP loop_jishu
KEY1_5: JB P1.5 ,KEY1_6
ACALL DELAY10ms
JB P1.5 ,KEY1_6
KEY1__5: MOV r3,#99H ;4
lcall display
jnb p1.5,key1__5
LJMP loop_jishu
KEY1_6: JB P1.6 ,next1
ACALL DELAY10ms
JB P1.6,NEXT1
KEY1__6: MOV r3,#0F9H ;1
lcall display
jnb p1.6,key1__6
LJMP loop_jishu
; -----------------------------
next1: setb p1.0
CLR P1.1 ;扫KEY2
JB P1.3 ,KEY2_4
ACALL DELAY10ms
JB P1.3 ,KEY2_4
KEY2__3: MOV r3,#0C0H ;0
lcall display
jnb p1.3,key2__3
LJMP loop_jishu
KEY2_4: JB P1.4 ,KEY2_5
ACALL DELAY10ms
JB P1.4 ,KEY2_5
KEY2__4: MOV r3,#80H ;8
lcall display
jnb p1.4,key2__4
LJMP loop_jishu
KEY2_5: JB P1.5 ,KEY2_6
ACALL DELAY10ms
JB P1.5 ,KEY2_6
KEY2__5: MOV r3,#92H ;5
lcall display
jnb p1.5,key2__5
LJMP loop_jishu
KEY2_6: JB P1.6 ,next2
ACALL DELAY10ms
JB P1.6,NEXT2
KEY2__6: MOV r3,#0A4H ;2
lcall display
jnb p1.6,key2__6
LJMP loop_jishu
;--------------------------------
next2: setb p1.1
CLR P1.2 ;扫KEY3
JB P1.3 ,KEY3_4
ACALL DELAY10ms
JB P1.3 ,KEY3_4
KEY3__3: MOV r3,#83H ;#
lcall display
jnb p1.3,key3__3
LJMP loop_jishu
KEY3_4: JB P1.4 ,KEY3_5
ACALL DELAY10ms
JB P1.4 ,KEY3_5
KEY3__4: MOV r3,#90H ;9
lcall display
JNB P1.4,KEY3__4
LJMP loop_jishu
KEY3_5: JB P1.5 ,KEY3_6
ACALL DELAY10ms
JB P1.5 ,KEY3_6
KEY3__5: MOV r3,#82H ;6
lcall display
jnb p1.5,key3__5
LJMP loop_jishu
KEY3_6: JB P1.6 ,next3
ACALL DELAY10ms
JB P1.6 ,NEXT3
KEY3__6: MOV r3,#0B0H ;3
lcall display
jnb p1.6,key3__6
LJMP loop_jishu
next3: setb p1.2
RET
;**************************************************************
display: mov p0,#0ffh ;将P02口置高电平
mov p2,#0ffh
mov r7,#100 ;软件计数器赋值
dd1:
mov R2,30h ;将显示缓冲区30H中的值送入ACC
;movc a,@a+dptr ;查表取要显示的数并把查表的结果送入ACC
mov p0,R2 ;将要显示的数送入P0口
clr p2.4 ;开个位显示单元
lcall delay100us ;延时100US
setb p2.4 ;关个位显示单

mov R2,31h ;将显示缓冲区别31H中的值送入A
;movc A,@a+dptr ;查表取要显示的数并把查表的结果送入ACC
mov p0,R2 ;将要显示的数送入P0口
clr p2.5 ;开十位显示单元
lcall delay100us ;延时100US
setb p2.5 ;关十位显示单元

mov R2,32h ;将显示缓冲区32H中的值送入ACC
;movc a,@a+dptr ;查表取要显示的数并把查表的结果送入ACC
mov p0,R2 ;将要显示的数送入P0口
clr p2.6 ;开百位显示单元
lcall delay100us ;延时100US
setb p2.6 ;关百位显示单元

mov R2,33h ;将显示缓冲区33H中的值送入ACC
;movc a,@a+dptr ;查表取要显示的数并把查表的结果送入ACC
mov p0,R2 ;将要显示的数送入P0口
clr p2.7 ;开千位显示单元
lcall delay100us ;延时100US
setb p2.7 ;关千位显示单元
djnz r7,dd1 ;R7不等于0返回至DD1处
ret ;R7等于0子程序返回
;***********************************************************
delay10ms:
mov r6,#50
tt2:
mov r5,#30
djnz r5,$
djnz r6,tt2
ret
delay100us:
mov r5,#30
djnz r5,$
ret
end


推荐阅读

史海拾趣

Force Technologies Ltd公司的发展小趣事

背景:随着业务的不断增长,Force Technologies Ltd意识到单一市场已无法满足其发展需求。于是,公司制定了明确的国际化战略,旨在将产品和技术推向全球。

发展:通过在欧洲、北美和亚洲等地设立研发中心和生产基地,Force Technologies Ltd成功构建起全球化的运营网络。同时,公司还积极参与国际展览和交流活动,不断提升品牌知名度和影响力。在国际市场的推动下,公司的销售额和市场份额均实现了快速增长。

ELEMENT14公司的发展小趣事

ELEMENT14公司最初是一家电子元器件分销商,但随着市场的变化和客户需求的升级,公司决定转型为提供一站式服务的平台。这一转变意味着公司不仅要提供电子元器件,还要提供软件、技术支持、在线社区等全方位的服务。通过不断的投入和努力,ELEMENT14成功转型为一个综合性的电子元器件服务平台,满足了客户多样化的需求。

Ceramics公司的发展小趣事

“绿色陶瓷”公司以其环保理念为核心,致力于研发和生产环保型陶瓷电子材料。该公司采用可再生资源和低能耗生产工艺,成功降低了产品对环境的影响。同时,绿色陶瓷还积极推广循环经济模式,通过回收再利用废旧陶瓷材料,实现了资源的最大化利用。这一环保理念不仅赢得了消费者的青睐,也为公司在电子行业的可持续发展奠定了坚实基础。

德尔创(Dersonic)公司的发展小趣事

在品质和品牌建设的基础上,德尔创开始积极拓展市场。公司首先在国内市场进行了深入布局,通过优化销售网络和提供优质的售后服务,逐渐赢得了客户的信任和支持。同时,德尔创也积极寻求国际合作机会,与多家国际知名企业建立了长期稳定的合作关系。这些合作不仅为公司带来了更多的订单和市场份额,还促进了德尔创在技术和管理方面的进一步提升。

岑科(CENKER)公司的发展小趣事

为了实现更长远的发展,岑科在2004年决定进军生产制造领域。公司在深圳和广西设立了工厂,开始了自主生产制造之路。在这一过程中,岑科严格控制生产流程,灵活配置资源,并建立了严格的质量管理体系,以确保产品的高水平交付。通过自主研发和创新,岑科逐渐在生产制造领域取得了显著的成果,产品线不断扩展,市场份额也逐渐增加。

Electronic公司的发展小趣事

特斯拉,虽然是一家电动汽车公司,但其在电子行业的发展中也展现出了强大的跨界创新能力。特斯拉通过自主研发和生产电池、电机等核心零部件,成功将电动汽车的性能和品质提升到了新的高度。同时,特斯拉还积极探索自动驾驶、智能交通等前沿技术,不断推动电动汽车行业的变革和发展。特斯拉的跨界创新不仅颠覆了传统汽车行业的格局,也为电子行业带来了新的机遇和挑战。

请注意,以上故事框架仅供参考,具体细节和数据可能需要根据实际情况进行调整和补充。同时,由于篇幅限制,每个故事的字数可能无法满足500字以上的要求。

问答坊 | AI 解惑

【博客帮助帖】如何美化自己的空间

开通了自己的博客,自然要把自己的空间装饰一下。EEWORLD博客给您提供了快速美化空间的方法。 1)登录空间之后,点击导航栏右侧的“设置”,如下图所示   2)进入设置界面,点击“主页风格”如下所示,可以选择一款您喜欢的页面风格,点 ...…

查看全部问答>

【EEWORLD第六届社区明星人物】8月明星人物火热登场!

EEWORLD第六届,也就是8月社区明星人物终于评出来了, 经过了soso、小志、小娜的努力工作 ,查看了了大量数据,明星人物们终于火热登场啦! 本月优秀工程师(依据发帖数排名): 最佳解惑奖:仙猫 最佳活跃奖:Yound 最佳贡献奖: ahshan 本 ...…

查看全部问答>

电容十说,好资料大家分享

作为无源元件之一的电容,其作用不外乎以下几种: 1、应用于电源电路,实现旁路、去藕、滤波和储能的作用。下面分类详述之: 1)旁路 旁路电容是为本地器件提供能量的储能器件,它能使稳压器的输出均匀化,降低负载需求。 就像小型可充电电池一 ...…

查看全部问答>

怎么获取系统发出的信号???????

就是当ctrl+c或者切断电源的时候,系统都会发出一个信号。 像SIGHUP SIGINT 之类的 东西 可以写出一个方法获取到它吗? 我是想让系统关机的时候 用signal绑定一个倒计时函数,但是我不知道关机的信号是什么 。这个信号会不会被隐藏掉? ps:已 ...…

查看全部问答>

求利用 51单片机 和 CMOS图像传感器 做视频采集和显示的方案

如题,CMOS传感器型号已经选择好,OV7620,摄像头模块的核心器件即OV7620,摄像头是数字视频输出16Bit或8Bit的YUV422格式数据,如果用单片机进行图像的采集,并且在PC端显示,请问一下还需要什么核心器件,最好给出一个大体的设计方案,谢谢了,这 ...…

查看全部问答>

请教一个关于ARM7除法的问题?

采用arm7指令编程实现除法功能,注意除0的处理? 请问这个的代码怎么写啊,arm7里面我找不到除法啊。…

查看全部问答>

LM3S8962串口问题解决了

前段时间比较忙,没来得及分析LM3S8962串口问题。今天花了一上午时间搞定了,原来是232片子坏了,换了个新的,串口能调通了。顺便发点LM3S8962串口的资料,大家共同学习进步。 [ 本帖最后由 beyondvv 于 2010-9-25 22:27 编辑 ]…

查看全部问答>

MSP430F5438

程序可以下进去,程序也可以跑起来,就是晶振不起振  低频和高频的都不起振  用示波器测没反应   谁能帮帮忙告诉下怎么回事…

查看全部问答>

七大项比拼,iPhone就是比Android好

replyreload += \',\' + 1189441; 本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 曾经在不同场合与很多安卓青探讨过一些或浅或深的知识层面问题,如今想来具备真正独立思考能力与当量知识储备的,也只有一人而己;换言之,绝大部分时候只是对 ...…

查看全部问答>