计算机硬件技术报告1.docx

上传人:b****8 文档编号:9788790 上传时间:2023-02-06 格式:DOCX 页数:26 大小:443.47KB
下载 相关 举报
计算机硬件技术报告1.docx_第1页
第1页 / 共26页
计算机硬件技术报告1.docx_第2页
第2页 / 共26页
计算机硬件技术报告1.docx_第3页
第3页 / 共26页
计算机硬件技术报告1.docx_第4页
第4页 / 共26页
计算机硬件技术报告1.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

计算机硬件技术报告1.docx

《计算机硬件技术报告1.docx》由会员分享,可在线阅读,更多相关《计算机硬件技术报告1.docx(26页珍藏版)》请在冰豆网上搜索。

计算机硬件技术报告1.docx

计算机硬件技术报告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和数码管等一些应用部件在系统中的应用。

不仅如此,在编程的同时也让我们对微机原理课程的理论知识也有了更深刻的巩固和理解,实验技能也有了进一步的提高,作为利用所学理论来解决实际问题方面,我们掌握了分析相对复杂的电路,以及进行对应的程序编程。

总之,通过这次实验,我们认识到了每一个细节都是很重要的,我们要做到认真仔细,真正做到理论联系实际,提高自身分析问题、解决问题的能力。

 

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

当前位置:首页 > 求职职场 > 简历

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

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