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

下载本文档

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

文档简介

1、 微机接口技术课程设计湖北教育学院课程设计报告课程名称:微机接口技术课程设计设计题目: 系 别: 专 业: 组 别: 学生姓名: 学 号: 起止日期: 指导教师: 教研室主任: 14摘 要随着计算机软硬件的不断发展,计算机技术正在和已经广泛的运用到我们学习生活以及社会的方方面面。作为计算机的远程控制技术来说,它的应用更是在军事、水利以及商业等各个领域发挥着举足轻重的作用!因此,作为当代大学生,我们有义务和责任来研究和学习计算机远程技术及其应用。2006年9月,我院在积极的组织和有力的教育改革推动下,我们才能够在一定的时间里,挑选我们的课程设计项目并予以行动。在大学已学软硬件知识的基础上,我们小

2、组研究的课题是声-光报警系统设计与制作,为了很好的完成我们的课程设计,我们小组四个成员互相协助,以及各个小组之间相互探讨,使得我们的设计任务都能按计划进行。当然,我们也遇到很多自己不懂的技术问题,在我们的指导老师以及其他项目老师的帮助下,我们学到了很多的新的知识。总的说来,通过这次课程设计,我们既锻炼了自己,同时又检验了自己在团队合作中自己作用的充分发挥和强弱互补!我们的课程设计的硬件部分包括以下几个方面的内容:并行接口的8255芯片与74LS04芯片的连接,还有在双机通信中串并口的接入接出,这是整个硬件与软件相结合的关键所在,也是一个难点!另外,面包板上电路的线路连接也是成功的一个好的开始。

3、软件设计方面,我们主要依靠各个芯片的结构特性来设计程序。比如8255的A、B、C口的连接,以及8255并行芯片的端口使用。具体的程序中包括由小键盘控制二极管的发光情况和扬声器发出的高低频率声音。关键字:声光报警器 8255A import outport目 录1 需求分析11.1 设计题目11.2 设计任务及要求11.2.1 任务11.2.2 要求12概要设计22.1 主要硬件22.2 功能模块52.3 设计方法及其原理63详细设计63.1 硬件设计63.2 软件设计94调试与操作说明144.1硬件测试144.2 软件调试155总 结166致 谢17参考文献18附录A 声-光报警器电路板图19

4、附录B 评定表20 微机接口技术课程设计1 需求分析 1.1 设计题目 通过可编程并行接口芯片8255A开关量控制的原理与方法,设计一个声-光效果报警器 1.2 设计任务及要求1.2.1 任务1.进行声-光效果(报警器)系统电路硬件设计,画出电路原理图、PCB图或元器件布线图;2.安装或焊接元器件;3.进行声-光效果控制程序设计(采用ASM或CPP语言)4.系统联调,提交一个符合上述4种要求的声-光效果的系统设计。1.2.2 要求 1.产生8种彩灯(8位LED)的走马灯花样;产生8种不同的声音;2.产生声音的同时,伴有彩灯闪亮。3.键控发声设计。在键盘上定义8个数字键(07),每按1个数字键,

5、使喇叭发一种频率的声音,按ESC键,停止发声。4.键控发光实验。在键盘上定义8个数字键(07),每按1个数字键,使LED的1位发光,按Q或q键,停止发光。 软硬件运行环境及开发工具 n 硬件资源配置:1.PC兼容机2Windows 2000及以上版本 3.MFID多功能微机实验平台(含PCI总线驱动板)4.MF2KI集成开发环境 5.面包板或外设功能模块板6.安装或焊接工具 n 软件要求:熟悉汇编和C语言程序设计2概要设计2.1 主要硬件l 可编程并行接口芯片8255A1. 8255A是个具有两个8位(A口和B口)和两个4位(C口高/低4位)并行I/O端口的接口芯片,它为Intel系列CPU与

