微机原理报告Word格式.docx

上传人:b****2 文档编号:4055320 上传时间:2023-05-02 格式:DOCX 页数:23 大小:185.60KB
下载 相关 举报
微机原理报告Word格式.docx_第1页
第1页 / 共23页
微机原理报告Word格式.docx_第2页
第2页 / 共23页
微机原理报告Word格式.docx_第3页
第3页 / 共23页
微机原理报告Word格式.docx_第4页
第4页 / 共23页
微机原理报告Word格式.docx_第5页
第5页 / 共23页
微机原理报告Word格式.docx_第6页
第6页 / 共23页
微机原理报告Word格式.docx_第7页
第7页 / 共23页
微机原理报告Word格式.docx_第8页
第8页 / 共23页
微机原理报告Word格式.docx_第9页
第9页 / 共23页
微机原理报告Word格式.docx_第10页
第10页 / 共23页
微机原理报告Word格式.docx_第11页
第11页 / 共23页
微机原理报告Word格式.docx_第12页
第12页 / 共23页
微机原理报告Word格式.docx_第13页
第13页 / 共23页
微机原理报告Word格式.docx_第14页
第14页 / 共23页
微机原理报告Word格式.docx_第15页
第15页 / 共23页
微机原理报告Word格式.docx_第16页
第16页 / 共23页
微机原理报告Word格式.docx_第17页
第17页 / 共23页
微机原理报告Word格式.docx_第18页
第18页 / 共23页
微机原理报告Word格式.docx_第19页
第19页 / 共23页
微机原理报告Word格式.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理报告Word格式.docx

《微机原理报告Word格式.docx》由会员分享,可在线阅读,更多相关《微机原理报告Word格式.docx(23页珍藏版)》请在冰点文库上搜索。

微机原理报告Word格式.docx

2.4A/D转换接口芯片................................4

2.5数码管显示单元.................................4

3硬件连线.............................................5

3.18254可编程定时/计数器芯片接线图................5

3.28255并行接口芯片接线图.........................6

3.3A/D转换接口芯片接线图..........................7

3.4数码管连线图....................................8

4软件实现..............................................9

4.1模块流程图......................................9

4.1.1主程序流程图................................9

4.1.2电压转换模块流程图.........................10

4.1.3电压显示模块流程图.........................10

4.1.4电压报警模块流程图.........................11

4.2代码设计.......................................12

4.2.1主程序代码.................................12

4.2.2电压转换模块代码...........................13

4.2.3数码管显示模块代码.........................13

4.2.4电压报警模块代码...........................14

总结...................................................16

参考文献...............................................17

1系统需求分析

1.1设计内容

电压报警系统是一个对超过额定电压就会产生蜂鸣效果,进行报警的系统。

它主要是通过采集实验箱提供的0~5V的电压;

当输入电压在额定值以内,用数码管显示实际电压值;

当输入电压超过额定值3V,数码管显示“E.O”,并发出报警音,并将此电压限制到额定值后输出。

1.2设计内容

(1)控制系统硬件用8086系统构成:

CPU8086,定时器/计数器芯片,并行接口芯片,4位7段数码管单元,模数转换单元,蜂鸣器。

(2)设计控制系统应用软件。

(3)系统功能:

显示电压,报警,修正电压等功能。

1.3芯片选择

在本系统中,主要采用的芯片有CPU8086、8254可编程定时/计数器芯片、8255并行接口芯片、A/D转换接口芯片ADC0809。

CPU8086主要是电压报警系统的核心芯片,协调着8254芯片,8255芯片,ADC0809芯片相互间的工作。

8254是可编程定时/计数器芯片,用来控制蜂鸣器。

8255是并行接口芯片,用来连接数码管显示单元和8254

ADC0809是A/D转换单元,用来模拟电压,将模拟信号转换为数字信号。

2芯片及数码管介绍

在整个电压报警系统中,所用到的元器件有了CPU8086、8254可编程定时/计数器、8255并行接口芯片、A/D转换接口芯片、数码管以及蜂鸣器。

2.1CPU8086

微处理器CPU是微机的核心芯片,是整个系统运算和指挥控制中心。

在电压报警系统中用到的CPU是字长为16位的,一次能处理16位数据的CPU8086。

CPU8086拥有运算器,控制器和寄存

器组三大主要部件。

其功能部件包括指令执行部件EU和总线部件BIU,其寄存器结构由八个通用寄存器,四个段寄存器和二个控制寄存器。

在电压报警系统中,用到了XD0-XD7地址总线,XIOR,XIOW读写信号引脚,IOY0,IOY1,IOY2三个端口号,用来控制8255并行接口芯片,8254可编程定时/计数器芯片,A/D转换接口芯片。

2.28254可编程定时/计数器芯片

8254是Intel公司生产的可编程间隔定时器。

它具有以下基本功能:

1、有三个独立的16位计数器;

2、每个计数器可按二进制或十进制(BCD)计数;

3、每个计数器可编程工作于六种不同的工作方式;

4、8254每个计数器允许的最高计数频率为10MHz;

5、8254有读回命令,可以读出状态寄存器的内容;

6、计数脉冲可以是有规律的时钟信号,也可以是随机信号。

8254的工作方式如下述:

1、方式0:

计数到0结束输出正跃变信号方式。

2、方式1:

硬件可重触发单稳方式。

3、方式2:

频率发生器方式。

4、方式3:

方波发生器。

5、方式4:

软件触发选通方式。

6、方式5:

硬件触发选通方式。

8254的控制字有两个:

一个是用来设置计数器的工作方式,称为方式控制字;

另一个用来设置读回命令,称为读回控制字。

这两个控制字共用一个地址,由标志位来区分。

控制字格式和读回控制字格式分别如图2-1和如图2-2。

当读回控制字的D4位为0时,由该读回控制字D1-D2位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。

状态字格式如图2-2所示。

图2-18254方式控制字

图2-28254读出控制字

图2-38254状态字格式

在电压报警系统中,8254采用的是定时器0,方式3来进行控制的,输入时钟频率为00502H,门控信号输入引脚GATE0与8255的PA0和PA1相连,OUT0与蜂鸣器相连,当门控信号接收到从8255的PA0和PA1传来的高电平,则蜂鸣器会发出报警声,否则蜂鸣器停止工作。

2.38255并口芯片

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A,B,C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:

方式0,方式1,方式2。

方式0是基本输入输出方式,方式1是选通输入输出方式,方式2是双向选通工作方式。

其工作方式控制字如图2-1。

在电压报警系统中,8255起到是一个桥梁作用,在本系统中,8255采用方式0基本输入输出方式,A口,B口,C口均为输出。

8255的D0-D7连接系统总线的XD0-XD7,RD,WD,CS分别连接系统总线的XIOR,XIOW,IOY0。

8255的A口低两位PA0,PA1控制8254可编程定时/计数器芯片。

8255的B口的PB0-PB7和C口的低四位PC0-PC3来控制数码的显示。

图2-48255工作方式控制字

2.4A/D转换接口芯片

  ADC0809包括一个8位的逐次逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑。

用它可直接输入8个单端的模拟信号,分时进行A/D转换,在多点巡回检测、过程控制等应用领域中使用非常广泛。

在电压报警系统中,ADC08089的CS片选信号连接系统总线的IOY2端口,CLK连接系统总线CLK,WR,RD分别连接系统总线的XIOW和XIOR,它将模拟信号转换为数字信号存储在AL中,其输出范围为0-255。

2.5数码管显示单元

本系统中所用到的数码管显示单元是由4个7段数码管组成,其每个数码管结构图如图2-5所示。

图2-5数码管结构图

数码管的显示数字的原理其实是根据每个数码管发光来组成一个数字,在本系中给数码管给以低电平,则数码管发光,否则数码管熄灭。

其具体数字显示编码表表2-1如下:

dp

g

f

e

d

c

b

a

不带小数点

带小数点

0/1

1

3FH

BFH

06H

86H

2

5BH

DBH

3

4FH

CFH

4

66H

E6H

5

6DH

EDH

6

7DH

FDH

7

07H

87H

8

7FH

FFH

9

6FH

EFH

E

79H

F9H

表2-1数码管数字显示编码表

3硬件连线

3.18254可编程定时/计数器芯片接线图

在本系统中,8254门控信号输入引脚GATE0与8255的PA0和PA1相连,时钟输入信号CLK0与系统总线的CLK相连,OUT0与蜂鸣器相连,当门控信号接收到从8255的PA0和PA1传来的高电平,则蜂鸣器会发出报警声,否则蜂鸣器停止工作,具体接线图如下:

图3-18254可编程定时/计数器芯片接线图

3.28255并行接口芯片接线图

8255除了连接系统总线之外,还要连接数码管,数码管显示引脚是A,B,C,D,E,F,G,DP分别连接8255的PB0-PB7,数码管选择引脚X1,X2,X3,X4分别连接8255的PC0-PC4,具体接线图如下:

图3-28255并行接口芯片接线图

3.3A/D转换接口芯片接线图

在电压报警系统中,ADC08089的CS片选信号连接系统总线的IOY2端口,CLK连接系统总线CLK,WR,RD分别连接系统总线的XIOW和XIOR,具体接线图如下:

图3-3A/D转换接口芯片接线图

3.4数码管连线图

数码管显示引脚是A,B,C,D,E,F,G,DP分别连接8255的PB0-PB7,数码管选择引脚X1,X2,X3,X4分别连接8255的PC0-PC4,具体接线图如下

图3-4数码管接线图

4软件实现

4.1模块流程图

4.1.1主程序流程图

图4-1主程序流程图

4.1.2电压转换模块流程图

图4-2电压转换程序流程图

4.1.3电压显示模块流程图

图4-3电压显示模块流程图

4.1.4电压报警模块流程图

图4-4电压报警模块流程图

4.2代码设计

4.2.1主程序代码

