系统扩展电路课程设计部分.docx

上传人:b****3 文档编号:5731147 上传时间:2023-05-09 格式:DOCX 页数:31 大小:137.39KB
下载 相关 举报
系统扩展电路课程设计部分.docx_第1页
第1页 / 共31页
系统扩展电路课程设计部分.docx_第2页
第2页 / 共31页
系统扩展电路课程设计部分.docx_第3页
第3页 / 共31页
系统扩展电路课程设计部分.docx_第4页
第4页 / 共31页
系统扩展电路课程设计部分.docx_第5页
第5页 / 共31页
系统扩展电路课程设计部分.docx_第6页
第6页 / 共31页
系统扩展电路课程设计部分.docx_第7页
第7页 / 共31页
系统扩展电路课程设计部分.docx_第8页
第8页 / 共31页
系统扩展电路课程设计部分.docx_第9页
第9页 / 共31页
系统扩展电路课程设计部分.docx_第10页
第10页 / 共31页
系统扩展电路课程设计部分.docx_第11页
第11页 / 共31页
系统扩展电路课程设计部分.docx_第12页
第12页 / 共31页
系统扩展电路课程设计部分.docx_第13页
第13页 / 共31页
系统扩展电路课程设计部分.docx_第14页
第14页 / 共31页
系统扩展电路课程设计部分.docx_第15页
第15页 / 共31页
系统扩展电路课程设计部分.docx_第16页
第16页 / 共31页
系统扩展电路课程设计部分.docx_第17页
第17页 / 共31页
系统扩展电路课程设计部分.docx_第18页
第18页 / 共31页
系统扩展电路课程设计部分.docx_第19页
第19页 / 共31页
系统扩展电路课程设计部分.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

系统扩展电路课程设计部分.docx

《系统扩展电路课程设计部分.docx》由会员分享,可在线阅读,更多相关《系统扩展电路课程设计部分.docx(31页珍藏版)》请在冰点文库上搜索。

系统扩展电路课程设计部分.docx

系统扩展电路课程设计部分

微机原理与应用

号:

名:

院:

级:

指导教师:

系统扩展电路课程设计部分

一、概述

应用所学微机原理知识,设计一个系统电路,提高设计能力及解决问题能力。

二、设计容与要求

1)所需器件

2)设计具体的整体电路图,并且加以说明

3)遇到问题及解决方法

4)收获及心得

三、总体设计

在Proteus软件下,利用8086/8088、D/A芯片DAC08328259A8255设计一个函数发生器,并利用按键选择输出波形,能分别产生三角波、阶梯波(每阶梯IV)、正向锯齿波和方波。

并利用按键(自行定义)进行输出波形选择。

用8255扩展接口外接至少2个LED数码管,将当前输出波形代号显示在LED上(左边位):

0为方波、1为正向锯齿波、2为三角波、3为阶梯波。

癒1跟

阶梯波产生

瑋序

锯吉菽士主

程宇

Efts产生

 

STACKSEGMENT'STACK'

DW32DUP(O)

STACKENDS

DATASEGMENT

ADDRESS8255EQU40H;定义两个端口地址,其中

ADDRESS0832指向0832芯片的端口地址

ADDRESS8255指向8255,

ADDRESS0832EQU60H

ENDS

DATA

CODE

SEGMENT

ASSUME

START:

始化8255

BEGIN:

出方波

出阶梯波

输出锯齿波

输出三角波

输出学号65

SS:

STACK,CS:

CODE,DS:

DATA

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVI

DX,ADDRESS8255+6;选择5255的控制字的端口地址,初

MOV

AL,90H

;90H=10010000B,

OUT

DX,AL

MOV

DX,ADDRESS8255

IN

AL,DX

;将8255A端口的数据输入到AL中

NOT

AL

;AL中的数据取反

CMP

AL,01H

;方波对应01H,判断输出是否为方波

JZ

FANGBO

;判断ZF是否为0,为0跳转到FANGBO,输

CMP

AL,08H

;阶梯波对应02H,判断输出是否为阶梯波

JZ

JIETIBO

;判断ZF是否为0,为0跳转到JIETIBO,输

CMP

AL,02H

;锯齿波对应04H,判断输出是否为锯齿波

JZ

JUCHIBO

;判断ZF是否为0,为0跳转到JUCHIBO,

CMP

AL,04H

;三角波对应08H,判断输出是否为三角波

JZ

SANJIAO

;判断ZF是否为0,为0跳转到SANJIAO,

CMP

AL,10H

;学号对应10H

JZ

XUEHAO

;判断ZF是否为0,为0跳转到XUEHAO,

JMP

BEGIN

;如果均不满足,说明输入有误,重新输入

FANGBO:

MOV

MOV

OUT

MOV

MOV

OUT

DX,ADDRESS8255+2;输出方波

AL,00H;选择端口00,也就是PA0端口

DX,AL;AL输出为低电平

DX,ADDRESS8255+4;输出高位为0

AL,0H

DX,AL

 

MOV

DX,ADDRESS0832

MOV

AL,00H;AL输出为低电平

OUT

DX,AL;0832的输出端口清零

CALL

DELAY;调用延时子函数,延时

NOT

AL

OUT

DX,AL;输出变成高电平

CALL

DELAY;延时一段时间

JMP

BEGIN;执仃兀之后返回到取开始

JUCHIBO:

MOV

DX,ADDRESS8255+2;输出锯齿波

MOV

AL,01H选择PA1端口,输出锯齿波

OUT

DX,AL

MOV

DX,ADDRESS8255+4;输出高位为0

MOV

AL,0H

OUT

DX,AL

MOV

DX,ADDRESS0832

MOV

AL,00H;将0832输出先清零

INCREARSE2:

OUT

DX,AL

INC

AL;在很高频率下AL自增是可以看成是平滑的线性增大

JNZ

INCREARSE2;增大到255的时候再下一次循环

JMP

BEGIN

SANJIAO:

MOV

DX,ADDRESS8255+2;输出三角波

MOV

AL,02H;选择PA2端口,输出三角波

OUT

DX,AL

MOV

DX,ADDRESS8255+4;输出高位为0

MOV

AL,0H

OUT

DX,AL

MOV

DX,ADDRESS0832

MOV

AL,00H;将0832输出先清零

INCREASE3:

OUT

DX,AL

INC

AL

JNZ

INCREASE3;只要AL不为0,—直自增,然后进行下一次

循环

DECREARSE3:

DEC

AL

OUT

DX,AL

JNZ

DECREARSE3

JMP

BEGIN

JIETIBO:

MOV

DX,ADDRESS8255+2;输出阶梯波

MOV

AL,03H;选择PA3端口,输出阶梯波

OUT

DX,AL

MOV

DX,ADDRESS8255+4;输出高位为0

MOV

AL,0H

OUT

DX,AL

MOV

DX,ADDRESS0832;将0832输出先清零

MOV

AL,00H

INCREARSE1:

OUT

DX,AL

ADD

AL,33H

;每次输出的数字量增加51,表示阶梯,选择

51是因为51可以被255除尽

CALL

DELAY

;调用延时函数

CMP

AL,0FFH

JNZ

INCREARSE1

;当AL不等于255的时候继续执行循环

DECREARSE1:

SUB

AL,33H

;反向执行上述循环,递减输出量

OUT

DX,AL

CALL

DELAY

JNZ

DECREARSE1

JMP

BEGIN

MOV

AH,4CH

INT

21H

XUEHAO:

MOV

DX,ADDRESS8255+2;输出学号低位5

MOV

AL,5H

OUT

DX,AL

MOV

DX,ADDRESS8255+4

;输出学号高位6

MOV

AL,6H

OUT

DX,AL

 

JMPBEGIN

DELAY:

PUSH

CX;延时

MOV

CX,0FFH

DELAY0:

NOP

LOOP

DELAY0

POP

CX

RET

PUSH

CX

PUSH

BX

MOV

BX,0FFH

DELAY1:

MOV

CX,0FFFFH

DELAY2:

NOP

NOP

LOOP

DELAY2

DEC

BX

JNZ

DELAY1

POP

BX

POP

CX

RET

CODE

ENDS

END

START

四、详细设计

 

五、电路分析

U7

Ao

p

4

0000

p

p

2

1

r-

4

g

3

8*7

f.

01234567

DDDDDDDD

AE

X)

34

AL

33

AC

>2

32

31

30

29

28

27

A

AD

可PB3

23-4.--..'-.,■

B0B1R2B3閑R5B6B7PPFPPPPP

RD_

WR

AO

A1

RESET

OS

5一

36

9

35

R

w

1

B

H2

F

0000

6

IT

15

a

PC

:

1

17

J

PC

;3

IE

1

11

ic

25

8255A

12B

H12

H1S

igBH15

B肝0

9巳可

DO

QO

D1

Q1

D2

Q2

D3

Q3

DA

Q4

D5

Q5

D6

Q6

D7

Q7

OE

LE

2BH8

5BH9

74LS373

kTEMF>

1

1

AL

)8

3

AD94

AD107

AD118

AD1213

AD⑶4

AD1417

ADI518

1

 

I

ADO

3

DOGO

D1Q1

D2Q2

DSQ3

D404

D5Q5

D6Q6

D7Q7

AD1

4

IAD2

7

AD3

q

AM

13

ADS

14

AD6

17

AD7

OELE

11

MLS373

2BHO

5BH1

6BH2

12BH4

15BH5

18BH6

19BH7

oooooooo

L1

U2

4

AD2

5

AD1

6

ADO

7

8

9

<

10

3

CS

WRT

GND

DI3

DI2

DI1

DIO

VREFRFBGND

vcc

ILE(BY1/BY2)

XFERDM

DI6

DI6

DI7

I0LJT2

IOUT1

DAC0832

r

19

|

18

17

1

r

16

AD4

15

AD5

14

AD6

13

AD7

12

11

21

22

L

30

U1

19

RESET

READYINTA/QS1

INTR

hold/gtT

HLDA/GTO

TEST

NMI_

MN/MX

CLK

8086

25

27

<

RDWR

ALE/QSO

BHEDT;R/$TDEN/S2RD

AD[0..15]

A[16.19]

WR/LOCK

MOSO

.15]

 

六、设计过程中遇到的问题及解决方法

在这次课程设计中,遇到了各种问题。

因为以前的基本太薄弱,刚开始设计写程序的两天,遇到问题后往往是瞪着屏幕毫无办法,常常在一个小问题上一卡就是三四个小时,到后来渐

渐学会了一些解决问题的思路和办法,节奏才渐渐加快。

逻辑问题。

写类型控制子模块的时候,已经根据流程图把程序写好,里面的子模块也以测

试过没有问题,流程图逻辑也应该没问题,但每次运行在睡眠风状态下时,电机转八秒,停两秒后自动转到自然风模块。

想过很多种可能,开关问题,LED灯问题等等,最后一条一

条照着程序写流程图的时候,终于发现可能是最后RET没起作用,导致程序执行完无法返

回check,直接执行下一条指令。

还有就是很多新手都会遇到的问题,我第一次写的时候,一开始就写了一大段程序,然后

什么结果都出不来,调试的时候根本无从调起,经过同学指点才开始从一个小功能开始写程序,先写一个灯亮然后两个然后循环,再往进添加其他功能。

并且这样写会不停的给自己成

就感,让自己坚持做完,否则很容易在遇到无从下手的问题时放弃。

所以再大的程序也是要

脑子里先有个大框架然后一个个小功能实现的。

在后来遇到错误时,我一般都会先过一遍程序查一下有没有能看出来的错误,然后该段

程序的开头开始检测,通过加LED检测程序运行到了哪一行,从哪一行开始出错,有些直

接看不出错误的地方通过加DELAY使运行变慢,方便看到仿真结果,也可以使用proteus

里面的帧进,一步一步看效果。

七、设计心得

通过本次课程设计,是我深入的了解到了实践与书面的不同,在整个课程设计的过程中

遇到了很多问题,包括选片和编程和仿真的多种问题,另一个我意识到的非常重要的问题,就是编程的严谨问题!

在整个课程设计过程中,虽然遇到了很多问题,但最后还是将此次设计完成了,这让我自己更加珍惜实验设计所付出的努力和付出!

汇编语言课程设计部分

一、概述

运用所学汇编语言知识,编写一个具有本功能的程序,达到提高动手能力以及检验对微机原理课程学习和掌握的程度。

二、设计容与要求

1)能够储存50个,其中包括人名(20个字符),(8个字符)

2)系统可以随时接收新的人名及。

3)系统具有随时查询的功能,输入人名后,在屏幕上显示其相应的。

4)运行此系统后,显示菜单选项进行功能选择。

三、设计思想

 

四、程序流程图

五、程序源代码及说明

DATASSEGMENT

0BF1

DB

'usingthetelephonebookdesignedbyLiuNanqing$'

0BF2

DB

'Pleasechoosethefunctionbuttom(1/2):

$'

0BF11

DB

'1=inputing$'

0BF16

DB

'2=searching$'

0BF18

DB

'Other=exiting$'

0BF3

DB

'Pleaseinputanewname(<20):

$'

0BF4

DB

'pleaseinputthenumber(=8):

$'

0BF5

DB

'Continuetoinput?

(y(Y)/n)$'

0BF6

DB

'exit(y/n)$'

0BF7

DB

'search(<20):

$'

0BF8

DB

'thenumberis:

$'

0BF9

DB

'notexit!

$'

0BF10

DB

'Continuetosearch?

(y/n)$'

SENAME

DB

21,0,21DUP(O);搜索(查询)变量

ADDNAME

DB

21,0,21DUP(0);添加变量

ADDNUM

DB

9,0,9DUP(O)

WORK

DB

1500DUP(0)

DATAS

ENDS

STACKS

SEGMENT

DW

32DUP(0)

STACKS

ENDS

;添加变量

 

CODESSEGMENT

ASSUME

CS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOV

AX,DATAS

MOV

DS,AX

MOV

BP,-30

BEGIN:

CALL

NEXTLINE

MOV

DX,OFFSETOBF1;显示菜单选择界面

MOV

AH,9

INT

21H

CALL

NEXTLINE;调用换行函数

MOV

DX,OFFSETOBF2

MOV

AH,9

INT

21H

CALL

NEXTLINE

MOV

DX,OFFSETOBF11

MOV

AH,9

INT

21H

CALL

NEXTLINE

MOV

DX,OFFSETOBF16

MOV

AH,9

INT

21H

CALL

NEXTLINE

MOV

DX,OFFSETOBF18

MOV

AH,9

INT

21H

 

CALL

NEXTLINE

MOV

AL,0

MOV

AH,1

INT

21H

CMP

AL,'1'

JE

INPUT

CMP

AL,'2'

JE

SEARCH

JMP

STOP

;选择1,输入信息

;选择2,查询信息

 

INPUT:

CALL

NEXTLINE

ADD

BP,30

MOV

SI,BP

S2:

MOV

BYTEPTRWORK[SI],O;清除ZHU中最后一个人的信息

后面的

30

INC

SI;个字节中非0的单兀

CMP

WORK[SI],O

JNE

S2

MOV

SI,BP

MOV

DX,OFFSETOBF3

MOV

AH,9

INT

21H

MOV

