8个数码管依次显示的程序

8个七段数码管依次显示0,1,2,3,4,5,6,7 按下开关后,再依次显示7,6,5,4,3,2,1,0 用的 是AT89C52的单片机 要汇编语言程序 要易懂 能操作可行 别全是错误

请问朋友你开关是电源开关还是控制键盘?
如果是电源开关,那么汇编程序好写。
程序如下:
P2口送位控制,P0口送显示数据(P1.0——P1.6对应数码管abcdefg),用于共阳数码管,
ORG 0000H;跳过中断入口
LJMP START;
ORG 0030H;主程序开始
START:MOV SP,#60;初始化堆栈
MOV DPTR,#TAB;显示数据表格首址送数据指针
MOV R0,#0FEH;位控制寄存器
MOV R1,#0;取码寄存器
MOV P2,#0FFH;
MOV R4,#255;延时控制
MOV P0,#0FFH;
MOV R2,#8;要显示8个数,既8个数码管同时显示01234567;
L1:MOV A,R1;
MOVC A,@A+DPTR;
MOV P0,A;送显示数据
MOV P2,R0;送位控制
DJNZ R4,$;延时
MOV P2,#0FFH;关显示
INC R1;显示下一个数据,
MOV A,R0;
RL A;下一位数码管显示
MOV R0,A;
DJNZ R2,L1;
AJMP START;
TAB:DB 0C0H;0
DB 0F9H;1
DB 0A4H;2
DB 0B0H;3
DB 99H; 4
DB 92H; 5;
DB 82H; 6
DB 0F8H;7
END
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-11-18
就是写一个查询日记,一个查询方面的日记,进行排列顺序。

单片机汇编语言8只数码管显示1-8
1、 数码管显示演示程序: 在8个LED数码管上依次显示1,2,3,4,5,6,7,8。引用端口:数码管数据p0,数码管控制p2;DIS_DIGIT EQU 40H;位选通值, 传送到P2口用于选通当前数码管的数值,; 如等于0xfe时, 选通P2.0口数码管DIS_INDEX DATA 41H;显示索引, 用于标识当前显示的数码管和缓冲...

8个数码管依次显示的程序
8个七段数码管依次显示0,1,2,3,4,5,6,7 按下开关后,再依次显示7,6,5,4,3,2,1,0 用的 是AT89C52的单片机 要汇编语言程序 要易懂 能操作可行 别全是错误 敬春利 | 浏览1161 次 |举报 我有更好的答案推荐于2017-12-16 20:23:59 最佳答案 请问朋友你开关是电源开关还是控制键盘?如果是电源开关...

用C语言编写一个在八个数码管上轮流显示1-8的程序
我这个程序是在PROTUES仿真上做的 你可以根据程序自己画电路图 很简单的 这里用到了两片74HC573 芯片 显示0---F#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit duan=P1^6;sbit wei=P1^7;uchar temp=0x01;uchar code tab[]={ 0xc0,0xf9,0xA4,0xb0,0x...

51单片机,8个数码管循环显示1-9的C语言程序。
假设8个数码管公共端均接地,同时显示1-9\\x0d\\x0a#include\\x0d\\x0a#include\\x0d\\x0a#defineucharunsignedchar\\x0d\\x0a#defineuintunsignedint\\x0d\\x0aucharcodeDSY_CODE[]=\\x0d\\x0a{\\x0d\\x0a0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x82,0xf8,0x80,0x90,0xff\\x0d\\x0a}...

编程实现共阳极八个数码管依次显示12345678
那个仿真图可以减化的,见下图,注意数码管的接法。改好的程序如下;include<reg51.h> include<intrins.h> define uchar unsigned char define unit unsigned int uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};\/\/0-9共阳数码管段码表 uchar led[]={1,2,3...

用C语言编写一个在八个数码管上轮流显示1-8的程序
我这个程序是在PROTUES仿真上做的 你可以根据程序自己画电路图 很简单的 这里用到了 两片 74HC573 芯片 显示0---F include<reg51.h> include<intrins.h> define uchar unsigned char define uint unsigned int sbit duan=P1^6;sbit wei=P1^7;uchar temp=0x01;uchar code tab[]={ 0xc0,0xf9...

求:8字数码管动态显示0到99的汇编程序
MOV R2,#0FFH A2: ACALL A1;调用显示子程序 DJNZ R2,A2 MOV R2,#0FFH INC 41H MOV A,41H CJNE A,#0AH,A2 MOV 41H,#00H INC 42H MOV A,42H CJNE A,#0AH,A2 LJMP STAER;满100就清零重新开始 A1: MOV P0,#0FFH MOV P1,#0FEH;取个位数的7段代码 MOV A,41H MOVC ...

用C语言编制一个在8个数码管上轮流显示1~8的程序(单片机8051)_百度知...
tab[]={} \/\/显示1--8的数码管编码;voide delay(uint a)\/\/延迟a ms 晶振伟11.0592 { uint i,j;for(i=a;i>0;i--);for(j=110;j>0;j--);} main(){ while(1){ \/\/在循环语句里执行显示函数 } } 说明:由于这个得看你的电路图具体情况,上面只是一个框框,你可以自己该就可以!

试编写程序:8位数码管动态显示数字AbcdEFgH
LATCH2=1; \/\/位锁存 LATCH2=0;DataPort=dofly_DuanMa[i]; \/\/取显示数据,段码 LATCH1=1; \/\/段锁存 LATCH1=0;Delay(600); \/\/ 扫描间隙延时,时间太长会闪烁,太短会造成重影,i++;if(8==i) \/\/检测8位扫描完全结束?如扫描完成则从第一个 i=0; } } \/*--- 延时函数...

求用c语言写的八位数码管动态显示程序,P0控制段,P2控制位。
\/* 共阳LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" *\/ uchar data dis_buff[8]={1,2,0,0,0,0}; \/\/待显示单元数据,共6个数据 unsigned long temp;\/***1毫秒延时程序***\/ delay1ms(int t){ int i,j;for(i=0;i<t...

相似回答