51单片机实用汇编程序库

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51 单片机实用程序库

4、1 流水灯

程序介绍:利用P1 口通过一定延时轮流产生低电平

输出,以达到发光二极管轮流亮得效果。实际应用中例如:

广告灯箱彩灯、霓虹灯闪烁。

程序实例(LAMP、ASM)

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN:

9

MOV A,#00H

MOV P1,A;灭所有得灯

MOV A,#11111110B

MAIN1:

MOV P1,A;开最左边得灯

ACALL DELAY ;延时

RL A ;将开得灯向右边移

AJMP MAIN ;循环

DELAY:

MOV 30H,#0FFH

D1: MOV 31H,#0FFH

D2: DJNZ 31H,D2

DJNZ30H,D1

RET

END

4、2 方波输出

程序介绍:P1、0 口输出高电平,延时后再输出低电

平,循环输出产生方波。实际应用中例如:波形发生器。

程序实例(FAN、ASM):

ORG 0000H

MAIN:

;直接利用P1、0 口产生高低电平地形成方波//////////////

ACALL DELAY

SETB P1、0

ACALL DELAY

10

CLR P1、0

AJMP MAIN

;////////////////////////////////////////////////// DELAY:

MOV R1,#0FFH

DJNZ R1,$

RET

五、定时器功能实例

5、1 定时1 秒报警

程序介绍:定时器1 每隔1 秒钟将p1、o得输出状态改变1

次,以达到定时报警得目得。实际应用例如:定时报警器。

程序实例(DIN1、ASM):

ORG 0000H

AJMP MAIN

ORG 000BH

AJMP DIN0 ;定时器0入口

MAIN:

TFLA G EQU34H ;时间秒标志,判就是否到50个

0、2 秒,即50*0、2=1 秒

MOVTMOD,#00000001B;定时器0 工作于方式

1

MOVTL0,#0AFH

MOV TH0,#3CH ;设定时时间为0、05 秒,定时

20 次则一秒

11

SETB EA;开总中断

SETB ET0;开定时器0 中断允许

SETBTR0 ;开定时0 运行

SETB P1、0

LOOP: AJMP LOOP

DIN0:

;就是否到一秒//////////////////////////////////////// INCC:INC TFLAG

MOV A,TFLAG

CJNE A,#20,RE

MOV TFLAG,#00H

CPLP1、0

;////////////////////////////////////////////////// RE:

MOV TL0,#0AFH

MOV TH0,#3CH ;设定时时间为0、05秒,定时

20 次则一秒

RETI

END

5、2 频率输出公式

介绍:f=1/t

s51 使用12M 晶振,一个周期就是1微秒使用定时器1

工作于方式0,最大值为65535,以产生200HZ 得频率为

例:

200=1/t:推出t=0、005秒,即5000微秒,即一个高电

平或低电平得时间为2500微秒。这样,定时值应设为

65535-2500=63035,将它转换为十六进制则为:F63B. 具体程序请瞧f200、asm

频率递增:

200HZ:63035:F63B

250HZ:63535:F82F

300HZ:63868:F97C

5、3 200HZ 频率输出

程序介绍:利用定时器定时,在P1、0 口产生200HZ

得频率输出.实际应用例如:传感器前级推动.

程序实例(F200、ASM):

ORG0000H

AJMP MAIN

ORG001BH

AJMP DIN0

MAIN:

CLR P1、0 ;产生一个低电平,实际上

就是从p1、0 口产生频率

MOV TMOD,#00010000B ;定时器1 工作于方式0

MOVTH1,#0F6H

MOV TL1,#3BH ;频率产生得时间,详细请

见频率公式

SETB EA;开总中断

13

SETB TR1 ;开定时器1运行

SETB ET1 ;开定时器1 允许

LOOP: AJMP LOOP ;无限循环

DIN0:CPL P1、0;产生一个高电平,

下次来就就是低电平(因为取反),一个高电平与一个低电平形成一个周期

MOV TH1,#0F6H

MOV TL1,#3BH ;重置频率产生时间

RETI ;返回

END

5、4 200——250HZ 变化频率输出

程序介绍:利用定时器定时时间得变化,由P1、0口

产生200—-250HZ 变化得频率。实际应用例如:传感器

前级推动、频率发生器。

程序实例(F250、ASM):

ORG 0000H

AJMP MAIN

ORG 001BH

AJMP DIN1

相关文档
最新文档