主页 > 焦点科技 >杨家将郑伊健_在138译码器控制的2个4位数码管,如何编程使数码管同时保持显示一个数字,并且这个显示的时间我可以控制? >

杨家将郑伊健_在138译码器控制的2个4位数码管,如何编程使数码管同时保持显示一个数字,并且这个显示的时间我可以控制?

在138译码器控制的2个4位数码管,如何编程使数码管同时保持显示一个数字,并且这个显示的时间我可以控制?
一直给io送数,就能显示数字

送五秒,不送数,延迟一个时间,因为数码管不会立即熄灭

继续送数。。。循环追问

能不能给我一段例程,就你说的那段程序就可以,我看下就可以追答

不玩单片机好多年,当年的笔记也扔了,再说,138的接法不同,光看程序也没有用的
用数码管挂箱,合上启动开关实现从7S到0S循环倒计时,断开启动开关,数码管熄灭,这个编程怎么做?


用数码管卦象和尚启动开关实现从7A四到零二的循环倒计时断开开关的时候。本回答被网友采纳
用51单片机C语言编写程序实现6位共阴极数码管循环显示0123456789ABCDEF,六个数码管是连续不同的六个数?

#include

#defineuintunsignedint
#defineucharunsignedchar

codeucharshu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
/*012 3 4 5 6 7 */
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//数段选
/*8 9 a b c d e f */
codeucharwen[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; //数码管位选
ucharhuancun[]={0x00,0x00,0x00,0x00,0x00,0x00}; //数码管段选缓存

sbitduan=P2^6; //段选
sbitwei=P2^7; //位选

voiddelay(ucharx) //延时函数
{
uchari,j;
for(i=0;ifor(j=0;j<255;j--)
;
}

voidxianshi() //显示函数
{
uchari;

for(i=0;i<6;i++)
{
P0=wen[i]; //位选
wei=1;//开锁存
wei=0;//关锁存

P0=huancun[i]; //段选
duan=1;
duan=0;

P0=0xff; //消影
delay(5);
}
}

voidinit()
{
uchari;

TMOD=0x01;
TH0=(65536-50000)/256;//10ms定时初值(T0计时用)
TL0=(65536-50000)%256;
TR0=1;//T0计时关断
ET0=1;//T0中断允许位关断
EA=1;//开总中断

for(i=0;i<6;i++)
{
huancun[i]=shu[i];//段选送缓存
}
}

voidmain()
{
init();
while(1)
{
xianshi();
}
}

voidtime_intt0(void)interrupt1//50ms中断
{
uchart,i,j;

TH0=(65536-50000)/256;//重置初值
TL0=(65536-50000)%256;

t++;

if(t==20)//1秒到50ms*20=1s
{
t=0;
j++;//j+1

for(i=0;i<6;i++)//使段选数据移位输入缓存
{
huancun[i]=shu[i+j];
}

if(j>9)//移到最后面回到初始状态
{
j=0;
}
}
}

照着你给你电路图写的,有问题请追问

你把你的显示内容每次左移一位试试,看能不能行。追问

不会啊,脑子好乱,你能发个程序吗?
编程数码管循环显示数字0-5


以下程现6码管,位依次循环0--9
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV P2,#0FEH
MOV A,#00H
MOV DPTR,#TAB
LOOP:
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
INC A
CJNE A,#0AH,LOOP
MOV A,P2
RL A
MOV P2,A

JB ACC.6,SS1

MOV P2,#0FEH
SS1:
CLR A
SJMP LOOP
DELAY:
MOV R1,#2
L1: MOV R2,#200
L2: MOV R3,#200
L3: DJNZ R3,L1
DJNZ R2,L2
DJNZ R1,L3
RET SJMP $
ORG 0080H
TAB:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END


上一篇: 下一篇: