系统扩展电路课程设计部分文档格式.docx
- 文档编号:7746317
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:31
- 大小:137.39KB
系统扩展电路课程设计部分文档格式.docx
《系统扩展电路课程设计部分文档格式.docx》由会员分享,可在线阅读,更多相关《系统扩展电路课程设计部分文档格式.docx(31页珍藏版)》请在冰点文库上搜索。
MOVAX,DATA
MOVDS,AX
MOVI
DX,ADDRESS8255+6;
选择5255的控制字的端口地址,初
MOV
AL,90H
;
90H=10010000B,
OUT
DX,AL
DX,ADDRESS8255
IN
AL,DX
将8255A端口的数据输入到AL中
NOT
AL
AL中的数据取反
CMP
AL,01H
方波对应01H,判断输出是否为方波
JZ
FANGBO
判断ZF是否为0,为0跳转到FANGBO,输
AL,08H
阶梯波对应02H,判断输出是否为阶梯波
JIETIBO
判断ZF是否为0,为0跳转到JIETIBO,输
AL,02H
锯齿波对应04H,判断输出是否为锯齿波
JUCHIBO
判断ZF是否为0,为0跳转到JUCHIBO,
AL,04H
三角波对应08H,判断输出是否为三角波
SANJIAO
判断ZF是否为0,为0跳转到SANJIAO,
AL,10H
学号对应10H
XUEHAO
判断ZF是否为0,为0跳转到XUEHAO,
JMP
BEGIN
如果均不满足,说明输入有误,重新输入
FANGBO:
DX,ADDRESS8255+2;
输出方波
AL,00H;
选择端口00,也就是PA0端口
DX,AL;
AL输出为低电平
DX,ADDRESS8255+4;
输出高位为0
AL,0H
DX,ADDRESS0832
0832的输出端口清零
CALL
DELAY;
调用延时子函数,延时
输出变成高电平
DELAY;
延时一段时间
BEGIN;
执仃兀之后返回到取开始
JUCHIBO:
DX,ADDRESS8255+2;
AL,01H选择PA1端口,输出锯齿波
将0832输出先清零
INCREARSE2:
INC
AL;
在很高频率下AL自增是可以看成是平滑的线性增大
JNZ
INCREARSE2;
增大到255的时候再下一次循环
SANJIAO:
AL,02H;
选择PA2端口,输出三角波
INCREASE3:
INCREASE3;
只要AL不为0,—直自增,然后进行下一次
循环
DECREARSE3:
DEC
DECREARSE3
JIETIBO:
MOV
输出阶梯波
AL,03H;
选择PA3端口,输出阶梯波
DX,ADDRESS0832;
将0832输出先清零
AL,00H
INCREARSE1:
OUT
ADD
AL,33H
;
每次输出的数字量增加51,表示阶梯,选择
51是因为51可以被255除尽
DELAY
调用延时函数
AL,0FFH
INCREARSE1
当AL不等于255的时候继续执行循环
DECREARSE1:
SUB
反向执行上述循环,递减输出量
DECREARSE1
AH,4CH
INT
21H
XUEHAO:
输出学号低位5
AL,5H
DX,ADDRESS8255+4
输出学号高位6
AL,6H
JMPBEGIN
DELAY:
PUSH
CX;
延时
CX,0FFH
DELAY0:
NOP
LOOP
DELAY0
POP
CX
RET
BX
BX,0FFH
DELAY1:
CX,0FFFFH
DELAY2:
DELAY2
DELAY1
END
START
四、详细设计
五、电路分析
U7
Ao
p
4
0000
2
1
r-
g
3
8*7
f.
01234567
DDDDDDDD
AE
X)
34
33
AC
>
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
B
H2
F
6
IT
15
a
PC
:
17
J
IE
二
11
ic
25
8255A
<
TEXT>
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>
■
)8
AD94
AD107
AD118
AD1213
AD⑶4
AD1417
ADI518
I
ADO
DOGO
D1Q1
D2Q2
DSQ3
D404
D5Q5
D6Q6
D7Q7
AD1
IAD2
7
AD3
q
AM
13
ADS
14
AD6
AD7
OELE
MLS373
2BHO
5BH1
6BH2
12BH4
15BH5
18BH6
19BH7
oooooooo
L1
U2
心
AD2
5
8
10
CS
WRT
GND
DI3
DI2
DI1
DIO
VREFRFBGND
vcc
ILE(BY1/BY2)
XFERDM
DI6
DI7
I0LJT2
IOUT1
DAC0832
TEXf>
r
四
19
|
18
16
AD4
AD5
12
21
22
L
丄
U1
READYINTA/QS1
INTR
hold/gtT
HLDA/GTO
TEST
NMI_
MN/MX
CLK
8086
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
Pleasechoosethefunctionbuttom(1/2):
$'
0BF11
1=inputing$'
0BF16
2=searching$'
0BF18
Other=exiting$'
0BF3
Pleaseinputanewname(<
20):
0BF4
pleaseinputthenumber(=8):
0BF5
Continuetoinput?
(y(Y)/n)$'
0BF6
exit(y/n)$'
0BF7
search(<
0BF8
thenumberis:
0BF9
notexit!
0BF10
Continuetosearch?
(y/n)$'
SENAME
21,0,21DUP(O);
搜索(查询)变量
ADDNAME
21,0,21DUP(0);
添加变量
ADDNUM
9,0,9DUP(O)
WORK
1500DUP(0)
DATAS
STACKS
DW
32DUP(0)
CODESSEGMENT
CS:
CODES,DS:
DATAS,SS:
AX,DATAS
DS,AX
BP,-30
NEXTLINE
DX,OFFSETOBF1;
显示菜单选择界面
AH,9
NEXTLINE;
调用换行函数
DX,OFFSETOBF2
DX,OFFSETOBF11
DX,OFFSETOBF16
DX,OFFSETOBF18
AL,0
AH,1
AL,'
1'
JE
INPUT
2'
SEARCH
STOP
选择1,输入信息
选择2,查询信息
INPUT:
CALL
BP,30
SI,BP
S2:
BYTEPTRWORK[SI],O;
清除ZHU中最后一个人的信息
后面的
SI;
个字节中非0的单兀
WORK[SI],O
JNE
S2
DX,OFFSETOBF3
DX,OFFSETADDNAME;
输入的人名存放在addname
中
AH,10
BX,-1
S5:
BX;
为避免addname中刚输入的信息没有完全覆
BYTEPTRADDNAME[BX+2],0DH;
盖上一次的信
息,将出车符
(0DH)及其后
S5;
面的字节归0
S6:
BYTEPTRADDNAME[BX+2],0
BX,20
S6
BYTEPTRADDNAME[BX+2],0DH
CX,20
S1:
将addname复制到work中
DL,BYTEPTRADDNAME[BX+2]
BYTEPTRWORK[SI+BX],DL
S1
BYTEPTRWORK[SI+20],'
DX,OFFSETOBF4
DX,OFFSETADDNUM
S7:
为避免刚输入的没有完全覆盖上一次的,将这次
输
BYTEPTRADDNUM[BX+2],0DH;
入的的最后
一位的回车符(ODH)换成$
S7
BYTEPTRADDNUM[BX+2],'
SI,21
CX,8
S3:
DL,BYTEPTRADDNUM[BX+2]
S3
BYTEPTRWORK[SI+8],'
DX,OFFSETOBF5
Y'
y'
STOP:
DX,OFFSETOBF6
EXIT
EXIT:
AX,4C00H;
退出本程序
SEARCH:
DX,OFFSETOBF7;
输入你要搜索的名字,存放在
ZHU1中
DX,OFFSETSENAME
L5:
INC
次的信息,
及其后面的字节归0
BX;
为避免ZHU1刚输入的信息没有完全覆盖上一
BYTEPTRSENAME[BX+2],0DH;
将回车符(0DH)
L5
L6:
BYTEPTRSENAME[BX+2],0
L6
BYTEPTRSENAME[BX+2],0DH
CX,50;
在work中搜索与sename相等的字符串
SI,-30
L1:
SI,30
L2:
L3
AX
AL,BYTEPTRWORK[SI+BX]
AH,BYTEPTRSENAME[BX+2]
AL,AH
L2
DX,OFFSETOBF9没有搜索到
L4
L3:
DX,OFFSETOBF8;
搜索到了
BX,OFFSETWORK
BX,SI
DX,BX
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 扩展 电路 课程设计 部分