8086微机原理课程设计压力测量系统的设有硬件电路图计.docx

上传人:b****6 文档编号:6760885 上传时间:2023-01-10 格式:DOCX 页数:11 大小:85.78KB
下载 相关 举报
8086微机原理课程设计压力测量系统的设有硬件电路图计.docx_第1页
第1页 / 共11页
8086微机原理课程设计压力测量系统的设有硬件电路图计.docx_第2页
第2页 / 共11页
8086微机原理课程设计压力测量系统的设有硬件电路图计.docx_第3页
第3页 / 共11页
8086微机原理课程设计压力测量系统的设有硬件电路图计.docx_第4页
第4页 / 共11页
8086微机原理课程设计压力测量系统的设有硬件电路图计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

8086微机原理课程设计压力测量系统的设有硬件电路图计.docx

《8086微机原理课程设计压力测量系统的设有硬件电路图计.docx》由会员分享,可在线阅读,更多相关《8086微机原理课程设计压力测量系统的设有硬件电路图计.docx(11页珍藏版)》请在冰豆网上搜索。

8086微机原理课程设计压力测量系统的设有硬件电路图计.docx

8086微机原理课程设计压力测量系统的设有硬件电路图计

序号:

 

课程设计

(微机原理及应用A)

 

二○一一年七月八日

课程设计任务书及成绩评定

 

课题名称压力测控系统的设计

I、题目的目的和要求:

设计一个对压力传感器的信号进行检测并在LED数码显示器上显示压力值的系统,当压力低于30pa时,黄灯闪烁,闪烁周期为1秒。

当压力高于150pa时,红灯闪烁。

LED的显示内容为P=XXX。

X为测试值。

 

II、设计进度及完成情况

日期

内容

7月4日

查阅资料,拟定设计方案。

7月5日

选课程设计题目,编写程序。

7月6日

设计总体方案,上机调试。

7月7日

整理打印设计报告。

7月8日

上交设计报告并进行答辩。

III、主要参考文献及资料

《微型计算机原理及应用》清华大学出版社郑学坚周斌

《微型计算机技术及应用》清华大学出版社史嘉权

《微机原理与接口技术基础与应用》海洋出版社邓振杰

《微机原理与接口技术实验及课程设计》西南交通大学出版社杨斌

《单片机原理及接口技术》清华大学出版社梅丽凤王艳秋

 

 

学科部主任(签字)

 

Ⅵ、成绩评定:

 

设计成绩:

(教师填写)

指导老师:

(签字)

 

二○一一年七月八日

 

一、设计要求

设计一个对压力传感器的信号进行检测并在LED数码显示器上显示压力值的系统,当压力低于30pa时,黄灯闪烁,闪烁周期为1秒。

当压力高于150pa时,红灯闪烁。

LED的显示内容为P=XXX。

X为测试值。

二.设计思想

压力测试系统的设计,必然要牵涉到压力的感应与转化,所以必须要有压力传感与A/D转换器。

将自然中的模拟量转化为电压信号,再转化位数字信号进行处理。

一个小型的微机系统,必须要有8086cpu来进行整体的控制,将其通过8255与A/D传感器进行连接。

这就是这个系统的主要框架。

而具体的应用框架则是在主要的框架上添加。

要当压力低于30pa时,黄灯闪烁。

当压力高于150pa时,红灯闪烁。

则应添加8255。

模块。

通过编程来控制黄灯与红灯的亮灭情况,考虑到要进行比较,所以我用了两个比较器进行数据的比较。

同时,由于灯要闪烁,闪烁周期要一秒,所以我们考虑到还要加一个8253芯片去控制。

但根据个人情况,这个模块我省略了。

而至于LED显示,且显示内容为三位。

我只在程序之中体现,而在硬件图中没有去体现。

三.系统设计框图

四.程序流程图

五.源程序

;宏定义

addr_8253equ208h

a_8253equaddr_8253

b_8253equaddr_8253+1h

ctrl_8253equaddr_8253+3h

addr_adc0809equ210h

addr_8255equ200h

a_8255equaddr_8255

b_8255equaddr_8255+1h

c_8255equaddr_8255+2h

ctrl_8255equaddr_8255+3h

;******************************************

codesegment

assumecs:

code,ds:

code

start:

movax,cs

movds,ax

;******************************************

;8253产生方形波,周期为1s,通道0

movdx,ctrl_8253;设置8253控制口

moval,3eh;控制字0011111000表示计时器0;11表示先读写低八位,后写读高八位;X11表示工作在模式3;0表示二进制计数

outdx,al;写控制字

movdx,a_8253;设置计数初值(计数器0)

movax,1000d

outdx,al;先写低八位,后写高八位

moval,ah

outdx,al

;8253产生方形波,周期为1s,通道1

movdx,ctrl_8253;设置8253控制口

moval,7eh;控制字0111111001表示计时器1;11表示先读写低八位,后写读高八位;X11表示工作在模式3;0表示二进制计数

outdx,al;写控制字

movdx,b_8253;设置计数初值(计数器1)

movax,500d

outdx,al;先写低八位,后写高八位

moval,ah

outdx,al

;******************************************

;启动A/D

