两位数码管连在51单片机上,按键后数码管加1,按一下加1.怎样用汇编语言编写,求程序非常感谢

如题所述

第1个回答  2012-05-13
可以将按键设置在外部中断上,中断中对应寄存器加一,即可
第2个回答  2012-05-12
inc,加所需的变量,比如a ,rn,ri,都可以
第3个回答  2012-05-12
写程序要硬件接线图啊
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP WBZD
ORG 0030H
MAIN:
; MOV SP,#60H

SETB IT0
SETB EA
SETB EX0
MOV R1,#23
LOOP:
LCALL DISP
AJMP LOOP
DISP:
MOV A,R1
MOV B,#10
DIV AB
MOV 30H,A
MOV 31H,B
setb P2.0
setb P2.1
CLR P2.2
MOV R0,#30H
MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
SETB P2.0
CLR P2.1
CLR P2.2
MOV R0,#31H
MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
RET
WBZD:
INC R1
cjne r1,#100,d2
mov r1,#0
d2:
RETI
DELAY:
MOV R5,1
D1: MOV R6,#200
DJNZ R6,$
DJNZ R5,D1
RET

TAB:
DB 3fH,06H,5BH,4FH,66H,6dH,7dH,07H,7fH,6fH

end追问

按左边建按一次显示器加一,请您给看看

追答

把中断程序改为单独按键程序就可以了

第4个回答  2012-05-11
考试要啊

51单片机按键加减清零汇编语言编程
键计数加1JMP KEY_P_ENDLOOP2:DEC K_COUNT ;键计数减1JMP KEY_

51单片机汇编语言按键控制数码管加1加到999
如果寄存器a == 100,{寄存器b=b+1;寄存器a = 0} 这样就可以了,b中的1代表100,a中的1就是1

51单片机c语言编程序让两位数码管显示0-99,求指导!!急用!
参考下网上的程序,只要明白两个问题就不难了,第一是数码管的结构及显示原理;第二是动态显示

用51单片机做一个键盘,按一下数码管加1,可是无论我怎么消抖动,总是有...
你可以在去抖程序里加入检测松手程序例如 ………if(!key) \/\/检测键盘是否按下 delay():\/\/去抖延时一般是50ms if(!key)\/\/再次检测键盘是否按下 ×××++: \/\/这里写数码管加"1"程序 while(key);\/\/加入写句,目的是等待key变为原来的状态才会执行下一条指令!希望可以帮到你!

求51单片机控制2个数码管的程序
两只数码管段码分别由P0,P2输出控制,P0是十位,P2是个位。P3.2,P3.4分别接两只按键,P32.清0,P3.4计数。以上程序来自《单片机C语言程序设计实训100例--基于8051+Proteus仿真》include <reg52.h> define uchar unsigned char define uint unsigned int uchar DSY_CODE[]= { 0x3f,0x06,0x5b...

51单片机按键控制数码管数据的加减
FSDATMOV B,#10DIV ABMOV 30H,AMOV 31H,BMOV A,FSDATJNZ LOOPMOV FSDAT,#20SJMP LOOP;---T0ISR:PUSH ACCCLR TR0MOV TH0,#0F4HMOV TL0,#48HSETB TR0MOV DPTR,#LEDTAB1T000:MOV R0,#DATMOV A,SCANLEDADD A,R0MOV R0,AMOV A,SCANLEDJNZ T001MOV P2,#02HSJMP T0DIST001:MOV ...

汇编语言51单片机怎么实现用KEY 1控制数码管上显示的数字加1 KEY2控制...
代码如下:MAIN:MOV DPTR,#TAB MOV R4,#00H MOV R5,#01H CLR A LCALL DISPLAY LOOP:LCALL KEYDOWN LCALL DISPLAY SJMP LOOP KEYDOWN:JB P3.4,CK11 ;key1没有按下则转到key2 LCALL DS1MS ;P3.4=0表示Key1按下 JB P3.4,CK11 ;key1还不能松开 MOV R5,#01H INC R4 ...

51单片机两位数码管交替123456789
sbit bb=P1^1;void delay(uint d) \/\/延时函数 { uint x,y;for(x=d;x>0;x--)for(y=110;y>0;y--);} void main(){ a=1;b=2;while(1){ for(c;c<5;c++){ aa=0; \/\/打开第一个数码管 P0=table[a];delay(20);P0=0xff;aa=1;bb=0; \/\/打开第二个数码管 P0...

求51单片机控制2个数码管的程序
两只数码管段码分别由P0,P2输出控制,P0是十位,P2是个位。P3.2,P3.4分别接两只按键,P32.清0,P3.4计数。以上程序来自《单片机C语言程序设计实训100例——基于8051+Proteus仿真》include <reg52.h> define uchar unsigned char define uint unsigned int uchar DSY_CODE[]= { 0x3f,0x06,0x...

52单片机实现两位数按键计数,汇编语言
又有按键又有数码管,即应该先画仿真图或原理图,确定硬件连接关系后才能写程序。如果是实物开发板,就更应该给出原理图,否则,写出来的程序与开发板不符,那程序也没用。可以用仿真图来调试程序。

相似回答