计算机硬件技术报告1Word下载.docx
- 文档编号:5357355
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:26
- 大小:443.47KB
计算机硬件技术报告1Word下载.docx
《计算机硬件技术报告1Word下载.docx》由会员分享,可在线阅读,更多相关《计算机硬件技术报告1Word下载.docx(26页珍藏版)》请在冰点文库上搜索。
芯片的选型介绍:
●8086
主要功能:
8086CPU包括两大部分:
EU和BIU
BIU不断地从存储器取指令送入IPQ,EU不断地从IPQ取出指令执行;
EU和BIU构成了一个简单的2工位流水线;
指令预取队列IPQ是实
现流水线操作的关键(类似于工厂流水线的传送带)。
主要引脚:
数据信号线(DB)与地址信号线(AB):
AD7~AD0:
三态,地址/数据复用线。
ALE有效时为地址的低8位。
地址信号有效时为输出,传送数据信号时为双向;
A19~A16:
三态,输出。
高4位地址信号,与状态信号S6-S3分时
复用;
A15~A8:
输出8位地址信号;
WR:
写命令信号;
RD:
读命令信号;
IO/M:
指出当前访问的是存储器还是I/O接口。
高:
I/O接口,低:
内存;
DEN:
低电平时,表示DB上的数据有效;
RESET:
输入,为高时,CPU执行复位;
ALE:
三态,输出。
高:
AB地址有效;
DT/R:
数据传送方向,高:
CPU输出,低:
CPU输入
图1.8086芯片
●8253
概貌介绍:
3个16位的定时/计数器(通道);
4引脚双列直插式;
最高计数频率2MHz;
TTL电平兼容;
单电源+5V供电。
主要构成:
计数器(3个)包括:
16位初值寄存器(只写)、16位计数寄存器(减1
计数器)、16位锁存寄存器(只读);
控制寄存器(1个):
存放控制命令字(8位)(只写);
占用4个地址:
3个计数器,1个控制寄存器。
主要引线:
CLKn:
时钟脉冲输入,计数器的计时基准;
GATEn:
门控信号输入,控制计数器的启停;
OUTn:
计数器输出信号,不同工作方式下产生不同波形。
(n=0~2)。
图2.8252内部结构图
图3.8253芯片
●8255
含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和
锁存/缓冲能力。
可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。
连接外设端的引脚:
PA0~PA7、PB0~PB7、PC0~PC7(分别对应A、B、
C三个8位输入/输出端口)
三个端口可通过编程分别指定为输入或输出口。
其中,C口即可用作
独立的输入/输出口,也可用作A、B口的握手联络信号(控制信号输
出或状态信号输入)。
图4.8255芯片
●ADC0808
如下特点:
8通道(8路)输入;
8位字长;
逐位逼近型;
转换时间100μs;
内置三态输出缓冲器(可直接接到数据总线上)。
引脚功能:
D7~D0:
输出数据线(三态)
IN0~IN7:
8通道(路)模拟输入
ADDA、ADDB、ADDC:
通道地址(通道选择)
通道地址锁存
START:
启动转换
EOC:
转换结束,可用于查询或作为中断申请
OE:
输出允许(打开输出三态门)
CLK:
时钟输入(10KHz~1.2MHz)
VREF(+)、VREF(-):
基准参考电压
图5.ADC0808芯片
●74LS154
4线-16线译码器/解调器
将4个二进制编码输入译成16个彼独立的输出之一;
将数据从一个
输入线分配到16个输出的任意一个而实现解调功能;
输入箝位二极
管简化了系统设计;
与大部分TTL和DTL电路完全兼容。
原理解释:
这种单片4线—16线译码器非常适合用于高性能存储器的译码器。
当两个选通输入G1和G2为低时,它可将4个二进制编码的输入译成16个互相独立的输出之一。
实现解调功能的办法是:
用4个输入线写出输出线的地址,使得在一个选通输入为低时数据通过另一个选通输入。
当任何一个选通输入是高时,所有输出都为高。
A、B、C、D:
译码地址输入端(低电平有效)
G1、G2:
选通端(低电平有效)
0-15:
输出端(低电平有效)
图6.74254芯片
●74LS273
74LS273是8位数据/地址锁存器,是一种带清除功能的8D触发器。
1D~8D:
数据输入端。
1Q~8Q:
数据输出端,正脉冲触发,低电平清除,常用作8位地址锁
存器。
图7.74LS273芯片
6、程序流程图(包括各个子系统和子过程的程序流程)
7、程序清单,要有适当的注
IOS2EQU020H
IOS3EQU030H
IOS4EQU040H;
8253端口地址
A_PORTEQU10H;
8255端口地址
B_PORTEQU12H
C_PORTEQU14H
CRTL_PORTEQU16H
LCD_CMD_WREQU9000H
LCD_DATA_WREQU9002H
LCD_BUSY_RDEQU9004H
LCD_DATA_RDEQU9006H
CS8251Dequ20h;
串行地址
CS8251Cequ22h;
DATASEGMENT
OUTBUFFDB0,0,0,0,0DH
LEDTABDB3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
FAULTTABDB79h,77h,77h,3FH
TIMEDB0
voltdb'
TheVoltageis:
'
V1DB30H,'
.'
30H,30H,'
V'
0DH
str1db'
'
E'
R'
O'
str2db'
'
0'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
;
LMO32L初始化;
INAX,DX
MOVAX,30H
CALLWRCMD
MOVAX,38H
MOVAX,0CH
MOVAX,01H
MOVAX,06H
8255初始化;
MOVAL,80H
MOVDX,CRTL_PORT
OUTDX,AL
8253初始化;
moval,00110100b;
写计数器0控制字
movdx,ios4+6
outdx,al
movax,2e9ch;
写计数器0初值
movdx,ios4
moval,ah
moval,01010110b;
写计数器1控制字
movax,20;
写计数器1初值
movdx,ios4+2
outdx,al
8051初始化;
INIT:
XORAL,AL;
AL清零
MOVCX,03
MOVDX,CS8251C
OUT1:
OUTDX,AL;
往8251A的控制端口送3个0
LOOPOUT1
MOVAL,40H
OUTDX,AL
NOP
movdx,CS8251C
moval,01001101b;
写模式字1停止位,无校验,8数据位,x1
outdx,al
moval,00010101b;
控制字清出错标志,允许发送接收
主程序;
LOP1:
MOVDX,IOS3
MOVAL,0
OUTDX,AL;
启动AD
CALLDISP;
数码管显示并适当延时
UART;
MOVCL,TIME
CMPCL,60
JZN1
INCCL
MOVTIME,CL
JMPN2
N1:
MOVCL,0
MOVTIME,CL
CALLUART
LM032L显示;
PUSHDX
PUSHAX
LEASI,OUTBUFF
MOVBL,[SI]
CMPBL,'
JZE1
LEADI,STR2
ORBL,30H
MOV[STR2+1],BL
MOVBL,[OUTBUFF+1]
MOV[STR2+3],BL
MOVBL,[OUTBUFF+2]
MOV[STR2+4],BL
MOVCX,7
JMPNEXT6
E1:
LEADI,STR1
MOVCX,6
NEXT6:
MOVAL,82H
CALLWRSTR
POPAX
POPDX
N2:
INAL,DX;
读取AD值
AD值转换电压值;
CMPAL,99H
JAEORR
VOL:
MOVAH,0
MOVBL,51
DIVBL
MOVOUTBUFF,AL
MOVAL,AH
MOVBL,10
MULBL
MOV[OUTBUFF+1],AL
MOV[OUTBUFF+2],AL
MOVDX,B_PORT
MOVAL,0H
JMPNEXT2
EORR:
MOVOUTBUFF,'
MOV[OUTBUFF+1],'
MOV[OUTBUFF+2],'
MOV[OUTBUFF+3],'
MOVAL,01H
NEXT2:
JMPLOP1
主程序结束;
LM032L读写函数;
WRCMD:
MOVDX,LCD_CMD_WR
OUTDX,AX
RET
入口参数:
AX-->
行地址,第一行地址为80H,第二行地址为C0H
CX-->
字符数,不超过20
DI-->
字符串首地址
WRSTR:
CALLWRCMD
MOVDX,LCD_DATA_WR
WRBIT:
MOVAL,[DI]
INCDI
LOOPWRBIT
WRRET:
RET
延时函数;
DELAY_1SPROCNEAR
PUSHCX
PUSHBX
MOVBX,01H
D1:
MOVCX,0FH
D2:
LOOPD2
DECBX
JNZD1
POPBX
POPCX
DELAY_1SENDP
延时函数结束;
串口函数;
UARTPROCNEAR
显示:
TheVolateis:
MOVCX,16
LEADI,volt
Send:
;
串口发送
清出错,允许发送接收
utdx,al
WTXD:
inal,dx
testal,1;
发送缓冲是否为空
jzWTXD
moval,[DI];
取要发送的
movdx,CS8251D
outdx,al;
发送
pushcx
movcx,30h
popcx
LOOPSend
小于3V显示;
JZUART1
LEADI,V1;
将V1按测量值赋值
MOVAL,[SI]
ORAL,30H
MOV[DI],AL
MOVAL,[SI+1]
MOV[DI+2],AL
MOVAL,[SI+2]
MOV[DI+3],AL
Send2:
WTXD2:
jzWTXD2
LOOPSend2
jmpnext3
大于3V显示;
UART1:
MOVCX,5
LEADI,OUTBUFF
Send1:
WTXD1:
jzWTXD1
loop$
LOOPSend1
Next3:
UARTENDP
串口函数结束;
数码管显示函数;
DISPPROCNEAR
AGAIN:
MOVCL,0F7H
CMPAL,'
JZLED1
小于3V正常显示;
LEDDISP:
MOVAL,CL
MOVDX,C_PORT
CMPCL,0FEH
JZL
LEABX,LEDTAB
XLAT
CMPCL,0F7H
JNZL1
ORAL,80H
L1:
MOVDX,A_PORT
CALLDELAY_1S
JZNEXT1
INCSI
RORCL,1
JMPLEDDISP
L:
MOVAL,3EH
JMPL1
大于3V显示ERRO;
LED1:
LEASI,FAULTTAB
L2:
JMPL2
退出函数弹出堆栈;
NEXT1:
DISPENDP
数码管显示函数束;
CODEENDS
ENDSTART
八、程序运行结果分析与预测
连接好硬件电路图,载入程序后,点击运行键,程序的运行与预期的结果很相近,能很好地完成电压报警功能。
当电压值小于3V时,改动滑动变阻器的阻值数码管会显示相应的电压值;
当电压值超过3V时,数码管显示“ERR”并且蜂鸣器发出报警声。
9、结果评述或总结(对实验结果进行分析,对实验过程进行总结,
系统改进升级建议或者提出新的方案等。
)
通过本次课程设计使大家更加熟练的掌握了微机系统与接口扩展电路的设计方法,能够熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。
在课程设计过程中,我们组相互协助,集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,通过不断的修改完善,基本完成了相关的课题。
实验中,大家对微机相关方面的知识有了更进一步的认识和掌握。
学会了运用理论知识来解决实际问题,锻炼了我们在学完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。
通过这次的微机原理课程设计实验,使我们更好的掌握8086微机系统中各种芯片的连接方式,以及在8255作为并行接口芯片的情况下,0809和数码管等一些应用部件在系统中的应用。
不仅如此,在编程的同时也让我们对微机原理课程的理论知识也有了更深刻的巩固和理解,实验技能也有了进一步的提高,作为利用所学理论来解决实际问题方面,我们掌握了分析相对复杂的电路,以及进行对应的程序编程。
总之,通过这次实验,我们认识到了每一个细节都是很重要的,我们要做到认真仔细,真正做到理论联系实际,提高自身分析问题、解决问题的能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机硬件 技术 报告