movdx,addr_adc0809;ADC0809

outdx,al

;******************************************

disp:

;8255初始化

;A口做为段码输出,B口做为位码输出,C口低2位做为有色灯的输出

movdx,ctrl_8255;8255初始化

moval,80h;控制字100000001表示方式控制字;00端口A方式0;0输出;0PC7-PC4输出;0定义端口B为0输出;0PC0-PC3输出

outdx,al;写控制字

repeat:

;初始化地址指针和位码

leabx,TABLE;段码表首址送bxLoadeffectaddress——取有效地址,也就是取偏移地址

leadi,BUFDA;指向缓冲区首地址Loadeffectaddress——取有效地址,也就是取偏移地址

movcl,0dfh;11011111b位码,共阴极,便于从第六位开始向低位依次显示

next:

;显示子程序

;输出位码

movdx,b_8255;8255B口,输出位码

moval,cl

outdx,al

moval,[di];从缓冲区取段码

xlat

movdx,a_8255;输出段码到8255A口

outdx,al

;延迟

pushcx

movcx,30h

delay:

loopdelay

popcx

;关LED显示

movdx,a_8255

moval,0

outdx,al

cmpcl,11111110b;已经显示最低位

jzconvey;显示完成

incdi;指向下一个段码

rorcl,1;显示向低一位转移

jmpnext

convey:

;延时,方便LED显示结果及有色灯的闪烁

cmpcount,0;count在后面定义

jzadcall;延时时间到,开始下一次的数据采样

deccount;延时时间未到

jmprepeat;******************jmpconvey

;******************************************

;ADC0809接收模拟信号并转化为数字信号

adcall:

callad

movcount,0ffh;设置下一次数据采集的时间间隔

jmprepeat

TABLE:

;段码表

db3fh;0

db06h;1

db5bh;2

db4fh;3

db66h;4

db6dh;5

db7dh;6

db07h;7

db7fh;8

db6fh;9

db73h;P

db48h;=

db00h;NULL

BUFDA:

;显示缓冲区

db10,11,12,12,12,0;初始显示P=0

countdw0ffh

;******************************************

adproc

;读取AD转换结果并启动AD

pushax

pushbx

pushcx

pushdx

pushdi

movdx,addr_adc0809;通道0

;读结果

inal,dx;数字量存放在al中

;启动A/D

outdx,al;启动下一次的ad转换

pushax

;******************************************

;根据数字量的值判断有色灯是否要亮

cmpal,30d

jbyellow;小于30小于则转移到目标指令执行

cmpal,150d

jared;大于150大于则转移到目标指令执行

movdx,ctrl_8255;8255控制口

pushax

moval,00h;介于30和150之间,PC0输出低电平

outdx,al

popax

jmpred_yellow

;******************************************

red:

movdx,c_8255;控制口

moval,02h;8255PC1输出高电平

outdx,al

jmpred_yellow

yellow:

movdx,c_8255;控制口

moval,01h;8255PC0输出高电平

outdx,al

red_yellow:

popax

movah,0

;******************************************

;将数字量转换成十进制,方便显示

callbinidec

popdi

popdx

popcx

popbx

popax

ret

adendp

;******************************************

binidecproc

;将存放于AL中的数转换为十进制数存放到BUFDA中

pushax

movah,0;ax=al

movbl,10

movcx,4;

leadi,BUFDA+5;指向显示缓冲区末尾

binidec_next:

divbl;al:

商,ah:

余数

mov[di],ah

decdi

deccx

movah,0

cmpal,0

jnzbinidec_next

binidec_null:

movbyteptr[di],12

decdi

loopbinidec_null

popax

ret

binidecendp

;******************************************

codeends

endstart

六、设计心得

经过一周的微机课程设计,让我对微机这一门课程有了系统的疏导。

在学习这门课程是我们只是独立的讲解一些芯片的结构及用法,而通过微机课程设计,在我们在构建一个小型的微机系统时,而真正的去关注这些芯片的连接。

这不但要求我们对各个芯片要有一定的了解与认知。

而且要懂得怎么融会贯通。

这是我在这次微机实习中体会最深的。

其二,通过微机课程设计,培养了我们想问题的思维方式。

以前我们想问题时总是将一些问题孤立出来去思考,而这次实习,他引导我们以多维的方式去解析整个问题。

在课程设计中,我们不但要理解好系统的结构,进而画出硬件连接图、而且要写出程序流程图及源程序就,这些虽然是不同的表现形式,但他们必须用统一的思想去认识。

其三,通过对压力测试系统的设计,让我们更加了解了CPU8086、ADC0809、8255等芯片的用法,同时,也对汇编语言的编程有了更加深入的认识。

为以后单片机的学习奠定了一定的基础。

最后,我通过课程设计认知了团队合作的重要性。

通过与搭档的交流,让我对有些以前不是很熟悉的内容有了提高。

同时在与之合作中,让我对工程这个概念有了新的认识,因为在以后工作中我们都必须面对与团体的合作。

只有在平常,我们多去与人交流。

才能提升我们的这个能力。

总之,一周的微机的课程设计尽管很短,但让我们受益颇多。

设计硬件电路图

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

当前位置:首页 > 总结汇报

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

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