正弦波信号发生器.docx
- 文档编号:23413062
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:16
- 大小:17.38KB
正弦波信号发生器.docx
《正弦波信号发生器.docx》由会员分享,可在线阅读,更多相关《正弦波信号发生器.docx(16页珍藏版)》请在冰豆网上搜索。
正弦波信号发生器
OUTBITequ08002h;位控制口
OUTSEGequ08004h;段控制口
INequ08001h;键盘读入口
LEDBufequ60h;显示缓冲
ljmpStart
LEDMAP:
;八段管显示码
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db7fh,6fh,77h,7ch,39h,5eh,79h,71h
Delay:
;延时子程序
movr7,#0
DelayLoop:
djnzr7,DelayLoop
djnzr6,delayLoop
ret
DisplayLED:
movr0,#LEDBuf
movr1,#6;共6个八段管
movr2,#00100000b;从左边开始显示
Loop:
movdptr,#OUTBIT
mova,#0
movx@dptr,a;关所有八段管
mova,@r0
movdptr,#OUTSEG
movx@dptr,a
movdptr,#OUTBIT
mova,r2
movx@dptr,a;显示一位八段管
movr6,#1
callDelay
mova,r2;显示下一位
rra
movr2,a
incr0
djnzr1,Loop
ret
TestKey:
movdptr,#OUTBIT
mova,#0
movx@dptr,a;输出线置为0
movdptr,#IN
movxa,@dptr;读入键状态
cpla
anla,#0fh;高四位不用
ret
KeyTable:
;键码定义
db16h,15h,14h,0ffh
db13h,12h,11h,10h
db0dh,0ch,0bh,0ah
db0eh,03h,06h,09h
db0fh,02h,05h,08h
db00h,01h,04h,07h
GetKey:
movdptr,#OUTBIT
movP2,dph
movr0,#Low(IN)
movr1,#00100000b
movr2,#6
KLoop:
mova,r1;找出键所在列
cpla
movx@dptr,a
cpla
rra
movr1,a;下一列
movxa,@r0
cpla
anla,#0fh
jnzGoon1;该列有键入
djnzr2,KLoop
movr2,#0ffh;没有键按下,返回0ffh
sjmpExit
Goon1:
movr1,a;键值=列X4+行
mova,r2
deca
rla
rla
movr2,a;r2=(r2-1)*4
mova,r1;r1中为读入的行值
movr1,#4
LoopC:
rrca;移位找出所在行
jcExit
incr2;r2=r2+行值
djnzr1,LoopC
Exit:
mova,r2;取出键码
movdptr,#KeyTable
movca,@a+dptr
movr2,a
WaitRelease:
movdptr,#OUTBIT;等键释放
clra
movx@dptr,a
movr6,#10
callDelay
callTestKey
jnzWaitRelease
mova,r2
ret
chuzhi:
MOVA,20H;将四个数转换成一四位数
MOVR0,#0E8H;第一个数乘以1000
MOVR1,#03H
MOVB,R0
MULAB
MOV61H,B
MOV60H,A;低8位
MOVA,20H
MOVB,R1
MULAB
ADDA,61H
MOV61H,A;高8位
CLRC
MOVA,21H
MOVR0,#64H;第2个数乘以100
MOVB,R0
MULAB
ADDA,60H
MOV62H,A;低8位
MOVA,61H
ADDCA,B
MOV63H,A;高8位
CLRC
MOVA,22H
MOVR0,#0AH;第3个数乘以10
MULAB
ADDA,62H
MOV64H,A;低8位
MOVA,63H
ADDCa,B
MOV65H,A;高8位
CLRC
MOVA,23H
ADDA,64H
MOV66H,A;频率值的低八位
MOVA,65H
ADDCA,#0h
MOV67H,A;频率值的高八位
MOVR7,66H
MOVR6,67H
MOVR3,#0H
MOVR2,#0H
MOVR4,#27H
MOVR5,#10H
DIVD:
CLRC;比较被除数和除数
MOVA,R3
SUBBA,R7
MOVA,R2
SUBBA,R6
JCDVD1
SETBOV;溢出
RET
DVD1:
MOVB,#10H;计算双字节商
DVD2:
CLRC;部分商和余数同时左移一位
MOVA,R5
RLCA
MOVR5,A
MOVA,R4
RLCA
MOVR4,A
MOVA,R3
RLCA
MOVR3,A
XCHA,R2
RLCA
XCHA,R2
MOVF0,C;保存溢出位
CLRC
SUBBA,R7;计算(R2R3-R6R7)
MOVR1,A
MOVA,R2
SUBBA,R6
ANLC,/F0;结果判断
JCDVD3
MOVR2,A;够减,存放新的余数
MOVA,R1
MOVR3,A
INCR5;商的低位置一
DVD3:
DJNZB,DVD2;计算完16位商(R4,R5)
MOVA,R4;将商移到R2R3中
MOVR2,A
MOVA,R5
MOVR3,A
CLROV;设立成功标志
MOV67H,R2
MOV66H,R3
MOVR0,#00H;求定时器初值
MOVR1,#00H
MOVR3,#01H
CLRC
MOVA,R0
SUBBA,66H
MOV50H,A;初值的低八位
MOVA,R1
SUBBA,67H
MOV51H,A;初值的高八位
ret
L1:
calldisplayled;显示F
calltestkey
jzL1
callgetkey
mov30h,a;在30H中存放电压幅值
anla,#1fh;显示键码
movdptr,#LEDMap
movca,@a+dptr
movLEDBuf+5,a
L2:
calldisplayled
calltestkey
jzL2
callgetkey
cjnea,#16h,L2
mova,#0ch
anla,#1fh
movdptr,#LEDMap
movca,@a+dptr
movLEDBuf+4,a
L31:
calldisplayled;显示C
calltestkey
jzL31
callgetkey
mov23h,a
anla,#1fh
movdptr,#ledmap
movca,@a+dptr
movledbuf+3,a
L32:
calldisplayled
calltestkey
jzL32
callgetkey
cjnea,#16h,LN2
ljmpL4
LN2:
movr1,23h
mov22h,r1
mov23h,a
anla,#1fh
movdptr,#ledmap
movca,@a+dptr
movledbuf+2,ledbuf+3
movledbuf+3,a
L33:
calldisplayled
calltestkey
jzL33
callgetkey
cjnea,#16h,LN3
ljmpL4
LN3:
movr1,22h
mov21h,r1
movr1,23h
mov22h,r1
mov23h,a
anla,#1fh
movdptr,#ledmap
movca,@a+dptr
movr0,ledbuf+2
movledbuf+1,r0
movr0,ledbuf+3
movledbuf+2,r0
movledbuf+3,a
L34:
calldisplayled
calltestkey
jzL34
callgetkey
cjnea,#16h,LN4
ljmpL4
LN4:
movr1,21h
mov20h,r1
movr1,22h
mov21h,r1
movr1,23h
mov22h,r1
mov23h,a
anla,#1fh
movdptr,#ledmap
movca,@a+dptr
movr0,ledbuf+1
movledbuf+0,r0
movr0,ledbuf+2
movledbuf+1,r0
movr0,ledbuf+3
movledbuf+2,r0
movledbuf+3,a
L4:
calldisplayled
calltestkey
jzL4
callgetkey
cjnea,#16h,L4
mova,#0Ah;显示A
anla,#1fh
movdptr,#ledmap
movca,@a+dptr
movledbuf+4,a
ret
Start:
movLEDBuf+0,#3fh;显示8.8.8.8.
movLEDBuf+1,#3fh
movLEDBuf+2,#3fh
movLEDBuf+3,#3fh
movLEDBuf+4,#3fh
movLEDBuf+5,#3fh
MLoop:
lcallDisplayLED;显示
lcallTestKey;有键入?
jzMLoop;无键入,继续显示
lcallGetKey;读入键码
cjnea,#13h,mloop
mova,#0fh
anla,#1fh;显示键码
movdptr,#LEDMap
movca,@a+dptr
movLEDBuf+4,a
callL1
start1:
movr1,#64h
mova,#00h
lcallCHUZHI
movr4,30h
cjner4,#1,LOOP2
movdptr,#SIN1
ljmpLOOP6
LOOP2:
cjner4,#2,LOOP3
movdptr,#SIN2
ljmpLOOP6
LOOP3:
cjner4,#3,LOOP4
movdptr,#SIN3
ljmpLOOP6
LOOP4:
cjner4,#1,LOOP5
movdptr,#SIN4
ljmpLOOP6
LOOP5:
movdptr,#SIN5
LOOP6:
mov40h,a
movca,@a+dptr
movr2,dph
movr3,dpl
movdptr,#0a000h;置D\A转换地址
movx@dptr,a
callDINGSHI;调用定时
movdph,r2
movdpl,r3
mova,40h
inca
djnzr1,LOOP6
mova,#01h
lcalltestkey
jzLOOP6
ljmpstart
DINGSHI:
clrtf0
movtmod,#01h;定时器
movth0,51h
movtl0,50h
setbtr0
nov:
jbctf0,ovr
sjmpnov
ovr:
ret
SIN1:
DB26,28,29,31,32,34,36,37,39,40,41,43,44,45,46
DB47,48,49,50,50,51,51,52,53,53,53,52,52,52,51
DB51,50,50,49,48,47,46,45,44,43,41,40,39,37,36
DB34,32,31,29,28,26,24,23,21,20,18,16,15,13,12
DB11,9,8,7,6,5,4,3,2,2,2,1,1,1,0
DB0,0,0,1,1,2,2,2,3,4,5,6,7,8,9
DB11,12,13,15,16,18,20,21,23,24,26
SIN2:
DB51,54,57,61,64,67,70,73,76,78,81,84,86
DB88,90,92,94,96,97,98,100,100,101,102,102,102
DB102,102,101,100,100,98,97,96,94,92,90,88,86
DB84,81,78,76,73,70,67,64,61,57,54,51,48
DB45,41,38,35,32,29,26,24,21,18,16,14,12
DB10,8,6,5,4,2,2,1,0,0,0,0,0
DB1,2,2,4,5,6,8,10,12,14,16,18,21
DB24,26,29,32,35,38,41,45,48,51
SIN3:
DB76,81,86,90,95,99,104,108,113,117,121,124,128,131,135
DB137,140,143,145,147,148,150,151,151,152,152,152,151,151,150
DB148,147,145,143,140,137,135,131,128,124,121,117,113,108,104
DB99,95,90,86,81,76,71,66,62,57,53,48,44,39,35
DB31,28,24,21,17,15,12,9,7,5,4,2,1,1,0
DB0,0,1,1,2,4,5,7,9,12,15,17,21,24,28
DB31,35,39,44,48,53,57,62,66,71,76
SIN4:
DB102,108,115,121,127,134,140,145,151,157,162,167,172,176,181
DB185,188,191,194,197,199,201,202,203,204,204,204,203,202,201
DB199,197,194,191,188,185,181,176,172,167,162,157,151,145,140
DB134,127,121,115,108,102,96,89,83,77,70,64,59,53,47
DB42,37,32,28,23,19,16,13,10,7,5,3,2,1,0
DB0,0,1,2,3,5,7,10,13,16,19,23,28,32,37
DB42,47,53,59,64,70,77,83,89,96,102
SIN5:
DB127,135,143,151,159,166,174,181,188,195,202,208,214,220,225
DB230,234,238,242,245,248,250,252,253,254,254,254,253,252,250
DB248,245,242,238,234,230,225,220,214,208,202,195,188,181,174
DB166,159,151,143,135,127,119,111,103,95,88,80,73,66,59
DB52,46,40,34,29,24,20,16,12,9,6,4,2,1,0
DB0,0,1,2,4,6,9,12,16,20,24,29,34,40,46
DB52,59,66,73,80,88,95,103,111,119,127
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 正弦波 信号发生器