微机接口技术课程设计报告书_第1页
微机接口技术课程设计报告书_第2页
微机接口技术课程设计报告书_第3页
微机接口技术课程设计报告书_第4页
微机接口技术课程设计报告书_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、湖北教育学院课程设计报告课程名称:微机接口技术课程设计设计题目: 系 别: 专 业: 组 别: 学生姓名: 学 号: 起止日期: 指导教师: 教研室主任: - 16 -目 录目录第一章 需求分析- 1 -1.1 课题名称- 1 -1.2 任务- 1 -1.3 要求- 1 -1.4 设计思想- 1 -1.5 软件运行环境- 1 -1.6 硬件运行环境- 2 -1.7 开发工具- 2 -1.8 我在本实验中完成的任务- 2 -第二章 概要设计- 2 -2.1 程序流程图- 2 -2.2 设计方法及原理- 4 -第三章 详细设计- 4 -3.1 电路原理- 4 -3.1.1 adc0809芯片- 4

2、 -3.1.2 8255a接口芯片- 5 -3.2 程序- 8 -3.3 面包板搭接- 10 -3.4 使用protel99se工具绘制电路原理图- 11 -第四章 调试与说明- 13 -4.1 硬件部分- 13 -4.2 软件部分- 13 -第五章 课程设计总结与体会- 13 -致谢- 14 -参考文献- 14 -微机数据采集系统设计与制作第一章 需求分析1.1 课题名称 微机数据采集系统设计与制作.1.2 任务1 进行微机数据采集系统电路硬件设计,画出电路原理图、pcb图或元器件布线图;2 安装或焊接元器件;3 进行数据采集系统控制程序设计(采用asm或cpp语言)4 系统联调,提交一个满

3、足上述二种要求之一的微机数据采集系统设计1.3 要求1. 以pc机为控制器,采用中断方式,进行8通道数据采集,采集1k字节.2. 采集的数在屏幕上显示3. 采用adc0809做a/d转换器,利用系统的irq2引入adc外部中断1.4 设计思想1. 根据实验要求,设计数据采集电路,选择合适的元器件,按照原理图,并根据各个元器件的特性以及借口电路结构形式,在面包板上搭接实际电路,搭接完毕之后对电路做优化设计,使电路尽量简洁2. 使用protel99se工具画出原理图,检查无误后将其转化成pcb图,得实际电路形式3. 软件编程:使用汇编语言实现1.5 软件运行环境1. windows 20002.

4、mfid多功能微机实验平台(含pci总线驱动板)3. mf2ki集成开发环境 1.6 硬件运行环境1. pc兼容机, 面包板, 焊接工具2. 8255,adc0809接口芯片,lm336二极管,电阻,电源线,电位器,74ls04非门电路,电容1.7 开发工具实验程序开发工具包阔编辑器、编译系统、连接程序和调试程序1. 编辑器采用全屏幕多窗口编辑器,复制,粘贴,裁减十分方便2. 编译系统 mf软件包括了c/c语言和汇编语言两个编译系统,用户可根据自己所熟悉的语言,任选一个来编写程序,并在集成环境中进行程序的编译(汇编)、连接、运行与调试。3. 连接程序 采用tlink。4. 调试程序 采用tde

5、bugger全屏幕调试程序,直观全面,使用方便。1.8 我在本实验中完成的任务 在本实验中我主要完成电路板的搭接和电路原理图、pcb图的绘制,以及文档的写作。第二章 概要设计2.1程序流程图开始提示输入通道输入通道提示错误输入通道号有错划yn保存通道号8255初始化通道号送a口地址锁存8255重新初始化送start信号延时读a口数据start置低打印输出读eoc信号n结束判断是否为高y置oec为高电位 图2.1 程序流程图2.2设计方法及原理1. a/d转换器的功能是把模拟量变换成数字量,本实验采用的是分辨率为8的0809芯片2. 通过电位器的转动改变电路电压值,经0809转换后把模拟量转换成

6、数字量,传送至8255a并行借口芯片从而将信号传输到pc机3. 本实验程序类型为查询方式查询方式的数据采集程序框架(模块):接口芯片初始化 (当采用可编程并行口芯片作a/d转换器接口时)、选择通道号 (当采用多通道a/d转换器芯片时)、启动转换、查询转换结束状态、读取数据、数据传送到存储器、在线数据处理(显示、打印、存盘等),采集未完,继续启动转换,已完,退出第三章 详细设计3.1电路原理3.1.1 adc0809芯片1.adc0809引脚adc0809有8个模拟量输入端(in0in7),相应设置3根模拟量通道地址线(addaaddc)用来以编码选择8个模拟量输入通道设置1,根地址锁存允许信号

7、ale高电平有效。当ale变高。addaaddc编码所选中的通道,将该通道的模拟量接入a/d转换器。如图3.1所示adc0809的分辨率为8位,有8根数字量输出线(d0d7)带有三态输出锁存器,设置了1根输出允许信号oe高电平有效。当读数据时, 图3.1要使oe置高,打开三态输出锁存器把转换的数字量送到数据线上。adc0809的转换启动信号是start,高电平有效。转换结束信号eoc,转换过程中为低电平,转换完毕变为高电平,可利用eoc的上升沿申请中断,或作查询之用.2. adc0809内部结构3.1.2 8255a接口芯片18255a的基本特性8255a是可编程并行接口芯片,用于cpu与外设

8、的接口。它包含3个8位并行口,并设置有3种工作方式,2个命令字,2 个状态字以及一些专用联络信号线,以实现8255a与cpu之间和8255a与外设之间的连接及数据传输。2.8255a的3个并行口8255a的3个8位并行口pa0 pa7、pb0pb7,可与各种并行外设连接。在实际应用中,将c口分成高低两个4位并行口使用,高4位pc4pc7和pa0 pa7组成a组一起使用;低4位pc0pc3和pb0pb7组成b组一起使用。3个8位并行口引脚在不同的工作方式下其功能不同。3. 8255a的外部引线 8255a是一个单+5v电源引脚,40个引脚的双列直插式组件,其外部引线如图3.3所示: 它作为接口电

9、路的8255a具有面向cpu和面向外设两个方向的连接能力。因此,它的引脚分成两部分。系统总线的连接信号面向数据总线的有:d0d7:双向数据线,用于cpu向8255a发送命令、数据和8255a向cpu回送状态、数据。 图 3.3 面向地址总线的有:cs:选片信号,低电平有效,由系统的高位地址线经i/o端口地址译码电路产生。cs为低电平时,才能对8255a进行读写操作。当cs为高电平时,切断cpu与芯片的联系。a1,a0:芯片内部端口地址信号,与系统地址总线低位相连用来寻址8255a内部寄存器。两位地址,可形成片内4个端口地址。面向控制总线的有:rd:读信号,低电平有效。cpu通过执行in命令使r

10、d有效,即发读信号将数据或状态信号从8255a读至cpu。wr:写信号,低电平有效。cpu通过执行out命令使 wr有效,即发写信号,将命令代码或数据写入8255a。reset:复位信号。它清除控制寄存器并将8255a的a、b、c三个端口均置为输入方式;输出寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设的信号线呈现高阻悬浮状态。这种势态一直持续到用方式命令才能改变,使其进入用户所需的工作方式。外部设备的连接信号pa0pa7:端口a的输入/输出线。pb0pb7:端口b的输入/输出线。pc0pc7:端口c的输入/输出线。这24根信号线均可用来连接i/o设备和传送信息。其中,a口和b口只

11、作为输入/输出的数据口用,尽管有时也利用它们从i/o设备读取一些状态信息,如打印机的“忙(busy)”状态信号、a/d转换器的“结束信号(eoc)”状态信号,但对于a口和b口来说,都是作8255a的数据口读入,而不是作8255a的状态口读入的。a口和b口作数据输入/输出时,是8位一起行动的,即使是只用到其中的某一位,也要同时输入输入/输出8位。c口除了作数据口以外,还可以作状态口、作专用(固定)联络(握手)信号线和作按位控制用。这些作用与8255a的工作方式有关。c口作数据口时,它是把8位分成高4位和低4位两部分,高4位pc4pc7与a口一起组成a组,低4位pc0pc3与b口一起组成b组。因此

12、,c口作数据口输入输出时,是4位一起行动,即使只用到其中的某1位,也要4位一起输入或输出。4.8255a的两个命令 8255a的两个编程命令是方式命令和按位置位/复位(即按位置逻辑1/逻辑0)命令,两个命令的作用,格式以及在程序中出现的位置均不相同。(1) 方式命令:8255a是通用可编程并行接口芯片,上电后,其工作方式及3个并行口的功能都不确定,因此,在8255a开始工作之前,应进行初始化,以确定它的工作方式及3个并行口的功能,方式命令就是为此目的设置的。所以,方式命令,又称初始化命令。显然,这个命令应出现在8255a开始工作之前的初始化程序段中。方式命令的作用与格式为: 作用指定8255a