DX,OFFSETADDNAME;输入的人名存放在addname

MOV

AH,10

INT

21H

MOV

BX,-1

S5:

INC

BX;为避免addname中刚输入的信息没有完全覆

CMP

BYTEPTRADDNAME[BX+2],0DH;盖上一次的信

息,将出车符

(0DH)及其后

JNE

S5;面的字节归0

S6:

MOV

BYTEPTRADDNAME[BX+2],0

INC

BX

CMP

BX,20

JNE

S6

MOV

BYTEPTRADDNAME[BX+2],0DH

MOV

CX,20

MOV

BX,-1

S1:

INC

BX;将addname复制到work中

MOV

DL,BYTEPTRADDNAME[BX+2]

MOV

BYTEPTRWORK[SI+BX],DL

LOOP

S1

MOV

BYTEPTRWORK[SI+20],'$'

CALL

NEXTLINE

MOV

DX,OFFSETOBF4

MOV

AH,9

INT

21H

MOV

DX,OFFSETADDNUM

MOV

AH,10

INT

21H

MOV

BX,-1

S7:

INC

BX;为避免刚输入的没有完全覆盖上一次的,将这次

CMP

BYTEPTRADDNUM[BX+2],0DH;入的的最后

一位的回车符(ODH)换成$

JNE

S7

MOV

BYTEPTRADDNUM[BX+2],'$'

ADD

SI,21

MOV

CX,8

MOV

BX,-1

S3:

INC

BX

MOV

DL,BYTEPTRADDNUM[BX+2]

MOV

BYTEPTRWORK[SI+BX],DL

LOOP

S3

MOV

BYTEPTRWORK[SI+8],'$'

CALL

NEXTLINE

MOV

DX,OFFSETOBF5

MOV

AH,9

INT

21H

CALL

NEXTLINE

MOV

AH,1

INT

21H

CMP

AL,'Y'

JE

INPUT

CMP

AL,'y'

JE

INPUT

JMP

BEGIN

STOP:

CALL

NEXTLINE

MOV

DX,OFFSETOBF6

MOV

AH,9

INT

21H

MOV

AL,0

MOV

AH,1

INT

21H

CMP

AL,'Y'

JE

EXIT

CMP

AL,'y'

JNE

BEGIN

EXIT:

MOV

AX,4C00H;退出本程序

INT

21H

SEARCH:

CALL

NEXTLINE

MOV

DX,OFFSETOBF7;输入你要搜索的名字,存放在

ZHU1中

MOV

AH,9

INT

21H

MOV

DX,OFFSETSENAME

MOV

AH,10

INT

MOV

L5:

INC

次的信息,

CMP

及其后面的字节归0

21H

BX,-1

BX;为避免ZHU1刚输入的信息没有完全覆盖上一

BYTEPTRSENAME[BX+2],0DH;将回车符(0DH)

JNE

L5

L6:

MOV

BYTEPTRSENAME[BX+2],0

INC

BX

CMP

BX,20

JNE

L6

MOV

BYTEPTRSENAME[BX+2],0DH

CALL

NEXTLINE

MOV

CX,50;在work中搜索与sename相等的字符串

MOV

SI,-30

L1:

ADD

SI,30

MOV

BX,-1

L2:

INC

BX

CMP

BX,20

JE

L3

PUSH

AX

MOV

AL,BYTEPTRWORK[SI+BX]

MOV

AH,BYTEPTRSENAME[BX+2]

CMP

AL,AH

POP

AX

JE

L2

LOOP

L1

MOV

DX,OFFSETOBF9没有搜索到

MOV

AH,9

INT

21H

JMP

L4

L3:

MOV

DX,OFFSETOBF8;搜索到了

MOV

AH,9

INT

21H

INC

BX

ADD

BX,OFFSETWORK

ADD

BX,SI

MOV

DX,BX

MOV

AH,9

INT

2

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

当前位置:首页 > 成人教育 > 成考

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

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