Re: 2051单面板按键和LED数码管
我正要,好。下了。
Re: 2051单面板按键和LED数码管
是不是就把这个图下载下来啊
Re: 2051单面板按键和LED数码管
我们手 不是有这个图吗
Re: 原创 2051单面板按键和LED数码管
可你没有电路图,每有电路图编程序费事儿。
Re: 原创 2051单面板按键和LED数码管电路图
现将CD4094控制六位数码管显示的程序发出来
用来测试电路板的显示部分。
CD4094的STR=1时更新显示,STR=0时移位不显示。
#include
unsigned char led[6]={0,1,2,3,4,5};
//unsigned char code disptab1[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};
unsigned char code disptab1[10]={0xd7,0x12,0x5d,0x5b,0x9a,0xcb,0xcf,0x13,0xdf,0xdb};
sbit DAT=P1^7; //串行显示 DATA
sbit CLK=P1^6; //串行显示 CLK
sbit STR=P3^7; //串行显示 锁定
void delay(void) //延时程序
{
unsigned char s;
for(s=5;s>0;s--);
}
void display() //显示程序
{ unsigned char i;
unsigned char num,c;
STR=0;
for(i=0;i<6;i++)
{
num=disptab1[led];
for(c=0;c<8;c++)
{
CLK=0;
DAT=num&0x01;
CLK=1;
num>>=1;
}
}
STR=1;
delay();
STR=0;
}
void main(void)
{
display();
while(1)
{
}
}
[ 本帖最后由 LIUZZ 于 2009-4-1 07:37 编辑 ]
Re: 原创 2051单面板按键和LED数码管电路图
DAT BIT P1.7 ;;;
CLK BIT P1.6 ;;;
STR BIT P3.7 ;;;
ORG 0000H
LJMP SETUP
ORG 0030H
SETUP: CLR A
MOV R0,#70H
MOV R2,#6
LOOP0: MOV @R0,A
INC A
INC R0
DJNZ R2,LOOP0
MOV DPTR,#TAB
LCALL DIS
MAIN:
LJMP MAIN
DIS: CLR STR
MOV R3,#6
MOV R0,#70H
LOOP1: MOV A,@R0
MOVC A,@A+DPTR
LCALL DDIS1
INC R0
DJNZ R3,LOOP1
SETB STR
RET
;TAB: db 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h,0feh,0f6h,00h;
tAB: db 0d7h,12h,5dh,5bh,9ah,0cbh,0cfh,13h,0dfh,0dbh;
DDIS1: MOV R2,#8
CLR C
LOOP2:
RRC A
CLR CLK
MOV DAT,C
SETB CLK
DJNZ R2,LOOP2
RET
END
[ 本帖最后由 LIUZZ 于 2009-4-1 07:38 编辑 ]
2051单面板按键和LED数码管 显示加按键程序做好,供同学们学习参考
ORG 0000H
MOV R0,#70H
MOV A,#6
MOV R2,#8
LOOP2: MOV @R0,A
DEC A
INC R0
DJNZ R2,LOOP2
lcall display
main: lcall key
ljmp main
KEY: ORL P1,#00111100B
MOV A,P1
ORL A,#11000011B
CPL A
JZ NO_KEY
LCALL DELAY
MOV A,P1
ORL A,#11000011B
CPL A
JZ NO_KEY
N_KEY1: JNB Acc.2,N_KEY2
LCALL KEY1F;1#键
LJMP NO_KEY
N_KEY2: JNB Acc.3,N_KEY3
LCALL KEY2F;2#键
LJMP NO_KEY
N_KEY3: JNB Acc.4,N_KEY4
LCALL KEY3F
LJMP NO_KEY
N_KEY4: JNB Acc.5,NO_KEY
LCALL KEY4F
NO_KEY:
ret
KEY1F:
inc 70h
MOV a,70H
cjne a,#10, n70h10
mov 70h,#0
n70h10:
LCALL DISPlaY; 编1键的程序
lcall you_KEY
RET
KEY2F:
inc 71h
MOV a,71H
cjne a,#10, n71h10
mov 71h,#0
n71h10:
LCALL DISPlaY;
lcall you_KEY
RET
KEY3F:
inc 72h
MOV a,72H
cjne a,#10, n72h10
mov 72h,#0
n72h10:
LCALL DISPlaY;
lcall you_KEY
RET
KEY4F:
inc 73h
MOV a,73H
cjne a,#10, n73h10
mov 73h,#0
n73h10:
LCALL DISPlaY;
lcall you_KEY
RET
DELAY: mov r6,#10h
MOV R5 ,#0
DJNZ R5,$
djnz r6,$-4
ret
DISPlay: MOV R3,#6
clr p3.7
MOV R0,#70H
LOOP1: MOV A,@R0
MOV DPTR,#LEDCODE
MOVC A,@A+DPTR
MOV R2,#8
LOOP: RRC A
MOV P1.7,C
CLR P1.6
SETB P1.6
DJNZ R2,LOOP
INC R0
DJNZ R3,LOOP1
SETB P3.7
clr p3.7
ret
you_KEY:MOV A,P1
ORL A,#11000011B
CPL A
JnZ you_KEY
lcall delay
MOV A,P1
ORL A,#11000011B
CPL A
JnZ you_KEY
ret
LEDCODE:db 0d7h,12h,5dh,5bh,9ah,0cbh,0cfh,13h,0dfh,0dbh
END