微机原理课程设计压力测量系统的设计.docx
- 文档编号:10992020
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:12
- 大小:57.62KB
微机原理课程设计压力测量系统的设计.docx
《微机原理课程设计压力测量系统的设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计压力测量系统的设计.docx(12页珍藏版)》请在冰豆网上搜索。
微机原理课程设计压力测量系统的设计
序号:
课程设计
(微机原理及应用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等芯片的用法,同时,也对汇编语言的编程有了更加深入的认识。
为以后单片机的学习奠定了一定的基础。
最后,我通过课程设计认知了团队合作的重要性。
通过与搭档的交流,让我对有些以前不是很熟悉的内容有了提高。
同时在与之合作中,让我对工程这个概念有了新的认识,因为在以后工作中我们都必须面对与团体的合作。
只有在平常,我们多去与人交流。
才能提升我们的这个能力。
总之,一周的微机的课程设计尽管很短,但让我们受益颇多。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理课程设计 压力测量系统的设计 微机 原理 课程设计 压力 测量 系统 设计