基于人工按钮声(2000HZ)光报警器的设计(C程序设计语言_第1页
基于人工按钮声(2000HZ)光报警器的设计(C程序设计语言_第2页
基于人工按钮声(2000HZ)光报警器的设计(C程序设计语言_第3页
基于人工按钮声(2000HZ)光报警器的设计(C程序设计语言_第4页
基于人工按钮声(2000HZ)光报警器的设计(C程序设计语言_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、接口课程设计任务书学生姓名 专业班级 指导老师 工作单位 计算机科学与技术学院 题目:基于人工按钮声(2000hz)光报警器的设计 (c程序设计语言)一、 内容:在mifid微机实验台上按下sw3按钮,发出声音报警,同时指定发光二极管led点亮报警。接口硬件电路图见说明书。二、 要求:1、 指定发光二极管led点亮报警的数据存储在文件中。2、 按下sw3按钮,输出为0。由并行接口8255a的pc2接收sw3按钮的开关量。然后使并行接口8255a的pc6产生2000频率的方波,使喇叭发出声音报警,同时从文件中取出一个8位二进制数从pa口输出,点亮发光二极管led报警。3、 如果键盘输入任意键,则

2、退出声光报警。4、 设计程序运行时的界面友好。三、 进度安排:序号内容所用时间1接口电路设计2天2编写程序1天3调试程序1天4撰写课程设计报告1天合计5天指导教师签名: 年 月 日 系主任(责任教师)签名: 年 月 日 1 问题描述在mifid微机实验台上按下sw3按钮,发出声音报警,同时指定发光二极管led点亮报警。要求:(1)指定发光二极管led点亮报警的数据存储在文件中。(2)由并行接口8255a的pc2接收sw3按钮的开关量。然后使并行接口8255a的pc6产生2000频率的方波,使喇叭发出声音报警,同时从文件中取出一个8位二进制数从pa口输出,点亮发光二极管led报警。(3)如果键盘

3、输入任意键,则退出声光报警。(4)设计程序运行时的界面友好。2 具体设计2.1 实验资源(1)mfid实验平台上的 j(8253)、i(8255)、r(音乐发生器)和 模块电源四个电路模块 ;(2)8255的4个端口地址为300h303h, 其中a口为300h,b口为301h,c口为302h,命令口为303h;(3)8253的四个端口地址为304h307h, 其中通道0为304h,通道1为305h,通道2为306h,命令口为307h。2.2 设计分析2.2.1 设计原理报警音通过8253以可编程控制方式来控制其频率和延时,可分别发出高低频音;报警灯通过从8255的a口选择不同的字控制8个led

4、灯的显示,其显示数据通过 文件读入到数组中,待启动时将数据依次读入a口。2.2.2 芯片8255(1)端口8255是可编程i/o扩展芯片,对8255输入不同的指令可改变i/o口的工作方式。8255有3个输入输出端口:端口a,端口b,端口c。(2)引脚:pa0pa7:端口a输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。pb0-pb7:端口b输入输出线,一个8位的i/o锁存器,一个8位的输入输出缓冲器。pc0-pc7:端口c输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口c可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁

5、存器,分别与端口a和端口b配合使用,可作为控制信号输出或状态信号输入端口。(3)编程命令8255有两个编程命令,即工作方式命令和对c口的按位操作命令,其格式分别如下图; 图2-1 8255工作方式命令 图2-2 c口按位操作命令2.2.3 芯片8253 (1)8253内部结构如下图: 图2-3 8253内部结构 其中面向i/o设备的信号线主要有: 1)计数器时钟信号clk:为计数器提供时钟信号。 2)计数器门选控制信号gate:用来禁止、开始计数器的计数过程。 3)计数器输出信号out:当计数值减为0时,计数器输出信号out, 表示计数或定时已到。 (2)工作方式 8253有三个通道,其中每个

6、通道都有6种工作方式(0方式5方式)可供选用。课设选择方式3,其时间常数自动重装;输出周期性脉冲信号。 计数方式:计数开始后,前一半为高电平,后一半为低电平。 启动方式:软件启动和硬件启动相结合。 1)在gate=1时,写入计数初值后,开始启动计数; 2)写入计数初值后,若gate=0,计数不启动;当gate=1,开始启动计数。(3) 工作方式控制字 通过工作方式控制字,来选择计数器、写入顺序、工作方式和计数形式 图2-4 8253工作方式控制字2.2.4 具体设置 1)8255芯片方面,将a口和pc后四位作为输出,b口和pc前四位作为输入, 因而其工作方式命令为0x83; 8253芯片方面,