6、外部设备之间提供TTL电平兼容的接口,如打印机、A/D、D/A转换器、键盘、步进电机以及需要同时两位以上信息提供传送的一切形式的并行接口。并且它的PC口还具有按位置位/复位功能,为按位控制提供了强有力的支持。2. 8255A能适应CPU与I/O接口之间的多种数据传送方式的要求。3. 8255A芯片内部主要由控制寄存器、状态寄存器和数据寄存器组成。(1)8255A的外部引线8255A是一个单+5V电源引脚,40个引脚的双列直插式组件,其外部引线如图4.2所示: 它作为接口电路的8255A具有面向CPU和面向外设两个方向的连接能力。因此,它的引脚分成两部分。1. 系统总线的连接信号面向数据总线的有

7、:D0D7:双向数据线,用于CPU向8255A发送命令、数据和8255A向CPU回送状态、数据。面向地址总线的有:CS:选片信号,低电平有效,由系统的高位地址线经I/O端口地址译码电路产生。CS为低电平时,才能对8255A进行读写操作。当CS为高电平时,切断CPU与芯片的联系。A1,A0:芯片内部端口地址信号,与系统地址总线低位相连用来寻址8255A内部寄存器。两位地址,可形成片内4个端口地址。面向控制总线的有:RD:读信号,低电平有效。CPU通过执行IN命令使RD有效,即发读信号将数据或状态信号从8255A读至CPU。WR:写信号,低电平有效。CPU通过执行OUT命令使 WR有效,即发写信号

8、,将命令代码或数据写入8255A。RESET:复位信号。它清除控制寄存器并将8255A的A、B、C三个端口均置为输入方式;输出寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设的信号线呈现高阻悬浮状态。这种势态一直持续到用方式命令才能改变,使其进入用户所需的工作方式。2. 外部设备的连接信号PA0PA7:端口A的输入/输出线。PB0PB7:端口B的输入/输出线。PC0PC7:端口C的输入/输出线。这24根信号线均可用来连接I/O设备和传送信息。其中,A口和B口只作为输入/输出的数据口用,尽管有时也利用它们从I/O设备读取一些状态信息,如打印机的“忙(Busy)”状态信号、A/D转换器的

9、“结束信号(EOC)”状态信号,但对于A口和B口来说,都是作8255A的数据口读入,而不是作8255A的状态口读入的。A口和B口作数据输入/输出时,是8位一起行动的,即使是只用到其中的某一位,也要同时输入输入/输出8位。C口除了作数据口以外,还可以作状态口、作专用(固定)联络(握手)信号线和作按位控制用。这些作用与8255A的工作方式有关。C口作数据口时,它是把8位分成高4位和低4位两部分,高4位PC4PC7与A口一起组成A组,低4位PC0PC3与B口一起组成B组。因此,C口作数据口输入输出时,是4位一起行动,即使只用到其中的某1位,也要4位一起输入或输出。(2)8255A的编程命令8255A

10、的编程命令包括工作方式和对PC口的按位操作命令。由于这两个命令都是送到8255A的同一个命令端口,故为了让8255A能识别是哪个命令,采用在命令代码中设置特征位的方法。若写入的命令字的最高位D71,则是工作方式命令;若写入的命令字D71,则是PC口的按位置位/复位命令。这两个命令字的作用及格式为:1. 方式命令作用:指定8255A的工作方式及其方式下3个并行端口(PA、PB、PC)的功能,是作输入还是作输出。格式:8位,其中最高位是特征位,一定要写1,其余各位的定义如下,应用户的设计要求填写1或0。 从方式命令的格式可知,A组有3种方式(0方式、1方式、2方式),而B组只有2种工作方式(0方式

11、、1方式)。端口PC分成2部分,上半部属A组,下半部属B组。所有3个并行端口,置1指定为输入,置0指定为输出。利用工作方式命令的不同代码组合,可以分别选择A组和B组的工作方式和各端口是输入还是输出。2置位/复位命令作用:指定PC口的某一位(某一个引脚)输出高电平或低电平。格式:8位,其中最高位是特征位,一定要写0,其余各位的定义如下,应根据用户的设计要求填写1或0。 利用按位置位/复位命令可以使PC口的8根线中的任意1根置成高电平输出或低电平输出。l 反相器74LS04 图2.2 74S04内部结构图74LS04为14脚双列直插式芯片,外部引脚如图4.3所示输入:1、3、5、9、11、13输出

