C语言源代码波形发生器程序清单.docx

上传人:b****5 文档编号:7225803 上传时间:2023-01-22 格式:DOCX 页数:14 大小:17.96KB
下载 相关 举报
C语言源代码波形发生器程序清单.docx_第1页
第1页 / 共14页
C语言源代码波形发生器程序清单.docx_第2页
第2页 / 共14页
C语言源代码波形发生器程序清单.docx_第3页
第3页 / 共14页
C语言源代码波形发生器程序清单.docx_第4页
第4页 / 共14页
C语言源代码波形发生器程序清单.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言源代码波形发生器程序清单.docx

《C语言源代码波形发生器程序清单.docx》由会员分享,可在线阅读,更多相关《C语言源代码波形发生器程序清单.docx(14页珍藏版)》请在冰豆网上搜索。

C语言源代码波形发生器程序清单.docx

C语言源代码波形发生器程序清单

波形发生器程序清单:

ORG0000H

AJMPMAIN

ORG0000BH

LJMPTOINT

ORG0030H

MAIN:

MOVA,#30H

MOVSP,A

MOV40H,#00H;波形显初值

MOV41H,#00H;频率显示初值

MOV42H,#00H

MOV43H,#00H

MOV44H,#00H

MOV45H,#00H;参考电压显示初值

MOV46H,#00H;设置标志初值

MOVDPTR,#7FFCH;初始化8255

MOVA,#90H

MOVX@DPTR,A

;…………………LED显示子程序……………………………………………………;

DISPLAY:

MOVR2,H06H;显示子程序

MOVR1,#80H

MOVR0,#40H

DIS1:

MOVDPTR,#7FFEH;指向B口

MOVA,R1

MOVX@DPTR,A

RRA;形成下一次位选信号

MOVR1A

MOVA,@R0;取显示数字

MOVDPTR,#DISPLAYTAB

MOVCA,@A+DPTR;由数字转换成显示段码

MOVDPTR,#7EFFH;指向A口

MOV@DPTR,A;送段码到A口

LCALLDELAY;显示延时

INCR0

DJNZR2,DIS1;判断是否显示6次

MOVA,#00H

MOVP1,A;熄灭波形指示灯

AJMPKEYSPAN;转到键盘管理子程序

DELAY:

MOVR3,#80H;延时

LOOP1:

MOVR4,#0A0H

DJNZR4,$

DJNZR3,LOOP1

RET

DISPLAYTAB:

DB3FH,06H,5BH,4FH,66H;01234

DB6DH,7DH,07H,7FH,6FH;56789

DB40H;—

;…………………键盘管理子程序……………………………………………………;

KEYSPAN:

MOVA,#F0H

CLRP2.7

MOVR0,#FDH;指向C口

MOVX@R0,A;输出列扫描查询码

MOVA,@R0;读入行状态

CJNEA,F0H,KEY1;有键闭合、转KEY1

LJMPKEYSPANEND;无键闭合、退出

KEY1:

LCALLDELAY10ms;延时、去抖动

CLRIE;关闭定时中断

MOVR1,#FEH

KEY2:

MOVA,R1

CLRP2.7

MOVX@R0,A;输出列扫描码

MOVXA,@R0;读入行状态和列状态

ANLA,#F0H;保留行状态

CJNEA,#F0H,KEY3;有键闭合、转KEY3,无键闭合形成下一次列

扫描码,并判断是否扫

描四次

MOVA,R1

RLA

MOVR1,A

JBACC.3,KEY2

LJMPKEYSPANEND;四次列扫描完毕,退出

KEY3:

MOVR2,A;行码送R2中保存

MOVA,R1;扫描码送A中

ANLA,#0FH;保留列码(低4位)

ORLA,R2;列码在低4位,行码在高4位

MOVR2,A;列行码值保存在R2

MOVDPTR,#KEYTAB;指向键特征值表

MOVR1,#00H;从键值0开始比对

