微机原理课程设计正文 电气0902高越.docx

上传人:b****2 文档编号:3146100 上传时间:2023-05-05 格式:DOCX 页数:37 大小:4.06MB
下载 相关 举报
微机原理课程设计正文 电气0902高越.docx_第1页
第1页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第2页
第2页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第3页
第3页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第4页
第4页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第5页
第5页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第6页
第6页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第7页
第7页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第8页
第8页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第9页
第9页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第10页
第10页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第11页
第11页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第12页
第12页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第13页
第13页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第14页
第14页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第15页
第15页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第16页
第16页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第17页
第17页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第18页
第18页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第19页
第19页 / 共37页
微机原理课程设计正文 电气0902高越.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理课程设计正文 电气0902高越.docx

《微机原理课程设计正文 电气0902高越.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计正文 电气0902高越.docx(37页珍藏版)》请在冰点文库上搜索。

微机原理课程设计正文 电气0902高越.docx

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

摘要

在我们日常生活中,以及一些科学研究中,三角波、正弦波、矩形波是常用的基本测试信号。

此外,如在示波器、电视机等仪器中,为了使电子按照一定规律运动,以利用荧光屏显示图像,常用到锯齿波产生器作为时基电路。

例如,要在示波器荧光屏上不失真地观察到被测信号波形,要求在水平偏转板加上随时间作线性变化的电压——锯齿波电压,使电子束沿水平方向匀速搜索荧光屏。

而电视机中显像管荧光屏上的光点,是靠磁场变化进行偏转的,所以需要要用锯齿波电流来控制,对于三角波,方波同样有这不可忽视的作用而函数发生器是指一般能自动产生方波正弦波三角波以及锯齿波阶梯波等电压波形的电路或仪器。

因此信号发生器是我们在学习,科学研究等方面不可缺少的工具。

关键词:

信号发生器,波形,显示

 

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点/周期。

正弦数字量表中的值为参考值,对于不同幅值的正弦波可以通过把表中的每个值乘以相同的倍数得到,其频率由改变输出点之间的延时来实现。

方波,只需确定其极值,在第一时间段为正,在第二时间段为负,以此类推。

 

1.3程序流程图

1.3.1程序流程图

图1.1原理框图

1.3.2程序流程说明

程序从初始化开始,首先让指针指向提示信息一,即在屏幕上显示:

“1sin;2cos;3triangle;4clear;E/eexit;right/leftchangephase;up/downchangeamplitude”;

当有键按下后,如果键是1,则转向执行产生正弦波的程序;

如果键不是1,则看键是否为2。

如果键是2,则转向执行产生方波的程序;

如果键也不是2,则看是否为3。

如果是3,则转向执行产生三角波的程序;

如果也不是3,则看是否为4。

如果是4,则转向执行清屏的程序;

如果也不是4,则看是否为e或者E。

如果是e或者E,则转向执行结束程序。

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

其他波形同正弦波,这里不一一累述。

2.程序设计与实现

2.1编程环境介绍

本次课程设计使用的软件是MASMPlus,它是一个使用纯MASM编写的个人免费版编辑器。

MASMPlus代码辅助书写非常方便,函数原型参数突出显示,标志参数自动列出,全局搜索可以搜索整个工程,全部关键字列出,自动大小写支持全部关键字,结构类型变量成员列出,鼠标提示关键字信息,同时,输入与列出遵守一定的编程规则,不会误导使用者。

同时,MASMPlus支持插件开发。

MASMPlus是汇编的理想软件。

 

2.2设置屏幕显示方式

IBM-PC的标准显示适配器,一种是单色显示,它只能显示黑白字母、数字、符号和菱形等简单的图形字符,它是以文本方式工作的;另一种是彩色/图形适配器EGA和VGA,它能以文本和图形两种方式工作。

在彩色/图形适配器中把屏幕分成M*N个点阵,每个坐标上的图像元素就是一个像素。

