矩形波正弦波三角波汇编语言设计.docx

上传人:b****1 文档编号:1725075 上传时间:2023-05-01 格式:DOCX 页数:18 大小:105.49KB
下载 相关 举报
矩形波正弦波三角波汇编语言设计.docx_第1页
第1页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第2页
第2页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第3页
第3页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第4页
第4页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第5页
第5页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第6页
第6页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第7页
第7页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第8页
第8页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第9页
第9页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第10页
第10页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第11页
第11页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第12页
第12页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第13页
第13页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第14页
第14页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第15页
第15页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第16页
第16页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第17页
第17页 / 共18页
矩形波正弦波三角波汇编语言设计.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

矩形波正弦波三角波汇编语言设计.docx

《矩形波正弦波三角波汇编语言设计.docx》由会员分享,可在线阅读,更多相关《矩形波正弦波三角波汇编语言设计.docx(18页珍藏版)》请在冰点文库上搜索。

矩形波正弦波三角波汇编语言设计.docx

矩形波正弦波三角波汇编语言设计

关于微机原理与接口技术的波形设计课程设计任务书

 

第一章微机应用系统课程设计的目的意义2

1.1设计目的2

1.1课程在教学计划中的地位和作用2

第二章信号发生器系统软硬件设计任务3

2.1设计内容及要求3

2.2课程设计的要求3

第三章总体设计方案3

3.1设计思想3

3.2总体设计流程图4

第四章硬件设计4

4.1硬件设计概要4

4.2所用到的芯片及其各自功能说明4

4.3硬件电路设计系统原理图6

第五章软件设计7

5.1流程图及其说明7

5.2源程序及其说明8

第六章软件系统的使用说明15

第七章收获、体会15

附录参考文献……………………………………………………15

 

第一章微机应用系统课程设计的目的意义

 

1.1设计目的

通过该课程的学习使学生对微机系统有一个全面的了解、掌握常规芯片的使用方法、掌握简单微型计算机应用系统软硬的设计方法,进一步锻炼同学们在微型计算机应用方面的实际工作能力。

本设计主要能够完成对制定波形的形成,可以通过输入来改变频率。

此信号发生器可以很好的运用于有需要的场合。

1.2课程在教学计划中的地位和作用

《微型计算机原理与接口计数》课程是我们测控技术专业在这个学期学的一门基础课程。

通过该课程的学习使我们对微机系统有一个基本的了解、掌握常规芯片的使用方法、掌握简单微型计算机应用系统软硬的设计方法。

《微机应用系统设计与综合实验》是结合本学期的课程开设的一门实习,它的主要目的:

通过课程设计还要进一步锻炼同学们在微型计算机应用方面的实际工作能力。

计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧密联系实际:

掌握这方面的知识更要强调解决实际问题的能力。

同学们要着重学会面对一个实际问题,如何去自己收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地提高分析和解决问题的能力。

 

第二章设计任务

2.1设计内容及要求

本设计综合应用D/A转换器、定时器/计数器电路,中断技术:

通过PC机定时,产生:

锯齿波、三角波、正弦波等模拟信号输出,信号频率可通过PC机键盘调节。

2.2课程设计要求

设计要求画出电路原理图,说明工作原理,编写程序及程序流程图。

 

第三章总体设计方案

3.1设计思想及方案论证

由于要求达到模拟信号波形发生,因此要由D/A转换芯片0832来来完成此项任务,由8253形成波形的主要做法是:

先输出一个下限电平,将其保持t然后输出一个稍高的电平,在保持t,然后重复此过程,因此需要延长0832输入数据的时间间隔来改变频率。

如图3-1信号发生波形图所示。

0832输入的数据的延时可以通过软件完成,也可以通过硬件完成。

由于实验要求输出的波的频率可以改变,且精确,所以选用硬件延时。

+5v

0v

图3-1信号发生波形图

硬件延时主要由计时器8253和中断控制器8259来实现。

由8253输出的方波的高低电平,来触发8259的IR0端,8259给CPU中断信号,CPU中断来执行相应的中断子程序,中断子程序为向0832输出数据的程序,通过选择此程序可以产生锯齿波,方波,正弦波。

由于0832产生的方波的频率可以控制,所以每次中断执行波形发生程序的时间间隔可以精确控制。

以此来控制输出的波形频率。

3.2总体设计方案

总体的设计就是以8253定时中断,中断的子程序来执行输出,输出的信号经过信号发生器形成波形。

初步设想图3-2如图所示。

图3-2硬件简图

第四章硬件设计

4.1芯片简介

4.1.1可编程中断控制器8259a

8259a是8086/8088系列的可编程中断控制器,8259a为28个引脚的双列直插芯片。

它的主要功能是:

(1)据8级优先级控制,通过联级可以扩展到64级优先控制。

(2)每一级中断可由程序单独屏蔽或允许。

(3)可提供中断类型号传送给CPU。

(4)可以通过编程选择多种不同工作方式。

引脚功能:

D7-D0:

双向数据线,三态,与数据总线相连。

IR7-IR0:

外设的中断请求信号输入端,输入,中断请求:

可以是电平触发,或者边缘触发。

RD:

读命令信号,输入,低电平有效,用来控制数据由8259A读

WR:

写命令信号,输入,地点平有效,用来控制写到8259

CS:

片选信号,输入,通过译码器与地址总线相连

INT:

向CPU发出中断请求信号,输出,与CPU的INTR相连

INTA:

CPU给8259的中断响应信号,输入。

4.1.2DAC0832:

NSC公司生产的DAC0832,是一种内部带有数据输入寄存器的8位D/A转化器,采用CMOS工艺制成,芯片内部R-2R梯形电阻网络,用于对参考电压产生的电压进行分流,完成模数转换,转换结果以一组差动电流IOUT1IOUT2输出

各引脚的功能分述如下:

VREF:

参考电压输入端。

根据需要一定大小的电压,由于它是转换的基准,要求数值正确,稳定性好。

VCC:

工作电压输入端。

AGAN为模拟地,DGAN为数字地。

在模拟电路中,所有的模拟地要连在一起然后将模拟地,数字地连接到一个公共接地点。

DI7-DI0:

数据输入。

可直接连接到数据总线。

IOUT1IOUT2:

互补的电流输出端。

为了输出模拟电压,需加转换电路。

4.1.38253

inter8253是一种能够完成定时和计数的芯片,8253内部有3个16位计数器通道,通过对他们编程,每个计数器可以按照6种工作方式工作,并且都可以按2或10进制格式进行计数。

,最高频率为2HZ.。

8253还可以用于许多其他场合,比如可作编程方波发生器,分频器等。

引脚:

1数据缓冲总线

数据总线缓冲器是8253与系统总线相连时使用的接口电路,它由8位双相三态缓冲器构成,CPU用输入输出指令对8253进行读写操作的信息都由8位数据总线传输:

(1)CPU在对8253进行初始化编程时,向他写入控制字。

(2)CPU向某一计时器写入计数初值。

(3)从计数器读出计数值。

2读写控制逻辑

读写控制逻辑接受系统控制总线送来的输入信号,经由组合后形成控制信号,对各部分操作进行控制。

可接受的信号有:

(1)CS片选,低电平有效,由数据总线经由IO端口译码电路产生。

只有CS低电平时,CPU才能对8253进行读写操作。

(2)RD读信号,低电平有效,当RD位地电平时,表示CPU正在读取所选定的计数器的通道的内容。

(3)WR写信号,低电平有效。

当WR为低电平时,表示CPU正在将计数器初值写入所选中的通道口中,或者将控制字写入内部寄存器中。

(4)A1A2端口选择信号,改变它的值,来选择8253内三个计数器通道。

如果8253和与8位数据总线的微机相连,只要将A1A0分别与地址总

相联。

如果系统采用的是8086CPU,则数据总线为16位,传输数据时,总是将低8位数据送往偶地址,将高8位送往奇地址。

3计数器

8253内部包含三个完全相同俄计数器定时器通道,对3个通道的操作,

完全独立的。

每个通道都包含1个8位的控制字寄存器,1个16位的减寄存器,和一个锁存器,执行部件是一个16位的减法计数器。

每个通道工作时,对输入到CLK引脚上的脉冲按2进制或10进制格式进行计数。

每当输入一个时钟脉冲,计数器减1,当计数器的值减为0时从,从OUT引脚输出一个脉冲信号。

GATE引脚上的门控制信号,决定他是否允许计数。

4.3硬件电路设计系统原理图

 

图4-1硬件原理图

第五章软件设计

5.1流程图主要进行系统初始化和外围接口芯片初始化,及开中断,等待中断产生,其流程图如图5.1所示。

图5-1程序流程图

5.2源程序及其说明

datasegment

sinbufdb80h,8ch,98h,0a5h,0b0h,0bch,0c7h,0d1h

db0dah,0e2h,0eah,0f0h,0f6h,0fah,0fdh,0ffh

db0ffh,0fdh,0fah,0f6h,0f0h,0eah,0e2h,0dah

db0d1h,0c7h,0bch,0b0h,0a5h,98h,8ch,80h

db7fh,73h,67h,5ah,4fh,43h,38h,2eh

db25h,1dh,15h,0fh,09h,05h,02h,00h

db00h,02h,05h,09h,0fh,15h,1dh,25h

db2eh,38h,43h,4fh,5ah,67h,73h,7fh

mess1db'方波--1'0dh,0ah

db'三角波--2'0dh,0ah

db'方波--3'0dh,0ah

db'正弦波--3'0dh,0ah

mess2db'输入发生频率',0dh,0ah,'$'

cunchudb?

jishudb?

dataends

stacksegmentstack

stdw20dup(?

TOPlabelword

stackends

codesegment

assumecs:

code,ds:

data,ss:

stack,es:

data

mainprocfar

movax,data

movds,ax

movax,stack

movss,ax

movdx,8259AD0;初始化8259,设置为单片,上升沿触发,完全

moval,00010011b;非自动EOI方式

outdx,al

movdx,8259AD1

moval,10000000b

outdx,al

moval,00000001b

outdx,al

leadx,mess2;输入频率

movah,09h

callinput

movax,4096;将输入的频率计算,得出写入8253的时间数

movbx,cx

divbx

movcx,ax

pushcx

movdx,316h

moval,0010011b;通道1方式字,方式0,BCD记数

outdx,al

movdx,312h

popcx

moval,cl

outdx,al

moval,ch

outdx,al

movdx,316h;通道0方式字,方式0,bcd计数

moval,00110111b

outdx,al

movdx,310h

moval,16h;16分频,以0通道作为1通道的时钟频率,其频率为0.125MHz

outdx,al

movcuncu,0h;将存储单元清零

movjishu,0h

bg:

leadx,mess1;选择波形

movah,09h

int21h

movah,08h

int21h

popax

movah,al

cmpal,'1';若为方波,将方波对应的子程序写入中断地址表

movax,0

moves,ax

movbx,08h*4

movax,offsetfangbo

moves:

wordptr[bx],ax

movax,segfangbo

moves:

wordptr[bx+2],ax

cmpal,'2';若为锯齿波,将锯齿对应的子程序写入中断地址表

movax,0

moves,ax

movbx,08h*4

movax,offsetjuchi

moves:

wordptr[bx],ax

movax,segjuchi

moves:

wordptr[bx+2],ax

cmpal,'3';若为三角波,将三角对应的子程序写入中断地址表

movax,0

moves,ax

movbx,08h*4

movax,offsetsanjiao

moves:

wordptr[bx],ax

movax,segsanjiao

moves:

wordptr[bx+2],ax

cmpal,'4';若为正弦波,将正弦波对应的子程序写入中断地址表

movax,0

moves,ax

movbx,08h*4

movax,offsetzhengxian

moves:

wordptr[bx],ax

movax,segzhengxian

moves:

wordptr[bx+2],ax

sti

CIR:

JMPCIR

ret

mainendp

 

;输入数字的子程序

inputprocnear

xordx,dx

xorcx,cx

movbx,10

leasi,flag

movbyteptr[si],0

movah,1

int21h

cmpal,0dh

jeenter

subah,ah

xchgax,cx

mulbx

subcx,30h

addcx,ax

movah,1

int21h

jmpkey

enter:

cmpflag[0],0

jenext

negdx

nextmovwordptr[di],cx

ret

inputend

 

;三角波发生程序

sanjiaoboprocnear

pushax

pushbx

pushcx

pushdx

movdx,228h

moval,cunchu

outdx,al

inc

cmpal,0ffh

jnzcun

movcun,0h

cun:

movcun,al

intreturn:

popdx

popcx

popbx

popax

eoi

iret

sanjiaowoendp

 

;锯齿波发生程序

jvchibo:

procnear

pushax

pushbx

pushcx

pushdx

movdx,228h

moval,cunchu

outdx,al

movcx,jishu

cmpcx,0ffh

jgad

dec:

dec

addcx,01h

cmpcx,1feh

movcx,0h

jmpcun

ad:

inc

cun:

movcun,al

movjishu,cx

intreturn:

popdx

popcx

popbx

popax

eoi

iret

jvchiboendp

 

;正弦波发生程序

zhengxuanbo:

procnear

pushax

pushbx

pushcx

pushdx

movdx,228h

moval,cunchu

OUTDX,sinbuf[AL]

movcx,jishu

cmpcx,0ffh

jgad

dec:

dec

addcx,01h

cmpcx,1feh

movcx,0h

jmpcun

ad:

inc

cun:

movcun,al

movjishu,cx

intreturn:

popdx

popcx

popbx

popax

eoi

iret

jvchiboendp

;方波子程序

fangbo:

procnear

pushax

pushbx

pushcx

pushdx

movdx,228h

movcx,jishu

addcx,01h

cmpcx,0ffh

jmplo

moval,0h

outdx,al

lo:

moval,0ff

outdx,0h

cmpcx,1feh

jmplo2

movcx,0h

lo2:

movjishu,cx

intreturn:

popdx

popcx

popbx

popax

eoi

iret

jvchiboendp

第六章软件系统的使用说明

先输入要输出的频率,然后选择输出的波形,然后就可以在转换的out端得到波形。

 

第七章收获、体会

在这两周的实习中,我再次的巩固了微机课中所学的知识,了解了各种芯片的的用法,各个接口的名称,走用,学会了用protel来画硬件流程图。

明白了微机系统在生产生活中最基本的用处.

在两周的实习中,我也感到所学的知识不是很深,动手的能力不是很强,面对问题解决问题的能力还有待加强。

总的来说,《微型计算机原理与接口计数》对于我以后学习,工作的影响是很大的。

参考书目:

[1]周荷琴.微型计算机原理与接口技术.合肥:

中国科学技术大学出版社,2004.12

[2]刘全忠.汇编语言实用程序.天津:

天津大学出版社,1991.6

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

当前位置:首页 > 初中教育 > 语文

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

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