用汇编语言编写一个两个数码管为一组交替点亮一个数

作者&投稿:芝葛 (若有异议请与网页底部的电邮联系)
每两个数码管为一组交替点亮8的c语言程序~

数码管是要驱动,就是依靠硬件的连接的。。。。。。。

这个是动态显示的…虽然段的端口都一样,但位不一样,经过软件控制就可以达到动态显示的效果了


两个数码管交替显示一个数,是很简单的,以下例程,数码管分别为P0,P1口共阴极。交替显示0~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

LOOP4:  MOV   R6,#50H        ;延时20X20ms

LOOP5:  MOV   R7,#100

        DJNZ  R7,$

        DJNZ  R6,LOOP5

        DJNZ  R5,LOOP4

        RET

;---------------------------------------

BEGIN:

      MOV R2,#0

LOOP:

      MOV   DPTR,#TABLE


      MOV A,R2


      MOVC  A,@A+DPTR

      MOV   P0,A

      MOV P1,#00H

      LCALL DELAY


      MOV  P1,A

      MOV P0,#00H

      INC R2


     CJNE R2,#10,LOOP


     SJMP BEGIN

     END



假设P1接1组数码管,P2接一组数码管,不考虑点亮时间长短的话,汇编程序如下:

ORG 0
TT: MOV P1,#3FH
NOP
NOP
NOP
MOV P2, #6CH
NOP
NOP
NOP
SJMP TT
END


用汇编语言实现从键盘输入两个2位数并进行相加,最后输出结果
DATAS SEGMENT ;数据段 DATA1 DB 31H,32H,38H,34H,37H ;定义DATA1为被加数 DATA2 DB 34H,35H,39H,37H,31H ;定义DATA2为加数 DATAS ENDS STACKS SEGMENT ;堆栈段 STA DB 64 DUP(0) ;(伪指令)为STA预留64个字节的存储空间 SP_TOP DB 0 ;定义SP_TOP单元的数值为0 ...

试编写一个汇编语言程序,要求比较两字符串STRING1和STRI
DATAS SEGMENT str1 db 'hellowo'str2 db 'hellowo'str3 db 'match$'str4 db 'not match$';此处输入数据段代码 DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,ES:DATAS START:MOV AX,DATAS MOV DS,AX MOV EX,AX ;此处输入代码段代码 MOV CX,4 MOV DI,OFFSET STR1 MOV SI,OFFSET ...

简单汇编语言(两数相加)
补充回答:没有注意那两个数的大小已经超出16位寄存器所能容纳的范围,应该用双字定义、双字相加。已经修改。非常抱歉。Data segment d1 DD 99251 Data Ends Extra segment d2 DD -15962 d3 DD ?Extra Ends Code segment assume cs:Code,ds:Data,es:Extra start: mov ax,Data mov ds,ax mov ...

51单片机汇编语言程序,一个按键控制两个发光二极管的同时闪烁,交替闪烁...
;P1.0 P1.1接2LED,P2.0接一按键。上电2LED不亮,按第1 次键2LED同时以1S周期闪烁,按第2 次 2LED轮流1S闪烁...同此循环。;11 04 17 ORG 00H AJMP MAIN ORG 0BH AJMP T0INT ORG 30H MAIN:MOV TMOD,#01H ;MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET0 MOV R0,#10 K...

用汇编语言编写一段程序实现两个六位的十进制数的加法,把运算结果显 ...
num equ 6 ;数字位数(最好为偶数),若为奇数需稍微改动程序 msg1 db 'Enter the first number(ESC to exit) : ','$'msg2 db 'Enter the second number(ESC to exit) : ','$'msg3 db 0dh,0ah,'ERROR! Enter again(ESC to exit) : ','$'num1 db num dup(0) ;存第一个...

如何用汇编语言实现两个64位二进制数的相乘
0 MOV CX,64 @0: SHR WORD PTR Y+6,1 RCR WORD PTR Y+4,1 RCR WORD PTR Y+2,1 RCR WORD PTR Y,1 JNC @1 ADD WORD PTR Z,AX ADC WORD PTR Z+2

用汇编语言编写:从键盘读入两个英文单词,按字典顺序排序后输出。_百度...
jz input2 mov [bl],al ;输入字符写入内存 inc bl ;偏移加1 jmp input input2:mov al,01h ;输入第二个单词,同第一个一样 int 21h cmp al,odh jz PX ;输入完毕开始比较(PX是比较)mov [bh],al int bh jmp input2 PX:mov cl,bl ;将BL和BH的指针存入CL,CH中 ...

(汇编语言)编写一个程序,实现两个三字节无符号数DATA1和DATA2的相加...
assume cs:code,ds:data data segment data1 db 12h,34h,56h ;按照高高低低的顺序保存在内存中的,所以是563412h,下同 data2 db 0abh,0cdh,0efh ans dd ?data ends code segment start:mov ax,data mov ds,ax mov bx,offset ans mov di,offset data1 mov si,offset data2 mov...

