指导教师:陈鸿
学生:吕鹏飞,康镭, 程志斌,邹明 学号:08050344X39-42 日期:2011.6.11
题 目:信号发生器的软硬件设计
设计题目:
信号发生器的软硬件设计
(一)设计内容:以8088CPU为核心设计一个信号发生器,系统采用DAC0832
输出信号波形。系统中有两个按键(A,B)选择输出正弦波或三角波信
号。
(二)设计要求:画出电路图,说明工作原理,编写一个当A键按下后输出正
弦波(0~5V,频率100Hz),当B键按下后输出三角波(0~5V,频率200Hz)的程序。 (三)工作原理:
硬件组成:CPU8088一片,锁存器芯片8282二片,DAC0832一片,可
编程并行通信接口8255一片,译码器74LS138一片,运放(CF107)一个,EPROM2764(8K*8)一片 设计原理图:见附图 1
8255端口地址分配:A口2000H B口2001H C口2002H
控制端口:2003H
设计原理说明:用2片8282锁存地址并构成8088CPU的地址总线。一
片EPROM2764与地址总线、数据总线、CPU相连构成存储单元用来存放程序和数据,一片可编程并行通信接口8255与DAC0832构成了信号发生器的输出通道。首先,通过对8255控制端口设置控制字,使8255的A口工作在方式0输入状态下,B口设置工作在方式0输出状态下。(A口的PA0,PA1分别与A,B相连,B口的PB0~PB7与DAC0832数据线D0~D7相连)。CPU8088通过读取8255A口数据,判断是否有键被按下,如果A键被按下,则CPU转移执行产生正弦波子程序,并从内存数据段DAT中读取数据,并将数据发送到8255,8255通过B口将数据发送到DAC0832芯片,0832通过运算放大器输出一个周期正弦波(幅值0~5V,频率100Hz).如果判断B键被按下,则CPU转移执行三角波子程序,8088通过8255B口向DAC0832输出数据产生一个周期的三角波(幅值0~5V,频率200Hz)。当产生一个周期正弦波(三角波)完成后,CPU返回继续读取8255A口数据,并判断是否有键被按下。若没有键被按下或A,B键同时被按下,CPU返回重新读取8255A口数据。
(四)流程图
8255初始化 读取A口数据 是否有键被按下 是否只有A键被按下 是否只有A键被按下 CPU从ROM读取数据被发送到数据总线 CPU从ROM读取数据被发送到数据总线 8255从数据总线取出数据 8255从数据总线取出数据 通过B口送至DAC0832 通过B口送至DAC0832 输出一个周期正弦波 输出一个周期三角波
(五)汇编程序:
DSG SEGMENT
DAT DB 80H,8CH,95H,0A5H,0B0H,0BCH,0C7H,0D1H DB 0DAH,0E2H,0EAH,0F0H,0F6H,0FAH,0FDH,0FFH DB 0FFH,0FDH,0FAH,0F6H,0F0H,0EAH,0E2H,0PAH DB 0D1H,0C7H,0BCH,0B0H,0A5H,98H,8CH,2EH DB 7FH,73H,67H,5AH,4FH,43H,38H,2EH DB 25H,1DH,15H,0FH,09H,05H,02H,00H DB 00H,02H,05H,09H,0FH,15H,1DH,25H DB 2EH,38H,43H,4FH,5AH,67H,73H,7FH DSG ENDS SSG SEGMENT
ST DB 100 DUP(?) SSG ENDS
CSG SEGMENT
ASSUME DS:SSG, CS:CSG START:MOV AX, DSG MOV DS, AX MOV AX, SSG MOV SS, AX
MOV IP, LENGTH ST MOV SI, OFFSET DAT MOV CX, 64 MOV AL, 90H
MOV DX, 2003H /通过方式选择控制字使A口工作 OUT BX, AL 在方式0输入,B口工作在方式0 CHECK: MOV BX, 2000H 输出/
IN AL, BX /读入8255A口数据/ AND AL, 03H
CMP AL, 02H /检验是否A键被按下/ JZ SIN
CMP AL, 01H /检验是否B键被按下/ JZ THREE JMP CHECK SIN: MOV AL, [SI] MOV BX, 2001H
OUT BX, AL /把数据输出到B口/ PUSH CX
MOV CX, 55 /产生时间延迟/ NEXT LOOP NEXT POP CX INC SI DEC CX
JNZ SIN /产生一个周期正弦波/ JMP CHECK /返回读取A口数据/ SIN ENDP
THREE MOV AL, 00H MOV BX, 2001H
A1: OUT BX, AL /把数据输出到B口/ INC AL
MOV CX, 9 /产生三角波的上升沿/ NEXT: LOOP NEXT CMP AL, 0FFH JNZ A1
A2: OUT BX, AL DEC AL
MOV CX, 9 /产生三角波的下降沿/ NEXT: LOOP NEXT CMP AL, 00H
JNZ A2 /产生一个周期三角波/ JMP CHECK /返回读取A口数据/ THREE ENDP CSG ENDS END
(六)总结:两周课程设计时间里,我们基本上完成了《微机原理及接口技术》
课程设计现总结如下:
在前期的准备过程中,经过查找资料,我们掌握了8088CPU、8255A、
DAC0832、ROM等芯片的相关内容,了解了总线的形成。复习了以前学过的内容。在汇编程序的设计过程中,我们复习并掌握了汇编程序的编写结构和要求,加强了对课堂内容的理解。
通过课程设计,我们将理论知识应用到实践中,去解决课程设计
中遇到的各种问题,做到学以致用。加深了我们对《微机原理及接口技术》这门课的主要知识的理解和掌握。
课程设计锻炼了我们团队协作能力和精神,为以后的学习和工作
做准备。经过讨论分工协作在大家的共同努力下我们顺利完成了设计,大家尽已所能,体现了团队合作和互助的精神。
在课程设计中也发现了我们学习过程中的一些问题,如对基本概
念学习不细致,掌握不全面,对《微机原理及接口技术》缺乏整体的系统的认识,以致于在设计之初不知如何着手去做,脑中没有一个整体的框架和构思。
由于我们掌握的知识不够全面,又是首次做课程设计,所以课程
设计出现纰漏在所难免,望老师加以指正。谢谢!
因篇幅问题不能全部显示,请点此查看更多更全内容