微机原理课程设计报告Word下载.docx
- 文档编号:8445423
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:27
- 大小:393.41KB
微机原理课程设计报告Word下载.docx
《微机原理课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计报告Word下载.docx(27页珍藏版)》请在冰点文库上搜索。
远程PC-26-
附录4:
远程PC机显示-27-
参考文献28
设计任务与要求
设计题目
双机数据采集系统设计
设计目的
《微机原理与汇编语言》是一门实践性和实用性都很强的课程,微型计算机的应用已经深入到许多领域,对于计算机及相关专业的学生和从事计算机应用开发的技术人员来说,微机原理、汇编语言和接口技术则是必须掌握的内容。
本次课程设计是在课程学习结束后,为进一步巩固并充分理解灵活运用所学知识,加强综合能力,通过实验设计,加强理解,提高系统设计水平,启发创新思想。
要求
设计一套结构如下图所示的双机数据采集系统。
图中上位机负责向下位机下达命令,并对下位机采集的数据进行处理;
下位机则根据上位机的命令对工作现场的各种开关量和模拟量数据进行采集,以某种通信方式传递给上位机,接收上位机根据处理结果下达的命令对现场各种设备实施控制。
扩展和发挥功能中还要用到远程PC机实现远程监控功能。
系统实现按从易到难有如下三种要求:
(1)基本功能:
实现数据采集,双机通信和基本形式的数据显示,其中下位机用数码管显示,上位机用数码管或液晶屏显示。
要求实现上位机发送一个启动命令(命令的格式和内容自己定义)给下位机;
下位机接收到启动命令后开始采集模拟量数据(用电位器模拟实现1路模拟量),下位机将采集到的模拟量转换成数字量在数码管上实时显示并同时发送给上位机;
上位机接收到后在数码管或液晶屏上显示,如果上位机收到的数据大于某个阈值(该值自己设定),则点亮某个LED灯以示警。
(2)扩展功能:
在实现基本功能的基础上,下位机扩展为2路模拟量输入,上位机增加开关量信号输入。
上位机通过开关量信号来选择把收到的其中一路模拟量实时回送给下位机,下位机把收到的回送来的数据进行数模转换后用示波器显示。
进一步要求:
上位机将采集到的数据发送给远程PC机,能在远程PC上显示。
(3)发挥功能:
在实现扩展功能的基础上,在远程PC上以图形化的方式(含动态曲线)显示两路模拟信号、回送的那一路模拟信号和对应的开关量信号。
可自己灵活添加的功能:
上位机通过开关量信号来决定下位机将采集哪一路模拟量(可选择其中任一路,也可选择两路同时采集);
双机通信中的数据校验(如采用奇偶校验);
其他自己想发挥的功能等。
组织与实施
1)每组3人,合理分工下位机、上位机、远程PC机和撰写设计报告等这几部分的工作。
2)制定适当的通信协议:
包括命令编码,数据编码格式,通信速率、采样周期、校验方式等;
3)模拟信号输入:
可用实验箱上的电位器模拟。
4)每路模拟信号的采样时间为5ms,每秒采样200次。
5)通信接口:
自选(可以是串行接口,也可以为并行接口……)
6)编程语言:
自选(可以是汇编语言,C语言……)
7)撰写设计报告,每组一份,注明每人所书写的部分和所承担的设计任务和工作,提供软件源代码和必要的结果截图。
设计方案
总体设计
根据课程要求,总体上上位机与下位机的通信采用了并行的数据传送,因此使用8255并行接口,实现前端与后端的数据传送。
首先上位机给下位机一个脉冲指令,启动下位机,并通过上位机的选择开关控制下位机采集第一使下位机开始模拟信号,下位机通过A/D转换器对采集来的信号进行转换显示在下位机LED显示屏上,同时通过8255进行数据传送至上位机,在上位机LED显示屏上显示,并且上位机通过开关量控制哪一路进行回送。
,而对于回送给下位机的数据,通过D/A转换为模拟量连接示波器显示波形。
对于远程PC机上的波形显示,则通过读取串口数据,然后在屏幕上画出数据的变化波形。
设计原理
上位机与下位机通过8255A并行接口连接,进行数据传送。
通过设置方式2,双机可以用PA0-PA7端口双向传送与接收数据。
另外,PC端口作为控制端口,在读取与发送数据时可以通过查询其相应状态来进行操作。
上位机与下位机中8255连线:
上位机下位机
A口<
------------------->
A口
C口<
C口
下位机的8253计数器,选择计数器0,方式2,计数间隔为5ms。
其out0端口接在74L244的一个口上,用来查询时间间隔。
下位机的AD转换器ADC0809,其接受两路模拟型号分别在IN0、IN1,转换结束型号EOC连在74L244的一个口,用来查询是否转换结束。
下位机的DA转换器DAC0832接受回传数据,进行DA转换。
上位机与pc机程序中的8250:
应用RS-232C串口实现近距离的串行通信。
数据传送波特率为9600bps,数据格式为8位/每字符,1位停止位,无奇校验。
上位机+P口接在8259A的IR0口,进行中断产生启动信号。
另外还有一个开关控制下位机的数据采集为第几路。
上位机中有一个LED灯,当下位机传来的数据超过给定的阈值,上位机就将该LED灯点亮,以此提示数据超过了阈值。
上位机每次接受到下位机传来的数据后,将其进行显示,然后回传,以及通过串口COM1传送到远程pc。
采用的新技术
在远程pc上采用Qt+C++编写串口读写程序,能够方便控制对上位机传送来的数据进行读写。
对接受到的数据能够非常方便的处理,可以按照自己的想法对其进行图形化显示。
用Qt编写的软件可移植性很好,能够适应于不同的平台。
硬件硬件系统框图与说明
详细设计
程序模块流程图
下位机
下位机在将8259,8255,8253初始化后,就一直等待上位机传来的启动信号。
当有启动信号时,下位机就开始读取开关变量,然后进行AD转换。
接着根据开关变量的值来确定对哪一路数据进行传送,并且在LED管上进行显示。
传送数据后等待接受上位机的回传数据,接受回传数据后,将它进行DA转换。
然后循环上述过程。
上位机
上位机初始化后,立即发送开关变量给下位机,接下来,等待下位机发送数据过来。
接受下位机发过来的数据后,通过8250进行串行数据传送给远程PC。
然后将数据回传给下位机,接着在LED管显示数据。
最后判断阈值与实际数据的大小,进行相应的操作。
PC机
远程PC机就是不断的检测是否有数据送过来,然后读取COM1串口的数据,进行相应处理,绘制出对应的波形图。
成员分工及工作情况
组长
组员
工作总结
通过两周的课程设计,组员们都学到了很多知识,最重要的是锻炼了动手能力。
但是也发现了一些不足之处。
首先是对各个知识的综合应用掌握的不扎实,不能将以前的知识完美的结合起来。
比如对8259的中断请求的不太理解,导致出现各种意料之外的错误。
以及在传送两路数据的情况下数据不同步,造成对资源的浪费,等等。
另外,学会了一个项目的设计的大致过程。
了解到了,在设计方案没有明确前,不要着急进行实际的操作。
应该把所有的可能都考虑到,然后折中选择一个最好的方案,然后进行实际操作。
附录
系统板结构
附图1-1系统板结构简图
硬件资源
微处理器模块:
8086CPU及其相关电路。
存储器:
随机存储器RAM40K字节,EPROM40K字节。
CPLD译码电路:
包括系统译码CPLD和用户CPLD两部分,采用ALTERA公司速度最快的高集成度可编程逻辑器件EPM7064SLC44-10。
可编程并行接口:
采用8255A芯片。
串行接口:
采用8250芯片,用作与主机通讯或供用户编程实验。
8279键盘、显示控制器:
六位LED数码显示,LED和键盘可扩展。
A/D转换电路:
采用ADC0809,8位8通道逐次比较AD转换器,典型转换时间100us。
D/A转换电路:
采用DAC0832,8位微处理器兼容D/A。
8253可编程定时/计数器
8259可编程中断控制器
8237DMA控制电路
脉冲产生电路:
采用74LS161计数器,输出5路时钟信号。
简单I/O口扩展电路:
缓冲驱动器74LS244和输出锁存器74LS273。
开关量输入输出电路:
8位逻辑电平输入开关,8位LED显示电路。
一路可调模拟量(电位器)(0…5V)
单脉冲发生器电路:
可产生正、负脉冲。
独立开关电源:
~220V供电,+5V,±
12V输出。
独立的LED数码显示、LCD显示电路。
独立的4X6键盘电路。
电路原理图
开关和74LS244
开关量输入电路由8只开关组成,每只开关有两个位置H和L,一个位置代表高电平,一个位置代表低电平。
对应的插孔是:
K1~K8。
开关量输出电路由8只LED组成,对应的插孔分别为LED1~LED8,当对应的插孔接低电平时LED点亮。
附图2-1开关电路原理图
输入缓冲电路由74LS244组成,输出锁存电路由上升沿锁存器74LS273组成。
74LS244是一个扩展输入口,74LS273是一个扩展输出口,同时它们都是一个单向驱动器,以减轻总线的负担。
74LS244的输入信号由插孔IN0~IN7输入,插孔CS244是其选通信号,其它信号线已接好;
74LS273的输出信号由插孔O0~O7输出,插孔CS273是其选通信号,其它信号线已接好。
其原理图如下:
附图2-274LS244电路原理图
附图2-374LS273电路原理图
8250接口电路
该电路由一片8250,一片MAX232组成,该电路所有信号线均已接好。
原理图如下:
附图2-48250电路原理图
8255并行接口电路
该电路由1片8255组成,8255的数据口,地址,读写线,复位控制线均已接好,片选输入端插孔为8255CS,A,B,C三端口的插孔分别为:
PA0~PA7,PB0~PB7,PC0~PC7.电路原理图如下:
附图2-58255电路原理图
D/A电路
八位双缓冲D/A实验电路由一片DAC0832。
一片74LS00,一片74LS04,一片LM324组成,该电路中除DAC0832的片选未接好外,其他信号均已接好,片选插孔标号CS0832。
输出插孔标号DAOUT。
该电路为非偏移二进制D/A转换电路,通过调节POT3,可调节D/A转换器的满偏值,调节POT2,可调节D/A转换器的零偏值。
8253定时器/计数器电路:
该电路由1片8253组成,8253的片选输入端插孔CS8253,数据口,地址,读写线均已接好,T0、T1、T2时钟输入分别为8253CLK0、8253CLK1、8253CLK2。
定时器输出,GATE控制孔对应如下:
OUT0、GATE0、OUT1、GATE1、OUT2、GATE2、CLK2。
注:
GATE信号无输入时为高电平。
附图2-60832电路原理图
源程序及程序注释
con8259aequ04c0h
con8259bequ04c2h
con8255equ04a6h
data8255aequ04a0h
data8255bequ04a2h
data8255cequ04a4h
con8253equ04d6h
data8253equ04d0h
AD0equ04b0h
AD1equ04b2h
DA0equ04f0h
DA1equ04f2h
data244equ04e0h
con8279equ0492h
dat8279equ0490h
assumecs:
code
codesegmentpublic
org100h
start:
jmpstart1
isStartdb0
fgdb0
data1db0
data2db0
selectiondb0
backdatadb0
ADdw0
statedw0
tempdb0
segcoddb
3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h
5eh,79h,71h
start1:
callinit8259;
初始化8259
callinit8255;
初始化8255
callinit8253;
初始化计数器
;
jmploop1
start2:
;
接受启动信号
movdx,data8255c
inal,dx
andal,04
cmpal,0
jzstart2
loop1:
zh:
movdx,data244;
CS244
inal,dx;
读out0,IN1
andal,02h
jnzzh;
如果out0=0,zh...
movAD,AD0
calladint
moval,temp
movdata1,al
movAD,AD1
movdata2,al
andal,01h
jzr0
jmpr1
r0:
moval,data1
jmpdis
r1:
moval,data2
dis:
movtemp,al
movbh,0
movbl,al
calldisp;
显示数据
callsend;
传送数据
callrevback;
接受回送数据
calldaint;
进行DA转换
jmploop1
init8259:
cli
movdx,con8259a
movax,13h
outdx,ax;
ICW1,ICW4
NEEDED
movdx,con8259b
movax,80h
outdx,ax;
ICW2中断类型80h
movax,01
ICW4
movax,00h
OCW1,开放所有中断
movax,0
movds,ax
movsi,200h;
初始化中断向量表
movax,offsetdealdata;
IR0接受数据
movds:
[si],ax
addsi,2
[si],100h
sti
ret
init8255:
movdx,con8255
moval,0c1h
outdx,al
init8253:
movdx,con8253
moval,037h;
计数器0,方式2
movdx,data8253
movax,30000
moval,ah
adint:
movdx,AD
outdx,al;
启动通道
wait1:
movdx,data244
inax,dx;
读EOC
andax,1
cmpax,1
jnewait1;
如果EOC=0,waiting....
读转换结果
ret
disp:
movdi,offsetsegcod
movax,08h;
工作方式,16位,左入
movdx,con8279
outdx,ax
movax,90h
outdx,ax;
写显示RAM命令,地址自增
movdx,dat8279
pushbx
andbx,0f0h;
取高4位
movcl,4
shrbx,cl
adddi,bx
moval,cs:
[di]
movah,0
写RAM0
nop
popbx
andbx,0fh;
取低4位
写RAM1
send:
moval,0fh
movdx,data8255a
revback:
movdx,data8255a
movbackdata,al
moval,0ah
moval,0bh
daint:
movdx,DA0
moval,backdata
movdx,DA1
启动
delay:
movcx,0fffh
delay1:
nop
loopdelay1
codeends
endstart
上位机程序
con8259aequ04b0h
con8259bequ04b2h
data244equ04c2h
data273equ04d0h
VPTequ0afh;
阈值
datadb0;
数据
tempdb0;
临时量
segcoddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h
callinit8250;
初始化8250
callswit;
发送开关变量
callrevdata;
第一路数据
callsendpc;
发送数据到远程pc
callbacksend
movbh,0
moval,data
calldisp;
calljudge;
判断阈值
ICW1,ICW4NEEDED
movax,offsetstarting;
moval,0d0h
init8250:
movbx,0480h
movdx,bx
adddx,6
movax,80h
movax,0ch;
000ch---9600,clk=4.77MHZ/4;
AL=4770000/16/9600/4=8
adddx,2
movax,0h
outdx,ax
adddx,4
movax,07;
nope,8bit,1stop
adddx,2;
nointerupt
movax,0
sendpc:
adddx,0ah
inax,dx
testax,20h
jnzs1
jmpsendpc
s1:
movdx,bx
;
接受数据
revdata:
movdata,al
moval,0ah
moval,0bh
outdx,al
backsend:
mo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 报告