微机 信号发生器汇编.docx

上传人:b****5 文档编号:2927945 上传时间:2022-11-16 格式:DOCX 页数:23 大小:18.68KB
下载 相关 举报
微机 信号发生器汇编.docx_第1页
第1页 / 共23页
微机 信号发生器汇编.docx_第2页
第2页 / 共23页
微机 信号发生器汇编.docx_第3页
第3页 / 共23页
微机 信号发生器汇编.docx_第4页
第4页 / 共23页
微机 信号发生器汇编.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

微机 信号发生器汇编.docx

《微机 信号发生器汇编.docx》由会员分享,可在线阅读,更多相关《微机 信号发生器汇编.docx(23页珍藏版)》请在冰豆网上搜索。

微机 信号发生器汇编.docx

微机信号发生器汇编

程序清单和程序注释

 

;***************根据CHECK配置信息修改下列符号值*******************

IOY0EQU0E400H;片选IOY0对应的端口始地址

IOY1EQU0E440H;片选IOY0对应的端口始地址

;*****************************************************************

MY8255_AEQUIOY0+00H*4;8255的A口地址

MY8255_BEQUIOY0+01H*4;8255的B口地址

MY8255_CEQUIOY0+02H*4;8255的C口地址

MY8255_MODEEQUIOY0+03H*4;8255的控制寄存器地址

DA0832EQUIOY1+00H*4;DA0832的端口地址

STACK1SEGMENTSTACK