用汇编语言编写:由键盘输入两个整数val1和val2,输出稍大于val1且是val...
CODE SEGMENT ASSUME CS:CODE ORG 100H START: JMP BBB VAL1 DW ? VAL2 DW ? VAL3 DW ? LFCR DB 13,10,'$' BBB: PUSH CS POP DS PUSH CS POP ES ...

用单片机汇编语言编写两个程序(越简单越好)
ORG 0000H START: MOV A,P0 CJNE A,#0FFH,PL0 SJMP START PL0: LCALL DELAY MOV A,P0 CJNE A,#0FFH,PL1 SJMP START PL1: JNB ACC.0,K1 JNB ACC.1,K2 JNB ACC.2,K3 JNB ACC.3,K4 JNB ACC.4,K5 JNB ACC.5,K6 JNB ACC.6,K7 JNB ACC.7,K8 LJMP START K1: MO...

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

鄂托克旗17264115074: 如何控制两个数码管显示00 - 60的汇编语言程序? -
乜晓感冒: display(second)子函数与两个数码管的连接方式有关 void main(void )//主程序 { TMOD=0x01;// 定时器1工作方式一 ET0=1; EA=1; TH0=(65536-10000)/256;//定时10ms TL0=(65536-10000)%256; TR0=0;//上电先不启动 while(1) { if(key1==0)//判...

鄂托克旗17264115074: 单片机求助,用汇编语言写一个双位数码管0到99循环 -
乜晓感冒: 一个数码管显示0005~01秒,再换另一个显示,他俩轮流这么显示着(再多几个也可以),这种交替人眼看不出来的单片机求助,用汇编语言写一个双位数码管0到99循环

鄂托克旗17264115074: 数码管倒计时显示20秒.我的数码管是2个的共阳.用汇编语言 -
乜晓感冒: 直接静态显示吧,不做扫描了,用延时做1S计数,也不做定时了. 共阳的数码管代码从0-9是:3F,06,5B,4F,56,6D,7D,07,7F,6F 你的共阳数码管没有控制阳极的话,复位是全亮的,单片机复位后各IO口都是高电平. P1口是个位 P2口是十位 ...

鄂托克旗17264115074: 用汇编语言编写两个数码显示管从0显示到59循环,刚开始学汇编,求大神指点 -
乜晓感冒: DAT EQU 30HSCANLED EQU 31HORG 0000HLJMP MAINORG 000BHLJMP T0ISRORG 0030HMAIN: MOV SP,#5FH MOV TMOD,#01H MOV TH0,#0F4H MOV TL0,#048H MOV SCANLED,#0 MOV SDAT,#0 SETB EA SETB ET0 SETB TR0 ...

鄂托克旗17264115074: 设计一个由两位数码管组成的静态显示电路,显示当前时刻 -
乜晓感冒: 每8个IO口驱动一位数码管,只要16个IO口就行了.如用P1口驱动一个数码管,再用P2口驱动另一个数码管.显示时,只要往两个口上送数就可以了.

鄂托克旗17264115074: 单片机 8052 AT89C52 应用技术 汇编语言源代码设计 要求:用两个七段数码管完成 -
乜晓感冒: ORG 0000HLJMP MAINORG 000BHLJMP T0ISRORG 0030HMAIN: MOV TMOD,#01H MOV TH0,#HIGH(65536-10000) MOV TL0,#LOW(65536-10000) SETB ET0 SETB EA MOV R1,#0 MOV R2,#0 MOV R3,#0 CLR 00H SJMP $T0ISR: CLR TR0...

鄂托克旗17264115074: 89C52单片机两个(8)共阳数码管汇编编程,注:(端口从P0.0开始) -
乜晓感冒: #include "regx52.h" unsigned char code Tab[]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09}; void Delay(unsigned int uiCnt) { while(uiCnt>0)uiCnt--; } Display(unsigned char ucVar) { unsigned char ucTemp; ucTemp=ucVar; ucTemp=...

鄂托克旗17264115074: 求C51单片机汇编语言控制两位数码管倒计时程序,最好能说明下思路 -
乜晓感冒: 查询方式:ORG 00H START: MOV R0,#20 MOV R4,#60 LP0: MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HMOV DPTR,#TABLE SETB TR0 LP1: JBC TF0,LP2 ACALL DISPAJMP LP1 LP2: DJNZ R0,LP0 CLR TR0 MOV R0,#20 MOV ...

鄂托克旗17264115074: AT89C51单片机怎么用汇编语言让4个数码管同时显示1234? -
乜晓感冒: 1、首先我们先打开keil. 2、接着,我们要定义好库函数,void main(){while(1)//不断循环显示{dispaly();}}void dispaly(){P0=smg[1];//选择显示数字几,P1=0x7f;//控制是否点亮数码管. 3、接着,我们加上一条循环语句.delay(5);//显示5...

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