微机原理课程设计—dac0832波形发生器_微机原理课程设计

2020-02-28 其他范文 下载本文

微机原理课程设计—dac0832波形发生器由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“微机原理课程设计”。

二○一四~二○一五学年 第一学期

信息科学与工程学院

自动化系

课程设计报告

课程名称:

微机原理及应用课程设计

级:

自动化1204班

名:

田野

号:

201209157043

指导教师:

陈国年

间:

2014.12.28

题目:函数发生器1的设计

1.设计任务

用8086做控制器,利用DAC0832设计一个函数发生器,能分别产生方波、阶梯波(每阶梯1V)、锯齿波(正向或负向)和三角波,并利用按键选择(自行定义)输出波形同时将当前输出波形代号显示在LED上:0为方波、1为阶梯波、2为锯齿波、3为三角波。

2.设计要求

波形输出幅值和频率不限(可根据需要考虑增加调频调幅功能),通过8255A进行按键选择。

3.设计内容

3.1系统方案的设计与选择:

(1)数字按键的实现可以通过8255的输入输出端口,定义方式0工作方式,C口低四位输入信号,B口输出信号,通过按键改变C口电平信号,使输入信号改变,并在在B口输出不同信号,在数码管上显示不同数字;

(2)波形的产生则使用8086与DAC0832连接,通过8086给DAC0832输入不同数字信号,在DAC0832的输出端输出波形,波形的观察使用一个放大器连接模拟示波器显示。

3.2系统框图:

3.3系统基本介绍:

此方案是通过并行接口芯片8255A和8086计算机的硬件连接,并通过8086控制DAC0832产生波形相应波形,通过8255A输出信号控制数码管显示不同数字。8255A的C端口有四个按键,按下相应的按键,使输入低电平。

① 按下第一个按键显示数字0,在示波器上产生方波; ② 按下第二个按键显示数字1,产生阶梯波; ③ 按下第三个按键显示数字3,产生锯齿波;

④ 按下第四个按键显示数字4,产生三角波。

3.4模块功能介绍:

8255A:D0~D7口与8086数据端连接,PB0~PB6与七段共阴极数码管相连接以显

示数字,PC0~PC4连接四个按键,实现输入电平的改变。A0、A1接地址

线A1、A2,CS端连接74ls138的片选端。

DAC0832:DI0~DI7接8086的数据端CS接74LS138的片选端,Vref接输入电压,这里我选用的是+5v电压,IOUT1、IOUT2接一个放大器与示波器,实现数字信号的显示。

74LS138:三八译码器,ABC分别接373的A3,A4,A5,使能端E1接A7,这几个地址

端共同参与地址译码,Y0接8255A的CS端,Y1接DAC0832的CS端。

74HC373:三态锁存器,这里用来锁存地址,AD0~AD7分别接8086,A0~A7为地址信号。

8086:16位微处理器芯片,AD0~AD15为地址/数据总线,分时复用,与373AD0~AD7相连

并作为数据端与DAC0832、8255A相连。

3.5程序流程图:

清屏子程序:

波形选择函数:

开始读C口数据否否否否按键1是否按下是按键2是否按下是按键3是否按下是按键4是否按下是返回清屏子函数结束显示数字0显示数字1显示数字3显示数字4方波产生程序阶梯波产生程序锯齿波产生程序三角波产生程序

4.功能实现 电路图:

8255A:改变按键,写入不同数据,选择波形产生函数,并在PB口与数码管连

接,显示数字。

DAC0832:实现数字信号与模拟信号的转变,将8086通入的数字信号转换为模拟信号.74LS138:三八译码器,进行DAC0832与8255的片选。

74HC373:三态锁存器,锁存地址信息。

8086:16位微处理器芯片,进行数据的输入与读取,并进行地址编码

程序源代码:

DAC0832 EQU

88H

;DAC0832的编码地址

M8255_A EQU

80H

;8255的A口地址

M8255_B EQU

82H

;8255的B口地址

M8255_C EQU

84H

;8255的C口地址

M8255_Z EQU

86H

;8255的控制寄存器地址;主程序部分

STACK SEGMENT

STACK 'stack'

DW

DUP(0)

STACK ENDS

CODE SEGMENT

ASSUME

CS:CODE,SS:STACK

START: MOV

DX,M8255_Z;初始化8255工作方式

MOV

AL,81H

;方式0,C口输入,B口输出

OUT

DX,AL

STEP: CALL

CLEAR

;清屏

CALL

BEGIN

;调用波形选择函数

JMP

STEP

;继续循环

;-

;清理子程序

CLEAR PROC

NEAR

MOV

DX,M8255_B;清除显示内容

MOV

AL,00H

OUT

DX,AL

RET

CLEAR ENDP;---;判断输入数据,选择波形

BEGIN PROC

NEAR

MOV

DX,M8255_C;读c口输入数据

IN

AL,DX

CMP

AL,0EH

;当按第一个键时显示0输出方波

JNE

L1

MOV

MOV

OUT

CALL

L1: CMP

JNE

MOV

MOV

OUT

CALL

L3: CMP

JNE

MOV

MOV

OUT

CALL

L4: CMP

JNE

MOV

MOV

OUT

CALL

L5: RET

BEGIN ENDP

