微机原理课程设计(正文) 电气0902高越

  • 格式:docx
  • 大小:4.05 MB
  • 文档页数:31

武汉理工大学《微机原理与接口技术》课程设计说明书 1 摘要 在我们日常生活中,以及一些科学研究中,三角波、正弦波、矩形波是常用的基本测试信号。此外,如在示波器、电视机等仪器中,为了使电子按照一定规律运动,以利用荧光屏显示图像,常用到锯齿波产生器作为时基电路。例如,要在示波器荧光屏上不失真地观察到被测信号波形,要求在水平偏转板加上随时间作线性变化的电压——锯齿波电压,使电子束沿水平方向匀速搜索荧光屏。而电视机中显像管荧光屏上的光点,是靠磁场变化进行偏转的,所以需要要用锯齿波电流来控制,对于三角波,方波同样有这不可忽视的作用而函数发生器是指一般能自动产生方波 正弦波 三角波以及锯齿波阶梯波等电压波形的电路或仪器。因此信号发生器是我们在学习,科学研究等方面不可缺少的工具。

关键词:信号发生器,波形,显示 武汉理工大学《微机原理与接口技术》课程设计说明书

2 1. 总体设计思路、基本原理和框图

1.1任务分析 任务要求可以显示正弦,方波和任意波形曲线,因此,根据题目要求设计一个程序可以显示正弦曲线,方波曲线,三角波。由任务要求分析可知,所编的程序应该包括按键检测,波形获取,屏幕显示等几个部分。 波形曲线可以看成一个函数,屏幕是由一个个像素点组成,它可以看成一个笛卡尔坐标系,曲线的每一个点对应着一个横坐标,对应着一个纵坐标(函数值),不同的曲线有不同的函数 ,只要找到曲线上点的坐标(函数值)就可以绘制出不同的曲线,所以,问题的关键就在于如何获得并显示出不同波形曲线的函数值。

1.2总体设计思路 通过汇编语言产生三角波和正弦波,并控制波形的幅值和相位。 三角波要分两段来产生,但因它的上升斜坡和下降斜坡都是线性关系,所以只要由数字量的增减来控制就可以了,产生上升斜坡时让输出值从零开始逐渐递增;相反,产生下降斜坡时,让输出值从最大幅值逐渐递减。 而正弦波是三角函数关系,通常可以用以下两种方法产生: (1) 查表法:该方法的优点是速度快,但在精度高的情况下要求的存储器容量也要增大。此种方法应用在对精度要求不高的场合。 (2) 泰勒级数展开法:在某些时候这是一种比查表法更为有效的方法。与查表法相比,这种方法需要的存储单元很少,而且精度高。其泰勒级数展开式如下: sin(x)=x(1-(1/6)*x^2*(1-(1/20)*x^2*(1-(1/42)*x^2*(1-(1/72)*x^2)))) 由于时间的原因,本实验中采用查表法,造一张正弦数字量表,即查函数表得到的值转换成十六进制数填表。D/A转换取值范围为一个周期,采样点越多,精度越高,本实验中采样点为256点/周期。正弦数字量表中的值为参考值,对于不同幅值的正弦波可以通过把表中的每个值乘以相同的倍数得到,其频率由改变输出点之间的延时来实现。 方波,只需确定其极值,在第一时间段为正,在第二时间段为负,以此类推。 武汉理工大学《微机原理与接口技术》课程设计说明书 3 1.3程序流程图 1.3.1程序流程图

图 1.1 原理框图 开始 设置屏幕显示方式 输出提示信息 绘制坐标系

‘1’键按下? N

‘3’键按下? ‘4’键按下?

‘2’键按下?

上键按下? ‘5’键按下? 下键按下? 右键按下? 左键按下?

E/e键按下? 结束

N N N N N N N

N Y

显示正弦曲线 显示方波曲线 显示三角曲线 清屏 改变曲线颜色 增大幅值

曲线右移 曲线左移 减小幅值

Y Y Y Y Y Y

Y Y Y

N 武汉理工大学《微机原理与接口技术》课程设计说明书

4 1.3.2程序流程说明 程序从初始化开始,首先让指针指向提示信息一,即在屏幕上显示: “1 sin;2 cos;3 triangle;4 clear;E/e exit;right/left change pha se;up/down change amplitude” ; 当有键按下后,如果键是1,则转向执行产生正弦波的程序; 如果键不是1,则看键是否为2。如果键是2,则转向执行产生方波的程序; 如果键也不是2,则看是否为3。如果是3,则转向执行产生三角波的程序; 如果也不是3,则看是否为4。如果是4,则转向执行清屏的程序; 如果也不是4,则看是否为e或者E。如果是e或者E,则转向执行结束程序。

