共阴极数码管0到99汇编语言程序怎么编

作者&投稿:贯耍 (若有异议请与网页底部的电邮联系)
四段共阴数码管从00到99的按键C语言程序~

不知道你要不要用按键,我编了下面一个程序,Proteus仿真通过了,循环显示从00-99

#include
#define uchar unsigned char
sbit wei1=P2^0;
sbit wei2=P2^1;
sbit wei3=P2^2;
sbit wei4=P2^3;

uchar code dulatab[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f}; //数字编码0-9
uchar code welatab[]={0xf7,0xfb,0xfd,0xfe};//位控制字

void delay(uchar time)
{
uchar i,j;
for(i=0;i<time;i++)
{
for(j=0;j<110;j++)
;
}
}

void writeled(uchar num,uchar addr)
{
//关显示
P2=0xff;
//送数据
P0=dulatab[num];
//开显示
P2=welatab[addr];
delay(4);
}

void display(uchar num)
{
uchar x,y;
x=num/10;
y=num%10;
writeled(x,1);
writeled(y,0);


}
void main()
{
uchar number,i;
while(1)
{
number++;
if(number==100)
{
number=0;
}
i=80;
while(i--)
{
display(number);
}
}
}

1、新建项目,做好准备。

2、数码管段选表。

3、延时函数。

4、uchar i; 变量i;wk = 1;打开位选,P0 = 0xf7;1111 0111第4位数码管显示,wk = 0;关闭位选。

5、while(1) //死循环效果{} 。

6、dk = 1;//打开段选,P0 = leddata[i];,dk = 0;//关闭段选,delay(100);//延时效果。

7、选择效果,限制i值的循环范围。

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
SETB ET0
SETB EA
MOV R0,#9
MOV R1,#9
MOV R2,#0
MOV R3,#9
CLR 00H
CLR 01H
LOOP:
JB P1.0,LP01
JNB P1.0,$
SETB TR0
CLR 01H
SJMP LOOP0
LP01:
JB P1.1,LP02
JNB P1.1,$
SETB 01H
SJMP LOOP0
LP02:
JB P1.2,LOOP0
JNB P1.1,$
CLR TR0
MOV P3,#0FDH
MOV P2,#0
MOV P3,#0FEH
MOV P2,#0
SJMP MAIN
LOOP0:
JB 00H,LOOP1
MOV A,R0
SJMP LOOP2
LOOP1:
MOV A,R1
LOOP2:
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV R3,A
SJMP LOOP
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
SETB TR0
JB 01H,T0C
INC R2
T0C:
CPL 00H
MOV A,R3
JB 00H,T001
MOV P3,#0FDH
MOV P2,A
SJMP T002
T001:
MOV P3,#0FEH
MOV P2,A
T002:
MOV A,R2
CJNE A,#100,T0E
MOV R2,#0
MOV A,R0
JZ T003
DEC R0
SJMP T0E
T003:
MOV A,R1
JZ T004
DEC R1
MOV R0,#9
T0E:
RETI
T004:
CLR TR0
RETI
TABLE: ; 共阴极数码管显示代码表
DB 3FH,06H,5BH,4FH,66H ;01234
DB 6DH,7DH,07H,7FH,6FH ;56789
END


4位共阴极数码管单片机驱动
现在程序到单片机后:数码管会从0开始计数,间隔略小于1s。最大值是9999 过了9999后就会显示乱码,可以添加函数对于大于9999的数进行处理。源代码 #includeSTC12C5A60S2.H unsigned char DIG4_TABLE[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x...

共阴极数码管,显示“9”,字段码是多少?
可以看到:在共阴极电路中,笔画要亮就需要施加高电平,如点亮b笔画,则 b=1;同理,在共阳极电路中,笔画要亮就需要施加低电平,如点亮g笔画,则 g=0;字段码的形成,通常是取字节的从低位到高位分别对应 a、b、c、d、e、f、g;那么要显示“9”,则共阴极时 a=b=c=d=f=g=1,e=0;...

数码管的问题
下面一排管脚从左到右是e d GND c dp GND 是地,dp就是小数点。如果是两位以上的,它的片选就相当于这个一位的GND,也就是公共端。那么数码管的一个日字从上面一行顺时针数下来(口)就是abcdef,中间那一行是g。比如显示2则abdeg的值为零,其它为一,那么八段的二进制排列下来就是00100101,...

汇编语言共阴极8位数码管计数 程序如下 ​
你的仿真图中的两位数码的阴极同时接地了,就会同时显示11,22,33,44...必须要采用两位动态扫描的方式来显示才行的。所以,你的仿真图和程序都要修改。仿真图如下:程序如下:DAT0 EQU 30H;30H地址命名为DAT0 ORG 0000H LJMP MAIN ;主程序入口 ORG 0003H LJMP EXINT0 ;中断0子程序 MAIN:...

共阴数码管2位引脚
1、完全可用万用表测出来的,二位与一位差不多的,都有两个共阴引脚,如下图。2、共阴极数码管的注意事项:(1)共阴极数码管表面不要用手触摸,不要用手去弄引脚。(2)焊接温度:260度;焊接时间:5S  。(3)表面有保护膜的产品,可以在使用前撕下来。

八段共阴极数码管显示0的字段码是
0x3f。因为共阴极数码管显示为0,而到发光二极管的阳极为高电平时,相应的段就会被显示就是0X3F。共阴极组是一组拥有阴极公共端的电子元器件,常用于整流电路,整流电路的任务是将交流电变换为直流电。

