找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

我这个怎么只能输出方波,而且别的按键都失效

[复制链接]
admin 发表于 2012-9-2 06:02:27 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
ORG 0000H
START: LJMP MAIN
ORG 0003H ;外部中断 入口
LJMP INSER ;转到中断服务程序
ORG 0030H
MAIN: MOV DPTR,#1FFFH ;DAC0832地址
SETB EX0 ;允许 中断
SETB IT0 ;负边沿触发方式
SETB EA ;开中断
HERE: JB 20H.0,ST ;锯齿波处理
JB 20H.1,TRI ;三角波处理
JB 20H.2,SQ ;方波处理
JB 20H.3,TXB ;梯形波处理
SJMP HERE ;等待中断

INSER: JNB P1.0, LL1 ;中断服务程序,查询按键
SJMP L1
LL1: MOV 20H,#00H
SETB 20H.0 ;设置锯齿波标志
SJMP RT
L1: JNB P1.1, LL2
SJMP L2
LL2: MOV 20H,#00H
SETB 20H.1 ;设三角梯波标志
SJMP RT
L2: JNB P1.2, LL3
SJMP L3
LL3: MOV 20H,#00H
SETB 20H.2 ;设置方波标志
SJMP RT
L3: JNB P1.3, LL4
SJMP RT
LL4: MOV 20H,#00H
SETB 20H.3 ;设置梯形波标志
RT: RETI ;中断返回

ST:
MOV A,#00H
LOOPP: MOVX @DPTR,A ;启动D/A转换
INC A
JB 20H.0,LOOPP ;连续输出波形
LJMP HERE

TRI:
MOV A,#00H
UP: MOVX @DPTR,A ;启动D/A转换
INC A ;上升沿
CJNE A,#0FFH,UP
DOWN: MOVX @DPTR,A ;启动D/A转换
DEC A ;下降沿
CJNE A,#00H,DOWN
JB 20H.1, UP ;连续输出波形
LJMP HERE

SQ:
MOV A,#00H
MOVX @DPTR,A ;DAC输出低电平
ACALL DELAY ;延时1
MOV A,#0FFH
MOVX @DPTR,A ;DAC输出高电平
ACALL DELAY ;延时2
JB 20H.2, SQ ;连续输出波形
LJMP HERE

TXB:
MOV A,#00H
MOVX @DPTR,A
ACALL DELAY
LOOP: MOVX @DPTR,A
INC A
CJNE A,#0FFH,LOOP
ACALL DELAY
MOVX @DPTR,A
LOOP1: DEC A
MOVX @DPTR,A
CJNE A,#00H,LOOP1
MOVX @DPTR,A
ACALL DELAY
JB 20H.3,LOOP

DELAY: MOV R4,#0FH ;延时子程序
LOOP11: MOV R5,#50H
LOOP22: NOP
NOP
NOP
DJNZ R5,LOOP22
DJNZ R4,LOOP11
RET
END
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 02:22 , Processed in 0.060035 second(s), 12 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表