以正弦波为例,当程序判断为按键1时,继续判断是否为“→”,“←”,“↑”,“↓”若为是 则执行右移,左移,幅度变大,幅度减小。其他波形同正弦波,这里不一一累述。

2.程序设计与实现 2.1 编程环境介绍 本次课程设计使用的软件是MASMPlus,它是一个使用纯 MASM 编写的个人免费版编辑器。MASMPlus 代码辅助书写非常方便,函数原型参数突出显示,标志参数自动列出,全局搜索可以搜索整个工程,全部关键字列出,自动大小写支持全部关键字,结构类型变量成员列出,鼠标提示关键字信息,同时,输入与列出遵守一定的编程规则,不会误导使用者。同时,MASMPlus 支持插件开发。MASMPlus是汇编的理想软件。 武汉理工大学《微机原理与接口技术》课程设计说明书

5 2.2 设置屏幕显示方式 IBM-PC的标准显示适配器,一种是单色显示,它只能显示黑白字母、数字、符号和菱形等简单的图形字符,它是以文本方式工作的;另一种是彩色/图形适配器EGA和VGA,它能以文本和图形两种方式工作。在彩色/图形适配器中把屏幕分成M*N个点阵,每个坐标上的图像元素就是一个像素。 通过调用BIOS中断int 10h的0号功能可以设置屏幕的显示方式。调用方式如下:入口参数:AH=0(功能号),AL=设置方式。部分显示设置方式调用参数如表5-1。出口参数:无。 表 5-1 部分显示设置方式表 调用参数AL 显示方式 00H 40*25 黑白字符方式 01H 40*25 彩色字符方式 02H 80*25 黑白字符方式 03H 80*25 彩色字符方式 04H 320*200 彩色图形方式 11H 640*480 单色图形 12H 640*480 16色图形

本设计中选用04号功能,设置屏幕分辨率为320*200,彩色图形方式,字符分辨率为80*25。其中屏幕的最左上角坐标为(0,0)。 程序模块如下: ;设置屏幕显示方式宏 setscreen macro mov ah,0 mov al,04h int 10h endm

2.3输出文本信息 为了拥有一个良好的人机交互界面,在程序设计中,文本提示信息的输出有着非常重要的作用。汇编语言中,可以通过调用DOS中断,int 21h处理输入和输出信息,同时还可以通过BIOS中断int 10h设置输出字符的起始位置。 武汉理工大学《微机原理与接口技术》课程设计说明书 6 设置输出字符的起始位置模块如下: mov ah,2 mov dh,X ;第一个字符输出的行坐标 mov dl,Y ; 第一个字符输出的列坐标 int 10H 显示字符串需要调用int 21h中断的09号功能。 程序模块如下: ;设置输出宏,带参数 output macro mess ;mess为字符串变量名 mov ah,2 mov dh,22 mov dl,1 int 10H ;设置字符输出开始位置 mov dx,offset mess mov ah,9 int 21h endm 宏执行完成后,将在22行第一列开始输出变量mess的字符串。

2.4键盘处理子程序 键盘处理使用BIOS或者DOS键盘中断,本程序中使用DOS键盘中断,调用如下: mov ah,0ch ;清楚键盘缓冲区 mov ah,7 ;等待从键盘输入一个字符,不回显 int 21h ;返回参数AL=按下键的ASC码 不同的按键处理如下: 武汉理工大学《微机原理与接口技术》课程设计说明书 7 cmp al,'1' ;若为1,跳到正弦输出过程 jz pan1 ……… cmp al,'e';若为q,则退出 jz quit cmp al,'E' jz quit jmp inkey ;不断检测键盘

2.5 绘制图形 本设计选用的屏幕显示方式为320*200 彩色图形方式,即横坐标有320个点,纵坐标有200个点,默认左上角为坐标原点(0,0)。要画出波形曲线,则要每个横坐标都对应着一个纵坐标的值。值不同绘制出的波形曲线也不同。把不同的曲线纵坐标的值储存在表中,通过查表可以得到不同曲线。每种曲线取128个点,然后在屏幕上绘制出这些点,从而显示出相应的波形曲线。 屏幕上的图形是由多个像素点组成,所以各种曲线也由多个点组成。在指定的坐标位置上写像素点的方式如下: mov ah,0ch mov al,color; ;像素点的颜色(0~3) mov cx,column ;列号 mov dx,row ;行号 int 10h

2.6 绘制坐标系 由于屏幕默认的原点为左上角为(0,0),要在屏幕中间绘制曲线,所以在绘制前要进行坐标的变换,转化为笛卡尔坐标系,该子程序如下: