微机原理课程设计

  • 格式:doc
  • 大小:153.05 KB
  • 文档页数:11

目 录

一、设计任务(要求)„„„„„„„„„„„„2

二、总体方案„„„„„„„„„„„„„„„„2

三、原理框图„„„„„„„„„„„„„„„„2

四、系统模块详细设计与调试„„„„„„„„„3

五、设计总结„„„„„„„„„„„„„„„„6

六、参考文献„„„„„„„„„„„„„„„„7

七、附件材料„„„„„„„„„„„„„„„„7

八、课程设计评分表„„„„„„„„„„„„„11

简易电压表设计

一、设计任务

1.课程设计应达到的目的

运用<>课程等知识,根据题目要求进行软硬件系统的设计和调试,从而加深对本课程知识点的理解,使学生综合应用知识能力、设计能力、调试能力及报告撰写能力等显著提高。本课题使学生掌握模数转换的基本原理和器件的选用,掌握LED的显示方法达到的目的

2.课程设计要求

 简易电压表除完成基本的电压测量功能外,还应具备量显示等辅助功能

 设计绘制相应的硬件电路原理图并完成接线

 编制相应控制程序实现电压测量与显示

 控制程序设计规范,应有适当的注释,表达清楚

 电压表示数显示要求采用8段LED数码管实现

 电压表显示数值至少由三个数据位构成。其中,整数位一位,小数位两位

 电压表量程分为0~5V

二、总体方案

总体框图

将输入的电压模拟量经模数转换器0809转换成二进制数,将得到的8位二进制数(00H ~FFH)转换成十进制数0~500的BCD码用于显示电压数值0.00V~

5.00V。根据每位数的BCD码算出相应的LED数码管段码,并通过并行接口芯片8255的B口输出。 LED数码管的位码由并行接口芯片8255的C口输出,从而实现电压值的显示

三、原理框图 ADC0809 CPU 8086将二进制数转换为十进制数 电压模拟量

8255 LED数码管

四.系统模块详细设计与调试

1.程序如下

CS0809 EQU 0378H ;0809通道IN0端口地址

OUTBIT EQU 037AH ;数码管位控制口 开始

初始化8255

启动A/D转换器

延时等待

从A/D读入数据

扩展数据并转换成BCD码

取出个位数字并转化为段输出至8255并显示

取小数部分第一,二位并转化为BCD

由8255输出并显示

OUTSEG EQU 0379H ;数码管段控制口

DATA SEGMENT

NUM DB 3 DUP(?)

LEDMAP DB,3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;数码管显示0到9的字型代码

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

XS PROC NEAR

MOV DX,OUTSEG

OUT DX,AL ;确定输出数字

MOV DX,OUTBIT

MOV AL,AH

OUT DX,AL ;确定哪一位输出

MOV CX,40

LOOP $ ;延时

MOV AX,0

MOV DI,OFFSET LEDMAP

RET

XS ENDP

START: MOV DX,037BH

MOV AL,90H ;初始化8255

OUT DX,AL

MOV AX,DATA

MOV DS,AX

MOV AL,0

MOV DX,037AH

OUT DX,AL ;启动0809

MOV CX,40H

LOOP $ ;延时

IN AL,DX ;读入结果

MOV BL,0C4H ;5/256*10000=196=C4H

MUL BL ;转换电压值(是实际值的10000倍)

PUSH AX ;保存电压值

MOV BX,0001H

POP AX

MUL BX ;将电压值扩成32位

MOV SI,OFFSET NUM ;指向第一个数字

MOV BX,064H

DIV BX ;将电压值扩成一百倍,存于AX中

DIV BL ;除100后得整数位存于AL中

MOV [SI],AL

MOV AL,AH

MOV AH,00H

MOV BL,0AH

DIV BL ;除10后,AL中得第一位小数,AH中得第二位小数

MOV [SI+1],AL

MOV [SI+2],AH

MOV DI,OFFSET LEDMAP ;指向数码管代码0

