微机原理课程设计 压力测量系统的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

db 7fh;8
db 6fh;9
db 73h;P
db 48h;=
db 00h;NULL
BUFDA:
;显示缓冲区
db 10,11,12,12,12,0 ;初始显示P= 0
count dw 0ffh
;******************************************
ad proc
;读取AD转换结果并启动AD
——取有效地址,也就是取偏移地址
mov cl,0dfh ;11011111b 位码,共阴极,便于从第六位开
始向低位依次显示
next:
;显示子程序
;输出位码
mov dx,b_8255 ;8255B口,输出位码
mov al,cl
out dx,al
mov al,[di]
;从缓冲区取段码
xlat
mov dx,a_8255 ;输出段码到8255A口
c_8255
equ addr_8255+2h
ctrl_8255
equ addr_8255+3h
;******************************************
code segment
assume cs:code,ds:code
start:
mov ax,cs
mov ds,ax
;******************************************
out dx,al
pop ax
jmp red_yellow
;******************************************
red: mov dx,c_8255 ;控制口
mov al,02h
;8255 PC1输出高电平
out dx,al
jmp red_yellow
yellow: mov dx,c_8255 ;控制口
mov ax,1000d
out dx,al
;先写低八位,后写高八位
mov al,ah
out dx,al
;8253产生方形波,周期为1s,通道1
mov dx,ctrl_8253 ;设置8253控制口
mov al,7eh
;控制字01111110 01表示计时器1;11表示
先读写低八位,后写读高八位; X11表示工作在模式3; 0表示二进制
;ADC0809接收模拟信号并转化为数字信号
adcall:
call ad
mov count,0ffh ;设置下一次数据采集的时间间隔
jmp repeat
TABLE:
;段码表
db 3fh;0
db 06h;1
db 5bh;2
db 4fh;3
db 66h;4
db 6dh;5
db 7dh;6
db 07h;7
binidec_next:
div bl
;al:商,ah:余数
mov [di],ah
dec di
dec cx
mov ah,0
cmp al,0
jnz binidec_next
binidec_null:
mov byte ptr [di],12
dec di
loop binidec_null
pop ax
ret
pop ax
ret
ad endp
;******************************************
binidec proc
;将存放于AL中的数转换为十进制数存放到BUFDA中
push ax
mov ah,0
;ax=al
mov bl,10
mov cx,4
;
lea di,BUFDA+5 ;指向显示缓冲区末尾
学科部主任 (签字)
Ⅵ、成绩评定:
设计成绩: (教师填写)
指导老师: (签字)
二○一一 年 七 月 八 日
一、设计要求
设计一个对压力传感器的信号进行检测并在LED数码显示器上显示 压力值的系统,当压力低于30pa时,黄灯闪烁,闪烁周期为1秒。当压 力高于150pa时,红灯闪烁。LED的显示内容为P=XXX。X为测试值。
;显示向低一位转移
jmp next
convey:
;延时,方便LED显示结果及有色灯的闪烁
cmp count,0
;count在后面定义
jz adcall
;延时时间到,开始下一次的数据采样
dec count
;延时时间未到
jmp repeat
;******************jmp convey
;******************************************
00端口A方式0; 0输出; 0PC7-PC4 输出; 0定义端口B为0 输出;0 PC0-
PC3 输出
out dx,al
;写控制字
repeat: ;初始化地址指针和位码 lea bx,TABLE ;段码表首址送bx
——取有效地址,也就是取偏移地址 lea di,BUFDA ;指向缓冲区首地址
Load effect address Load effect address
二.设计思想
压力测试系统的设计,必然要牵涉到压力的感应与转化,所以必须 要有压力传感与A/D转换器。将自然中的模拟量转化为电压信号,再转 化位数字信号进行处理。一个小型的微机系统,必须要有8086cpu来进 行整体的控制,将其通过8255与A/D传感器进行连接。这就是这个系统 的主要框架。
而具体的应用框架则是在主要的框架上添加。要当压力低于30pa 时,黄灯闪烁。当压力高于150pa时,红灯闪烁。则应添加8255。模 块。通过编程来控制黄灯与红灯的亮灭情况,考虑到要进行比较,所以 我用了两个比较器进行数据的比较。同时,由于灯要闪烁,闪烁周期要 一秒,所以我们考虑到还要加一个8253芯片去控制。但根据个人情况, 这个模块我省略了。而至于LED显示,且显示内容为三位。我只在程序 之中体现,而在硬件图中没有去体现。
三.系统设计框图
模数转换单元ADC0809 CPU中央处理器 8086
并行接口芯片8255 大于150Pa 红灯闪烁
小于30Pa 黄灯闪烁 显示数字 三位数码显示管
压力传感器
四.程序流程图
开始 8255初始化 采集模拟数据 启动AD转化 XXX
红灯闪烁 黄灯闪烁 都不亮
显示
五.源程序
;宏定义
addr_8253
;8253产生方形波,周期为1s,通道0
mov dx,ctrl_8253 ;设置8253控制口
mov al,3eh
;控制字00111110 00表示计时器0;11表示
先读写低八位,后写读高八位; X11表示工作在模式3; 0表示二进制
计数
out dx,al
;写控制字
mov dx,a_8253 ;设置计数初值(计数器0)
out dx,al
;******************************************
disp:
;8255初始化
;A口做为段码输出,B口做为位码输出,C口低2位做为有色灯的输出
mov dx,ctrl_8255 ;8255初始化
mov al,80h
;控制字 10000000 1表示方式控制字;
II、设计进度及完成情况
日期