为什么共阴极数码管为1高电平是亮,而led却正好相反呢
这个是共阴极的数码管等效电路。你看了图之后应该就明白了。其实就是发光二极管的阵列。希望能够帮到你。不明白的追问我。

六位一体的共阴极数码管,上面五个,下面九个的怎么辨别各个引脚_百度...
如果找不到相关技术资料,只好用手工方法测试了。你有5V的电源吗?没有,用两节电池,总会有吧。2节电池是3V。已知是共阴数码管了,就先找一个阴极吧。把电池的负极接到某个脚上,最好按顺序来测试,如从上面的第1脚开始,边测边记录。负极先接上第1脚(假设是阴极),电池正极串联一个100殴的...

【求助】51单片机的数码管是共阴极的为什么是0点亮?不是应该是高电平...
看你这个电路图。应该是这样的:如果是动态扫描输出的各方面,上面的段选通那里输出高电平来控制8段数码管的那个段亮,下面的位选通是根据不同的时间轮流输出一位低电平(其它高电平),来达到循环点亮6个数码管。所以才像你说的那样,低电平点亮。

数码管显示数字原理?
一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

津南区15155713448: 0到99可增减计数器的单片机系统.求汇编语言程序.在线等.特急. -
施力萨典: Count EQU 30H KEY1 BIT P3.6 KEY2 BIT P3.7 ORG 0 START: MOV Count,#00H NEXT: MOV A,Count MOV B,#10 DIV AB MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P2,#02H MOV P0,A LCALL DELAY MOV A,B MOVC A,@A+DPTR ...

津南区15155713448: 0到99可增减计数器的单片机系统.求汇编语言程序.在线等.特急. -
施力萨典: Count EQU 30H ; 应该这样试试SP1 BIT P3.7SP2 BIT P3.6 ORG 0START: MOV Count,#00H...

津南区15155713448: 求:8字数码管动态显示0到99的汇编程序 -
施力萨典: 写那么长干嘛,p1口接数码管扫描.p0口接8段字符显示,已测试正常. ORG 0000H STAER: MOV DPTR,#K1MOV 41H,#00HMOV 42H,#00HMOV R2,#0FFH A2: ACALL A1;调用显示子程序DJNZ R2,A2MOV R2,#0FFHINC 41HMOV ...

津南区15155713448: 单片机求助,用汇编语言写一个双位数码管0到99循环 -
施力萨典: 一个数码管显示0005~01秒,再换另一个显示,他俩轮流这么显示着(再多几个也可以),这种交替人眼看不出来的单片机求助,用汇编语言写一个双位数码管0到99循环

津南区15155713448: 用51单片机汇编语言十进制0 - 9计数器 -
施力萨典: ORG 0000H JMP BEGIN ORG 000BH LJMP T0ISR ORG 0030H TABLE: ; 共阴极数码管显示代码表 DB 3FH,06H,5BH,4FH,66H ;01234 DB 6DH,7DH,07H,7FH,6fh ;56789 BEGIN: MOV TMOD,#06H MOV TH0,#0FFH MOV TL0,#0FFH SETB ...

津南区15155713448: AT89S51单片机怎么用汇编语言让数码管从0到9显示 -
施力萨典: START:MOV R5,#00H ;次数计数单元R5,后面的程序应该看得懂了,都是教科书式的 MAIN: MOV A,R5 MOV DPTR,#TAB MOV A,@A+DPTR LCALL DISPLAY CJNE,R5,#10,START ;次数到,从头再来 LJMP MAIN DISPLAY: ;数码管显示...

津南区15155713448: 用汇编语言编写一个两个数码管为一组交替点亮一个数 -
施力萨典: 两个数码管交替显示一个数,是很简单的,以下例程,数码管分别为P0,P1口共阴极.交替显示0~9. ORG 0000HJMP BEGINORG 0030H TABLE: ; 共阴极数码管显示代码表DB 3FH,06H,5BH,4FH,66H ;01234DB 6DH,7DH,07H,7FH,6fh ;...

津南区15155713448: 51单片机,如何编写显示数码管00到99,可用电脑键盘(串行口)暂停,继续的程序(用汇编语言) -
施力萨典: MOV 31H,#00H MOV 32H,#00H MOV 33H,#01H MOV 34H,#06H MOV 35H,#03H MOV 36H,#02H ACALL D0 JMP $-2D0: MOV R0,#31H MOV R2,#11111110B MOV DPTR,#TABD1: ORL P1,#00111111B MOV A,@R0 MOVC A,@A+DPTR ...

津南区15155713448: 要实现两位数码管自加到99代码怎么写 -
施力萨典: //用两个数码管显示0到99.十位数为0的时候,显示为空白.//用两个按键控制数值的加减,按一次K1数字加1,按一次K2数字减1,数值的范围是从0到99.//再用一个接近开关控制数字的减小,接近开关感应一次数字减1,减到0停止.// C语言...

津南区15155713448: 你刚才回答的那个0 - 99计数问题,求汇编语言. -
施力萨典: ;0~99 P3.0 清0键 ORG 00H AJMP MAIN ORG 30H MAIN:MOV DPTR,#TAB MOV TMOD,#06H MOV TH0,#00H MOV TL0,#00H SETB TR0 KEY:ACALL DISP JB P3.0,$-2 ACALL DISP JNB P3.0,$-2 MOV TL0,#0 AJMP KEY DISP:MOV A,TL0 ;...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网