关于单片机DA指令最近做课设,内容是计算一个按键按下的次数(0~99),用8个发光二极管显示.采用软件去抖.显示接口用2
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/18 21:09:20
关于单片机DA指令
最近做课设,内容是计算一个按键按下的次数(0~99),用8个发光二极管显示.采用软件去抖.
显示接口用273扩展,按键入口选P1口.8031单片机.
我的程序如下:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:MOV A,#0FFH
MOV DPTR,#7FFFH ;我用P2.7和WR非口做273片选信号,接273的CLK
MOVX @DPTR,A
MOV R3,#00H
L1:JB P1.0,L1 ;P1.0=0,可能有键按下,若不是,跳回
LCALL DELAY
JB P1.0,L1
MOV A,R3
CPL A
WAIT:JNB P1.0,WAIT
MOV DPTR,#7FFFH
MOVX @DPTR,A
MOV A,R3
CJNE A,#63H,L1
LJMP MAIN
DELAY:MOV R4,#0AH
D2:MOV R5,#0FFH
D1:DJNZ R5,D1
DJNZ R4,D2
RET
SJMP $
END
但是这个程序的结构有问题,我只发现R3自加1后没有显示出来.
而且硬件电路连接好以后,通电测试的时候,发光二极管显示混乱.
好像是少一个DA转换指令
现在就是想请教,为什么要用DA指令?用在哪里?
是INC R3这一步么?这一步上移,接在 MOV A,R3后面,用
ADD A,#01H
DA A
望高手赐教,(主要不知道为什么用DA,我只是知道DZ用在高4位和低4位出现借位和错位超出显示范围的时候要用DA调整...)
最近做课设,内容是计算一个按键按下的次数(0~99),用8个发光二极管显示.采用软件去抖.
显示接口用273扩展,按键入口选P1口.8031单片机.
我的程序如下:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:MOV A,#0FFH
MOV DPTR,#7FFFH ;我用P2.7和WR非口做273片选信号,接273的CLK
MOVX @DPTR,A
MOV R3,#00H
L1:JB P1.0,L1 ;P1.0=0,可能有键按下,若不是,跳回
LCALL DELAY
JB P1.0,L1
MOV A,R3
CPL A
WAIT:JNB P1.0,WAIT
MOV DPTR,#7FFFH
MOVX @DPTR,A
MOV A,R3
CJNE A,#63H,L1
LJMP MAIN
DELAY:MOV R4,#0AH
D2:MOV R5,#0FFH
D1:DJNZ R5,D1
DJNZ R4,D2
RET
SJMP $
END
但是这个程序的结构有问题,我只发现R3自加1后没有显示出来.
而且硬件电路连接好以后,通电测试的时候,发光二极管显示混乱.
好像是少一个DA转换指令
现在就是想请教,为什么要用DA指令?用在哪里?
是INC R3这一步么?这一步上移,接在 MOV A,R3后面,用
ADD A,#01H
DA A
望高手赐教,(主要不知道为什么用DA,我只是知道DZ用在高4位和低4位出现借位和错位超出显示范围的时候要用DA调整...)
我没有看到给R3自动加1的程序
在MOV A, R3后加入
ADD A, #01H
DA A
MOV R3, A
两个功能
1. 自动加1
2. 将十六位转换为10进制,比如,09H转换一下,还是09
0AH转换一下,就成了10了,这主要就是为了显示,
但你的是发光二极管显示,并不是数码管显示的,它显示出来的肯定是乱码,
如果你不转换,也就是不加DA的话,那么二极管显示的就是2进制数据,这样还可以看出来到底按了多少次,但搞成这个样子,就得重新算了,
显示的数据是两个8进制,高四位显示十位,低四位显示个位,是十进制数,得仔细看了
在MOV A, R3后加入
ADD A, #01H
DA A
MOV R3, A
两个功能
1. 自动加1
2. 将十六位转换为10进制,比如,09H转换一下,还是09
0AH转换一下,就成了10了,这主要就是为了显示,
但你的是发光二极管显示,并不是数码管显示的,它显示出来的肯定是乱码,
如果你不转换,也就是不加DA的话,那么二极管显示的就是2进制数据,这样还可以看出来到底按了多少次,但搞成这个样子,就得重新算了,
显示的数据是两个8进制,高四位显示十位,低四位显示个位,是十进制数,得仔细看了
单片机原理及接口技术完成某种操作可以采用几条指令构成的指令程序实现,试写出完成以下每种操作的指令序列(1)讲RO的内容传
英语翻译基于单片机的LED显示屏是由多个独立的LED发光二极管封装而成.LED点阵显示屏可以显示数字或符号,通常用来显示
我的单片机处理控制8×8LED点阵屏的显示.由于仅采用一个8×8LED点阵屏,AVRmega16L单片机引脚数目足够,所
220V交流电,用发光二极管如何制作一个显示电器通电的指示灯
用单片机设计出租车计价器,使用c语言编程,使用的是51系列的单片机.计价器可以显示3位数,精确到0.1元.用数码管显示.
一 课程设计内容:设计一个单片机秒表,该秒表可显示0.0到59.9秒的时间,进行相应的单片机硬件电路的设计并进行软件编程
做一个简易时钟(1)8位数码管显示:时-分-秒;(2)4个按键:加1键,减1键,启动键/暂停复用键,清零键;(3)按键有
电梯怎么用,外面的按键有上下两个,可是还有显示的数字和箭头,箭头向上时我要下,按什么?
89c51单片机驱动100个发光二极管行吗.用的是5V电
51单片机,1602动态显示时钟,有独立按键(3个k1,k2,k3)分别控制选择,加1,减一
英语翻译摘要内容:本问的内容是将传统的电能表滚轮显示改变成节能环保的液晶显示,采用“8”字段码显示,本次课程设计总共用到
有一个电子表的表面用2个数码显示“小时”,另用2个数码显示“分”.例如“21:32”