主程序主要由电压转换模块和电压报警模块组成,首先给8255写方式控制字,然后在初始化8255,再启动A/D转换,将转换后的值读入AL中,最后再在电压转换模块中处理转换后的数据,然后检测数据的大小看是否需要报警,具体代码如下:

START:

MOVAX,DATA;

初始化寄存器

MOVDS,AX

MOVDX,MY8255_MODE;

8255初始化

MOVAL,80H;

工作方式为0,A口,B口都为输出

OUTDX,AL

MOVDX,OFFSETSTR0

MOVAH,09H;

显示STR0的内容

INT21H

START1:

MOVDX,ADC0809;

启动A/D转换

MOVAL,0

OUTDX,AL;

通过ADC0809输出

MOVCL,AL;

将A/D转换后的值送到CL当中去

CALLDELAY;

软件延时

CALLDELAY

读出转换结果

INAL,DX

MOVCL,AL

CALLTRANSFORM;

调用电压转换

MOVDX,MY8255_A;

让报警器停止工作

MOVAL,00H

OUTDX,AL

CALLALARM;

调用电压报警

MOVAH,01H

INT16H;

判断是否有按键按下

JNEQUIT

JMPSTART1

4.2.2电压转换模块代码

在电压转换模块中,主要是对A/D转换后的数据进行处理,A/D转换后的数据范围是0-255,但是电压要求范围是0-5V,所以这里需要对转换后的数据进行缩小,缩小后,还需要精确到小数点,于是这里需要将除后的余数保留,并且将余数扩大10倍,在一次除以33H,则可以获得小数点后面的数字,具体代码如下:

TRANSFORMPROC;

电压转换的子程序

CHANGE:

MOVAL,CL;

将刚才送到CL的AD转换值有送到AL当中去

MOVBL,33H;

将0-255的值转换为0-5V的电压值

DIVBL

将除的商送到CL中去

MOVAL,AH;

将除后的余数送到AL中去

MOVAH,00H

MOVBL,10

MULBL;

对余数扩大10倍

再除以刚才的除数

DIVBL

MOVCH,AL;

将获得商送到CH中去

RET

TRANSFORMENDP

4.2.3数码管显示模块代码

8255并行接口芯片连接数码管,用高低电平来控制数码管的显示,具体代码如下:

DISPLAY0PROC;

数码管显示子程序

SHOW:

MOVDX,MY8255_C;

写C口

MOVAL,0111B;

让第一个数码管亮

MOVAL,CL

MOVBX,offsetDTABLE1;

通过偏移地址寻地址

XLAT

MOVDX,MY8255_B;

读B口

CALLDALLY

MOVAL,1011B;

让第二个数码管亮

MOVAL,CH

MOVBX,offsetDTABLE0

DISPLAY0ENDP;

结束子程序

4.2.4电压报警模块代码

电压报警模块中,主要是对电压值的大小进行判断,若大于3.0V,则蜂鸣器工作,发出一定频率的声音,并在数码管显示E.0,若小于3.0V,则显示当前电压值,具体代码如下:

ALARMPROC;

调用报警子程序

CMPCL,3;

判断整数部分是否小于3

JBSHOW2;

小于3则跳转到SHOW2

断整数部分是否等于3

JZSHOW3;

等于3则跳转到SHOW3

JMPSHOW1;

否则跳转到SHOW1

SHOW3:

CMPCH,0;

判断小数部分是否等于3

JZSHOW2;

等于则跳转到SHOW2

SHOW1:

MOVDX,OFFSETSTR1

显示STR1的内容

INT21H;

报警

CALLXIANG

JMPSTART1

SHOW2:

MOVDX,OFFSETSTR2

显示STR2的内容,不报警

CALLDISPLAY0

;

调用电压显示

ALARMENDP

总结

本系统是一个电压报警系统,是对超过额定电压值3.0后进行报警,并显示E.O,若没有超过则显示当前电压值。

在课程设计的开始,我在试验箱上模拟出该功能的实现,最开始只要一打开电源开关就会产生刺耳的蜂鸣音。

要么就是数码管显示不出应该有的数据,而是乱码,或者位数显示不全,这让我非常着急。

本系统有需要改进的地方,在报警的时候,数码管上的E会随着报警声的频率变化而不断闪烁。

在整个电压报警系统设计过程中,如何显示一个小数。

如何对额定电压值3.0V的判断。

本系统还可以如何设计提高系统总线的利用率问题,这样大大的提高了系统的运行效率。

要完善本系统的设计需要开发者有一定的硬件知识和过硬的编程基础。

参考文献

[1]赵树升,赵雪梅.现代微机原理及接口技术[M],北京:

清华大学出版社,2008年8月

[2]戴梅萼.微型计算机技术及应用——从16位到32位(第2版)[M],北京:

清华大学出版社,2003年2月

[3]西安唐都科教仪器公司.32位微机原理与接口技术实验教程.2005年

[4]西安唐都科教仪器公司.32位微机原理与接口技术用户手册.2005年

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

当前位置:首页 > 医药卫生 > 基础医学

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

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