通过调用BIOS中断int10h的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*48016色图形

本设计中选用04号功能,设置屏幕分辨率为320*200,彩色图形方式,字符分辨率为80*25。

其中屏幕的最左上角坐标为(0,0)。

程序模块如下:

;设置屏幕显示方式宏

setscreenmacro

movah,0

moval,04h

int10h

endm

2.3输出文本信息

为了拥有一个良好的人机交互界面,在程序设计中,文本提示信息的输出有着非常重要的作用。

汇编语言中,可以通过调用DOS中断,int21h处理输入和输出信息,同时还可以通过BIOS中断int10h设置输出字符的起始位置。

设置输出字符的起始位置模块如下:

movah,2

movdh,X;第一个字符输出的行坐标

movdl,Y;第一个字符输出的列坐标

int10H

显示字符串需要调用int21h中断的09号功能。

程序模块如下:

;设置输出宏,带参数

outputmacromess;mess为字符串变量名

movah,2

movdh,22

movdl,1

int10H;设置字符输出开始位置

movdx,offsetmess

movah,9

int21h

endm

宏执行完成后,将在22行第一列开始输出变量mess的字符串。

 

2.4键盘处理子程序

键盘处理使用BIOS或者DOS键盘中断,本程序中使用DOS键盘中断,调用如下:

movah,0ch;清楚键盘缓冲区

movah,7;等待从键盘输入一个字符,不回显

int21h;返回参数AL=按下键的ASC码

不同的按键处理如下:

cmpal,'1';若为1,跳到正弦输出过程

jzpan1

………

cmpal,'e';若为q,则退出

jzquit

cmpal,'E'

jzquit

jmpinkey;不断检测键盘

 

2.5绘制图形

本设计选用的屏幕显示方式为320*200彩色图形方式,即横坐标有320个点,纵坐标有200个点,默认左上角为坐标原点(0,0)。

要画出波形曲线,则要每个横坐标都对应着一个纵坐标的值。

值不同绘制出的波形曲线也不同。

把不同的曲线纵坐标的值储存在表中,通过查表可以得到不同曲线。

每种曲线取128个点,然后在屏幕上绘制出这些点,从而显示出相应的波形曲线。

屏幕上的图形是由多个像素点组成,所以各种曲线也由多个点组成。

在指定的坐标位置上写像素点的方式如下:

movah,0ch

moval,color;;像素点的颜色(0~3)

movcx,column;列号

movdx,row;行号

int10h

 

2.6绘制坐标系

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

;绘制笛卡尔坐标系

draw_zuobiaoprocnear

movcx,0

d_heng:

;绘制横轴

movah,0ch

moval,01h;像素的颜色

movdl,100

int10h

inccx

cmpcx,320

jned_heng

movcx,0

movdl,0

d_zong:

;;绘制纵轴

movah,0ch

moval,03h

int10h

incdl

cmpdl,200

jned_zong

movcx,320

movdl,100

;绘制横轴箭头

heng_j1:

movah,0ch

moval,03h;像素的颜色

int10h

subcx,2

subdl,1

cmpcx,300

jneheng_j1

movcx,320

movdl,100

heng_j2:

movah,0ch

moval,03h;像素的颜色

int10h

subcx,2

adddl,1

cmpcx,300

jneheng_j2

ret

draw_zuobiaoendp

 

2.7清屏过程

清屏程序的设计原理,是用背景色的像素点重新在全屏进行绘制。

clear_screenprocnear

movcx,0

movdl,0

pushax

clear1:

movah,0ch

moval,00h;背景色重新刷屏

int10h

inccx

cmpcx,320

jneclear1

movcx,0

incdl

cmpdl,200

jneclear1

calldraw_zuobiao

popax

ret

clear_screenendp

 

2.8绘制波形曲线

根据不同的按键值,绘制不同的波形曲线。

如:

‘1’键按下,则调用以下子程序

pan1:

;画正弦

leasi,sine

movrow,0

movcol,0

calldraw_sine

ret

draw_sineprocnear

callclear_screen

movcx,col

movtemp,1;temp储存曲线类型,为变换使用

calldraw_line

ret

draw_sineendp

画线过程,先绘制第一周期

draw_lineprocnear

pushsi

movax,col

addbx,ax

calld_line

popsi

calldraw_line1

d_line:

movah,0ch

moval,colour_temp;像素的颜色

movdl,[si]

int10h

incsi

inccx

cmpcx,bx

jld_line

ret

draw_lineendp

;绘制第二周期

draw_line1procnear

movcx,bx

addbx,128

calld_line1

callinkey

d_line1:

movah,0ch

moval,colour_temp;像素的颜色

movdl,[si]

int10h

incsi

inccx

cmpcx,bx

jld_line

ret

draw_line1endp

 

2.9相位及幅值的改变

相位的改变原理是当左/右方向键之一按下时,将曲线绘制的起始点向左/右平移10个像素点,然后重新绘制。

幅值的改变原理是当上/下方向键之一按下时,改变si指针,指向另外一个幅值的函数表,重新绘制波形曲线。

如:

;改变相位,右方向键按下一次曲线右移10个像素点

key_rightprocnear

movcx,col

addcx,10

movcol,cx

cmptemp,1

jzright1

cmptemp,2

jzright2

cmptemp,3

jzright3

ret

key_rightendp

;波形重绘

right1:

leasi,sine

jzdraw_sine

ret

right2:

leasi,cosine

jzdraw_cos

ret

right3:

leasi,triangle

jzdraw_tri

ret

 

3.程序调试及结果

通过运行程序可实现正弦波,方波,三角波。

以及三种波形的幅值和相位改变,实现三种频段的调幅,调相位。

调节时如重新回到初始页面,按数字键“4”,即可完成清屏指令并返回最初界面。

按e/E退出程序。

以下位移及幅值改变以正弦波为例。

按下数字‘1’,显示两个周期的正弦波形曲线3-1(a),

3-1

 

按下方向键下,则曲线幅值减小,如图3-2

3-2

 

按下方向键上,幅值增大,如图3-3;

3-3

 

按下方向键右,曲线向右移动,如图3-4

3-4

按下方向键左,曲线向左移动,如图3-5

3-5

 

按下数字‘2’,显示两个周期的方波形曲线,如图3-6

3-6

按下数字‘3’,显示两个周期的三角波形曲线,如图3-7

3-7

 

按下数字‘4’,实现清屏;如图3-8。

3-8(h)

 

按下E/e键,程序成功退出

4.总结与体会

4.1课程设计中遇到的问题

由于以前对信号发生器了解太少,刚拿到题目不知从何下手,经过去图馆,上网查资料才得以了解信号发生器。

在如何可以用汇编语言画出波形这一问题上,还是在网上查阅了很多资料,小组同学一起奋斗,最终才得以解决的。

 

4.2课程设计的收获、体会

通过本次课程设计,了解了Intel系列微型机的基本组成以及计算机中数和字符的表示方法;熟练掌握Intel8086指令系统及寻址方式,伪指令及汇编语言程序格式;掌握基本程序设计方法、I/O程序设计方法以及DOS调用;掌握宏汇编的基本概念和方法;了解汇编语言程序与高级语言程序的连接方法,熟悉上机操作和程序调试技术,初步具备软件设计的能力。

但在将计算机理论知识转化为计算机应用知识的同时,也发现了许多薄弱环节,比如说用汇编语言编程是我的弱项,对计算机领域各门学科的交叉应用还有待加强与提高,更增加了小组同学的团队协作能力。

总之,这次的课程设计给了我一个难得的锻炼的机会,通过自己综合运用课堂上学到的知识,提升了自己解决问题的能力,同时也感谢老师为我们的耐心答疑与指导。

 