KEY4:

CLRA

MOVCA,@A+DPTR;取特征值

XRLA,R2;列行码值与特征值比对

JZKEY5;A=0找到键特征值,转KEY5

INCR1;形成下一个键值

INCDPTR;形成下一个特征值地址

CJNER1,#10H,KEY4;判断是否比对了16次,R1≠10H,转KEY4,

否则,顺序执行

LJMPKEYSPANEND;退出

KEY5:

MOVA,#F0H

CLRP2.7

MOVC@R0,A;输出查询码

MOVCA,@R0;读入状态

SETBP2.7

CJNEA,#F0H,KEY5;等待键释放

LCALLKEYPROCESS;调用键功能子程序

KEYSPANEND:

LJMPDISPLAY;返回到LED显示子程序开始处

DELAY10ms:

MOVR3,#0C8H

LOOP2:

MOVR4,#0A0H

DJNZR4,$

DJNZR3,LOOP2

RET

;…………………………键特征值表…………………………………………………………;

KEYTAB:

DBEEH,EDH,EBH,E7H;0123

DBDEH,DDH,DBH,D7H;4567

DBCEH,CDH,CBH,C7H;89ENCL

DB7EH,7DH,7BH,77H;WFV.

;………………………键功能散转………………………………………………………;

KWYREOCESS:

MOVA,R1

RLA

MOVDPTR,#KEYPROTAB

JMP@A+DPTR

KEYPROTAB:

AJMPKEY_0_PRO

AJMPKEY_1_PRO

AJMPKEY_2_PRO

AJMPKEY_3_PRO

AJMPKEY_4_PRO

AJMPKEY_5_PRO

AJMPKEY_6_PRO

AJMPKEY_7_PRO

AJMPKEY_8_PRO

AJMPKEY_9_PRO

AJMPKEY_EN_PRO

AJMPKEY_CL_PRO

AJMPKEY_W_PRO

AJMPKEY_F_PRO

AJMPKEY_V_PRO

AJMPKEY_·_PRO

;………………………………键功能处理子程序………………………………………………;

KEY_0_PRO:

MOVA,46H;“0”键处理子程序

CJNEA,#00H,D01

SJMPD0END

D01:

CJNEA,#01H,D0END

CJNER5,#43H,D02

SJMPD0END

D02:

MOV@R5,#0H

INCR5

D0END:

RET

KEY_1_PRO:

MOVA,#46H;“1”键处理子程序

CJNEA,#00H,D11

AJMPD1END

D11:

CJNEA,#01H,D12

CJNER5,#43H,F1

AJMPD1END

F1:

MOV@R5,#01H

INCR5

AJMPD1END

D12:

CJNEA,#02H,D13

MOV45H,#01H

SJMPD1END

D13:

MOV40H,#01H

D1END:

RET

KEY_2_PRO:

MOVA,#46H;“2”键处理子程序

CJNEA,#00H,D21

AJMPD2END

D21:

CJNEA,#01H,D22

CJNER5,#43H,F2

AJMPD2END

F2:

MOV@R5,#02H

INCR5

AJMPD2END

D22:

CJNEA,#02H,D23

MOV45H,#02H

SJMPD2END

D23:

MOV40H,#02H

D2END:

RET

KEY_3_PRO:

MOVA,#46H;“3”键处理子程序

CJNEA,#00H,D31

AJMPD3END

D31:

CJNEA,#01H,D32

CJNER5,#43H,F3

AJMPD3END

F3:

MOV@R5,#03H

INCR5

AJMPD3END

D32:

CJNEA,#02H,D33

MOV45H,#03H

SJMPD3END

D33:

MOV40H,#03H

D3END:

RET

KEY_4_PRO:

MOVA,#46H:

“4”键处理子程序

CJNEA,#00H,D41

AJMPD4END

D41:

CJNEA,#01H,D42

CJNER5,#43H,F4

AJMPD4END

F4:

MOV@R5,#04H