7月4日 查阅资料,拟定设计方案。
7月5日 选课程设计题目,编写程序。
7月6日 设计总体方案,上机调试。
7月7日 整理打印设计报告。
7月8日 上交设计报告并进行答辩。
III、主要参考文献及资料
《微型计算机原理及应用》 清华大学出版社 郑学坚 周斌 《微型计算机技术及应用》清华大学出版社 史嘉权 《微机原理与接口技术基础与应用》海洋出版社 邓振杰 《微机原理与接口技术实验及课程设计》西南交通大学出版社 杨斌 《单片机原理及接口技术》 清华大学出版社 梅丽凤 王艳秋
mov al,01h
;8255 PC0输出高电平
out dx,al
red_yellow:
pop ax
mov ah,0
;******************************************
;将数字量转换成十进制,方便显示
call binidec
pop di
pop dx
pop cx
pop bx
;根据数字量的值判断有色灯是否要亮
cmp al,30d
jb yellow
;小于30
小于则转移到目标指令执行
cmp al,150d
ja red
;大于150 大于则转移到目标指令执行
mov dx,ctrl_8255 ;8255控制口
push ax
mov al,00h
;介于30和150之间,PC0输出低电平
序号:
课程设计
(微机原理及应用A)
班 级 姓 名 学 号 指导教师 二○一一 年 七 月 八 日
课程设计任务书及成绩评定
课题名称
压力测控系统的设计
I、题目的目的和要求:
设计一个对压力传感器的信号进行检测并在LED数码显示器上显示 压力值的系统,当压力低于30pa时,黄灯闪烁,闪烁周期为1秒。当压 力高于150pa时,红灯闪烁。LED的显示内容为P=XXX。X为测试值。
binidec endp
;******************************************
code ends
end start
六、设计心得
经过一周的微机课程设计,让我对微机这一门课程有了系统的疏 导。在学习这门课程是我们只是独立的讲解一些芯片的结构及用法,而 通过微机课程设计,在我们在构建一个小型的微机系统时,而真正的去 关注这些芯片的连接。这不但要求我们对各个芯片要有一定的了解与认 知。而且要懂得怎么融会贯通。这是我在这次微机实习中体会最深的。 其二,通过微机课程设计,培养了我们想问题的思维方式。以前我们想 问题时总是将一些问题孤立出来去思考,而这次实习,他引导我们以多
equ
208h
a_8253
equ addr_8253
b_8253
equ addr_8253+1h
ctrl_8253
equ addr_8253+3h
addr_adc0809 equ 210h
addr_8255
equ 200h
a_8255
equ addr_8255
b_8255
equ addr_8255+1h
push ax
push bx
push cx
push dx
push di
mov dx,addr_adc0809 ;通道0
;读结果
in al,dx
;数字量存放在al中
;启动A/D
out dx,al
;启动下一次的ad转换
push ax
;******************************************
out dx,al
;延迟
push cx
mov cx,30h
delay:
loop delay
pop cx
;关LED显示 mov dx,a_8255 mov al,0 out dx,al
cmp cl,11111110b ;已经显示最低位
jz convey
;显示完成
inc di
;指向下一个段码
ror cl,1
计数
out dx,al
;写控制字
mov dx,b_8253 ;设置计数初值(计数器1)
mov ax,500d
out dBaidu Nhomakorabea,al
;先写低八位,后写高八位
mov al,ah
out dx,al
;******************************************
;启动A/D
mov dx,addr_adc0809 ;ADC0809
维的方式去解析整个问题。在课程设计中,我们不但要理解好系统的结 构,进而画出硬件连接图、而且要写出程序流程图及源程序就,这些虽 然是不同的表现形式,但他们必须用统一的思想去认识。其三,通过对 压力测试系统的设计,让我们更加了解了CPU8086、ADC0809、8255等芯 片的用法,同时,也对汇编语言的编程有了更加深入的认识。为以后单 片机的学习奠定了一定的基础。最后,我通过课程设计认知了团队合作 的重要性。通过与搭档的交流,让我对有些以前不是很熟悉的内容有了 提高。同时在与之合作中,让我对工程这个概念有了新的认识,因为在 以后工作中我们都必须面对与团体的合作。只有在平常,我们多去与人 交流。才能提升我们的这个能力。总之,一周的微机的课程设计尽管很 短,但让我们受益颇多。
相关文档
最新文档