一位数码管循环显示1-9的汇编程序怎么写?

作者&投稿:满柔 (若有异议请与网页底部的电邮联系)
一位数码管循环显示1-9的汇编程序怎么写?~

一位数码管循环显示1-9的汇编程序
ORG
00H
:单片机启动地址
START:MOV
R2,#0
;要显示的第一个数为0
MOV
R5,#10
;要循环显示的次数10次
MAIN:
MOV
DPTR,#TAB
;显示编码表格首地址
MOV
A,R2

取要显示的数在R2种
MOVC
A,@A+DPTR
;查表
求要显示的数的编码
MOV
P3,A
;送P3口驱动7段数码管显示
INC
R2
;修改要显示的下一个数
LCALL
DELAY

调用延时子程序(稳定显示)
DJNZ
R5,MAIN
;循环显示次数减1
不等于0
继续显示
JMP
START
;从新转主程序
开始新一轮的显示
DELAY:MOV
R0,#5
;延时子程序
DELAY0:MOV
R7,#200
DELAY1:MOV
R6,#250
DJNZ
R6,$
DJNZ
R7,DELAY1
DJNZ
R0,DELAY0
RET
TAB:DB
DB
0C0H,
0F9H,
0A4H,0B0H,99H,92H,82H,0F8H,
DB
80H,
90H,;0~9的显示编码表格
END
;结束汇编、

我的百度空间,里面,有这样的程序。

一位数码管循环显示1-9的汇编程序
ORG 00H :单片机启动地址
START:MOV R2,#0 ;要显示的第一个数为0
MOV R5,#10 ;要循环显示的次数10次
MAIN: MOV DPTR,#TAB ;显示编码表格首地址
MOV A,R2 ; 取要显示的数在R2种
MOVC A,@A+DPTR ;查表 求要显示的数的编码
MOV P3,A ;送P3口驱动7段数码管显示
INC R2 ;修改要显示的下一个数
LCALL DELAY ; 调用延时子程序(稳定显示)
DJNZ R5,MAIN ;循环显示次数减1 不等于0 继续显示
JMP START ;从新转主程序 开始新一轮的显示

DELAY:MOV R0,#5 ;延时子程序
DELAY0:MOV R7,#200
DELAY1:MOV R6,#250
DJNZ R6,$
DJNZ R7,DELAY1
DJNZ R0,DELAY0
RET
TAB:DB DB 0C0H, 0F9H, 0A4H,0B0H,99H,92H,82H,0F8H, DB 80H, 90H,;0~9的显示编码表格
END ;结束汇编、

ORG 0000H
SJMP START
ORG 0030H
START: MOV R0,#9
MOV DPTR,#TABLE
LOOP: MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
INC R0;减1
CJNE R0,#0FFH,LOOP;判别不相等转移
SJMP START

DELAY: MOV R5,#10
D1: MOV R6,#200
D2: MOV R7,#250
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
end


怎么在一位共阴极数码管循环显示1234
1、首先,在第1位显示1,然后在第2位上显示2。2、其次,在第3位上显示3,在第4位上显示4。3、最后,就如动画一样循环显示。

一位数码管循环显示1-9的汇编程序怎么写?
MOV P3,A ;送P3口驱动7段数码管显示 INC R2 ;修改要显示的下一个数 LCALL DELAY ; 调用延时子程序(稳定显示)DJNZ R5,MAIN ;循环显示次数减1 不等于0 继续显示 JMP START ;从新转主程序 开始新一轮的显示 DELAY:MOV R0,#5 ;延时子程序 DELAY0:MOV R7,#200 DE...

单片机如何控制LED数码管循环显示数字0至9
设计用PLC控制数码管循环显示数字0-9,控制要求如下(1)按下启动按钮后,数码管从0开始显示,1s后显示1,再过1s后显示2,…,显示9,1s后再重新屏示0.如此循环。(2)当按下停止孩钮后,数码管烟灭。7数码营实际上是由7只发光二极管组成,要显示0-9数字,首先确定数字与7只发光管(即PC的输出控制点)的...

什么是数码管的消影?单片机是如何做的?
这是数码管动态扫描显示方式造成的:当你在数码管上循环显示1,2时,(过程是在所有位的数码管上送出1的段码,然后只给第一位使能,就会在第一位上显示1,以此类推)因为人有视觉暂留,当显示完1后,再显示2,如果间隔时间过短,那就会感觉1、2两个数字是叠加在一起显示的:如果你在两位数码管...

用完整的汇编语言编写使数码管循环显示0,1,2,3,4,5,6,7,8,9的程序...
共阴数码管显示码 \/ uchar code display[10]= { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };\/ 延时函数 功能:晶振为12MHz时,延时count微秒 参数:count 返回值:void \/ void delay1Xms( uint count){ uint i,j;for(i=0;i<count;i++)for(j=0;j<120;j++);} ...

一位数码管循环显示0到9实验程序
while(1) {uchar b; P20=0; P0=tab[b]; delay_ms(1000);\/\/1s延时 b++; if(b==10) b=0; } }扩展资料: 数码管原理 数码管常用段数一般为7段有的另加一个小数点,还有一种数码管是类似于3位“+1”型。数码管位数有半位,1,2,3,4,5,6,8,10位等。数码管根据LED的接法不同分为共阴和共阳...