INCR5

AJMPD4END

D42:

CJNEA,#02H,D43

MOV45H,#04H

SJMPD4END

D43:

MOV40H,#04H

D4END:

RET

KEY_5_PRO:

MOVA,46H;“5”键处理子程序

CJNEA,#00H,D51

AJMPD5END

D51:

CJNEA,#01H,D52

CJNER7,#44H,F5

AJMPD5END

F5:

MOV@R5,#00H

INCR5

AJMPD5END

D52:

CJNEA,#02H,D53

MOV45,#05H

D53:

RET

KEY_6_PRO:

RET;“6”键处理子程序

KEY_7_PRO:

RET;“7”键处理子程序

KEY_8_PRO:

RET;“8”键处理子程序

KEY_9_PRO:

RET;“9”键处理子程序

KEY_EN_PRO:

MOVA,40H

CJNEA,#00H,EN1

AJMPENEND

EN1:

MOVA,45H

CJNEA,#00H,VREF

AJMPENEND

VREF:

DPTR,#VREFTAB

MOVCA,@A+DPTR

MOVR0,#FFH

CLRP2.5;选中0832

(1)

MOCX@R0,A;向0832

(1)送参考电压编码

MOVA,41H

ORLA,42H

ORLA,43H

CJNEA,#00H,1KHZ

AJMPENEND

1KHZ:

MOVA,41H;1KHZ设置定时初值

CJNEA,#01H,500HZ

MOVTMOD,#00H

MOVTLO,#01H

MOVTHO,#0FFH

AJMPOPEN_TI0

500HZ:

MOVA,42H;500HZ设置定时初值

CJNEA,#05H,200HZ

MOVTMOD,#00H

MOVTLO,#01H

MOVTHO,#0FEH

AJMPOPEN_TI0

200HZ:

CJNEA,#02H,100HZ;200HZ设置定时初值

MOVTMOD,#00H

MOVTLO,#03H

MOVTHO,#0FBH

AJMPOPEN_TI0

100HZ:

CJNEA,#01H,50HZ;100HZ设置定时初值

MOVTMOD,#00H

MOVTLO,#08H

MOVTHO,#0F6H

AJMPOPEN_TI0

50HZ:

MOVA,43H;50HZ设置定时初值

CJNEA,#05H,20HZ

MOVTMOD,#00H

MOVTLO,#0FH

MOVTHO,#0ECH

AJMPOPEN_TI0

20HZ:

CJNEA,#02H,10HZ;20HZ设置定时初值

MOVTMOD,#00H

MOVTLO,#16H

MOVTHO,#90H

AJMPOPEN_TI0

10HZ:

CJNEA,#01H,ENEND;10HZ设置定时初值

MOVTMOD,#00H

MOVTLO,#0BH

MOVTHO,#9EH

AJMPOPEN_TI0

OPEN_TI0:

MOVTCON,#10H;定时器0工作,运行位TR控制

MOVIE,82H;中断允许总控制,定时器0中断允许

MOVR6,#00H;样值初始编号

ENEND:

RET

VREFTAB:

DB32H,68H,A2H,CDH,FFH;1V2V3V4V5V

KEY_CL_PRO:

MOVA,#00H ;“CL”键处理子程序

MOVR0,#40H

CL1:

MOV@R0,#40H

INCR0

CJNER0,#46H,CL1

MOVR5,A

MOVTL0,#00H

MOVTH0,#00H

CLRTR0

RET

KEY_F_PRO:

MOVA,#01H            ;“F”处理子程序

MOV46H,A;(46H)=01H表示频率设置

MOVR5,42H

MOV41H#0AH;频率LED位显示“---0”

MOV42H#0AH

MOV43H#0AH

RET

KEY_V_PRO:

MOVA,#02H;“V”处理子程序

MOV46H,A;(46H)=02H表示参考电压设置

MOV45H#0AH ;电压LED位显示“—”

RET

KEY_W_PRO:

MOVA,#03H;“W”处理子程序

MOV46H,A ;(46H)=03H表示波形选择

MOV40H#0AH;波形LED位显示“—”

RET

KEY_·_PRO:

RET;“·”处理子程序

;…………………………定时中断服务程序……………………………………………………;

TOINT:

   PUSHPSW

PUSHACC

PUSHDPH

PUSHDPL

PUSHR0

PUSHR1

PUSHR2

PUSHR3

PUSHR4;保护现场

MOVR7,40H

LCALLWAVE1           ;调用波形产生子程序

POPR4

POPR3

POPR2

POPR1

POPR0

POPDPL

POPDPH

POPACC

POPPSW              ;恢复现场

RETI                ;返回断点处,执行主程序

;…………………………波形产生子程序……………………………………………………;

WAVE1:

CJNER7,#01H,WAVE2

CLRP1.0

MOVDPTR,#W_TAB1;指向方波表首址

MOVA,R6

MOVCA,@A+DPTR

MOVDPTR,#0AFFFH;指向DAC0832

(2)

MOVX@DPTR,A

MOVA,R6

INCA

MOVR6,A;指向下一个样值

CJNEA,#32,W_END

MOVR6,#00H

AJMPW_END

WAVE2:

CJNER7,#02H,WAVE3

CLRP1.1

MOVDPTR,#W_TAB2;指向正弦波表首址

MOVA,R6

MOVCA,@A+DPTR

MOVDPTR,#0AFFFH;指向DAC0832

(2)

MOVX@DPTR,A

MOVA,R6

INCA

MOVR6,A;指向下一个样值

CJNEA,#32,W_END

MOVR6,#00H

AJMPW_END

WAVE3:

CJNER7,#03H,WAVE4

CLRP1.2

MOVDPTR,#W_TAB3;指向三角波表首址

MOVA,R6

MOVCA,@A+DPTR

MOVDPTR,#0AFFFH;指向DAC0832

(2)

MOVX@DPTR,A

MOVA,R6

INCA

MOVR6,A;指向下一个样值

CJNEA,#32,W_END

MOVR6,#00H

AJMPW_END

WAVE4:

CJNER7,#04H,W_END

CLRP1.3

MOVDPTR,#W_TAB4;指向锯齿波表首址

MOVA,R6

MOVCA,@A+DPTR

MOVDPTR,#0AFFFH;指向DAC0832

(2)

MOVX@DPTR,A

MOVA,R6

INCA

MOVR6,A;指向下一个样值

CJNEA,#32,W_END

MOVR6,#00H

W_END:

 RET;返回中断服务程序执行

;……………………………波形样值表……………………………………………………;

W_TAB1:

DB0FFH,FFH,FFH,FFH,FFH,FFH,FFH,FFH

DB0FFH,FFH,FFH,FFH,FFH,FFH,FFH,FFH

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

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

W_TAB2:

 DB98H,B0H,C6H,D9H,E9H,F5H,FCH,FFH

DBFCH,F5H,E9H,D9H,C6H,B0H,98H,7FH

DB66H,4EH,38H,25H,15H,0AH,02H,00H

DB02H,0AH,15H,25H,38H,4EH,66H,7FH

W_TAB3:

DB8FH,9FH,0AFH,BFH,CFH,DFH,EFH,FFH

DBEFH,DFH,CFH,BFH,AFH,9FH,8FH,7FH

DB6FH,5FH,4FH,3FH,2FH,1FH,0FH,00H

DB0FH,1FH,2FH,3FH,4FH,5FH,6FH,7FH

W_TAB4:

DB0FH,17H,1FH,27H,2FH,37H,3FH,47H

DB4FH,57H,5FH,67H,6FH,77H,7FH,87H

DB8FH,97H,9FH,A7H,AFH,B7H,BFH,C7H

DBCFH,D7H,DFH,E7H,EFH,F7H,FFH,07H

 

END

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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