//显示-123 for(c = 0;c<20;c++){ P2 = 0x08;P0 = 0xbf;delay(10);for(j = 0;j<3;j++){ P2 = _cror_(P2,1);P0 = table[j];delay(10);} } //显示1234 2345 3456 4567 for(k = 0;k<4;

main(){ for (;;){ z=js(z);i=js(i);P0=0;P1=0xff-(0x01<

define uint unsigned int uchar count;uint disnum;sbit dula=P2^6;sbit wela=P2^7;uchar code tabledu[]={//段码表 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0

uchar number,nn=0;uchar dat[]={2,0,1,2,1,1,4,5,8,2};void t0isr() interrupt 1 { TH0=(65536-5000)/256;TL0=(65536-5000)%256;number++;number%=4;switch(number){ case 0:P2=0x08;P0=distab[nn

//关第一位显示 p2=tab[2];p3_1=0;//开第二位显示 for(i=0;i<200:i++);p3_1=1;这个程序就是让两个数码管分别显示1和2,注意程序开头包含头文件regx52.h,如果是包含reg52.h编译不了的

运用51单片机实现4位8段LED数码管的动态数字显示,写出C语言程序

void led_sl(uchar wn,dn){ led_w0=led_wof; //关闭位选1 led_w1=led_wof; //关闭位选2 led_w2=led_wof; //关闭位选3 led_w3=led_wof; //关闭位选4 /*数码管消影处理*/ led_d =led_off; //段码

你可以把4对分成两组,当按键按一下,就换一组显示,或者两个按键控制,按下哪个按键就显示哪个,,,给你一个特例程序分别是以上两种方法 的,你可以参考参考,,,port(input1,input2:in std_logic_vector(7 downto

entity led is port(clk:in std_logic;---时钟信号 s:out std_logic_vector(7 downto 0);---数码管 q:out std_logic_vector(6 downto 0));---段位 end led;architecture one of led is signal clk1:std_l

U1:counter10 PORT MAP(carry(1),count,carry(2),q1);U2:counter6 PORT MAP(carry(2),count,carry(3),q2);U3:counter10 PORT MAP(carry(3),count,carry(4),q3);ledscanclk<=clktemp(5);PROCESS(ledscanclk

end if;else --en='0'不显示 display<="0000000";end if;end process;b: process(num1) --从这开始是我不能实现的地方,不能将小数点也动态显示 begin if counter1=1 then counter1<=0;else counter1<=

用VHDL编程实现4位LED数码管动态显示

void t0isr() interrupt 1 { TH0=(65536-5000)/256;TL0=(65536-5000)%256;switch(num){ case 0:P2=0x01;break;case 1:P2=0x02;break;case 2:P2=0x04;break;case 3:P2=0x08;break;default:break;} P0=~

最简单的就是用四个IO口分别驱动四个数码管 每个IO口分别送出相应的段码显示值 主程序中一次扫面四个IO口即可

sbit w3=P2^4;uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 };void delay_nms(uint z) //延时子 { uint x,y;for(x=z;x>0;

可以用proteus仿真来实现,用四位一体的共阴数码管。仿真图和显示效果如下图。汇编程序

AJMP MAIN ORG 30H MAIN: LCALL DISP MOV 00H,#1 MOV 01H,#2 MOV 02H,#3 MOV 03H,#4 AJMP MAIN DISP: MOV A,00H ACALL SEG7 MOV P1,A MOV P0,#01H ACALL DLY MOV A,01H ACALL SEG7 MOV P1,A M

delay(500);displayDigit(4);delay(500);} }

for(d = 0;d<20;d++){

AT89C51单片机怎么用汇编语言让4个数码管同时显示1234?

先看看错误的现象: 是不是笔画混乱 要显示1 却显示的好像是8呀

1:局部变量与全局变量有冲突,把void delay(void)中的i改为别的,如a,次数不要为300;120就行。且unsigned char范围为0~255。2:最主要的问题:你数码管显示码为共阳极的,程序中的位选却是共阴极的,要把数码管显

程序错了吧。看看这个程序,可以参考一下。include#define uchar unsigned charuchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}; //0到9uchar num;uchar led[]={1,2,3

ORG 0000H ; 仿真通过 数码管共阴 电路 把排阻去掉直通 仿真没有问题。LJMP MAIN ORG 0030H MAIN : MOV R7,#30 MOV P3,#0FFH MOV R6,#00H MOV R5,#00H MOV R4,#00H MOV R3,#00H MOV DPTR,#TAB

四位数码管动态显示 汇编语言 求找错

少年,这么长的程序,怎么也给点分吧
必须知道这个数码管是共阴极或是共阳极的才程编出正确的程序来
ORG 0000H ; 附仿真图 仿真通过 MOV 31H,#0aH MOV 32H,#0bH MOV 33H,#0cH MOV 34H,#0dH ACALL D0 JMP $-2 D0: MOV R0,#31H MOV R2,#11111110B MOV DPTR,#TAB D1: MOV R3, #250 DJNZ R3, $ ORL P3,#00001111B MOV A,@R0 MOVC A,@A+DPTR MOV P1, A D2: MOV A, R2 MOV P3, A RL A MOV R2,A INC R0 JB ACC.4,D1 RET TAB: DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H DB 40H END
可以用proteus仿真来实现,用四位一体的共阴数码管。仿真图和显示效果如下图。 汇编程序
搜一下:用VHDL编程实现4位LED数码管动态显示
carry(0)<=clk; U0:counter10 PORT MAP(carry(0),count,carry(1),q0); U1:counter10 PORT MAP(carry(1),count,carry(2),q1); U2:counter6 PORT MAP(carry(2),count,carry(3),q2); U3:counter10 PORT MAP(carry(3),count,carry(4),q3); ledscanclk<=clktemp(5); PROCESS(ledscanclk)--ledscanclk为扫描时钟 BEGIN IF(ledscanclk'EVENT AND ledscanclk='1')THEN CASE showwhat IS WHEN 0=>shownumber<=CONV_INTEGER(q0); showwhat<=1; flag<='0'; WHEN 1=>shownumber<=CONV_INTEGER(q1); showwhat<=2; flag<='1'; WHEN 2=>shownumber<=CONV_INTEGER(q2); showwhat<=3; flag<='0'; WHEN OTHERS=>shownumber<=CONV_INTEGER(q3); showwhat<=0; flag<='1'; END CASE; END IF; END PROCESS; WITH showwhat SELECT --具体要看你的数码管是共阴还是共阳的 scanshow<=B"1110" WHEN 1,--0 B"1101" WHEN 2,--1 B"1011" WHEN 3,--2 B"0111" WHEN OTHERS;--3 WITH shownumber SELECT --具体要看你的数码管是共阴还是共阳的 qtemp<=B"1111110" WHEN 0,--0 B"0110000" WHEN 1,--1 B"1101101" WHEN 2,--2 B"1111001" WHEN 3,--3 B"0110011" WHEN 4,--4 B"1011011" WHEN 5,--5 B"1011111" WHEN 6,--6 B"1110000" WHEN 7,--7 B"1111111" WHEN 8,--8 B"1111011" WHEN OTHERS;--9 show<=flag&qtemp; --show为输出 个人建议,像这样的代码还是自己写为好,这毕竟看完书学习完后是不难的,如果什么都要去问别人,不静下心来考虑,那你永远也无法成为一个高手(虽然我还不是),大家都是在学习,别人能懂的,相信我们也能明白的。我们没有理由比别人会差的,和大家一起加油努力。