第一篇:编译原理课设总结(定稿)
董楠楠1006010101
经过一个星期的编译原理课程设计,在老师的指导以及小组同学的互相帮助下顺利完成该课程设计。通过该课程设计,收获很多。
此次课设,我们小组用的是java语言,在课设过程中,用到了以前开发过程中所没有的探索过的很多新方法,最直接的影响就是让我对java语言的认识与理解更近一层。并且掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,对课本上的知识有了更深的理解。
因为本实验用了java语言编写,个人觉得相比C语言模块更加清晰明了。在该词法分析程序中,我们用了java中的split方法对输入串进行分割,简单易懂。其次,在字符匹配过程中,引进了正则表达式,让输入串与之匹配,极大地缩减程序的繁琐性。同时,java的面对对象的性质在程序中得到充分的体现,在代码的编写过程中,将各种判定封装为函数,主函数通过调用这些封装函数完成功能,摒弃了C语言结构化的繁琐,使整个处理函数清晰可读。在测试多个用例时,发现程序的很多小错误,但最后都能够一一解决,尤其在这个过程中,我也充分体会到了团队合作的力量。此次课设更加深了对java语言的认识,并熟悉了java语言中正则表达式的用法。
通过该课程设计,全面系统的理解了编译原理程序构造的一般原理和基本实现方法。能够把学过的计算机编译原理的知识强化,并通过自己设计的程序表现出来,加深了对理论知识的理解,同时也激发了学习的积极性。课程设计中的第二个程序对简单表达式文法构造算符优先分析器比较复杂,在调试时出现了很多问题,经过大量的修改和一遍又一遍地调试,最后把错误全都改正没有做到根据文法得到相应的算符优先表,而是在程序中直接给出,这是程序的一个小缺陷。
第二篇:通信原理课设(本站推荐)
目
录
一、音频传输系统设计..................................................................................................................1
1.设计目的................................................................................................................................1 2.设计内容................................................................................................................................1 3.实现步骤................................................................................................................................1 4.结论及思考............................................................................................................................5
二、数字传输系统设计..................................................................................................................7
1.设计目的................................................................................................................................7 2.设计内容................................................................................................................................7 3.实现步骤..............................................................................................................................11 4.结论及思考..........................................................................................................................17
三、总结与收获............................................................................................................................18 指导教师意见................................................................................................................................19
《通信原理》课程设计报告
一、音频传输系统设计
1.设计目的
通信的基本形式是在信源和信宿之间建立一条传递信息的通道,通信系统通常由 信源,变换器,信道,反变换器,信宿以及等效噪声等几部分构成.通过这次音频传输系统设计,我们可以深刻体会到信号在通信系统中的传输和处理过程有一个更加清晰的认识和理解,对于模拟通信系统,考查学生对调制技术的理解和使用, 同时,通过音频传输系统的设计,我们更加深刻理解了模拟通信系统设计,以及模拟通信系统下最重要的调制技术的应用和设计,锻炼了我们独立思考和分析工程问题的能力,同时,通过设计和实现,我们对复杂的工程问题会有更加深刻的认识,对一个完整的模拟通信系统会有一个更加清晰和完善的概念.2.设计内容
利用NI-USRP节点设备接收实际的广播信号.结合LABVIEW,实现对音频信号的调制解调,观察接收信号的质量并进行分析.3.实现步骤
音频传输系统包括发送端和接收端: 音频传输系统TX.vi: 发射端主程序的前面板如图,前面板左侧为参数输入图部分。
(1)首先,用NI-USRP Configuration Utility观察确保硬件与电脑连接上,以及硬件的地址。
(2)然后修改发送端前面板的“设备的IP地址”。
(3)可以设置声音文件路径(labview只能识别wav格式音频文件)。
(4)USRP配置各类程序控制参数,包括IQ速率,可以更改,但是发送端与接收端的IQ速率要相同,载波频率就是频点频率。
《通信原理》课程设计报告
此模块的作用是根据输入的路径获取音频文件,对应于程序框图SUBVI OPEN Waveform File.vi,输入是外部音频文件的路径,要求必须是wav格式。如果留空,则会自动选择默认音频文件,输出时声音文件的引用句柄,每次从声音文件中读取的样点数以及任务id。此外,这个子程序还留有一个选择是否同时播放的选项,程序的前面板会有一个勾选框,可以选择是否在发送的同时也播放声音。
2.读取声音波形
这个模块的作用是将打开音频文件模块中得到的声音文件转换成波形数组形式输出,同时,还将波形数据写进声音输出设备,使得在发送端可以听到将要发送的声音,如果在前面板勾选了同时播放声音这个选项,那么就可以通过电脑声卡播放出声音,对应于程序框图中的SubVI Read Waveforem File.vi子程序。
输出是波形数据、任务ID以及文件标示和同时播放声音这个选项。3.进行FM调制
该模块的作用是对音频进行FM调制,对应于Exercises FM Modulation.vi
图1-3FM调制图
该模块的输入是声音波形数据,IQ 采样率和频偏,输出是经过FM调制后的时域波形,调制后的波形数据进入niUSRP Write Tx Data(poly)函数。根据前面板上配置后的各项参数发射到空间中,以供接收端程序,普通的FM收音机或者有FM接收功能的手机接收。
该模块需要分两步完成对声音信号的FM调制。
《通信原理》课程设计报告
4.结论及思考
思考:
1.频偏的意义是什么?它怎样影响调制信号?从听众的角度,能做些什么来解决这些影响,做一些测试验证观点。
mf = 最大频偏低频信号的频率,B = 2*(mf+1)F,影响带宽,而带宽影响噪声,所以同时频偏也影响输出信噪比。
从听众的角度来讲,因为公共广播的频带范围是有限的,为87.5~108MHz,以100KHz为步进搜索电台。我们在使用通信系统时应该避开这些公共频带。
2.找出一些能证明所设计的FM收发机性能优劣的技术指标
采样率的大小:接收机的采样效率越高,相同信噪比下收听效果越好。天线增益:天线增益越小,接收效果越好。结论:
1.利用NI-USRP节电设备,结合LabVIEW,我实现了对音频信号的调制解调,收听到了包含有噪声的音乐。
2.提高接收质量:有很多因素影响FM通信系统的有效性和可靠性,如带宽、频偏、增益和载波频率对FM通信系统的影响较大。经测试,提高增益和减小频偏可以有效改善质量。
《通信原理》课程设计报告
3、信源编码
该模块主要是完成霍夫曼编码—基于有序频率二叉树的编码。
图2-2信源编码
4、信道编码
这里主要是使用的(7,4)分组编码
5、脉冲调制
主要完成添加训练队列以及脉冲成形滤波的功能。其中添加训练序列主要是为了接收端可以频偏校正。
6、信道设置
主要在信道中加入白噪声。
《通信原理》课程设计报告
前面板左下方是接受信号的它的星座图,和误码率曲线。可以通过这些来判断程序是否正确。
图2-5数字传输系统接收端
而对接收端的程序框图进行分析:
1、初始化
实现USRP初始化和配置USRP的参数,此时注意与发送对应。如图所示。
图2-6初始化框图
2、信号检测
《通信原理》课程设计报告
2.设计内容
1)完成信道编码即(7,4)分组编码的过程,此时需要完成Exercises Encode-74.vi,学习(7,4)分组码译码的过程。
2)将脉冲调制模块的QPSK/BPSK程序图补充完整 3)学习信源编码即霍夫曼编译码的过程 3.实现步骤
1)发送端接收端程序结构:
图2-6发送端(1)
图2-7发送端(2)
发送端程序框图:
《通信原理》课程设计报告
设置生成矩阵,然后输入前面板的生成矩阵内,打开程序框图,进行设计。
图2-9分组码程序框图
设计图如下:
输入后将长串输入数据流进行长度为4的分块。也即为4维数组。和G矩阵相乘,之后再转化为一维数组。由于矩阵乘法是数值相加的过程,而分组编码是异或过程,因此需要将矩阵内每个元素除二取余,余数即为正确的异或过程。
分组码译码: 首先设计校验矩阵H。接着设计程序框图如下:
图2-10解调程序框图
《通信原理》课程设计报告
入信号平均能量,将此能量与符号能量相乘乘上信号幅值,得到输出信号
图2-12 BPSK设计
BPSK。BPSK解调如图所示。输入数据流对2取余,输出到下一个框图,0对应1,1对应-1.4)利用USRP设备实现图像发送 首先设置硬件设备,选择好天线,然后打开发送端和接收端。得到结果如下:
图2-13发送和接收图像
在图像传输过程中会出现噪声干扰,通过增大增益可以使噪声减小。
《通信原理》课程设计报告
(备注:此处要求手写,不得拷贝,要有自己的心得体会)
本人签名:
年
月
月
日指导教师意见
第三篇:通信原理课设
沈阳理工大学通信系统课程设计
摘 要
摘要:所谓调制,就是在传送信号的一方将所要传送的信号附加在高频振荡上,再由天线发射出去。这里高频振荡波就是携带信号的运载工具,也叫载波。振幅调制,就是由调制信号去控制高频载波的振幅,直至随调制信号做线性变化。在线性调制系列中,最先应用的一种幅度调制是全调幅或常规调幅,简称为调幅(AM)。为了提高传输的效率,还有载波受到抑制的双边带调幅波(DSB)和单边带调幅波(SSB)。在频域中已调波频谱是基带调制信号频谱的线性位移;在时域中,已调波包络与调制信号波形呈线性关系。
本课程设计主要利用MATLAB集成环境下的Simulink仿真平台,设计一个AM调制与相干解调通信系统,分别在理想信道和非理想信道中运行,并把运行仿真结果输入显示器,根据显示结果分析所设计的系统性能。经过调制,初步实现了设计目标,并且经过适当的完善后,实验成功。
关键词: MATLAB7.1 ;Simulink仿真平台;AM调制;相干解调
沈阳理工大学通信系统课程设计
目录 课程设计目的…………………………………………………………1 课程设计要求…………………………………………………………1 相关知识………………………………………………………………1 课程设计分析…………………………………………………………2 仿真……………………………………………………………………6
6结果分析………………………………………………………………10 参考文献………………………………………………………………12
沈阳理工大学通信系统课程设计
1.课程设计的目的
1.掌握模拟系统AM调制和解调原理。2.掌握模拟系统AM调制和解调的设计方法。
3.掌握用MATLAB分析系统时域、频域特性的方法,进一步锻炼应用MATLAB进行编程仿真的能力。
4.熟悉基于Simulink的动态建模和仿真的步骤和过程。
2.课程设计的要求
利用Matlab软件进行振幅调制和解调程序设计,输出显示调制信号、载波信号以及已调信号波形,并输出显示三种信号频谱图。对产生波形进行分析,并通过参数的改变,观察波形变化,分析实验现象。
3.相关知识 3.1 AM调制原理
幅度调制是用调制信号去控制高频正弦载波的幅度,使其按调制信号的规律变化的过程。幅度调制器的一般模型如图2.1所示。
图3.1—1 幅度调制模型
在图2-1中,若假设滤波器为全通网络(=1),调制信号mt叠加直流A0后再与载波相乘,则输出的信号就是常规双边带(AM)调幅.AM调制器模型如图2-2所示
图3.1—2 AM调制模型
AM信号波形的包络与输入基带信号mt成正比,故用包络检波的方法很容易恢复原始调制信号。但为了保证包络检波时不发生失真,必须满足A0mtmax,否
沈阳理工大学通信系统课程设计
则将出现过调幅现象而带来失真。AM信号的频谱是由载频分量和上、下两个边带组成(通常称频谱中画斜线的部分为上边带,不画斜线的部分为下边带)。上边带的频谱与原调制信号的频谱结构相同,下边带是上边带的镜像。显然,无论是上边带还是下边带,都含有原调制信号的完整信息。故AM信号是带有载波的双边带信号,它的带宽信号带宽的两倍。
3.2 相干解调
由AM信号的频谱可知,如果将已调信号的频谱搬回到原点位置,即可得到原始的调制信号频谱,从而恢复出原始信号。解调中的频谱搬移同样可用调制时的相乘运算来实现。相干解调的关键是是必须产生一个与调制器同频同相位的载波。如果同频同相位的条件得不到满足,则会破坏原始信号的恢复。
4.课程设计分析
4.1双边带幅度调制
在DSB-AM系统中,已调信号的幅度正比与消息信号。这种调制通过使用乘法器完成,将消息信号吗m(t)与载波Accos(2πfct),如图4.1—1所示,表示为:
u(t)=Acm(t)cos(2πfct)
(1)
图 4.1—1 DSB-AM调制原理结构框图
其中
c(t)=Accos(2πfct)
(2)
是载波,而m(t)是消息信号。若以单频正弦信号调制为例,那么典型波形如图4.1—2所示。
沈阳理工大学通信系统课程设计
现取u(t)的傅立叶变换,可以得到DSB-AM信号的频域表示为:
(3)
其中M(f)是m(t)的傅立叶变换。很明显可以看出,这种调制方式将消息信号的频谱进行了搬移,并在幅度上乘以Ac/2,传输带宽Br是消息信号带宽的两倍,也就是说:
Br=2W
(4)
图3显示了一个典型的消息信号的频谱及其相对应的DSB-AM已调信号的频谱。
图4.1—2 消息信号与DSB-AM已调信号的频谱
已调信号的功率为
(5)
其中Pm是消息信号的功率。在DSB-AM通信系统中,信噪比SNR等于基带的SNR,也就是:
沈阳理工大学通信系统课程设计
(6)
其中PR是接收到的功率(在接收端已调信号的功率),N0是噪声功率谱密度(假定为白噪声),W是信号噪声的带宽。
4.2双边带抑制载波幅度调制
4.2.1.DSB信号的表达式、频谱及带宽
在幅度调制的一般模型中,若假设滤波器为全通网络(=1),调制信号
中无直流分量,则输出的已调信号就是无载波分量的双边带调制信号,或称抑制载波双边带(DSB-SC)调制信号,简称双边带(DSB)信号。
DSB调制器模型如图4.2.1—1所示。可见DSB信号实质上就是基带信号与载波直接相乘,其时域和频域表示式分别为
图4.2.1—1DSB-SC调制模型
(7)
(8)
DSB信号的包络不再与
成正比,故不能进行包络检波,需采用相干解调;除不再含有载频分量离散谱外,DSB信号的频谱与AM信号的完全相同,仍由上下对称的两个边带组成。故DSB信号是不带载波的双边带信号,它的带宽与AM信号相同,也为基带信号带宽的两倍,即
4.2.2.DSB信号的解调
DSB信号只能采用相干解调,其模型与AM信号相干解调时完全相同,此时,乘法器输出
沈阳理工大学通信系统课程设计
经低通滤波器滤除高次项,得
(9)
即无失真地恢复出原始电信号。
抑制载波的双边带幅度调制的好处是,节省了载波发射功率,调制效率高;调制电路简单,仅用一个乘法器就可实现。缺点是占用频带宽度比较宽,为基带信号的2倍。
沈阳理工大学通信系统课程设计
5.仿真
5.1双边带频带幅度调制的系统仿真
图5.1-1双边带频带幅度调制的系统仿真框图
图5.1-2 DSB AM Modulator Passband(双边带频带幅度调制器)的主要参数
沈阳理工大学通信系统课程设计
图5.1-3 DBS AM Demodulator Passband(双边带频带幅度解调器)的主要参数
图5.1-4 DBS AM(双边带幅度调制)频谱仪(Spectrum Scope)的主要参数
沈阳理工大学通信系统课程设计
5.2双边带抑制载波幅度调制系统仿真
图5.2-1 双边带抑制载波幅度调制的系统仿真框图
图5.2-2 DSB-SC AM 信号发生器(Signal Generator)的主要参数
沈阳理工大学通信系统课程设计
图5.2-3 DSB-SC AM Modualtor Passband(双边带频带抑制幅度调制器)的主要参数
图5.2-4 DSB-SC AM的频谱仪(Spectrum Scope)的主要参数
沈阳理工大学通信系统课程设计
6.结果分析
6.1双边带频带幅度调制的系统仿真结果
图6.1-1双边带频带幅度调制后的频域图
图6.1-2双边带频带幅度调制仿真系统中示波器的波形图
沈阳理工大学通信系统课程设计
6.2双边带抑制载波幅度调制系统仿真结果
图6.2-1 双边带频带抑制幅度调制后调制信号的频域图
图6.2-2 双边带抑制幅度调制后调制信号的时域图
沈阳理工大学通信系统课程设计
7.参考文献
【1】桑林,郝建军,刘丹,【数字通信】,北京邮电大学出版社,2002 【2】苗云长等主编,【现代通信原理及应用】,电子工业出版社,2005 【3】吴伟铃,庞沁华,【通信原理】,北京邮电大学出版社,2005 【4】张圣勤,【MATLAB7.0实用教程】桑林,郝建军,刘丹,数字通信,北京邮电大学出版社,2002 【5】邵玉斌,【Matlab/Simulink通信原理建模与仿真实例分析】,清华大学出版社,2008 【6】沈伟慈。【通信电路】,西安电子科技大学出版社,2007
第四篇:微机原理课设
目录
一.课程设计的实验目的与要求……………………………2 1.教学目的……………………………2 2.教学要求……………………………2 3.主要技术指标……………………………2 二.课程设计课题的分析……………………………2 三.课程设计的结果……………………………4 1.实验代码……………………………4 2.实验现象……………………………10 四.心得体会 ……………………………12 五.参考文献 ……………………………12
一、课程设计的目的与要求 1.教学目的
本课程的课程设计是自动化专业学生学习完《微机原理及应用》课程后,进行的一次以汇编语言为主,硬件设计为辅的综合训练。本课程设计的其目的在于加深对微机原理基本知识的理解,掌握汇编语言程序设计的基本方法;掌握运用微机原理开发系统的基本方法。2.教学要求
从课程设计的目的出发,通过设计工作的各个环节,达到以下要求: 1)掌握汇编语言程序设计的基本方法。
2)进一步理解各种接口电路的应用。例如8255并行接口,8253定时器等。3)掌握利用PC机扬声器发出不同频率声音的方法。3.主要技术指标
1)在程序运行时使PC即成为一架可弹奏的电子琴。当按下数字键1-8时,依次发出1,2,3,4,5,6,7,I这八个音调。2)在程序运行时使PC自动按要求提示演奏乐曲。
二、课程设计课题的分析
图1.扬声器工作原理图示
图2.主程序工作流程图
图3.乐曲演奏子程序工作流程图 图4.电子琴子程序工作流程图
图5.扬声器工作流程图
三、课程设计的结果
1、实验代码
DATA
SEGMENT INFO1
DB 0AH, 0DH, 'WELCOME YOU TO COME HERE!$'
DB 0AH, 0DH, 'THIS IS A MUSIC PROGRAM!$' DB 0AH, 0DH, 'PLEASE SELECLT!$' INFO4
DB 0AH, 0DH, 'INPUT ERROR!$' INFO5
DB 0AH, 0DH, 'PLEASE INPUT AGAIN!$' MUSLIST
DB 0AH, 0DH, '========================='
DB 0AH, 0DH, 'Press1
HuanLeSong' DB 0AH, 0DH, 'Press2
KaiXin' DB 0AH, 0DH, 'Press3
XiaoBuWuQu' DB 0AH, 0DH, 'Press4
Wonderful' DB 0AH, 0DH, 'Press5
SCALE PLAY ' DB 0AH, 0DH, 'Press6
EXIT' DB 0AH, 0DH, '=========================' DB 0AH, 0DH, '$' MUS_FRQ1
DW 330, 330, 350, 393, 393, 350, 330, 294
DW 262, 262, 294, 330, 330, 294, 294 DW 330, 330, 350, 393, 393, 350, 330, 294
DW 262, 262, 294, 330, 294, 262, 262 DW 294, 294, 330, 262, 294, 330, 350, 330, 262 DW 294, 330, 350, 330, 262, 262, 294, 393 DW 330, 330, 350, 393, 393, 350, 330, 294 DW 262, 262, 294, 330, 294, 262, 262,-1 MUS_TIM1
DW 8 DUP(100)
DW 7 DUP(100),200 DW 8 DUP(100)DW 7 DUP(100),200 DW 5 DUP(100),50,50,2 DUP(100)DW 100,50,50,4 DUP(100),200 DW 8 DUP(100)DW 7 DUP(100),200 MUS_FRQ2
DW 330, 294, 262, 294, 3 DUP(330)DW 3 DUP(294), 330, 392, 392 DW 330, 294, 262, 294, 4 DUP(330)DW 294, 294, 330, 294, 262,-1 MUS_TIM2
DW 6 DUP(100),200 DW 2 DUP(100,100,200)DW 8 DUP(100)DW 4 DUP(100),400 MUS_FRQ3
DW 392, 262, 294, 330, 350, 392, 262, 262 DW 440, 350, 392, 440, 494, 524, 262, 262 DW 350, 392, 350, 330, 294, 330
DW 350, 330, 294, 262, 294, 330, 294, 262, 247, 262,-1 MUS_TIM3
DW 200, 4 DUP(100), 200, 200, 200 DW 200, 4 DUP(100), 200, 200, 200 DW 200, 4 DUP(100), 200 DW 4 DUP(100), 200, 4 DUP(100), 400 MUS_FRQ4
DW 330, 392, 330, 294, 330, 392, 330, 394, 330 DW 330, 392, 330, 294, 262, 294, 330, 392, 294
DW 262, 262, 220, 196, 196, 220, 262, 294, 330, 262,-1 MUS_TIM4
DW 3 DUP(200), 100, 100, 200, 100, 100, 400 DW 2 DUP(200,200,100,100), 400 DW 3 DUP(200,100,100), 400 TABLE
DW 262, 294, 330, 349, 392, 440, 494, 525
NUMB
DB 0AH, 0DH, 'Keyboard number 1~8 keys play notes of the scale'
DB 0AH, 0DH, 'Enter or Ctrl+C to exit' DB 0AH, 0DH, '$' DATA
ENDS STACK
SEGMENT
PARA STACK 'STACK'
STA
DB 200 DUP('STACK')
STACK
ENDS CODE
SEGMENT ASSUME DS: DATA, SS: STACK, CS: CODE, ES: DATA START:
MOV AX, DATA
MOV DS, AX MOV ES, AX MOV AX, STACK
MOV SS, AX SHOW
MACRO B MOV DX, OFFSET B
MOV AH, 09H
INT 21H ENDM SHOW INFO1 LOP:
SHOW MUSLIST MOV AH, 01H
INT
21H
CMP AL, 36H
JZ
RETU
CMP AL, 31H
JNZ
B0 CALL MUSIC1
JMP
EXIT1 B0:
CMP
AL, 32H
JNZ
C0 CALL MUSIC2
JMP
EXIT1 C0:
CMP
AL, 33H
JNZ
D0 CALL MUSIC3
JMP
EXIT1 D0:
CMP
AL, 34H
JNZ
E0 CALL MUSIC4
JMP
EXIT1 E0:
CMP
AL, 35H
JNZ
EXIT SHOW NUMB CALL MUSIC5 EXIT1:
SHOW INFO5
JMP
LOP EXIT:
SHOW INFO4 SHOW INFO5
JMP
LOP RETU:
MOV AX, 4C00H
INT
21H MUSIC1
PROC
LEA
SI, MUS_FRQ1
LEA
BP,DS: MUS_TIM1 FREQ1:
MOV DI, [SI] CMP DI,-1
JE
END_MUS1 MOV BX, DS: [BP] CALL GENSOUND
ADD
SI,2
ADD
BP,2 JMP FREQ1
END_MUS1:RET MUSIC1
ENDP MUSIC2
PROC
LEA
SI, MUS_FRQ2
LEA
BP,DS: MUS_TIM2 FREQ2:
MOV DI, [SI] CMP DI,-1
JE
END_MUS2 MOV BX, DS: [BP] CALL GENSOUND
ADD
SI,2
ADD
BP,2
JMP FREQ2
END_MUS2:RET MUSIC2
ENDP MUSIC3
PROC
LEA
SI, MUS_FRQ3
LEA
BP,DS: MUS_TIM3 FREQ3:
MOV DI, [SI] CMP DI,-1
JE
END_MUS3 MOV BX, DS: [BP] CALL GENSOUND
ADD
SI,2
ADD
BP,2 JMP FREQ3
END_MUS3:RET MUSIC3
ENDP MUSIC4
PROC
LEA
SI, MUS_FRQ4
LEA
BP,DS: MUS_TIM4 FREQ4:
MOV DI, [SI] CMP DI,-1
JE
END_MUS4 MOV BX, DS: [BP] CALL GENSOUND
ADD
SI,2
ADD
BP,2 JMP FREQ4
END_MUS4:RET MUSIC4
ENDP MUSIC5
PROC NEAR PUSH AX PUSH BX PUSH CX LOP5:
MOV AH, 01H
INT
21H
CMP AL, 0DH
JE
EXIT5
CMP AL, 31H
JB
LOP5
CMP AL, 38H
JA
LOP5
AND AX, 0FH
SHL
AX, 1
SUB
AX, 2
MOV SI, AX MOV BX, OFFSET TABLE MOV DI, [BX][SI]
MOV BX, 100
CALL
GENSOUND
JMP LOP5 EXIT5:
POP CX POP BX POP AX
RET MUSIC5
ENDP GENSOUND
PROC
PUSH AX PUSH BX PUSH CX PUSH DX PUSH DI MOV AL, 0B6H
OUT
43H, AL
MOV
DX, 12H
MOV AX, 533H*896 DIV DI OUT 42H, AL
MOV AL, AH OUT 42H, AL
IN AL, 61H
MOV AH, AL OR AL, 3
OUT 61H, AL
PUSH AX
WAIT1:
MOV CX, 1200
DELA1:
IN AL, 61H
AND AL, 10H CMP AL, AH JE DELA1 MOV AH,AL LOOP DELA1 DEC BX JNZ WAIT1 POP AX MOV AL, AH OUT 61H, AL
POP DI POP DX POP CX
POP
BX POP AX
RET GENSOUND ENDP CODE
ENDS END
START
2、实验现象
1.进入DOS后在DOS界面进行汇编链接并生成可执行文件.exe 2.双击可执行文件DZQ.exe进入操作界面如图所示
操作界面初始界面
3.在进行操作的时候只要在键盘上按1-4这数字键就可以听取歌曲1-4,按数字键5时进入电子琴界面,这时候1-8分别表示音乐CDEFGABC这几个音符。按回车后退出电子琴操作界面,这时候按6退出程序。
按数字键5后进入电子琴界面
四、心得体会
这次课程设计给我的感觉是:与其说这次课设是一个任务,不如说是期末对微机原理的一次系统的复习。通过课设,我弄清楚了课本上一些比较晦涩但是又非常重要的章节的内容,例如:键盘和显示器DOS功能调用,数据定义伪指令的使用,子程序的嵌套,8253芯片的初始化等等。
刚拿到课设题目时可以说是毫无思绪,但是通过查阅资料,模仿别人的程序,不断理解,拼凑,改进,终于按照课设要求完成任务。刚开始上机运行程序出现的问题不可谓不多,但是通过汇编的错误提示,我很容易的发现了问题并改正了它,如果不是上机运行,而是一味的盯着程序检查,那样的话真可谓无从下手,事倍功半。这个告诉我有时候动动手实践,远比啃书学习知识的效率要高得多。
五、参考文献
[1] 王忠民.微型计算机原理(第二版).西安:西安电子科技大学出版社,2007年
[2] 马春燕.微机原理与接口技术实验与学习辅导.北京:电子工业出版社.2007年
第五篇:编译原理 学习心得
国际学院 0802 杨良燕 200819100227
《编译原理》课程学习心得
《编译原理》是计算机专业的一门重要课程,正如教材
第一章的引论所述,“编译程序是现代计算机系统的基本组成部分之一”。“一个编译程序就是一个语言翻译程序,语言翻译程序把一种语言(源语言)书写的程序翻译成另一种语言(目标语言)的等价程序”。
通过这一学期的学习,我觉得编译原理是一门理论性很强的课程,从文法和语言的概念到LL(1)文法和LR(0)文法的分析,几乎都是对具体问题的抽象。因而,我们需要更多的时间来理解、掌握相关的知识,当然在这一过程中也存在很多问题,比如我们后期学习具体文法的分析方法时,对于文法的概念不够清晰,影响了上课的效率,知道老师再次给我们讲解了文法等基础的知识点,我们才慢慢掌握后面所学的LL(1)文法等,也发现了知识点之间的关联。此外,这门课程的课时被安排得很少,一周只有一次,这样很不利于我们对这门重要课程的理解和掌握。但是我觉得我们很幸运,因为老师在有限的课程中尽量将知识点以比较容易接受的方式给我们讲解,教我们用简单的方法理解记忆不同的知识,对于我们提出的问题,无论课上或是课外,老师一直是不厌其烦,甚至利用课余时间为我们讲解重要的难题。
编译原理这门课程不仅仅在于其本身的理论价值,更在于为我们解决问题提供的思维方式和方法。从LL(1)到LR(0),问题不断被解决的同时,又有一个个新的问题提了出来。对计算机语言世界的知识积累,像滚雪球一样越滚越大。这个逐渐递进,逐渐解决问题的过程对我来说是收获很大的。整个过程好像踏着前人研究编译理论的路线,不断感觉他们遇到的问题,更重要的是他们解决问题的思路。编译原理的课程带给我的不只是如何去编译程序这样的理论知识,相信更重要的是一种如何“自动计算”的思路。通过对相关编译问题的具体分析,让我体会最深的是一种“自动计算”的思想,同时完成编译试验后,更是感到了一种“自动计算”的快乐。”然而我明白自己虽然对编译有了一定的了解,我懂得了文法的分析,学会了构造确定和非确定有限自动机,学会了LL(1)文法和LR(0)文法等,但是并没有完全掌握,对于这些知识点的实质性和其他方面,更是认识不深。作为一名学习计算机科学与技术的学生,我明白编译原理是软件工程的基础,课程的结束并不意味着学习的结束,只有通过以后的学习,才能更深入地了解编译原理。