1、首先,要把代码写好,点亮数码管。2、代码写完后,要确认原先写好的代码是不是正确的。3、确认代码无误后,进入下一步,就是在这一行代码(箭头所指)的地方,将这四个字删去。4、然后如图所示,四个字已经删去,

8个数码管如果显示不同内容,那么一般需要动态扫描显示,才能消耗最小的硬件资源。如果显示同一个内容,那么就直接送段码,位控全开就可以了。

1一种方法是用两个锁存器来锁存数码管的段码和位码,进行动态扫描显示。2另一方法是,用P3口的4位接一个BCD译码器控制数码管的段码,再P3口的3位接一个3-8译码器来控制数码管的位进行动态扫描。3再就是可以用P3口

显示对应的数字然后跳出循环case 0xfd:P0=dofly_table[2];LED1=0;break;//调用表中的第三个//元素 0xa4 下标 0 才表示数组中的第一个元素case 0xfb:P0=table[3];

Vcc=+5V,ST=P3.2,CLK=TXD,DAT=RXD;不要问P3.2/TXD/RXD是89c52的那个引脚;ST需要声明设定,TXD和RXD直接SBUF输出即可。

1、添加延时 2、在位选和段选打开之前先赋值 以下是我的程序,仅供参考:include define uint unsigned int define uchar unsigned char sbit we = P2^7;sbit du = P2^6;void delay(uint z){ uint x

89C52单片机怎么点亮8个数码管?下面代码为什么就亮了3个

proteus8位数码管和51芯片接的方法:1、首先,确定您使用的是通用型I/O口驱动的8位数码管,该数码管需要连续的8个I/O口来控制。例如,可以使用P2口(P2、0~P2、7)来控制。2、将数码管的8个引脚分别连接到51单片机的

这样在公共端为0的情况下段选段输入:0b0011111=0x3f时(dp g a),数码管就显示0了,同理若要使数码管显示其他数字,只需在段选端输入其对应的段选码就行了。0-f对应的段选码分别为:0x3f,0x06,0x5b,0x4f

1一种方法是用两个锁存器来锁存数码管的段码和位码,进行动态扫描显示。2另一方法是,用P3口的4位接一个BCD译码器控制数码管的段码,再P3口的3位接一个3-8译码器来控制数码管的位进行动态扫描。3再就是可以用P3口

1.2 1.3,发光管是共阳 那么第一位的位码是xxxx0001;第二位是xxxx0010;第三位是xxxx0100;第四位是xxxx1000;这样我在显示时,如果显示第一位数据,则往p1口送xxxx0010,再送第一位的段码,建议到百度上搜下单片

0123456789-灭

8位共阳LED数码管接C52单片机,求断码和位码

若数码管共阳,则低电平有效,所对应的16进制表示方式,为:0-0xc0,1-0xf9,2-0xa4,3-0xb0,4-0x99,5-0x92,6-0x82,7-0xf8,8-0x80,9-0x90。若数码管共阴则高电平有效,所对应的16进制表示方式为0-0x3f,1-

共阳极数码管的字形码0~9分别为:0xC0、0x0xF9、0xA4、0xB0、0x99、0x92、0x82、0xF8、0x80、0x90。单片机控制一个数码管显示0→1→2→3→4→5→6→7→8→9,每个状态停留1秒。共阳数码管是指将所有发光二极管的

其中数码管分两种,共阴极和共阳极(共阳极:数码管的阳极全部接在一起,低电平点亮它,如:如果是共阳极,显示数字“0”,代码为ox80或80H;共阴极和共阳极相反。\x0d\x0a a ━ \x0d\x0a f│ │b\x0

数码管定义如下图:共阳极数码管编码为:LEDTAB: DB 0C0H ;"0" 00H DB 0F9H ;"1" 01H DB 0A4H ;"2" 02H DB 0B0H ;"3" 03H DB 99H ;"4" 04H DB 92H ;"5" 05H DB 82H ;"6" 06H

指令为:MOV DPTR,#LEDTABMOVC A,@A+DPTRMOV P0,A ;假设段码接在P0口。当A为某一个数时,查表就得到这个数编号的段码,比如A为1,那么就是“1”的编码,F9H。PS:累加器(accumulator)是一种暂存器,它用来储

已知共阳极8段LED数码管的显示数字的字形码如下(求详解!)

假如:P0口接8个LED,程序可以这样:include define uchar unsigned char define uint unsigned int sbit led1= P2^0;uchar num;/ 延时t毫秒 11.0592MHz时钟,延时约1ms / void delay(uint s){ uchar k;

leda=1;//全部灯亮 //从左到右依次熄灭 led1=0;delay(50000);//大约延时450ms led2=0;delay(50000);//大约延时450ms led3=0;delay(50000);//大约延时450ms led4=0;delay(50000);//大约延时450ms led5=0;

void yanshi(){ };///延伸函数一秒根据晶体的频率自己设置也可以用定时器的中断来设置1秒时间也可以用软件定时器;mian(){ p1=0xff;yanshi();p1=0x00;yanshi();}

ORG 0030H START:MOV R2,#8 ;左移次数 MOV A,#0FEH ;A的初始值,即 P0.0的L0 点亮 SETB C LOOP: MOV P0,A LCALL DELAY RLC A ;左移流水灯(带进位的左移),即亮点向P0口的高位移动 DJNZ R2,LOOP MOV

这个是用定时器0控制一个灯的亮和灭 include define uchar unsigned char define uint unsigned int /***/ uchar num;bit tt;sbit d=P1^0;/***主程序入口***/ void main(){ TMOD=0x01;TH0=(65535

ORG 0000H JMP BEGIN ORG 000BH LJMP T0INT ORG 0030H;---TABLE: ; 共阴极数码管显示代码表 DB 3FH,06H,5BH,4FH,66H ;01234 DB 6DH,7DH,07H,7FH,6fh ;56789;---BEGIN:

求一个单片机程序,要八个led灯依次点亮,同时一个数码管依次显示1-8 延时一秒 最好是汇编语言的

includesbit wei=P1^1; //位控制端sbit duan=P1^0; //段控制端 unsigned int i,n;unsigned int w[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};unsigned int x[8]={0x06,0x5b,0x4f,

MOV P0,A POP ACC MOV P2,A RL A LCALL DELAY INC R0 CJNE R0,#8,LP LJMP ST TAB: DB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H DELAY:MOVR6,#8 DL2: MOVR5,#250 DJNZR5,DJNZR6,DL2 RET END

数码管段选连接到单片机P0口,位选连接到P2口 ORG 0000h MAIN:CALL DISPLAY AJMP MAIN DISPLAY:MOV R0,#0 MOV R1,#0x01 MOV DPTR,#TAB LOOP:INC R0 MOV A,R0 MOVC A,@A+DPTR MOV P0,#0 ;消隐 MOV P0,A

2.让8个数码管分别显示12345678 把 P0 = dis_code2[dis_index];这个如果不行就用 1.让第四个数码管显示1 把 P0 = ~dis_code1[dis_index];2.让8个数码管分别显示12345678 把 P0 = ~dis_code2[dis_in

1、 数码管显示演示程序: 在8个LED数码管上依次显示1,2,3,4,5,6,7,8。引用端口:数码管数据p0,数码管控制p2;DIS_DIGIT EQU 40H;位选通值, 传送到P2口用于选通当前数码管的数值,; 如等于0xfe时, 选通P2

Led_Port =Led_Table[4];Led_Cont_Port =0xF7;delay();Led_Cont_Port =0xFF;Led_Port =Led_Table[5];Led_Cont_Port =0xEF;delay();Led_Cont_Port =0xFF;Led_Port =Led_Table[6];Led_Cont_Port =0xDF;d

采用共阴极LED数码管51单片机P1口输数据:ORG 0000H JMP MAIN ORG 0100H MAIN:MOV DPTR,#TAB MOV R1,#00H DISP:MOV A,R1 MOVC A,@A+DPTR MOV P1,A LCALL DELAY INC R1 CJNE R1,#0AH,DISP SJMP TAB: DB 3

设计一款单片机控制系统,实现8只共阴极LED数码管同时显示"12345678"

#define Led_Port P0 #define Led_Cont_Port P1 void delay() { unsigned char i,j; for(i=0;i<5;i++) { for(j=0;j<200;j++) {;} } } viod main() { while(1) { Led_Cont_Port =0xFF; Led_Port=0xFF; Led_Port =Led_Table[1]; Led_Cont_Port =0xFE; delay(); Led_Cont_Port =0xFF; Led_Port =Led_Table[2]; Led_Cont_Port =0xFD; delay(); Led_Cont_Port =0xFF; Led_Port =Led_Table[3]; Led_Cont_Port =0xFB; delay(); Led_Cont_Port =0xFF; Led_Port =Led_Table[4]; Led_Cont_Port =0xF7; delay(); Led_Cont_Port =0xFF; Led_Port =Led_Table[5]; Led_Cont_Port =0xEF; delay(); Led_Cont_Port =0xFF; Led_Port =Led_Table[6]; Led_Cont_Port =0xDF; delay(); Led_Cont_Port =0xFF; Led_Port =Led_Table[7]; Led_Cont_Port =0xBF; delay(); Led_Cont_Port =0xFF; Led_Port =Led_Table[8]; Led_Cont_Port =0x7F; delay(); } }
#include unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void show(); void delay(); void main() { while(1) show(); } void show() { unsigned char i; for(i=0;i<8;++i) { P0=table[i+1]; P2=~(0x01<<i); delay(); P2=0xFF; } } void delay() { int i=100; while(i--); }
1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。 2、#include "reg51.h"首先写出单片机的头函数。 3、#include "intrins.h"输入位移函数。 4、unsigned int count=0,led;定义函数。 5、输入主函数,定义单片机的端口,写入延时函数。 6、中断跳转,使流水灯运行起来。
#include uchar code table[]={ 0xfe,0xfd,0xfb,0xf7,0xf0,0xe0,0xd0,0xb0,0x70,0x00 }; void delay(z) { uchar i,j; for(i=0;i<z;i++) for(j=0;j<110;j++); } void main() { uchar i=0; while(1) { if(i==8) i=0; P1=table[i]; i++; delay(100); } 试试看不对得话找我
这字形码是最基本的了,凡是学单片机的人都知道的,而且自己也可算出来的。 不只是0,就是十进制数的10个数码的字形码都应该知道的。 如下,就是0-9的十个数的字形码,也叫段码。 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f 那第一个就是0的字形码了。
目前国内外生产的LED数码管种类繁多、型号各异,大致有以下几种分类方式。 (1)按外形尺寸分类 目前我国尚未制定LED显示器的统一标准,产品型号一般由生产厂家自定。小型LED数码管一般采用双列直插式,大型LED数码管采用印制板插入式。 (2)根据显示位数划分 根据器件所含显示位数的多少,LED数码管可划分成一位、双位、多位LED显示器。一位LED显示器就是通常说的LED数码管,两位以上的一般称作显示器。 双位LED数码管是将两只数码管封装成一体,其特点是结构紧凑、成本较低(与两只一位数码管相比)。国外典型产品有LC 5012-11 S(红双、共阴),管脚排列如图1-75所示。 为简化外部引线数量和降低显示器功耗,多位LED显示器一般采用动态扫描显示方式,将各位同一笔段的电极短接后作为一个引出端,并且各位数码管按一定顺序轮流发光显示,只要位扫描频率足够高,就察觉不到闪烁现象。图1-76所示是LTC-612S型四位共阳极LED显示器的外形。 (3)根据显示亮度划分 LED数码管根据显示亮度有普通亮度和高亮度之分。普通LED数码管的发光强度》0.2mcd,而高亮度LED数码管的》Smcd,.提高将近一个数量级,并且后者在大约1mA的工作电流下即可发光。高亮度LED数码管典型产品有2ED102等。 (4)按字形结构划分 按照字形结构,LED数码管有数码管、符号管两种。常见符号管的外形如图1-77所示。其中,“+”符号管可显示正(+)、负(一)极性,“±1”符号管能显示+1或一1。图1-77 (c)中“米”字管功能最全,除显示运算符号+、一、×、÷之外,还可显示A~Z共26个英文字母,常用作单位符号显示。 此外,还可按共阳或共阴、发光颜色来分类。
自己拿万用表量一下就好了, 别人给的,不一定是对的。有些厂家多的东西很诡异的。
在单片机C语言中,数码管的段码定义了数码管的显示内容,比如0~9的显示段码分别定义为: 共阳:uchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9 共阴:uchar code ledtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 数码管位码定义了具体哪个数码管显示,也就是显示数码管的位置。比如:共8个数码管 共阳:uchar code WeiMa[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; 共阴:uchar code weima[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
8个数码管如果显示不同内容,那么一般需要动态扫描显示,才能消耗最小的硬件资源。 如果显示同一个内容,那么就直接送段码,位控全开就可以了。
从电路上看也没什么问题,还得看看程序才知道。 看了程序,你P2输出为80H,是个固定值,所以,只有右边的(接P2.6)会显示,左边的不会 亮。