13、的工作方式及其方式下8255a3个并行口引脚的输入输出功能。格式8位,最高位为特征位,对方式命令该位是写逻辑1。其余7位分成两部分, 其中dd4位用于设置a组的工作方式及其并口引脚的功能;dd3位用于设置b组的工作方式及其并口引脚的功能,如图下图所示。d7d6d5d4d3d2d1d0a组方式00=0方式01=1方式10=2方式11=不用a口0=出1=入pc470=出1=入b口0=出1=入pc070=出1=入b组方式0=0方式1=1方式特征位为1图3.4 8255a方式命令格式(2)按位置1置0命令:这是一个按位控制命令,由于每次只输出1位,所以叫按位输出。又由于输出的这位可以是逻辑1,也可以是

14、逻辑0,故该命令称为按位置位复位命令。按位输出的c口的8个引脚可用于控制外设,特别适合作开关量控制和脉冲选通信号。按位置1置0命令要在初始化以后才能使用,故它放在初始化程序段之后的任何位置。要特别指出的是按位置1置0命令,虽然是对c口进行按位输出操作,但它不能写入c口,只能写入命令口,原因是它不是数据,而是命令,要按命令的格式来解释和执行。按位置1置0命令的作用与格式为: 作用指定8255a的c口8个引脚中的任意一个引脚,输出高电平低电平。格式8位,最高位d7为特征位,对按位置1置0命令该位是写逻辑0。其他各位的定义分3个字段:d2d1两位作为指定c口引脚的编号;d0位作为指定输出高电平还是低

15、电平;d6d33位未使用,可以任意取值,如图下图所示。d7d6d5d4d3d2d1d00输出电平1=逻辑1 0=逻辑0指定输出的引脚000=pc0 001=pc1未使用(写000或111)特征位图3.5 8255a的按位置1/置0命令格式4.8255a初始化编程根据用户对8255的使用要求(8255a的端口引脚配置),按照8255方式命令的格式,写出8位命令的每一位,形成一个命令代码,并利用out指令送到8255a的命令端口,即可实现对8255a初始化编程。例如,若在并行接口与外设的连接中,要求8255a组的工作方式为基本i/o方式,pa07输入,pc47输出;b组的工作方式为选通i/o方式,

16、pb07输出,pc03输入。则8255的初始化程序段为:mov dx, 303h ;命令端口mov al, 95h ;方式命令代码out dx, al ;将命令送到命令端口3.2程序stack segment para stack stackdb 200 dup (?)stack endsdata segment para public datamessage db if you want to quit convet please press esc,0dh,0ah,$ input_message db please input the number of channel 07,0dh,0a

17、h,$error_message db you have input wrong channel,please input a channel again:, $temp db (?)data ends code segment para public code assume ss:stack,ds:data,cs:codestart: mov ax,stack ;设置当前数据段和当前堆栈段 mov ss,ax mov ax,data mov ds,ax mov ah,9;显示提示信息 mov dx,seg message mov ds,dx mov dx,offset message int

18、 21h mov ah,9 mov dx,seg input_message;提示输入通道号 mov ds,dx mov dx,offset input_message int 21hinput: mov ah,8 int 21h cmp al,0 jb error cmp al,7 ja error sub al,30h mov temp,al jmp beginerror: mov ah,9;提示错误信息 mov dx,seg error_message mov ds,dx mov dx,offset error_message int 21h jmp inputbegin: mov dx

19、,303h;8255初试化mov al,88hout dx,almov dx,300h;a口输出mov al,tempout dx,almov dx,303h;地址锁存mov al,3hout dx,almov dx,303hmov al,98hout dx,al;8255重新初始化again:mov dx,303hmov al,1hout dx,al;8255 c口的另一种方式,按位置位,pc0置1启动信号mov cx,0f00hl1:loop l1;延时mov dx,303hmov al,0hout dx,al;把start信号置回0l2:mov dx,302hin al,dxand al

20、,10hjz l2;判断eoc是否为高mov dx,303hmov al,5hout dx,al;oe置高数据才有效mov dx,300hin al,dxpush ax;从a口读数据,并且入栈show: and al,0f0h;低四位清0shr al,4cmp al,9ja l3add al,30hjmp nextl3:add al,37hnext: mov dl,almov ah,2int 21h;显示高四位pop axand al,0fhcmp al,9ja n1add al,30hjmp next2n1:add al,37hnext2:mov dl,almov ah,2int 21h;显

21、示低四位mov dl,0dhmov ah,2int 21hmov dl,0ahmov ah,2int 21h;输入回车换行mov ah,0bhint 21hinc al;0b号功能调用,判断是否有键输入jnz againquit:mov ax,4c00hint 21hcode endsend start3.3 面包板搭接根据电路原理画出电路图,选择合适的元器件开始搭接电路,从电源开始,首先选择2k的电阻将12v电源电压降为5伏,然后使用二极管lm336搭接稳压电路,二极管的接法要注意,半圆棉队自己,从左到右分别为1、2、3接点,1接电容再接地。2接电阻,连到12v电源,3直接接地。然后再接入a

