汇编语言 控制数码管 基于89C51

请问能不能帮忙编写下图的汇编语言。

主要实现的是当P2.0-P2.7负责共阳数码管显示数值,P0.1和P0.2控制两个数码管(即0-9,第一个数码管显示0,第二个0-9;当10-19时,第一个数码管显示1,第二个0-9;当20-29时,第一个数码管显示2,第二个0-9,以此类推到99,回到00)

一个简单的仿真实例,修改一下 I/O 端口就可以了。

仿真试试。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-01
ORG 00H
MOV P0,#00H
MOV R0,#00H
MOV R1,#100
MOV B,#10
MOV DPTR,#TAB
LOOP: MOV A,R0
DIV AB
MOVC A,@A+DPTR
MOV P2,A
SETB P0.2
ACALL YS ;延时子程序(略)
CLR P0.2
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
SETB P0.1
ACALL YS ;延时子程序 ...
CLR P0.1
INC R0
DJNZ R1,LOOP
YS: ....
RET
TAB: DB 3CH,......... ;字符码(略)
END追问

延时能不能用下面这个
YS: MOV R3,#14H
YS2: LCALL DELAY
DJNZ R3,YS2
RET

追答

可以的
不过DELAY 也要写清楚

追问

那我换成
YS: MOV R6,#20
YS2: MOV R7,#250
DJNZ R7,$
DJNZ R6,YS2
RET
可以不

追答

KEYI !
只是个小延时,不能太长,否则会影响显示,
可以再短些.不用外循环(R6)
以实际需要来调长短,
显示字符不闪就可以.

追问

那你帮我写写完吧,拜托了

汇编语言 控制数码管 基于89C51
一个简单的仿真实例,修改一下 I\/O 端口就可以了。仿真试试。

Protues 任务:89c51单片机控制两个数码管显示0~99(延时不要太短)_百 ...
② 共阴极管的控制端接电源和共阳极管的控制端接地。

急求基于单片机AT89C51的多功能数字电子钟的汇编程序,高手进!~_百度知...
用89C51控制3个HC595,前两个595接8段数码显示管,显示“0”~“9”每秒跳动一次.第3个HC595接8个LED灯,每隔1秒闪烁1次.include<at89x52.h> include<intrins.h> define uchar unsigned char define uint unsigned int uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90...

我用89C51单片机控制数码管四位的共阳的。为什么要把对应的位选和段选...
楼主的三极管,起倒相的作用。它把位选输出的低,变成了高,送到公共的阳极上。此时,段选再输出低,就满足了共阳数码管的发光条件。

...实现3个数码管循环闪亮(显示为8),相当于3个LED流水灯,用89c51...
网上的这种程序比较多,也不是很难,自己学学可以编的。下面是1~8数字循环显示 ;仿照例7.7 ORG 0000H LJMP MAIN ORG 0030H MAIN:;CLR P2.5 ;CLR P2.7 MOV A,#03H ;控制字 MOV DPTR,#6100H;8155的命令状态口地址 MOVX @DPTR,A DISPLY:MOV R0,#8 MOV R3,#0FEH MOV A,R3 ...

89c51单面机c语言时钟控制器编程
89c51单面机c语言时钟控制器编程、、、就是在数码管上每隔一秒钟显示该秒对应的数字、、当显示第60秒时、、蜂鸣器响一下、、、依次循环就是一个简易的分秒计时器用c语言怎么编程啊那... 89c51单面机c语言时钟控制器编程、、、就是在数码管上每隔一秒钟显示该秒对应的数字、、当显示第60秒时、、蜂鸣器响一下、...

基于单片机89C51的二进制输入转化为十进制,显示在LED上,汇编或者C都可 ...
给你一个2 位共阴数码管,动态显示的程序 。晶振、复位及电源电路未画出,你自己补上。COUNT EQU 50H SP1 EQU P3.6 SP2 EQU P3.7 ORG 0 AJMP MAIN ORG 30H MAIN: MOV COUNT,#0 K1: ACALL DISP JB SP1,K2 LCALL DISP JB SP1,$;-3 LCALL DLY LCALL DISP JNB SP1,$-3 INC ...

如何用c语言编程实现用89c51单片机控制8个led灯像电子时钟那样显示...
8个LED灯怎么可能显示出电子时钟! 8个数码管还差不多。

89C51用keil c51写程序时要用某一个口的某一位时必须要先定义位变量吗...
看你用什么语言写了,如果用汇编的话不用定义,直接用就行了,如:p1.0、p2.2……如果用C编写的话,应该先把头文件加进来,#include<reg51.h>,加进来后,如果不定义端口的话:P1、P1^1,这里的P是大写的……当然也可以自己定义了……如:sbit R_A=P2^0;等等……...

用89c51单片机汇编语言能否做到LED灯在闪同时数码管(共阳8段码)倒计时...
可以的,做好定时器中断的时间间隔。让数码管扫描的频率大于肉眼分辨频率就行了。

相似回答
大家正在搜