计算机硬件技术报告1.docx
- 文档编号:2913763
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:26
- 大小:443.47KB
计算机硬件技术报告1.docx
《计算机硬件技术报告1.docx》由会员分享,可在线阅读,更多相关《计算机硬件技术报告1.docx(26页珍藏版)》请在冰点文库上搜索。
计算机硬件技术报告1
计算机硬件技术实践报告
题目电压报警器的设计
姓名
专业测控技术与仪器(电站方向)
班级
学号
上海电力学院自动化工程学院
目录
一、设计题目………………………………………………………………………3
二、开发目的………………………………………………………………………3
三、小组成员分工及成果…………………………………………………………3
四、设计方案以及论证……………………………………………………………4
五、硬件原理图……………………………………………………………………4
芯片选型介绍…………………………………………………………………4
六、程序流程图……………………………………………………………………11
七、程序清单,要有适当的注释…………………………………………………11
八、程序运行结果分析与预测……………………………………………………21
九、结果评述或总结………………………………………………………………22
一、设计题目
电压报警器的设计:
要求:
采集0~5V的电压,当输入电压在3V以内,显示电压值,如2.42。
当输入电压超过3V,显示ERR,并报警。
电压值可在七段数码管显示,点阵广告屏显示或液晶屏显示。
报警形式自行设计,可用灯光闪烁表示,蜂鸣器鸣响报警等形式。
2、开发目的
课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。
它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。
通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。
让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。
通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。
通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。
3、小组成员分工及成果
小组成员:
韩燕鸣(组长):
程序编写后期调试
汤俐:
负责连接电路
吴佳俊:
负责收集资料
4、设计方案以及论证
通过滑动变阻器来模拟外界的电压,电压值通过0808A/D转换器将模拟量变为数字量,并将信号输入给8086,8086获得电压值后,将该电压值与3V进行比较。
当电压小于3V时,数码管显示相应的电压值。
如果电压值大于3V,数码管循环显示“ERR”,同时,工作在方式3的8253定器会产生一个不可中断屏蔽信号来控制喇叭的鸣笛来报警。
5、硬件原理图(包括芯片的选型介绍)
芯片的选型介绍:
●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:
通道地址(通道选择)
ALE:
通道地址锁存
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','R','O',''
str2db'','0','.','0','0','V'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
;;;;;;;;;;;;;;LMO32L初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INAX,DX
MOVAX,30H
CALLWRCMD
MOVAX,38H
CALLWRCMD
MOVAX,0CH
CALLWRCMD
MOVAX,01H
CALLWRCMD
MOVAX,06H
CALLWRCMD
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;8255初始化;;;;;;;;;;;;;;;;;;;;;;;;
MOVAL,80H
MOVDX,CRTL_PORT
OUTDX,AL
;;;;;;;;;;;;8253初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
moval,00110100b;写计数器0控制字
movdx,ios4+6
outdx,al
movax,2e9ch;写计数器0初值
movdx,ios4
outdx,al
moval,ah
outdx,al
moval,01010110b;写计数器1控制字
movdx,ios4+6
outdx,al
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;控制字清出错标志,允许发送接收
outdx,al
;;;;;;;;;;;;;主程序;;;;;;;;;;;;;;;;;;;;;;
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,'E'
JZE1
LEADI,STR2
ORBL,30H
MOV[STR2+1],BL
MOVBL,[OUTBUFF+1]
ORBL,30H
MOV[STR2+3],BL
MOVBL,[OUTBUFF+2]
ORBL,30H
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
MOVBL,51
DIVBL
MOV[OUTBUFF+1],AL
MOVAL,AH
MOVBL,10
MULBL
MOVBL,51
DIVBL
MOV[OUTBUFF+2],AL
MOVDX,B_PORT
MOVAL,0H
OUTDX,AL
JMPNEXT2
EORR:
MOVOUTBUFF,'E'
MOV[OUTBUFF+1],'R'
MOV[OUTBUFF+2],'R'
MOV[OUTBUFF+3],'O'
MOVDX,B_PORT
MOVAL,01H
OUTDX,AL
;;;;;;;;;;;;;;;;;;;;;;;;;
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]
OUTDX,AL
INCDI
LOOPWRBIT
WRRET:
RET
;;;;;;;;;;;;;;;;延时函数;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY_1SPROCNEAR
PUSHCX
PUSHBX
MOVBX,01H
D1:
MOVCX,0FH
D2:
LOOPD2
DECBX
JNZD1
POPBX
POPCX
RET
DELAY_1SENDP
;;;;;;;;;;;;;;;;;延时函数结束;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;串口函数;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
UARTPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
;;;;;;;;;;;显示:
TheVolateis:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOVCX,16
LEADI,volt
Send:
;串口发送
movdx,CS8251C
moval,00010101b;清出错,允许发送接收
utdx,al
NOP
WTXD:
inal,dx
testal,1;发送缓冲是否为空
NOP
jzWTXD
moval,[DI];取要发送的
movdx,CS8251D
outdx,al;发送
pushcx
movcx,30h
popcx
INCDI
LOOPSend
;;;;;;;;;;;小于3V显示;;;;;;;;;;;;;;;;;;;;;;;;;;;
LEASI,OUTBUFF
MOVBL,[SI]
CMPBL,'E'
JZUART1
MOVCX,6
LEADI,V1;将V1按测量值赋值
MOVAL,[SI]
ORAL,30H
MOV[DI],AL
MOVAL,[SI+1]
ORAL,30H
MOV[DI+2],AL
MOVAL,[SI+2]
ORAL,30H
MOV[DI+3],AL
Send2:
;串口发送
movdx,CS8251C
moval,00010101b;清出错,允许发送接收
outdx,al
NOP
WTXD2:
inal,dx
testal,1;发送缓冲是否为空
NOP
jzWTXD2
moval,[DI];取要发送的
movdx,CS8251D
outdx,al;发送
pushcx
movcx,30h
popcx
INCDI
LOOPSend2
jmpnext3
;;;;;;;;;;;;大于3V显示;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
UART1:
MOVCX,5
LEADI,OUTBUFF
Send1:
;串口发送
movdx,CS8251C
moval,00010101b;清出错,允许发送接收
outdx,al
NOP
WTXD1:
inal,dx
testal,1;发送缓冲是否为空
NOP
jzWTXD1
moval,[DI];取要发送的
movdx,CS8251D
outdx,al;发送
pushcx
movcx,30h
loop$
popcx
INCDI
LOOPSend1
Next3:
POPDX
POPCX
POPBX
POPAX
UARTENDP
;;;;;;;;;;;;;;;;;;;;;;串口函数结束;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;数码管显示函数;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISPPROCNEAR
AGAIN:
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVCL,0F7H
LEASI,OUTBUFF
MOVAL,[SI]
CMPAL,'E'
JZLED1
;;;;;;;;;;;;小于3V正常显示;;;;;;;;;
LEDDISP:
MOVAL,CL
MOVDX,C_PORT
OUTDX,AL
CMPCL,0FEH
JZL
LEABX,LEDTAB
MOVAL,[SI]
XLAT
CMPCL,0F7H
JNZL1
ORAL,80H
L1:
MOVDX,A_PORT
OUTDX,AL
CALLDELAY_1S
MOVAL,0H
MOVDX,A_PORT
OUTDX,AL
CMPCL,0FEH
JZNEXT1
INCSI
RORCL,1
JMPLEDDISP
L:
MOVAL,3EH
OUTDX,AL
JMPL1
;;;;;;;;;;;;;;大于3V显示ERRO;;;;;;;;;
LED1:
LEASI,FAULTTAB
L2:
MOVAL,CL
MOVDX,C_PORT
OUTDX,AL
MOVDX,A_PORT
MOVAL,[SI]
OUTDX,AL
CALLDELAY_1S
MOVAL,0H
MOVDX,A_PORT
OUTDX,AL
CMPCL,0FEH
JZNEXT1
INCSI
RORCL,1
JMPL2
;;;;;;;;;;;;;;退出函数弹出堆栈;;;;;;;;;;;;;;;;;;;;;;;;
NEXT1:
POPDX
POPCX
POPBX
POPAX
RET
DISPENDP
;;;;;;;;;;;;;;;数码管显示函数束;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CODEENDS
ENDSTART
八、程序运行结果分析与预测
连接好硬件电路图,载入程序后,点击运行键,程序的运行与预期的结果很相近,能很好地完成电压报警功能。
当电压值小于3V时,改动滑动变阻器的阻值数码管会显示相应的电压值;当电压值超过3V时,数码管显示“ERR”并且蜂鸣器发出报警声。
9、结果评述或总结(对实验结果进行分析,对实验过程进行总结,
系统改进升级建议或者提出新的方案等。
)
通过本次课程设计使大家更加熟练的掌握了微机系统与接口扩展电路的设计方法,能够熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。
在课程设计过程中,我们组相互协助,集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,通过不断的修改完善,基本完成了相关的课题。
实验中,大家对微机相关方面的知识有了更进一步的认识和掌握。
学会了运用理论知识来解决实际问题,锻炼了我们在学完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。
通过这次的微机原理课程设计实验,使我们更好的掌握8086微机系统中各种芯片的连接方式,以及在8255作为并行接口芯片的情况下,0809和数码管等一些应用部件在系统中的应用。
不仅如此,在编程的同时也让我们对微机原理课程的理论知识也有了更深刻的巩固和理解,实验技能也有了进一步的提高,作为利用所学理论来解决实际问题方面,我们掌握了分析相对复杂的电路,以及进行对应的程序编程。
总之,通过这次实验,我们认识到了每一个细节都是很重要的,我们要做到认真仔细,真正做到理论联系实际,提高自身分析问题、解决问题的能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机硬件 技术 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)