微机原理课程设计之函数发生器2.docx

上传人:b****8 文档编号:10796597 上传时间:2023-02-23 格式:DOCX 页数:10 大小:29.36KB
下载 相关 举报
微机原理课程设计之函数发生器2.docx_第1页
第1页 / 共10页
微机原理课程设计之函数发生器2.docx_第2页
第2页 / 共10页
微机原理课程设计之函数发生器2.docx_第3页
第3页 / 共10页
微机原理课程设计之函数发生器2.docx_第4页
第4页 / 共10页
微机原理课程设计之函数发生器2.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

微机原理课程设计之函数发生器2.docx

《微机原理课程设计之函数发生器2.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计之函数发生器2.docx(10页珍藏版)》请在冰豆网上搜索。

微机原理课程设计之函数发生器2.docx

微机原理课程设计之函数发生器2

《微机原理》

课程设计报告

 

 

题目:

函数发生器的设计

(二)

专业班级:

电子信息科学与技术0810班

设计学生:

 

完成时间:

2010年12月15日

湖南文理学院物理与电子科学学院

设计题目

函数发生器的设计

(二)

设计要求

 

要求:

设计一个三角波发生器,可利用键盘改变其输出波形的幅值。

例如,可利用1-5这5个数字键改变其输出波形的幅值,当按下1-5数字键时使D/A输出幅值从1V增加到5V。

通过D/A课程设计,使学生了解在现有的实验装置上的硬件线路连接,正确地掌握汇编语言程序的编辑、编译、链接、下载、调试,学会从硬件到软件设计步骤的全过程,综合提高设计与运用微机测控系统的能力。

按设计要求制订方案;并正确地实现系统功能。

理解设计方案后再自己动手修改程序,并正确联线、构成硬件电路,通过独立调试实现设计方案。

写出实践报告

(1)硬件设计思路

一级输入按题意采用单缓冲方式,即经寄存器锁存,假设第一级有锁存,第二级直通,那么第二级的控制端

处于有效电平状态,使二级锁存寄存器一直处于打开状态,第二级寄存器具有锁存功能的条件是ILE,

都要满足有效电平时,第二级寄存器才开放,为减少控制线条数,是ALE一直处于高电平状态,控制

端,电路连接如原理图。

(2)软件设计思路

首先单缓冲方式下,输出数据的指令仅需要一条输出指令即可。

原理图中,

端经与译码电路的输出端相连,器地址既是选中该0832芯片的片选信号,也是第一级寄存器打开的控制信号。

另外由于CPU的控制信号

与0832的写信号

相连,当执行OUT指令时,CPU的

写信号有效,与

信号一起打开第一级寄存器,输入数据被锁存。

 

系统设计原理图

D0~D7

CPU

A0~A15

 

D0~D7

译码器

0832

+12V

7

6

5

1

10K

-12V

2

3

12

11

9

4

Vout

Iout1

Iout2

Rfb

程序流程图

源程序:

codesegment

hcdb?

assumecs:

code

org1000h

start:

calldispkey;键扫

moval,byteptrds:

[0752h]

cmpal,20h

jnzy1

jmpy2

y1:

movhc,al;hc缓存键值

movbh,al

y2:

movbh,hc

moval,bh

movah,32h

mulah

movbh,al

movbl,0h

begin:

movcx,55h;掩盖波形直线部分

up:

incbl;上升部分

movdx,20h

moval,bl

outdx,al

cmpbl,bh

jcup

down:

movdx,20h;下降部分

moval,bl

outdx,al

decbl

cmpbl,0h

jnzdown

loopup

jmpstart

dispkey:

calldisp;键盘扫描程序

callkey

movah,al

movbl,ds:

[0748h]

movbh,ds:

[0749h]

moval,01h

movdx,0ff21h

outdx,al

cmpah,bh

movbh,ah

movah,bl

jzdisk4

movbl,88h

movah,88h

disk4:

decah

cmpah,82h

jzdisk6

cmpah,0eh

jzdisk6

cmpah,00h

jzdisk5

movah,20h

decbl

jmpdisk7

disk5:

movah,0fh

disk6:

movbl,ah

movah,bh

disk7:

movbyteptrds:

[0748h],bl

movbyteptrds:

[0749h],bh

movbyteptrds:

[0752h],bh

moval,ah

ret

disp:

pushcx

movdx,077fh

movah,20h

disp0:

movcx,00ffh

movbx,dx

movbl,ds:

[bx]

movbh,0h

pushdx

movdx,0ff22h

moval,BYTEPTRcs:

[bx+OFFSETdata1]

outdx,al

movdx,0ff21h

moval,ah

outdx,al

disp1:

loopdisp1

popdx

decdx

shrah,01h

jnzdisp0

popcx

ret

data1:

db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h

db80h,90h,88h,83h,0c6h,0a1h,86h,8eh

db0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh

db90h,0a3h,0a1h,86h,8fh

key:

moval,0ffh

movdx,0ff22h

outdx,al

movbl,00h

movah,0feh

movcx,08h

key1:

moval,ah

movdx,0ff21h

outdx,al

shlal,01h

movah,al

nop

nop

nop

nop

nop

nop

movdx,0ff23h

inal,dx

notal

nop

nop

andal,0fh

jnzkey2

incbl

loopkey1

jmpnkey

key2:

testal,01h

jekey3

moval,00h

jmpkey6

key3:

testal,02h

jekey4

moval,08h

jmpkey6

key4:

testal,04h

jekey5

moval,10h

jmpkey6

key5:

testal,08h

jenkey

moval,18h

key6:

addal,bl

cmpal,10h

jncfkey

movbl,al

movbh,0h

moval,BYTEPTRcs:

[bx+OFFSETdata2]

ret

nkey:

moval,20h

fkey:

ret

data2:

db07h,04h,08h,05h,09h,06h,0ah,0bh

DB01h,00h,02h,0fh,03h,0eh,0ch,0dh

CODEENDS

ENDSTART

设计总结:

回顾起此次课程设计,我学到很多很多的东西,不仅巩固了以前所学过的知识,加深了对《微机原理》的理解,而且学到了很多在书本上所没有学到过的内容。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。

而且在做课程设计的过程中,不仅是考验自己所学的《微机原理》知识,更是要锻炼自己的分析问题的能力和解决实际问题的能力,而在在此次课程设计过程中得到了充分的体现。

例如在改变频率的设计过程中,由于数据的出栈、入栈的混乱,导致程序没有波形输出,还好在师兄的指点下,才发现了问题,主要是由于在程序的跳转过程中,PUSH和POP指令并没有成对的使用,导致入栈、出栈混乱。

最后修改时,只能不用PUSH和POP指令,改用寄存器来暂存数据,特别是在调用延迟的程序段时,由于AX的混乱使用,导致延迟改变,波形无法正常输出。

最后才修改好,能正常的输出波形,并且能完成频率三级调节。

虽然在设计的过程遇到了各种各样的问题,但同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。

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

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1