;方波信号产生程序

FANGBO PROC

F1: MOV

FB: MOV

MOV

OUT

LOOP

MOV

FB1: MOV

MOV

DX,M8255_B AL,3FH DX,AL

FANGBO

;调用方波子程序

AL,0BH

;当按第三个键时显示3输出锯齿波 L3

DX,M8255_B AL,4FH DX,AL

DOG

;调用锯齿波子程序

AL,0DH

;当按第二个键时显示1输出阶梯波L4

DX,M8255_B AL,06H DX,AL

CAT

;调用阶梯波子程序

AL,07H

;当按第四个键时显示4输出三角波 L5

DX,M8255_B AL,66H DX,AL

SANJIAOBO

;调用三角波子程序

;否则退出

NEAR CX,0FFH

DX,DAC0832 AL,0 DX,AL

FB

;形成一个延迟的信号

CX,0FFH AL,0FFH DX,88H

OUT

DX,AL

LOOP

FB1

MOV

DX,M8255_C;判断按键是否改变

IN

AL,DX

CMP

AL,0EH

JE

F1

JMP

BEGIN

RET

FANGBO ENDP;锯齿波信号产生程序

DOG PROC

C1: MOV

IN

CMP

JE

JMP

CB: MOV

LLL: MOV

OUT

INC

CMP

JE

JMP

RET

DOG ENDP;阶梯波信号产生程序

CAT PROC

D1: MOV

IN

CMP

JE

JMP

D2: MOV

D3: MOV

OUT

MOV

D4: LOOP

CMP

JE

ADD

1V

JMP

CAT ENDP;三角波信号产生程序

NEAR

DX,M8255_C;判断按键是否改变 AL,DX AL,0BH CB

BEGIN

AL,0

DX,DAC0832 DX,AL AL

AL,0FFH

;判断是否到顶 C1 LLL

NEAR

DX,M8255_C;判断按键是否改变 AL,DX AL,0DH D2

BEGIN AL,0

DX, DAC0832 DX,AL CX,33H D4

AL,0FFH

;判断是否到顶 D1

AL,33H

;每次信号AL加33H,即每阶梯加D3

SANJIAOBO PROC

NEAR

B1: MOV

AL,0

MOV

DX,M8255_C;判断按键是否改变

IN

AL,DX

CMP

AL,07H

JE

B2

JMP

BEGIN

B2: MOV

DX,DAC0832

OUT

DX,AL

INC

AL

CMP

AL,0FFH

;判断是否到顶,到顶跳转

JE

B3

JMP

B2

B3: MOV

DX,DAC0832

OUT

DX,AL

DEC

AL

JE

B1

;到0转移,重新开始

JMP

B3

RET

SANJIAOBO ENDP;子程序结束

CODE ENDS

END

START 5.总结

这次的微机课程设计让我真正认识到实际操作与书本知识的不同。

1、首先要注意编码的严谨性,开始自定义的锯齿波阶梯波简略为JCB,JTB 在实际过程中却发现这些不能作为目的标号,导致编译失败;

2、其次是选片问题,最开始使用的是80H到83H作为ABC及控制字端口的地址,但是却怎么也选不上,通过微机实验报告书发现书上使用的是62、64、66等偶地址,改用偶地址后便实现了成功的片选。

3、在初次编程时什么都没注意,编译有十几处的服务错误,自己按行依次修改的。

4、三角波仿真与阶梯波仿真时进入了死循环导致无法出现波形,查找之后改变了反悔的地址。

尽管出现了各种问题,最后还是成功完成了这次课程设计,经历了辛苦做出来的东西才会对所学知识更加熟悉,以后的设计相信也会更加顺利。

6.参考文献

[1] 朱定华,微机原理、汇编与接口技术,清华大学出版社,2005

微机原理课程设计

接口技术课程设计一、设计内容设计一个投票统计器,完成投票、计票统计和票数显示等功能。二、设计原理及方案在8086最小工作模式下,连接一块8255A芯片。在 8255A的C端口连接8......

微机原理课程设计

一、设计题目单片机综合试验仪——计数/中断模块 二、功能及性能指标显示计数,记到15就重新开始计数 三、设计目的1 了解单片机综合实验仪基本构成和分模块设计方法。掌握PRO......

微机原理课程设计

合肥工业大学 计算机与信息学院课程设计课程:微机原理与接口技术设计 专业班级:计算机科学与技术班 学号:2 姓名: 一、设计题目及要求:利用 8259A中断,实现对8253多种计数初值的设......

微机原理课程设计

《微机原理》课程设计报告时间 学 院 专业班级 姓 名 学 号 合 作 者指导教师 成 绩 2013 年 11 月摘要本文针对可燃气体检测模块MQ—K1,综合运用《微机原理》所学知识,选择合......

微机原理课程设计

《微机原理及接口》课程设计任务书适用专业:05电子信息工程 通信工程一、本次课程设计的目的和意义学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用......

《微机原理课程设计—dac0832波形发生器.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
微机原理课程设计—dac0832波形发生器
点击下载文档
相关专题 微机原理课程设计 波形 发生器 微机 微机原理课程设计 波形 发生器 微机
[其他范文]相关推荐
[其他范文]热门文章
下载全文