22、dc0809的引脚12(vref+), vref-接地,地线是由8255a的gnd引出接到面包板的一个负极处,此时,这一条负级处为接地,任何接到这条线的引脚都算接地。adc0809的11引脚(vcc)接5伏电压,由8255a的vcc引出,接法和接地线一样,adc0809 的13引脚接地。8255a的pa0pa7引脚分别接入adc0809的地址引脚d0d7即a口做数据口,同时8255a的pa0-pa2三口分别接adc0809的addaaddc 。状态信息如:转换结束(eoc)状态信号由pc4口传输数据,启动转换信号start由pc0传输。地址锁存ale由pc1传输,时钟信号由实验平台的clock

23、直接接入0809的clock,最后从面包板上电源正极一端引一条线接实验平台12v电压处电路图如下:图 3.6 原理图3.4 使用protel99se工具绘制电路原理图根据原先设置好的电路图,使用protel99se绘制原理图,首先新建一个后缀为.sch的原理图文件,再新建一个后缀为.pcb的电路图文件,分别用实验名字命名,在原理图文件窗口中放置所需元件,然后根据电路图连接各个引脚。绘制完毕后创建网络表格生成.net文件,再在pcb文件窗口,导入刚生成的.net文件,若无误可运行直接生成pcb文件,摆放元件位置,使用自动布线,生成实物大小的pcb图pcb图如下:图 3.7 pcb图图3.8第四章

24、 调试与说明4.1 硬件部分将8255a接口与实验平台相连,再将面包板上的接12v的导线,接在实验平台+12伏的电源上,然后将adc0809转换器上clk引脚的一根导线接在实验平台tp3上的clk处。另外,将面包板上,在mf2ki中打开编写好的程序,进行编译及运行,在dos窗口中显示调试结果。4.2 软件部分选择电位器所接的通道号输入数字,按enter键开始,屏幕上显示数据,然后转动电位器,通过改变电阻来改变电路电压大小,产生模拟信号到数据信号的转换,在屏幕上显示采集到的数据在变化,数据从00到ff都能显现表示调试成功。第五章 课程设计总结与体会 上个学期学习的微机接口这门课,也做过实验比如音

25、乐发生器,当时就知道打开实验平台调入程序听歌曲,完全没有达到实验的要求,对实验原理也不是很明白。刚拿到任务的那天,来到机房不知从哪下手,面包板的作用一概不知,查自来也不知从何处下手,对数据采集这个概念也就停留在知道是将模拟信号转换成数字信号传送个计算机,第一天就看了几个元器件的电路引脚图 第二天,张老师给我们讲解了实验指导书的电路原理图才依稀有点眉目,按照实验指导书的原理图开始搭接面包板,开始我们组的实验器材发的有点错误,把lm386当成二极管发下来,后来发现错误找到相关负责老师调换,但是lm336的三个引脚又不是很清楚怎么个连接法,在网上查了相关资料再经老师指导才明白。还有外设电位器,也是从

26、网上查相关资料才知道它的作用,相当于滑变电阻改变电路电压大小,从而起到产生模拟信号的作用。9月6号下午电路板搭接工作完成,到实验室用老师程序检测发现调试不通过,原来是电源接法有误,由8255a引出的5v电压应直接和adc0809的vcc相连,电路图中的12v电压由实验平台提供.并要接到面包板,电位器的接法也不正确,应该左右分别接5v电源的负级和正极,中间接adc 0809的8个通道中的一个。 9月7号上午再次改动,将面包板重接。调试通过。下午开始着手protel99se的电路图的绘制,由于以前没有接触这类软件,只有在6号早上听了学长李畅的讲解大概知道一点点,后来在自己动手绘制的时候出现总总问题

27、,到7号晚上才把原理图绘制出来但是在生成网络表格的时候出现4个错误,经同学帮助下改正错误能够生成pcb图,但是线路少了很多 9月8号经李老师指导,原来是把电线找错了,以至于电路线路出现问题,最后只得将图全部重画,好在这次能顺利通过,并绘制出了完整的pcb图形。这期间,组长杨威研究程序,使用汇编语言编写程序,到9号下午程序调试通过,实验基本完成,剩下实验报告书和最后的答辩。9号下午指导老师张老师教了关于论文写作的格式要求,以及word的正确使用,晚上就开始文列文档格式提纲 10号早上,提纲基本完成,开始具体文档写作,从实验原理过程,概要设计,详细设计以及程序 通过这次的课程设计,的确提高了我们的动手能力,哪怕只是根据电路图到面包板的搭接都是一大进步。再在实验中有很多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论