单片机用汇编写两个数码管显示0到99循环的程序

单片机用汇编写两个数码管显示0到99循环的程序,第1张

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

2、数码管段选表。

3、延时函数。

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

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

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

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

一位数码管循环显示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、首先我们先打开keil。

2、接着,我们要定义好库函数,void main(){while(1)//不断循环显示{dispaly()}}void dispaly(){P0=smg[1]//选择显示数字几,P1=0x7f//控制是否点亮数码管。

3、接着,我们加上一条循环语句。delay(5)//显示5毫秒P0=0XFF//消影P0=smg[2]P1=0xbfdelay(5)P0=0XFFP0=smg[3]。

4、最后,我们把先前定义的延时语句delayms写好。

5、最后,点击这里进行编译,生成一个hex文件。

6、如果这里无错误警告的话,就说明我们的程序写对了,那我们就可以点亮动态数码管了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7815941.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存