AA: MOV AL,[SI]

MOV AH,00H

ADD DI,AX

MOV AL,[DI]

ADD AL,80H ;整数位将首位置1,显示小数点

MOV AH,00000100B ;选择数码管上倒第三位

CALL XS ;显示第一位

MOV AL,[SI+1]

AND AL,0FH

ADD DI,AX

MOV AL,[DI]

MOV AH,00000010B

CALL XS ;显示第二位

MOV AL,[SI+2]

AND AL,0FH

ADD DI,AX

MOV AL,[DI]

MOV AH,00000001B

CALL XS ;显示第三位

JMP START

MOV AH,4CH

INT 21H

CODE ENDS

END START

2.上机调试

用masm软件进行程序上机调试,首先把源程序编写为.asm格式,用masm软件进行连接产生目标文件dyb.Obj,运行提示0错误,0警告,说明源程序正确,再用link软件生成dyb.exe文件,程序调试成功。

五.设计总结

为了完成这次课程设计,首先在指导老师的帮助下了解掌握课题的内容和所需要研究的对象,然后查阅学校图书馆的资料和搜索下载网上有关资料,再对资料进行整理、理解。在平时利用自己的电脑学习软件调试、仿真,当完成足够的理论学习并成功仿真后,最后进行课程设计论文的编写准备答辩。通过本次课程设计的锻炼,我学到了很多有关仪表的设计方法与工作原理。期间也碰到了不少问题,在设计的过程中,出现了很多错误,这让我明白了,对总体的把握固然重要,但对于一个实际的系统,很难在设计之初就把握所有细节,设计任何一个系统都需要耐心逐步去发现和解决问题。

经过自己的努力和同学的帮忙终于有了成果,特别离不开张老师的悉心教导,张老师的精心指导和解说使我受益匪浅,给我很大的启迪。感谢张老师不畏辛劳,热心精心的指导。

六.主要参考文献

《微机原理实验与课程设计指导书》,陆红伟编,中国电力出版社,2006年

《8086微型计算机组成、原理及接口》,顾滨,机械工业出版社,2001年

《微型计算机原理及应用》,吕淑萍等,哈尔滨工程大学出版社,2004年

《微型计算机技术及应用》,戴梅萼,清华大学出版社,2005年

《微型计算机原理与接口技术》,冯博琴 吴宁,清华大学出版社,2007年

七.附件材料

1.所用芯片

(1)A/D转换器0809

ADC0809的引脚图如下图所示:

ADC0809是采用CMOS工艺制成的28引脚双列直插式8位A/D转换芯片。它具有8路模拟量输入线,可在程序控制下对任意一路进行A/D转换,得到8位二进制数字量。芯片内包括一个8位的逐次逼近型的ADC部分,并通过一个通道的模拟多路开关和联合寻址逻辑。用该电路可直接采样8个单端的模拟信号,分时进行A/D转换,在多点巡回检测,过程控制等领域使用非常广泛。 1 28

2 27

3 26

4 25

5 ADC0809 24

6 23

7 22

8 21

9 20

10 19

11 18

12 17

13 16

14 15

A/D转换方法:

IN0单极性输入电压与转换后数字的关系为

N=Ui/(Uref/256)

其中Ui为输入电压,Uref为参考电压(+5V)。

本设计中电压模拟量从ADC0809的IN0端输入。

(2)并行接口芯片8255

8255A是一个40引脚的双列直插式芯片,其引脚图如下图所示:

8255芯片内部有3个8位的输入输出端口,即A口,B口和C口。从内部控制角度来讲,可分为两组:A组和B组。A组控制模块管理A口和C口的高四位,B组控制模块管理B口和C口的低四位。

8255A的三种工作方式:

方式0:基本输入输出方式;

方式1:选通型输入输出方式; 1 40

2 39

3 38

4 37

5 36

6 35

7 34

8 33

9 8255A 32

10 31

9 30

12 29