DW256DUP(?

STACK1ENDS

 

DATASEGMENT

DTABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

SINTABDB19H,1EH,22H,27H,2BH,2EH,31H,32H;正弦函数表

DB33H,32H,31H,2EH,2BH,27H,22H,1EH

DB19H,14H,0FH,0BH,07H,04H,02H,01H

DB00H,01H,02H,04H,07H,0BH,0FH,14H

STR1DB'press1tooutputwave',0AH,0DH

DB'press2toquit',0AH,0DH,0AH,0DH,0AH,0DH,'$'

SQRTABDB00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H

DB13H,13H,13H,13H,13H,13H,13H,13H

DB13H,13H,13H,13H,13H,13H,13H,13H

STR2DB'press1tosinwave',0AH,0DH

DB'press2torecangle',0AH,0DH

DB'press3tosquare',0AH,0DH

DB'press4totriangle',0AH,0DH

DB'press5toreturn0',0AH,0DH,0AH,0DH,0AH,0DH,'$'

STR3DB'press1toreducefecency',0AH,0DH

DB'press2toincreasefecency',0AH,0DH

DB'press3toreduceamplitude',0AH,0DH

DB'press4toincreaseamplitude',0AH,0DH

DB'press5toreturn0',0AH,0DH,0AH,0DH,0AH,0DH,'$'

SQUDB'outputsqurewavenow.......',0AH,0DH,0AH,0DH,'$'

TRIDB'outputtrianglewavenow.......',0AH,0DH,0AH,0DH,'$'

RECDB'outputrecanglewavenow.......',0AH,0DH,0AH,0DH,'$'

SINDB'outputsinwavenow.......',0AH,0DH,0AH,0DH,'$'

AMPLDB3

FENCDB3

TIAOFUDB?

TIAOPINDB?

SQUAREDB?

KEYASSDB?

DATAENDS;键值表,0~F对应的7段数码管的段位值

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVSI,3000H;建立缓冲区,存放要显示的键值

MOVAL,00H;先初始化键值为0

MOV[SI],AL

MOV[SI+1],AL

MOV[SI+2],AL

MOV[SI+3],AL

MOVDI,3003H

 

MOVDX,MY8255_MODE;初始化8255工作方式

MOVAL,81H;方式0,A口、B口输出,C口低4位输入

OUTDX,AL

PREBEGIN:

MOVAH,09H;显示第一个菜单

MOVDX,OFFSETSTR1

INT21H

MOVSI,3000H;把数码管清0

MOVAL,00H;先初始化键值为0

MOV[SI],AL

MOV[SI+1],AL

MOV[SI+2],AL

MOV[SI+3],AL

MOVDI,3003H

BEGIN:

CALLDIS;显示刷新

CALLGETKEY1;在第一菜单下,等待按键的按下

MOVSI,OFFSETKEYASS

MOVAL,[SI]

CMPAL,1;按下第二个键就退出

JZQUIT

CMPAL,0;按下第一个键进入第二个菜单

JZLBEGIN

JMPBEGIN;不是按下第一或二键就继续等待输入

LBEGIN:

MOVAH,09H;显示第二个标题

MOVDX,OFFSETSTR2

INT21H

LBEGIN4:

CALLGETKEY1;第二个菜单等待输入

MOVSI,OFFSETKEYASS

MOVAL,[SI]

CMPAL,4;第5个键退出

JZLBEGIN1

CMPAL,0;第一个键到sin(正弦)函数

JZLBEGIN6

CMPAL,1;第二个键到rec(锯齿)函数

JZLBEGIN7

CMPAL,2;第三个键到squ(方波)函数

JZLBEGIN2

CMPAL,3;第四个键到tri(三角波)函数

JZLBEGIN5

JMPLBEGIN3;其他键则跳到继续等待输入

LBEGIN2:

CALLSQUREW

JMPPREBEGIN

LBEGIN5:

CALLTRIANW

JMPPREBEGIN

LBEGIN6:

CALLSINW

JMPPREBEGIN

LBEGIN7:

CALLRECW

JMPPREBEGIN;执行完输出波形之后回到第一个菜单

LBEGIN3:

JMPLBEGIN4

LBEGIN1:

MOVAH,1;判断PC键盘是否有按键按下

INT16H

JZPREBEGIN

QUIT:

MOVAX,4C00H;返回到DOS

INT21H

 

;上面是主程序

 

TRIANWPROCNEAR;三角波的子程序

MOVAH,09H

MOVDX,OFFSETTRI

INT21H

MOVAH,09H

MOVDX,OFFSETSTR3

INT21H;..............

MOVAL,FENC;初始化显示管的值为3

MOVSI,3000H

MOV[SI],AL

MOVAL,AMPL

MOVSI,3001H

MOV[SI],AL

TRIAN1:

CALLAMPLFENC

MOVSI,OFFSETKEYASS

MOVAL,4

CMP[SI],AL

JZTRIAN4

CALLDIS

TRILOOP11:

;输出三角波

MOVSI,3000H;幅值

MOVBL,[SI]

MOVSI,OFFSETTIAOFU

MOV[SI],BL

MOVSI,3001H

MOVBL,[SI]

MOVSI,OFFSETTIAOPIN

MOV[SI],BL

TRILOOP:

MOVAL,00H;D/A转换起始值

TRIUP:

PUSHAX

MOVBL,TIAOFU

MULBL

MOVDX,DA0832;启动D/A转换

OUTDX,AL

POPAX

MOVCL,TIAOPIN

MOVCH,00H

DALLYTRI1:

CALLDALLY

CALLDIS

CALLCCSCAN

JNZTRIAN1

LOOPDALLYTRI1

INCAL

CMPAL,33H

JNETRIUP

TRIDOWN:

PUSHAX

MOVBL,TIAOFU

MULBL

MOVDX,DA0832

OUTDX,AL

POPAX

MOVCL,TIAOPIN

MOVCH,00H

DALLYTRI2:

CALLDALLY

CALLDIS

CALLCCSCAN

JNZTRIAN1

LOOPDALLYTRI2

DECAL

CMPAL,00H

JNETRIDOWN

 

JZTRILOOP;无按键则跳回继续循环,有则退出

 

TRIAN4:

RET

TRIANWENDP

 

RECWPROCNEAR;锯齿波的子程序

MOVAH,09H

MOVDX,OFFSETREC

INT21H

MOVAH,09H

MOVDX,OFFSETSTR3

INT21H

MOVDI,OFFSETFENC;初始化显示管的值为5

MOVAL,[DI]

MOVSI,3000H

MOV[SI],AL

MOVDI,OFFSETAMPL

MOVAL,[DI]

MOVSI,3001H

MOV[SI],AL

REC1:

CALLAMPLFENC

MOVSI,OFFSETKEYASS

MOVAL,4

CMP[SI],AL

JZREC4

CALLDIS

 

MOVSI,3000H;幅值

MOVBL,[SI]

MOVSI,OFFSETTIAOFU

MOV[SI],BL

MOVSI,3001H

MOVBL,[SI]

MOVSI,OFFSETTIAOPIN

MOV[SI],BL

RECLOOP11:

MOVAL,00H;D/A转换起始值

RECUP:

PUSHAX

MOVBL,TIAOFU

MULBL

MOVDX,DA0832;启动D/A转换

OUTDX,AL

POPAX

MOVSI,OFFSETTIAOPIN

MOVCL,[SI]

MOVCH,00H

DALLYREC1:

CALLDALLY

CALLDIS

CALLCCSCAN

JNZ

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1