7、选择计数通道2,工作方式3,因而8253控制字设为0xb6。 2)将pc2与sw3相连,控制按键的触发,pc6与gate2相连,控制8253的开关。 3)输出频率 fout=fclk/n(计数初值)或 n=fclk/fout 其中fclk为1.1938mhz,fout为2000hz,因而计数初值为596.2.3 硬件设计本课设具体硬件设计图如下: 图2-5 硬件设计图从图中可以看出,pc6直接连接了扬声器的门控,扬声器的音调由芯片8253输出的频率来控制,计数器2的输出端out2直接连到扬声器的音调,芯片8253的工作方式为方式3,用来输出方波。此电路图中省略了芯片8253的连线。8255的a

8、端口的8个引脚分别与8个led灯相连,a口作为数据输出端口,led灯用来显示a口的数据。程序中通过cpu直接向a口写入数据,然后再输出到led灯显示出来。写入的数据由一个数组保存着,程序循环读取数组,用对应的8个发光二极管显示开关状态。开关sw3直接与pc2相连,决定pc2的值。2.4 软件设计本课设具体设计流程图如下: 图2-6 设计流程图 3 操作步骤3.1 硬件连线跳线设置:单线将模块电源l区jp7和jp8跳接;排线将模块电源l区jp8跳接。单线接法如图所示:排线接法如图所示:3.2 初始化将平台的电源开关拔到“内”的位置上。在配套集成环境下进行硬件检测,达到初始化芯片的目的。3.3 程

9、序运行打开集成环境在“文件”菜单下选择新建自己的cpp文件进行调试、运行。并观察运行结果。4 调试报告此次程序设计过程中,也出现了一些大大小小的错误,对于我们初学者来说,设计基于人工按钮声(2000hz)光报警器的设计这个程序确实有些困难,以前接触到的都是一些比较简单比较基础的东西。编程过程中,对于声光报警器的原理以及流程图、芯片结构等不是很了解,调用dos功能时也有一些模糊,出现了一些错误,最后经过网上查资料与研究课本上讲的发声程序的内容,对这些内容有了很多的理解,在发声程序的设计中,最主要的是了解原理,比如要如何设置定时器模式等初始化过程,数据口与控制口的设置。将一些错误改正过之后,调试运

10、行,得出了正确的运行结果。5 运行结果分析按照要求接线后,打开电源,然后运行程序,按下开关sw3,扬声器发出特定频率的声音,同时led灯按照预定的规律闪烁。运行结果符合课程设计要求。6 心得体会此次的微机原理与接口技术设计的是基于人工按钮声(2000hz)光报警器的设计(c程序设计语言),跟以前微机实验有些类似,或者是以前实验的综合。硬件设计方面,基于以前实验的基础,对于8255和8253芯片的应用再次应用熟稔于心。起先没用到8253来着,照样能完成声光报警,不过频率不好控制,也不知道其具体频率是多少,后来将8253介入,明明确确设置初始值,输出相应频率来控制报警声。此外对于led发光的顺序,要做到报警的效果,设计时采用轮流从两边开始亮到中间。 编程方面,采用的是c语言,其中主要是c库函数的调用,要对头文件有一定的了解,尤其是本课设要求从文件中读入led点亮的顺序,很像编译实验中的一些处理过程。总之,经过本次课设,体会到硬件软件两手都要抓,两手都要硬,暂且不说实验板是否有问题,单就设计和连线与在相应平台上编程实现方面,做好这些,课设也就解决了大半。7 参考文献1 刘乐善.32位微型计算机接口技术及其应用m.武汉:华中科技大学出版社,2006.2 32位微机实验指导书m/ol.华中科技大学计算机学院.本科生课程设计成绩评定表班级: 姓名: 学

温馨提示

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

最新文档

评论

0/150

提交评论