微机原理课程设计
- 格式: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