波形发生器Word格式.docx
- 文档编号:3813915
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:19
- 大小:713.67KB
波形发生器Word格式.docx
《波形发生器Word格式.docx》由会员分享,可在线阅读,更多相关《波形发生器Word格式.docx(19页珍藏版)》请在冰点文库上搜索。
开关K1-K5相连接来控制各个波形的输出,根据K1-K5键状态进行波形切换,当某一按键按下时,输出相对应的波形。
主控电路图如下:
2.1.2独立式键盘
独立式键盘中,各按键相互独立,每个按键各接一根输入线,每根输入线上的按键工作状态不会影响其他输入线上的工作状态。
因此,通过检测输入线的电平状态可以很容易判断按键是否被按下。
按键与AT89C51的P1口相连,K1是检测是否输出方波按键,K2是检测是否输出三角波按键,K3是检测是否输出锯齿波按键,K4是检测是否输出梯形波按键,K5是检测是否输出正弦波按键。
键盘连接如下图所示:
2.1.3数模转换电路
由于AT89C51所产生的是数字信号,所以通过DAC0832把数字信号转换成模拟信号。
DAC0832输出的模拟量是电流,为了转换成电压,所以在它后面接入运放,如下图所示:
2.1.4驱动电路
74SL373S数据锁存器,主要用于按键、数码管的控制等。
2.2系统原理图
(2)软件设计
2.3主程序的设计
利用中断,当5个开关中有任意一个闭合时,跳转至中断程序,在中断程序中判断是哪一个按键闭合,跳转至相应的子程序,执行输出波形的操作,每输出一个点之后,判断按键是否断开,如果依旧闭合,则继续输出,如果已经断开,则结束中断程序。
流程图如下:
主程序:
ORG0000H
LJMPMAIN
ORG0003H;
外部中断0
LJMPINT00
ORG0040H
MAIN:
MOVSP,#60H;
堆栈初始化
SETBIT0
SETBEA;
开中断
SETBEX0
INT00:
CLREA;
关中断
PUSHPSW
PUSHACC
SETBEA;
JNBP1.0,IR0;
如果K1键闭合,则跳转至IR0输出方波
JNBP1.1,IR1;
如果K2键闭合,则跳转至IR1输出三角波
JNBP1.2,IR2;
如果K3键闭合,则跳转至IR2输出锯齿波
JNBP1.3,IR3;
如果K4键闭合,则跳转至IR3输出梯形波
JNBP1.4,IR4;
如果K5键闭合,则跳转至IR4输出正弦波
INTIR:
CLREA;
关中断
POPACC;
现场恢复
POPPSW
RETI
2.4子程序的设计
2.4.1方波的产生
方波的实现是在开始的时候设置一个初值然后直接输出这个值,输出一段时间后,然后再重新置一个数据,再输出这个数据与输出初值相等的时间。
子程序如下:
IR0:
MOVR0,#0FEH;
设置端口地址
POSI:
MOVA,#00H
MOVX@R0,A
LCALLDELAY
JBP1.0,INTIR;
如果K1键已经断开,则返回
NEGA:
MOVA,#0FFH
LCALLDELAY
SJMPPOSI;
跳转至POSI,继续下一个波形的输出
LJMPINTIR;
返回
2.4.2三角波的产生
三角波的产生过程是先加后减,实现方法是先是从00H开始加1直到溢出后就执行减1操作,就这样不断调用这个循环。
IR1:
MOVA,#00H
UP1:
JBP1.1,INTIR;
如果K2键已经断开,则返回
INCA
JNZUP1;
循环
DOWN1:
DECA
MOVX@R0,A
JNZDOWN1;
SJMPUP1
2.4.3锯齿波的产生
锯齿波实现是一开始定义一个初值,然后不断的加1,当溢出后又重初值开始加起,就这样循环下去。
IR2:
LOOP:
JBP1.2,INTIR;
如果K3键已经断开,则返回
SJMPLOOP
LJMPINTIR
2.4.4梯形波的产生
梯形波的实现是设置一个初值,然后进行加一,当加到某个数时延时,之后减一,减到初值时在返回到之前的操作,继续加一、延时、减一。
IR3:
UP3:
JBP1.3,INTIR;
如果K4键已经断开,则返回
JNZUP3;
LCALLDELAY;
延时
DECA;
如果已经溢出,则减一,减一之后A的值为255
DOWN3:
DECA
JNZDOWN3;
SJMPUP3
DELAY:
MOVR7,#100;
延时子程序
DELAY1:
MOVR6,#10
DELAY2:
DJNZR6,DELAY2
NOP
DJNZR7,DELAY1
RET
2.4.5正弦波的产生
正弦波的实现需要查表,每查一次表,输出一个数值,之后查下一个数值继续输出,当一个波形的256个数值全部输出之后,从头开始继续输出。
IR4:
MOVR1,#00H
SER:
MOVA,R1
LCALLHANSHU;
调用查表函数
JBP1.4,INTIR;
如果K5键已经断开,则返回
INCR1
SJMPSER;
继续查表
HANSHU:
MOVDPTR,#TAB1
MOVCA,@A+DPTR
RET
TAB1:
db080h,083h,086h,089h,08ch,090h,093h,096h,099h,09ch,09fh,0a2h,0a5h,0a8h,0abh,0aeh
db0b1h,0b3h,0b6h,0b9h,0bch,0bfh,0c1h,0c4h,0c7h,0c9h,0cch,0ceh,0d1h,0d3h,0d5h,0d8h
db0dah,0dch,0deh,0e0h,0e2h,0e4h,0e6h,0e8h,0eah,0ebh,0edh,0efh,0f0h,0f1h,0f3h,0f4h
db0f5h,0f6h,0f8h,0f9h,0fah,0fah,0fbh,0fch,0fdh,0fdh,0feh,0feh,0feh,0ffh,0ffh,0ffh
db0ffh,0ffh,0ffh,0ffh,0feh,0feh,0feh,0fdh,0fdh,0fch,0fbh,0fah,0fah,0f9h,0f8h,0f6h
db0f5h,0f4h,0f3h,0f1h,0f0h,0efh,0edh,0ebh,0eah,0e8h,0e6h,0e4h,0e2h,0e0h,0deh,0dch
db0dah,0d8h,0d5h,0d3h,0d1h,0ceh,0cch,0c9h,0c7h,0c4h,0c1h,0bfh,0bch,0b9h,0b6h,0b3h
db0b1h,0aeh,0abh,0a8h,0a5h,0a2h,09fh,09ch,099h,096h,093h,090h,08ch,089h,086h,083h
db080h,07dh,07ah,077h,074h,070h,06dh,06ah,067h,064h,061h,05eh,05bh,058h,055h,052h
db04fh,04dh,04ah,047h,044h,041h,03fh,03ch,039h,037h,034h,032h,02fh,02dh,02bh,028h
db026h,024h,022h,020h,01eh,01ch,01ah,018h,016h,015h,013h,011h,010h,00fh,00dh,00ch
db00bh,00ah,008h,007h,006h,006h,005h,004h,003h,003h,002h,002h,002h,001h,001h,000h
db000h,000h,001h,001h,002h,002h,002h,003h,003h,004h,005h,006h,006h,007h,008h,00ah
db00bh,00ch,00dh,00fh,010h,011h,013h,015h,016h,018h,01ah,01ch,01eh,020h,022h,024h
db026h,028h,02bh,02dh,02fh,032h,034h,037h,039h,03ch,03fh,041h,044h,047h,04ah,04dh
db04fh,052h,055h,058h,05bh,05eh,061h,064h,067h,06ah,06dh,070h,074h,077h,07ah,07dh
3.仿真结果演示
1.没有按键按下时:
2.按键K1按下时,输出为方波:
3.按键K2按下时,输出为三角波:
4.按键K3按下时,输出为锯齿波:
5.按键K4按下时,输出为梯形波:
6.按键K5按下时。
输出为正弦波:
4.源程序
END
THANKS!
!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 波形 发生器