为什么数码管不能循环显示数字,只显示一个1呀?
数码管只显示一个1,是因为延时子程序为无限循环了,调延时子程序后就不再返回了。应改成:while(i--);另把x=0;放在for语句里为好。

什么是数码管的消影?单片机是如何做的?
当你在数码管上循环显示1,2时,(过程是在所有位的数码管上送出1的段码,然后只给第一位使能,就会在第一位上显示1,以此类推)因为人有视觉暂留,当显示完1后,再显示2,如果间隔时间过短,那就会感觉1、2两个数字是叠加在一起显示的:如果你在两位数码管上显示,...

proteus8位共阳数码管如何从0~7循环显示?
这个显示的设置方法如下:1、打开Proteus软件,选择“ISISSchematicCapture”模式,然后从元件库中拖拽一个8位共阳数码管和一个计数器(例如74HC161)到画布上。2、连接8位共阳数码管的引脚和计数器的引脚。3、双击时钟信号源(例如555计时器)的符号,设置时钟频率为适当的值(例如1Hz)。4、点击Proteus...

四个数码管循环显示1234
太长会出现数码管闪烁的情况)3.四位数码管依次点亮后,检测按钮,如果无信号,再次循环点亮四位数码管;4.如果检测按钮有信号,设定标志位,并且关闭数码管1秒钟,之后再点亮四位数码管1秒钟,如此循环 5.如此过程中依然检测按钮,如果再次有信号,清除标志位,循环点亮四位数码管 ...

桂平市13580612536: 汇编语言 数码管显示0 - 9.每个数字闪烁三次,再显示下一个数字,如此循环.求程序,, -
楚叙嘉泰: ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV R0,#0 MOV R1,#3LOOP:MOV DPTR,#TABLE MOV A,R0 MOVC A,@A+DPTR MOV P1,A LCALL DELAY MOV P1,#00H LCALL DELAY DJNZ R1,LOOP INC R0 MOV R1,#3 ...

桂平市13580612536: 用完整的汇编语言编写使数码管循环显示0,1,2,3,4,5,6,7,8,9的程序 -
楚叙嘉泰:程序如下: /********************************** 用P0口输出到数码管显示0-9 编写:jzy23 交流:paulucy@126.com *********************************/ #include<reg52.h> #define uint unsigned int #define uchar unsigned char /*********************** 共阴...

桂平市13580612536: 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: ;数码管显示...

桂平市13580612536: 51单片机汇编语言1位数码管显示0,1,2,……到9再从9,8,7……到0,反复显示. -
楚叙嘉泰: 反复循环是一个作法,0到9循环结束后再做9到0的循环,0到9时用INC加法,9到0用DEC减法就行了,分开做两个循环,先加后减,两个循环结束,再回到0到9实现大循环就好了.很容易的呀,既然会0到9的循环,自己都能做出来,那其它的也能做出来吗,自己独立完成是最好的煅炼了,不能什么事都靠别人,那样是不会提高进步的.

桂平市13580612536: 单个数码管循环显示0到9的程序. -
楚叙嘉泰: 主函数中的P2 = LED_CODE[led];led++;可以删去,没有任何的意义 ,因为定时和循环显示都在中断函数里面完成了,主函数只是起了一个初始化的作用,led++影响LED_CODE[led]的值,它使LED_CODE[10] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }数组中的10个值依次赋给P2,依次显示0——9的数字,即当led = 0时,P2接受0xC0,对应数码显示0,当led = 1时,P2接受LED_CODE[1]=0xF9,对应显示1,依次类推,从而显示0——9.

桂平市13580612536: 求: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 ...

桂平市13580612536: AT98C51单片机数码管显示0.0秒到9.9秒循环计时C语言程序 -
楚叙嘉泰: #include<reg51.h>#define uchar unsigned char uchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9 unsigned char times=0,sec=0,sec01,scanled; unsigned char disdat[2]; void dischg() { disdat[0]=sec01; disdat[1]=sec; } ...

桂平市13580612536: 通过8051单片机,在p1口接一位数码管,让数码管从0显示到9,循环显示.试画出AT89S51与外设的连接图 -
楚叙嘉泰: 这是一个十进制计数器,但是只循环显示0~9,显示位数可以设定,按键按下,开始循环.#include #define uchar unsigned char#define uint unsigned int#define dispseg P0#define dispbit P2#define disnum 3 uchar dispp[disnum],TimeCount,...

桂平市13580612536: 51单片机c语言设计,按键控制数码管,依次按下显示0到9循环 -
楚叙嘉泰: #include<reg51.h> sbit k1=P1^0; #define uint16 unsigned int #define uchar unsigned char uchar code shuzu[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay() { uint16 i=1000;while(i--); } void main() { uchar n ; P2=0xfe; P1=0xff; ...

桂平市13580612536: 求一汇编语言编程的计分器 当我按下p1.0口的开关 数码管显示1 再按一下+1一直加到9 -
楚叙嘉泰:ORG 0000H JMP BEGIN ORG 0030H TABLE: ; 共阴极数码管显示代码表 DB 3FH,06H,5BH,4FH,66H ;01234 DB 6DH,7DH,07H,7FH,6FH ;56789 DELAY: MOV R5,#20 DELAY1: MOV R6,#250 DJNZ R6,$ DJNZ R5,DELAY1 RET;------------------...

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