参考文献

[1]潘名莲.微计算机原理.北京:

电子工业出版社,2004.7

[2]李志民.计算机原理与汇编语言程序设计.长沙:

中南大学出版社,2001.8

[3]许骏.微型计算机系统原理及应用.广州:

华南理工大学出版社,1996.5

[4]宫云战.微型计算机原理与应用基础教程.北京:

机械工业出版社,1999.5

[5]荀殿栋.微处理器应用技术与实例.北京:

电子工业出版社,1997.11

 

附录1;

;*********************宏设置*******************************************************************************************************************************

setscreenmacro;设置屏幕显示方式

movah,0

moval,04h;设置彩色4色,320*200,文本80*25

int10h

endm

outputmacromess;输出宏

MOVAH,2

MOVDH,22;行坐标0-25

MOVDL,1;列坐标0-80

INT10H;设置标题开始位置80*25

movdx,offsetmess

movah,9

int21h

endm

;*********************堆栈段*******************************************************************************************************************************

stacksegment

db250dup(?

stackends

;*********************数据段*******************************************************************************************************************************

datasegment

menudb'1sin;2cos;3triangle;4clear;E/eexit;right/leftchangephase;up/downchangeamplitude',0ah,0dh,'$';按键提示菜单

;正弦表

sinedb100,98,96,94,92,90,88,86

db84,82,81,79,77,75,74,72

db71,69,68,66,65,64,63,62

db61,61,60,59,59,59,58,58

db58,58,58,59,59,59,60,61

db61,62,63,64,65,66,68,69

db71,72,74,75,77,79,81,82

db84,86,88,90,92,94,96,98

db100,102,104,106,108,110,112,114

db116,118,119,121,123,125,126,128

db129,131,132,134,135,136,137,138

db139,139,140,141,141,141,142,142

db142,142,142,141,141,141,140,139

db139,138,137,136,135,134,132,131

db129,128,126,125,123,121,119,118

db116,114,112,110,108,106,104,102;小幅值

sine1db100,99,98,97,96,95,94,93

db92,91,90,89,88,88,87,86

db85,85,84,83,83,82,82,81

db81,81,80,80,80,80,80,80

db80,80,80,80,80,80,80,81

db81,81,82,82,83,83,84,85

db85,86,87,88,88,89,90,91

db92,93,94,95,96,97,98,99

db99,100,101,102,103,104,105,106

db107,108,109,110,111,111,112,113

db114,114,115,116,116,117,117,118

db118,118,119,119,119,119,119,119

db119,119,119,119,119,119,119,118

db118,118,117,117,116,116,115,114

db114,113,112,111,111,110,109,108

db107,106,105,104,103,102,101,100

sine2db100,96,92,88,84,80,76,73;大幅值

db69,65,62,58,55,52,49,46

db43,40,38,35,33,31,29,27

db26,24,23,22,21,20,20,20

db20,20,20,20,21,22,23,24

db26,27,29,31,33,35,38,40

db43,46,49,52,55,58,62,65

db69,73,76,80,84,88,92,96

db99,103,107,111,115,119,123,126

db130,134,137,141,144,147,150,153

db156,159,161,164,166,168,170,172

db173,175,176,177,178,179,179,179

db179,179,179,179,178,177,176,175

db173,172,170,168,166,164,161,159

db156,153,150,147,144,141,137,134

db130,126,123,119,115,111,107,103

;方波表

cosinedb58,58,58,58,58,58,58,58

db58,58,58,58,58,58,58,58

db58,58,58,58,58,58,58,58

db58,58,58,58,58,58,58,58

db58,58,58,58,58,58,58,58

db58,58,58,58,58,58,58,58

db58,58,58,58,58,58,58,58

db58,58,58,58,58,58,58,58

db58,58,58,58,142,142,142,142

d

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2