12、:2、4、6、8、10、12、接地:7电源:14l I/O端口地址8255的4个端口地址为300H303H。其中A口=300H,B口=301H,C口=302Hl 发光二极管利用二极管具有正负的特性来判断A口的信号 l 功放如下图2.3 图2.3 功放输入:2,3输出:5接地:1,4,7电源:6 2.2 功能模块本课程设计及声-光报警器所涉及的功能模块:8255模块,LED,按键开关,音乐发生器四个模块。2.3 设计方法及其原理声-光报警器A口的信号经过两个反向器芯片使8个发光二极管发光。利用8255A的PC6,产生方波,经滤波和功效后,送到喇叭,使产生不同频率的声音,其程序段为:OUT SPK

13、 PROC MOV DX,303H ;8255A命令口 MOV AL,00001101B ;置PC6=1 OUT DX,AL CALL DELAY1 ;PC6输出高电平维持的时间 MOV AL,00001100B ;置PC6=0 OUT DX,AL CALL DELAY1 ;PC6输出低电平维持的时间 RETOUTSPK ENDP若改变DELAY1 的延时时间,即可改变喇叭发声的频率。3详细设计 3.1 硬件设计n 元器件清单:发光二极管8个;固定电阻10个;SW-DIP8开关一个;排阻2个;74LS08反相器2个;LM386低电压音频功率放大器一个;扬声器一个;瓷片电容二个;电解电容二个声-

14、光报警器模块板电路原理图如图2.1所示.模块板上包括4种简单的I/O外设:扬声器、8个发光二极管、8位DIP开关及按钮开关SW3.他们都是并行接口的对象,虽然功能单一,结构简单,但都必须通过接口电路才能进入微机系统,接受CPU的控制,发挥作用. 图3.1声-光报警器模块板电路原理图声-光报警器模块板电路原理图得到的声-光效果原理图如图3.2和PCB图3.3 3.2声-光效果原理图 图3.3声-光效果PCB图 3.2 软件设计实现声光报警器程序框图如下:8255A初始化开始熄灭LED关闭SPKSW按下LED发光Call LEDflashSPK发光(高)Call outAPKLED全灭SPK发光(

15、低)Call outAPK任意键按下熄灭LED关闭SPK结束YYNN源程序如下:/*-*/* Cexp2.cpp(声-光报警器接口实验) */* 声-光报警器 Source File */* Copyright (c) 2001 by HUST */*-*/#include <dos.h> /getvect(); setvect();#include <conio.h> /kbhit();#include <stdlib.h> /exit(0);#include <stdio.h> /printf();void main()int xu8=0x8

16、0,0x40,0x20,0x10,0x08,0x04,0x02,0x01;/LED发光顺序unsigned long int i=0,j=0;char a;printf("nPress sw3 to start!n");printf("if you want to quit,please hit Any Key!");outportb(0x303,0x83);/初始化outportb(0x300,0x00);/LED全灭outportb(0x303,0x0c);/关闭SPK dowhile(0x04&inportb(0x302)!=0);/查SW

