电工文库|51单片机的数码管循环显示编程实例

   更新日期:2017-03-27     来源:建材之家    作者:水电之家    浏览:38    评论:0    
核心提示:要求在数码管上循环显示数字 1~5。 范例分析:1.1硬件分析数码管采用共阳极结构。1.2软件设计设计中要求循环显示1~5,很显然应采用循环的方法来实现,最简单的方法是将1~5的段码依次由P0口送出。准备程序 2、控制转移类指令的特点及使用  (1)长转移指令LJMP Addr16功能:长距离无条件转移指令说明:三字节指令,它直接将指令中的16位常数

合格PE管材应达到的要求

推荐简介:(1)使用寿命:在特定的环境温度、压力的情况下(由施工标准觉定),PE管材可以具有产品标准的使用寿命(一般为50年)。(2)耐腐性能:厂家生产的PE管材能够耐大多数化学物品(酸碱盐)以及承受PH值范围在1-14的高浓度酸和碱的腐蚀的腐蚀,可以在浓度小于80%的浓盐酸中应用,在浓度小于75%的硫酸、浓度小于20%的硝酸中性能相当稳定。(3)抗磨性能:PE管材应具有一定的耐磨要求,即抗滑动摩擦能力......
水电之家讯:要求在数码管上循环显示数字 1~5。

范例分析:

1.1硬件分析

数码管采用共阳极结构。

1.2软件设计

设计中要求循环显示1~5,很显然应采用循环的方法来实现,最简单的方法是将1~5的段码依次由P0口送出。

准备程序



2、控制转移类指令的特点及使用

(1)长转移指令

LJMP Addr16

功能:长距离无条件转移指令

说明:三字节指令,它直接将指令中的16位常数装入PC,使程序无条件转移到指定的地址处执行。目标语句可以是程序存储器64KB空间的任何地方。

(2)绝对转移指令

AJMP addr11

例: 4002H AJMP MM

……

4600H MM: MOV A,#00H

注意:目标语句必须和当前语句同页。在51单片机中,64KB程序存储器分成32页,每页2KB(7FFH)。

(3)短跳转指令

SJMP 目标语句(rel)

例: 4060H SJMP LOOP

……

4090H LOOP:MOV A,#0FFH

……

注意:短跳转的目标语句地址必须在当前语句向前127(7FH)字节,向后128(80H)字节,否则在进行程序编译时会出错。

(4)变址寻址转移指令

JMP @A+DPTR

该指令主要用于多分支的跳转程序设计。跳转的目标地址是累加器A和数据指针DPTR之和,它可以是64KB存储空间的任何地方。

例 根据标志单元R2中的内容,分别转各个处理程序。

程序如下:

PJ1: MOV DPTR ,#TAB1

CLR C

MOV A,R2

ADD A,R2 ;(R2) ×2←A

JNC NADD

NC DPH ;(R2)×2>256时,16位数据指针高8位加1

NADD:JMP @A+DPTR

TAB1:LJMP PRG0 ;转处理程序0的首地址

LJMP RRG1



LJMP RRG n

(5)减1条件转移指令组

DJNZ Rn,目标地址(rel);如果(Rn)-1≠0,则程序跳转到目标语句,否则顺序执行下一条语句。

DJNZ direct,目标地址(rel);如果(direct)-1≠0,则程序跳转到目标语句,否则顺序执行下一条语句。

例 将8031内部RAM的40H~4FH单元置初值A0H~AFH。程序为:

START:MOV RO,#40H ;RO赋值,指向数据单元

MOV R2,#10H ;R2赋值,为传送字节数,十六进制数

MOV A,#0A0H ;给A赋值

LOOP: MOV @RO,A ;开始传送

INC,RO ;修改地址指针,准备传下一数地址

INC A ;修改传送数据值

DJNZ R2,LOOP ;如果未传送完,则继续循环传送

RET ;当R2的值减为0时,则传送结束

3、延时程序的设计和延时时间的计算方法

延时程序是一种应用较为广泛的小程序,一般采用多条语句循环执行来实现延时。

例1:设计一延时程序,延时时间为1ms(fosc=12MHz)。

例2:设计一延时250ms的程序

已有上例所举延时1ms子程序,调用250次,即得延时250ms子程序

DELAY2:MOV R3,#FAH

DEL3:ACALL DELAY1

DEL2: NOP

NOP

DJNZ R3,DEL3

RET

本段程序延时的时间为:

1+(2+993+2)250+2=249253us

误差不到1ms

思考:如何设计延时1s程序?



4、子程序的设计方法

4.1子程序:在程序中反复多次执行的程序段,可编写为子程序,在使用时通过主程序调用就可以使用它。这样不但可以减少编程工作量,也缩短了程序的长度。

4.2子程序的使用:

(1)子程序调用:

指令:ACALL ××× ;绝对调用,2KB范围

 LCALL ××× ;长调用,64KB范围

(2)子程序返回:

指令:RET ;子程序返回指令

 RETI ;中断子程序返回指令

ORG 2000H

MAIN: CLR P3.2

MOV P0,#0F9H

LCALL DEL

MOV P0,#0A4H

LCALL DEL

MOV P0,#0B0H

LCALL DEL

SJMP MAIN

DEL: MOV R7,#10

DEL1: MOV R6,#123

…………

DJNZ R7,DEL1

RET

END

5、循环程序设计的基本方法

循环程序:在程序中需要反复执行的程序段,为了避免在程序中多次的编写,可以通过利用条件转移或无条件转移指令来控制程序的执行。结构流程图一般如下图所示:

水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
小程序码
 
打赏
 
更多>文章标签:管材
更多>同类水电电工资讯
0相关评论

推荐图文更多...
点击排行更多...
最新视频更多...
推荐产品更多...
老姚之家 | 全景头条 | 照明之家 | 防水之家 | 防盗之家 | 区快洞察 | 潜江建材 | 仙桃建材 | 恩施建材 | 随州建材 | 咸宁建材 | 黄冈建材 | 荆州建材 | 孝感建材 | 荆门建材 | 鄂州建材 | 襄樊建材 | 宜昌建材 | 十堰建材 | 黄石建材 | 长沙建材 | 湘西建材 | 娄底建材 | 怀化建材 | 永州建材 | 郴州建材 |
建材 | 720全景 | 企业之家 | 移动社区 | 关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图 | 排名推广 | 广告服务 | 积分换礼 | RSS订阅 | sitemap | 粤ICP备14017808号-1
(c)2015-2017 BYBC.CN SYSTEM All Rights Reserved
Powered by 电工之家