17、按下do a=getch(); switch(a)case '1':dooutportb(0x300,xu0);for(j=0;j<=100;j+) outportb(0x303,0x0d);/令PC6=1,发高频音delay(1); outportb(0x303,0x0c);/令PC6=0,关闭SPKdelay(1); for(j=0;j<=10;j+) outportb(0x303,0x0d); delay(30);/令PC6=1,发低频音 outportb(0x303,0x0c);/令PC6=0,消音 delay(30); while(!kbhit();bre

18、ak;case '2':dooutportb(0x300,xu1);for(j=0;j<=100;j+) outportb(0x303,0x0d);/令PC6=1,发高频音delay(1); outportb(0x303,0x0c);/令PC6=0,关闭SPKdelay(1); for(j=0;j<=10;j+) outportb(0x303,0x0d); delay(30);/令PC6=1,发低频音 outportb(0x303,0x0c);/令PC6=0,消音 delay(30); while(!kbhit();break;case '3':do

19、outportb(0x300,xu2);for(j=0;j<=100;j+) outportb(0x303,0x0d);/令PC6=1,发高频音delay(1); outportb(0x303,0x0c);/令PC6=0,关闭SPKdelay(1); for(j=0;j<=10;j+) outportb(0x303,0x0d); delay(30);/令PC6=1,发低频音 outportb(0x303,0x0c);/令PC6=0,消音 delay(30); while(!kbhit();break;case '4':dooutportb(0x300,xu3);fo

20、r(j=0;j<=100;j+) outportb(0x303,0x0d);/令PC6=1,发高频音delay(1); outportb(0x303,0x0c);/令PC6=0,关闭SPKdelay(1); for(j=0;j<=10;j+) outportb(0x303,0x0d); delay(30);/令PC6=1,发低频音 outportb(0x303,0x0c);/令PC6=0,消音 delay(30); while(!kbhit();break;case '5':dooutportb(0x300,xu4);for(j=0;j<=100;j+) ou

21、tportb(0x303,0x0d);/令PC6=1,发高频音delay(1); outportb(0x303,0x0c);/令PC6=0,关闭SPKdelay(1); for(j=0;j<=10;j+) outportb(0x303,0x0d); delay(30);/令PC6=1,发低频音 outportb(0x303,0x0c);/令PC6=0,消音 delay(30); while(!kbhit();break;case '6':dooutportb(0x300,xu5);for(j=0;j<=100;j+) outportb(0x303,0x0d);/令P

22、C6=1,发高频音delay(1); outportb(0x303,0x0c);/令PC6=0,关闭SPKdelay(1); for(j=0;j<=10;j+) outportb(0x303,0x0d); delay(30);/令PC6=1,发低频音 outportb(0x303,0x0c);/令PC6=0,消音 delay(30); while(!kbhit();break;case '7':dooutportb(0x300,xu6);for(j=0;j<=100;j+) outportb(0x303,0x0d);/令PC6=1,发高频音delay(1); out

23、portb(0x303,0x0c);/令PC6=0,关闭SPKdelay(1); for(j=0;j<=10;j+) outportb(0x303,0x0d); delay(30);/令PC6=1,发低频音 outportb(0x303,0x0c);/令PC6=0,消音 delay(30); while(!kbhit();break;case '8':dooutportb(0x300,xu7);for(j=0;j<=100;j+) outportb(0x303,0x0d);/令PC6=1,发高频音delay(1); outportb(0x303,0x0c);/令PC

24、6=0,关闭SPKdelay(1); for(j=0;j<=10;j+) outportb(0x303,0x0d); delay(30);/令PC6=1,发低频音 outportb(0x303,0x0c);/令PC6=0,消音 delay(30); while(!kbhit();break;while(!(a = '9');outportb(0x300,0x00);/LED全灭outportb(0x303,0x0c);/关闭SPK(主要函数说明:outportb()函数是向某个端口写入一个字节的数据。 Inportb()函数是从某个端口读出一个字节的数据。 kbhit()

25、函数是判断键盘是否有值输入。 delay()函数是程序暂停的时间,括号的参数表示多少豪秒。声光报警器使用操作说明:进入MF2KI集成开发环境,运行所编写的程序,此时应有命令提示框显示“Press sw3 to start! if you want to quit,please hit Any Key!”按下SW3利用键盘上的8个数字键(18),每按1个数字键来控制相应的LED发光以及喇叭发声的频率,按数字键0则消音。(按数字键“1”,LED0亮,SPK发音;按数字键“2”,LED1亮,SPK发音;按数字键“3”,LED2亮,SPK发音;按数字键“4”,LED3亮,SPK发音;按数字键“5”,L

26、ED4亮,SPK发音;按数字键“6”,LED5亮,SPK发音;按数字键“7”,LED6亮,SPK发音;按数字键“8”,LED7亮,SPK发音)操作完毕后按数字键“9”或“Q”退出) 微机接口技术课程设计4调试与操作说明4.1硬件测试n 发光二级管的检测 极性的识别方法一:根据管子的引脚长短识别,通常电极长位正()极,短为负(-)极。方法二:根据塑封管子内部极片识别,通常极片小为正(+)极,极片大为负(-)极。方法三:通过测量发光二极管的正、反向电阻判别极性,测的正向电阻小的一次其黑表笔接的是正()极,红表笔接的电极为负(-)极。 好坏判断将模拟万用表拨至R×10K档测其正向电阻(应在

27、几十千欧),测其反向电阻(应在几百千欧)为正常。若测得正、反向电阻均为“0”,说明管子内部击穿短路;若测得正、反向电阻均为“”,说明管子内部已断路。将数字万用表转换开关拨至HFE档位置,然后将发光二极管正极插入NPN型“C极”插孔,负极插入“E极”插孔,发光为正常。若不发光说明管子已坏,或者说明管子管脚插反,调换管脚重新测试。n 74LS04芯片的检测将VCC和GND信号接入芯片,所有的A引脚接高电平,依次查看对应的Y引脚是否为低电平,若是,则正常,反之,芯片有问题。 图4.1 74LS04外引线排列图 n 连线安装本实验是在面包板上插线,不需焊接,但是得注意将线插牢,移动面包板时需要小心,以

28、免插线松动。连线时注意布线顺序和技巧,避免连线混乱,这样对检查调试十分的方便。 4.2 软件调试根据实验要求,声光报警器的设计程序需实现实验要求。 在键盘上定义8个数字键(07),每按1个数字键来控制相应的LED发光以及喇叭发声的频率。 在实验平台通过运行设计程序,据设计程序运行结果的提示,按下SW3,然后,任意按下键盘上的数字键(07),看程序运行结果是否符合实验要求,结果程序运行正常,符合实验要求。 由于我们调试的是小程序,如果设计程序不符合要求,我们通过程序的控制流的出错点,往回追踪分析源程序代码,直到找出错误原因为止。155总 结通过声光报警器控制系统设计这个实验,就我个人来说,增加了

29、对声光报警器原理图的认识,加深了对8255A芯片,74LS08反相器芯片和LM386低电压音频功率放大器芯片的结构和工作原理的理解,了解了在MFID微机实验平台上进行微机应用系统设计的方案、过程。 在此之前,不要说一个声光报警器,就是对于一个芯片都是十分陌生的。不过,在指导老师的帮助下,参考各种帮助文档,我逐步的了解了各种芯片的结构和连接方法;在设计中遇到的各种问题我能一一的解决并总结了一些经验在连线之前要把硬件设备的属性和芯片结构弄清楚,特别是那个面包板的结构。还有各芯片的连线、正负极走向以及地线、电源线。如74LS08、LM386。二极管和电容的正负极也要搞清楚,不然,电路会出现问题,大家

30、要格外的注意。由于芯片一般都比较脆弱,所以在插入和拔出芯片时要非常的小心,插入时应使器件的方向一致,使所有引脚均对准面包板上的小孔,均匀用力按下,拔出十要垂直向上拔起,以免使其引脚受力不匀而弯曲或断裂。再调试发现电路有问题的时候不要把线路全部拆掉,可以利用排除法逐片逐片的检查,或的保持线路不变只更换某些元件等方法来修改电路。当接好全部连线后,我们应对照电路图仔细复查几遍,检查晶体管或集成块的引脚是否插对,是否有漏线和错线。如我在连接8255A转接板的时候就漏掉了地线,然后用万用表档检查电源与地线之间的电阻值,排除电源与地线之间的开路或短路现象以及电路的错接发生。元件和连线要排列整齐,严格按照电

温馨提示

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

评论

0/150

提交评论