[嵌入式设计]基于单片机的双机通信酒精传感器的设计-毕业论文_第1页
[嵌入式设计]基于单片机的双机通信酒精传感器的设计-毕业论文_第2页
[嵌入式设计]基于单片机的双机通信酒精传感器的设计-毕业论文_第3页
[嵌入式设计]基于单片机的双机通信酒精传感器的设计-毕业论文_第4页
[嵌入式设计]基于单片机的双机通信酒精传感器的设计-毕业论文_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、 本本 科科 毕毕 业业 论论 文文 (2013 届)届) 题题 目目单片机双机通信酒精传感器设计 学学 院院理学院 专专 业业光信息科学与技术 班班 级级 学学 号号 学生姓名学生姓名 任课教师任课教师 完成日期完成日期2013 年 05 月 05 日 本科毕业论文 摘要 本文设计的是一款基于 pic16f877 单片机与 mq-3 酒精浓度传感器的酒精浓度测 量仪。可以实现 mq-3 将酒精浓度信号转换成模拟电信号,然后通过单片机实现模拟 电信号的识别采集和转化为数字量再通过 spi 接口进行双机通信,并且在第二片单片 机上通过数码管显示采数字量。这样就可以完成酒精浓度测试的基本任务了。

2、本设计最终目的是制作出实物,硬件部分使用 pic16f877 单片机、4 位一体数码 管、mq-3 气敏酒精传感器、焊接用电路板、导线、电容、电阻、晶振等器件。软件编 程语言将会使用 c 语言。在本设计中采用的 spi 双机通信技术,会使得制作出的成品 功能更加的灵活同时也留下了拓展更多功能的空间。 关键词:pic 单片机;酒精传感器;spi 双机通信;a/d 转换;数码管显示 单片机课程设计 abstract it is a design in this paper , based on pic16f877 mcu and mq-3 alcohol concentration sensor

3、alcohol concentration measuring instrument. it can convert alcohol concentration signals into analog signals , then achieved the identification of analog signals acquisition and convert to digital quantity by the spi interface communication between two mcu, and on the second piece of mcu through dig

4、ital tube display digital quantity . so we can complete the basic task of alcohol concentration test . the ultimate aim is to produce physical design , hardware part using pic 16f877 mcu , four digital tube , mq-3 alcohol gas sensitive sensor , circuit board soldering , conductor , capacitor , resis

5、tor , resistor , crystal vibration device , etc . software will use c programming language . in this design using the spi communication technology between two mcu , will make finished product function to produce more flexible at the same time, it left behind to expand more functions of space. keywor

6、ds: pic mcu; alcohol sensor; spi communication between two mcu; a/d conversion; digital tube display 单片机课程设计 目 录 1引言. .1 1.1 单片机的发展及现状.1 1.2 单片机的引用范畴及发展趋势.2 1.3 单片课题设计的任务和要求. .2 2酒精测试仪的背景知识. .4 2.1 酒精测试仪的种类.4 2.2mq3 气敏酒精传感器介绍. .4 2.3 传感器未来的发展方向.5 2.4 传感器的原理.7 2.5 气敏传感器的发展状况和技术水平.7 3硬件设计. .8 3.1 总体设计

7、. .8 3.1.1 单片机的最小系统.8 3.1.2ad 模块.9 3.1.3spi 双机通信模块.12 3.1.4 显示模块.15 3.2 单片机仿真以及电路. .15 4软件设计.17 4.1 总体方案.17 4.2 程序流程图.17 4.3 软件编程语言的选择.17 4.3.1 汇编语言.18 4.3.2c 语言.18 4.3.3 汇编语言与 c 语言的混合编程.19 4.4 主要模块的程序设计.19 4.4.1a/d 转换 c 程序设计.19 4.4.2spi 双机通信 c 程序设计.20 5软件工具的介绍及使用.22 6结论.24 致谢.25 参考文献.26 单片机课程设计 单片机

8、课程设计 0 1.引言 1.1 单片机的发展以及现状 单片机通常被称为微控制器也有人称它为单片微型计算机,单片机的叫法在我国 比较流行。单片机就是把中央处理器 cpu、随机存储器 ram、只读存储器 rom、输 入/输出端口 i/o 等主要计算机功能部件,都集成在了一块集成电路芯片上,从而形成 一部完整的微型计算机1。随着科学技术不断发展,单片机也在我们日常的生活中发挥 着越来越重要的作用,涉及到我们生活的方方面面。 现今,单片机大家庭中成员越来越多。主流的单片机有如下几种:intel 公司的 51 系列单片机、atmel 公司的 51 系列单片机、美国微芯公司的 pic 系列单片机、atme

9、l 公司的 avr 单片机、摩托罗拉(飞思卡尔)单片机等。这些单片机都有各自的优点和 独特之处,但功能大多是大同小异,有着很多的共通之处。pic 单片机是由美国的 microchip(微芯)公司研发的,自 1988 年推出的 pix16c5x 单片机实现现场可编程至 今为止,经过几十年的发展和创新先后推出了过百种型号的单片机。pic 单片机功耗 低、性能稳定使得其在单片机市场上占据了一定的份额。pic 系列单片机由于采用了 精简指令集、哈佛总线结构、流水线取指的方式,较好的抗干扰能力,极高的性价比, 在市场十分受消费者的欢迎。在工业控制、消费电子产品、办公自动化设备、智能仪 器仪表、汽车电子等

10、诸多领域十分的流行1。哈佛总线结构的说法是相对于普林斯顿结 构而言,其程序寄存器和数据寄存器拥有不同的物理地址,有效的解决了普林斯顿结 构中程序寄存器和数据寄存器局限工作带宽的问题。目前根据指令总线的位数可以将 pic 单片机分为 3 个系列即,基本级 pic 系列 mcu、中级 pic 系列 mcu、高级 pic 系列 mcu。 本设计中将会用到的 pic16f877 单片机就是中级 pic 系列的单片机。pic16f877 单片机的内核特色有:高性能的 risc 结构 cpu、精简指令集,仅有 35 条、8 级硬件 堆栈、4 种寻址方式、可编程代码保护、低功耗、高速 cmos 技术、宽工作

11、温度范围, 在线串行编程技术 icsp 等。外围特色有:同步串行口 ssp、通用异步串行口 usart,多通道 10 位 a/d 转换器等2。 单片机课程设计 1 图 1.1 pic16f877 单片机 1.2 单片机的应用范畴及发展趋势 近些年来,科学技术的发展突飞猛进,各种新兴技术不断被创造发明。人们对生 活的要求越来越高,不再局限于最基本的需求而是希望能够追求更高层次的享受。基 于这个背景,各种各样用于改善人们的生活的技术同时也越来越完善。单片机无论是 在人们的日常生活还是工业生产中都扮演着十分重要的角色。甚至可以说几乎不可能 找到哪一个范畴中找不到单片机的踪迹。 单片机体积小、功耗低、

12、控制能力强、方便扩展等诸多优点让它可以带各种测量 仪器的领域中大展拳脚。配合传感器件可以完成很多数据的精密测量。例如:电压、 温度、酒精浓度、功率、流量,压力等等。利用单片机制成的仪表要比一般的仪表更 加的精密,功能更加的优良。对于一台测量仪器而言,精确就是测量仪器的灵魂所在, 所以说单片机更加的适合精密仪器的制作。单片机的应用五花八门,其中有很大一部 分是在家电控制方面,例如:电视的语音控制、电饭煲的定时控制、音响自动声道控 制、全自动洗衣机、声控台灯,空调自动调节温度等等。单片机经过不断的发展和完 善,现在通信接口已经成为单片机的标准配置之一,几乎很难找到没有通信接口的单 片机了,除非是特

13、别定制的特殊用途的用不到通信接口的功能性单片机。这就为计算 机和外围设备的通信提供可靠同时可控的沟通桥梁,是计算机对外围设备的操纵更加 的灵活。单片机不仅仅是只在生活领域有着不可替代的作用同时在工业产业中也非常 的重要,一般的智能控制系统例如:简单的流水线操作、声光报警系统,机械智能化 管理等等都可以通过单片机来完成。甚至于武器导弹等军事领域也会有单片机的身影, 例如:自动装弹系统、无线引爆炸弹装置,定时炸弹等等。汽车工业中,单片机发挥 的作用也是至关重要的,例如:电源控制、灯光控制、各种仪表,gps 导航等等。涉 及到单片机的产品各种各样,不胜枚举。 尽管单片机的用途十分广泛,但是单片机也不

14、是万能的。由于单片机普遍存在硬 件的局限性,所以并不能完成太过于复杂的实时操作流程。单片机的未来发展趋势, 为了达到低功耗的目的制作工艺上要更多的采用 cmos 工艺;为了使单片机能够更加 的适应复杂的操作环境或者解决冗杂的问题,必须要提高单片机与其它外围设备的通 信效率;由于单片机端口资源的有限,要想更有效的利用单片机就必须要开发更为便 利串行口方式的外围扩展;为了扩展更多功能,必须增加内存储容量;扩展总线的宽 度以达到提高程序运算的速度和能力;将更多实用的模块集成到单片机内部以达到简 化外围电路的目的;单片机性能的稳定性还需要进一步的提高,以适应要求更加精确 的环境。 单片机课程设计 2

15、1.3 课题设计的任务和要求 任务: (1)了解酒精传感器 mq-3 的原理以及使用方法。 (2)单片机 ad 模块对酒精浓度信号的采集编程。 (3)单片机采用的协议及编程。 (4)对酒精浓度转化的电信号采集,传送并在数码管上显示数值。 要求: (1)设计出 mq-3 气敏酒精传感器将酒精信号转化为电信号的电路。 (2)设计出单片机对电信号 采集的电路以及软件编程。 (3)将模拟量转化为数字量并通过 spi 端口将数字量传输给另一块单片机。 (4)通过数码管显示数字量。 (5)对产品进行实验分析。 单片机课程设计 3 2酒精测试仪的背景知识 2.1 酒精测试仪的种类 随着生活水平的提高,中国社

16、会的私家车数量持续增加。随着私家车持有量持续 增加的是交通事故发生数量的不断提高,这其中就有相当一部分的交通事故是由酒后 驾车造成的。中国已经将酒后驾驶的行为定性为犯法,并列入到刑法中,相应的是越 来越多的人关注酒后驾驶这一问题,酒精测试仪的产生也就有了充足的理由。酒精测 试仪,对于交警在执法中检测驾驶人是否酒后驾车是一个十分重要的手段,也是最主 要的检测方法。 近年来随着经济迅速发展,人们的生活水平日夜提高。社会上灯红酒绿,车水马 龙的场景越来越常见。各式各样的应酬也越来越多,而酒这东西在这些场合中似乎总 少不了。而在交通安全中,酒驾作为交通安全的第一杀手,俨然已经引起了我们的高 度重视。酒

17、后驾车频频发生给人们的生活和生命安全带来了巨大的伤害。酒后驾驶引 起的交通事故是由于司机饮酒过多造成酒精浓度较高,导致精神麻痹,反应迟钝,肢 体不受大脑控制。而人体酒精浓度低于一个特定值时就不出现上述症状从而可以避免 发生危险。因此,当执法人员能及时合理有效地做好酒精的检测,才能有效控制酒驾, 减少司机的违法行为,保证交通安全。 所以,研究一个酒精测试是非常有必要和意 义的事。 当前可以对气体中酒精浓度进行测量检测的仪器大致上可以分为以下 5 种基本类 型:第一种,气体色谱分析型酒精浓度测试仪;第二种,电化学型酒精浓度测试仪; 第三种,比色型酒精浓度测试仪;第四种,半导体型酒精测浓度试仪;第五

18、种,红外 线型酒精浓度测试仪。就当前来说,最流行的两种是半导体型和电化学型两种类型的 酒精浓度测试仪。 2.2 mq-3 气敏酒精传感器介绍 由于价格和使用方便的原因,目前常用的只有燃料电池型(电化学型)和半导体型 两种类型。燃料电池是当前全世界都在广泛研究的环保型能源,它可以直接把可燃气 体转变成电能,还能不产生污染,酒精传感器只是燃料电池的一个分支。燃料电池酒 精传感器采用贵金属白金作为电极,在燃烧室内充满特种催化剂,使进入燃烧室内的 酒精充分燃烧转变为电能,也就是在两个电极上产生电压,电能消耗在外接负载上, 电压与进入燃烧室内气体的酒精浓度成正比。与半导体型相比,燃料电池型呼气酒精 测试

19、仪具有稳定性好,精度高,抗干扰性好的优点。但是由于燃料电池酒精传感器的 单片机课程设计 4 结构要求非常精密,制造难度相当大,加上材料成本高,因此价格相当昂贵,是半导 体酒精传感器的几十倍。 呼出气体酒精含量检测仪是公安交通管理部门判断驾车司机是否酒后驾车的主要 检测设备,是现场出具执法凭证的唯一手段。保证检测设备的准确性和统一性是保障公 民权益和交警依法行政、公平执法的必要条件3。所以,对于酒精测试仪而言对酒精传 感器的要求还是比较高的,要求传感器灵敏度要够高、抗环境干扰能力要强、输出信 号范围要够大,性能稳定性要够好。mq-3 气敏酒精传感器是本设计中检测部分的最核 心的部件,它的性能很大

20、程度上影响着整个酒精浓度测试仪的性能。 mq-3 气敏酒精传感器有微型三氧化二铝陶瓷管和二氧化锌敏感层、测量电极和加 热器件构成的敏感元件固定在塑料或者不锈钢的腔体内,加热器为气敏元件的工作提 供了必要的工作条件4。mq-3 气敏酒精传感器,因为其良好的识别能力、很长的使用 寿命、出色的抗干扰能力和抗腐蚀能力,在酒精传感器中是一款十分受欢迎的气敏酒 精传感器。mq-3 对乙醇蒸汽有很高的灵敏度和良好的选择性 快速的响应恢复特性长 期的寿命和可靠的稳定性简单的驱动回路非常适用于于机动车驾驶人员及其他风险作 业人员的酒后监督检测和其他场所乙醇蒸汽的探测。 mq-3 的工作环境:适用于酒精、探测范围

21、 10ppm 至 1000ppm 酒精、特征气体 125ppm 酒精、灵敏度 r in air/ rin typical gas5、敏感体电阻 1 至 20 千欧(空气中)、 响应时间小于 10s、恢复时间小于 30 秒、加热电阻 28 至 34 千欧、加热电流小于等于 180 毫安,加热电压 5 伏特。如图 2.1 是 mq-3 的结构和外形 2.2 所示是 mq-3 的标准 回路。 图 2.1 mq-3 的结构和外形 单片机课程设计 5 图 2.2 mq-3 的标准回路 2.3 传感器未来的发展趋势 众所周知,在气敏传感器的应用方面 ,目前最广泛的是可燃性气体气敏传感器,已普 及应用于气体

22、泄漏检测和监控,从工厂企业到居 民家庭,应用十分广泛。仅以用于安全 保护家用燃气泄漏报警器为例,日本早在 1980 年 1 月就开始实行安装城市煤气、液化 石油气报警器法规。美国目前已有 6 个州立法,规定家庭、公寓等都要安装 co 报警 器。而报警器的种类相当繁多,有用于一般家庭、集体住宅、饮食酒店 、医院、学校、 工厂的各种气体报警器和系统,有单体分离型报警器、外部报警系统、集中监视系统、 遮断联动系统、防止中毒报警防护系统等等。结构型式上有袖珍型便携式、手推式 、 固定式等;工业用固定式报警又有壁挂式、台放式、单台监控式 、多路巡检式等等。 近年来气体检测技术与计算机技术的相结合,实现了

23、气敏传感器的智能化和多功能化。 近些年来,科学技术的发展日新月异,传感器也搭上了科技发展的顺风车,半导体 技术的突飞猛进为传感器的发展带来了优越的条件。同时,现阶段各个系统对传感器 的要求也越来越高,传感器的未来发展必然有以下几种方向。 第一,由于当前的各种产品都期望在有限的物理空间内完成功能更加强大的产品, 所以就要求产品的各个部件能够完成更多的工作。当前的传感器大多都是为了其它控 制系统服务的并不能够自主进行数据处理等工作,如果传感器内部可以集成某种特殊 功能的芯片,就可以感器可以独立的完成特定的任务,实现一定程度的智能化。所以 说智能化是传感器发展的一个必然的方向。第二,传感器功能的多样

24、化,在一个复杂 的系统上可能需要很多种不同的传感器,如果有一种传感器可以同时实现多种功能, 那么将会极大的减少有限的物理空间的占用和简化外围电路。那么,传感器功能的多 样化也是一个十分有意义的研究方向。第三,为了满足传感器多功能的开发和智能化 拓展的需要,传感器的固态化是必要的条件,目前物理型传感器因其反应灵敏便于集 成等优点发展的十分迅猛。 目前传感器产业将进一步向着生产规模化、专业化和自动化方向发展。随着新型 单片机课程设计 6 敏感材料的加速开发和各种新技术的综合运用 ,同时伴随着电子技术突飞猛进的发展, 传感器行业近几年的发展速度较快 ,其中气敏传感器作为产业化发展 的重点产品之一,广

25、泛应用于建材、化工、建筑、环保、疗、家电等领域,已获得长足 的进步。要体现在: 第一,目前用于工业上的气敏传感器的主要产品包括可燃性气敏传感器、co、n h 3 、no 等毒性气敏传感器、氧传感器、溶氧传感器等。此外气敏传感器还广泛应用 于居民家庭,如气体泄漏检测、人工嗅觉等等。第二,随着新材料、新工艺和新技术的 应用, 气敏传感器的性能更趋完善,使传感器的小型化、微型化和多功能化具有长期稳定性好、 使用方便 、价格低廉等优点。具有微处理器的气敏传感器实现了智能化、多功能化。 第三,气敏传感器将在充分利用微机械与微电子技术、计算机技术、信号处理技术、 传感技术、故障诊断技术、智能技术等多学科综

26、合技术的基础上得到发展。第四,生 物芯片的开发和数据处理能力的提高将大大推动 “闻” 、 “尝” 、 “触”这三种感觉 传感器的发展和性能的提高,从而使我们对周围世界的认识进人更深的层次,同时也将在 诸。多领域为我们提供方便而有效的工具。第五,随着纳米技术和蓝牙技术的进一步 发展, 纳米传感器和蓝牙传感器将获得巨大的发展。第六,气敏传感器具有十分广阔的现实 市场和潜在的市场需求14。 2.4 传感器的原理 传感器是一种能够感受被测量并按照一定的规律将被测量转换成可用输出信号的器 件或装置,它是获取信息的重要工具,在现代测控系统和自动控制系统中占有重要的 地位。早在 20 世纪 30 年代人们就

27、已发现金属氧化物具有气敏效应,而半导体气敏元 件则是在 60 年代初期研制成功的,最先研制的 zno 薄膜元件,它是利用 zno 薄膜电 阻接触的可燃性气体浓度增加而下降,实现对可燃性气体检测。继而又发现在 sno2 中 添加 pt 或 pd 等贵重金属做增感剂能提高其灵敏度。 电化学气体传感器利用气敏电极或者气体扩散电极等构成一系列电池测量各种气体 含量, 其中气敏电极测量一些溶解在溶液中气体的含量或者用于环境监测, 如 o2、 co2、 so2、 nh3、hcn、 hf 等气体,尤其是固体电解质气敏传感器能适应高温、 高 压等恶劣环境和高浓度的场合。这些气体传感器结构简单,选择性好,而且能

28、快速响应, 便于自动测量和控制。 单片机课程设计 7 2.5 气敏传感器的发展状况和技术水平 在应用方面,目前最广泛的是可燃性气体气敏元件传感器,已普及应用于气体泄漏 检测和监控,从 工厂企业到居民家庭,应用十分广泛。仅以用于安全保护家用燃气泄 漏报警器为例,日本早在 1980 年 1 月开始实行安装城市煤气、液化石油气报警器法规, 1986 年 5 月日本通产省又实施了安全器具普及促进基本方针。美国目前已有 6 个州立 法,规定家庭、公寓等都要安装 co 报警器。报警器种类也相当繁多,有用于一般家 庭、集体住宅、饮食餐店、医院、学校、工厂的各种气体报警器和系统,有单体分离 型报警器、外部报警

29、系统、集中监视系统、遮断连动系统、防止中毒报警防护系统等。 结构型式有袖珍型便携式、手推式、固定式报警等;工业用固定式报警又有壁挂式、 台放式、单台监控式、多路巡检式等。气体检测技术与计算机技术相结合,实现了智 能化、多功能化。美国工业科学公司(isc)一台携带式气体监控仪可实现 4 种气体监 测,采用了统一的软件,只需要换气体传感器,即可实现对特定气体监测。美国国际 传感器技术(ist)公司应用一种“megacas传感器和微程序控制单元,可检测 100 种 以上毒性气体和可燃性气体,通过其“气体检索”功能扫描,能很快确定是哪一种气 体。 国外气体传感器发展很快,一方面是由于人们安全意识增强,

30、对环境安全性和生 活舒适性要求提高;另一方面是由于传感器市场增长受到政府安全法规的推动。因此, 国外气体传感器技术得到了较快发展,据有关统计猜测,美国 1996 年2002 年气体传 感器年均增长率为(2730)。总的看来,我国气敏元件传感器及其应用技术有了 较快进展,但与国外先进水平仍有较大的差距,主要 是产品制造技术、产业化及应用 等方面的差距,与日本比较仍要落后 10 年。 单片机课程设计 8 3硬件设计 3.1 总体设计方案 设计的过程中难免会遇到一些理论上或者是技术上的问题。例如,对知识点的掌 握不够透彻。这就需要再回归参考资料,仔细琢磨,实在不懂就请教指导老师。再比 如,制板过程中

31、,由于操作失误,烧坏了元器件。这要求我们必须细心地按照准确的 方法一步一步地完成对应步骤,尽量避免技术错误。而在这之前,最好先准备多几份 材料,以防万一。由于本人知识掌握的有限,所以在设计中难免会出现一些纰漏。但 是在毕业设计的过程中本人一定会本着认真、仔细的态度积极主动的去完成毕业设计。 本设计的最终目的是通过单片机配合酒精传感器完成一台酒精浓度检测仪的设计 与制作。期望能够完成以下几项目标:第一,制作出功耗低、性能稳定、价格低廉的 实物;第二,能够精确采集到酒精浓度的信号,测量精确反映迅速;第三,可以通过 spi 端口进行数据的传输通信;第四,制作出体积小便于携带操作简单的酒精浓度测试 仪

32、;第五,程序设计简单易懂,可移植性和改进性强。 本设计可分为四个系统模块,即 mq-3 气敏酒精传感器外围电路模块、单片机 ad 识别采集模块、spi 端口双机通信模块,数码管显示模块。如图 3.1 所示,即系统框图。 图 3.1 系统框架图 3.1.1 单片机的最小系统 单片机的最小系统是保证单片机正常运行的基本条件,单片机的最小系统应该包 单片机课程设计 9 括电源电路、时钟电路,复位电路。电源电路的作用是给单片机提供工作的电压源, 给单片机供电。时钟电路,是单片机工作时的时间基准,在很大程度上影响着单片机 的运行速度,单片机在进行程序或者指令的操作时必须要有序的进行,必须保证时间 上的先

33、后顺序以防止发生冲突。时钟可以分为内部时钟和外部时钟两种。复位电路可 以保证单片机的初始工作状态。单片机的复位形式可以分为上电复位和按键复位两种 形式,无论哪种的复位形式,都必须保证单片机的复位引脚上连续保持超过两个机器 周期的高电平。如图 3.2 所示,pic16f877 单片机的最小系统电路图。 图 3.2 最小系统 3.1.2 ad 模块 本设计中使用的 pic16f877 单片机集成了 a/d 转换芯片,精确度是 10 位。 pic16f877 单片机拥有 8 条 a/d 转换的通道,有很多基准原可供选择。10 位分辨率的 a/d 转换。转换后可以输出数字量的范围是 0 x0000(0

34、)到 0 x03ff(1023) 。要实现 a/d 转换的功能,主要就是对 ad 相关的寄存器进行设置,以达到读取转换结果寄存 器 adresh 和 adresl 中的数据的目的。接下来介绍一下 ad 相关的主要寄存器。 表 3.1adcon0 寄存器 地址寄存器bit 7bit 6bit 5bit 4bit 3bit 2bit 1bit 0 0 x1fadcon0adcs1adcs0chs2chs1chs0go/donexadon bit0 adcon:a/d 转换器开关位。bit0 等于 1 的时候,a/d 转换器开始工作。 bit0 等于 0 的时候,a/d 转换器停止工作,当前的 a/

35、d 转换寄存器并不会耗费任何的 电能。bit1 为空闲位,并不会进行赋值,可以读取数值并且为 0。bit2 go/done:a/d 转换器的启动位和状态位,只有当 bit 等于 1,开启 a/d 转换器的时 候才会发挥作用。当 bit2 等于 0 的时候,a/d 转换器当前正在进行工作中,并且 a/d 转换器会开启另一次 a/d 转换。当 bit2 等于 0 的时候,表示 a/d 转换已经完成工作, 并且由硬件进行自动清零的工作。bit5:bit3 chs2:chs0 :a/d 转换器模拟通道选 单片机课程设计 10 择位。分别为 0 0 0 的时候 an0 开启,表示着这时候模拟通道 0 已

36、经选通。为 0 0 1 的时候 an1 开启,表示着这时候模拟通道 1 已经选通。为 0 1 0 的时候 an2 开启, 表示着这时候模拟通道 2 已经被选通。为 0 1 1 的时候 an3 开启,表示着这时候模拟 通道 3 已经被选通。为 1 0 0 的时候 an4 开启,表示着这时候模拟通道 4 已经选通。 为 1 0 1 的时候 an5 开启,表示着这时候模拟通道 5 已经选通。为 1 1 0 的时候 an6 开启,表示着这时候模拟通道 6 被选通。为 1 1 1 的时候 an7 开启,表示着这时候模 拟通道 7 已经选通。bit7 和 bit6:adcs1:adcs0,a/d 转换器的

37、时钟的选择位。为 0 0 时,转换时钟是单片机主频的二分频。为 0 1 时,转换时钟是单片机主频的八分频。 为 1 0 时转换时钟是单片机主频的三十二分频。为 1 1 时,转换时钟是 a/d 转换器自 带的 rc 振荡器。 表 3.2 adcon1 寄存器 地址寄存器bit7bit6bit5bit4bit3bit2bit1bit0 0 x9eadcon1adfmxxxpcfg3pcfg2pcfg1pcfg0 bit3 到 bit0 是 a/d 端口的配置维,具体的相关内容将会在表 3.3 中详细给出。 bit6 到 bit4,并未使用,不需要进行设置。bit7 adfm:a/d 转换格式的选择

38、位。 adfm 等于 1 时,a/d 转换器将转换结果保存数据的低 8 位在 adresl 寄存器中,保 存数据的高两位在 adresh 寄存器当中,并将这种保存方式称作左对齐模式。当 adfm 等于 0 时,a/d 转换器将转换结果保存数据的高 8 位在 adresh 寄存器中,保 存数据的低两位在 adresl 寄存器当中,并将这种保存方式称作右对齐模式。表 3.3 中给出了 a/d 相关端口配置位功能的详细信息5。 表 3.3a/d 端口配置位功能对照表 pcfg3 pcfg0 re2 an7 re1 an6 re0 an5 ra5 an4 ra3 an3 ra2 an2 ra1 an1

39、 ra0 an0 hl 0000aaaaaaaavddvss 0001aaaahaaara3vss 0010dddaaaaavddvss 0011dddahaaara3vss 0100ddddadaavddvss 0101ddddhdaara3vss 011xddddddddvddvss 1000aaaahlaara3ra2 1001ddaaaaaavddvss 1010ddaahaaara3vss 1011ddaahlaara3ra2 1100dddahlaara3ra2 1101ddddhlaara3ra2 1110ddddd ddavddvss 1111ddddhddara3ra2 表

40、3.3 缩写说明,a 是模拟量输入引脚;d 是数字量输入引脚;h 是参考电压上限; l 是参考电压下限;vdd 是单片机供电的高电平;vss 信号地,低电平5。 单片机课程设计 11 同时还有两个寄存器和 a/d 转换器息息相关,即 adresh 寄存器和 adresl 寄 存器,但是实际工作中并不需要程序对这两个寄存器进行位设置操作,只需要读取寄 存器中的数据就可以。 3.1.3spi 双机通信模块 本设计中双机通信部分是通过单片机的 spi 端口实现的。通信的两片单片机一定 有一方是主控的,要进行同步时钟的发送、建立起通信。而另一方是受控放,被动的 进行数据和信号的接受或者发送6。双机通信

41、中,通信的两片单片机必须完全严格的遵 守 spi 总线的串口通信协议,进行数据或者信号的发送和接受。 双机通信的工作流程:主机作为通信的发起者,将通信的数据写入到 sspbuf 中 开始通信过程,没 8 个时钟周期进行一次数据的传送或者接收。在通信过程中,前面 是要传送的数据的高位,后面是数据的低位。无论是主机还是从机都必须是在同一个 时钟的信号的上升沿或者下降沿,进行数据的移位。在数据稳定之后的另外一个变化 沿进行采样。 当接受完一个字节后中断标志位 sspif 和缓存器满标志位 bf 会相应的被置为 1。 当数据接收的最后一位被锁定之后或者发送的最后一位数据被移出之后,中断标志位 sspi

42、f 置为 16。如图 3.3 所示就是 spi 的时序图。 图 3.3 时序图 功能特点以及系统结构:spi 模式允许 8 位数据同时发送和接收。pic16f877 单片 机的 spi 模式支持 4 种 spi 模式。在主控模式下使用 3 路信号进行数据通信。第一, rc5/sdo 是串行数据输出信号;第二,rc4/sdi/sda 是串行数据输入信号;第三, rc3/sck/scl 是串行时钟信号。当 spi 接口工作在从属模式的时候,可以利用第四个 引脚进行从属选择。ra5/an4/ss 就是从属选择信号。spi 模块的配置非常灵活,主要 有一下几种特点。第一,主从模式可编程;第二,时钟信号

43、极性可编程;第三,数据 输入采样阶段可编程;第四,输出数据的时钟边沿可编程;主控模式下的时钟速率可 编程7。如图 3.4 中,主控方与从动方的时钟引脚相互连接,并且有主机进行时钟的发 送。主机输出的数据信号与从机的接受数据信号相互连接。在通过程序控制的时候应 单片机课程设计 12 该准确的设置对应的引脚的方向才可以保证主控方进行正常的工作。 图 3.4 主控方发送方式的硬件连接示意图 pic16f877 除了主控发送操作之外,还可以进行主控接送操作,也就是所谓的全 双工通信模式。主控接收模式的硬件连接,对于主机而言需要对 i/o 端口进行如下的 配置:第一,rc3/sck 设置为输出,以满足主

44、机进行时钟的输出;第二,sdi 设置为 输入,以达到接受从机的数据的目的;第三,如果主机只需要进行接收操作并不需要 进行发送操作的时候,sdo 允许置为输入,能够减少外界的干扰。对于从动发送模式 而言,需要对 i/o 端口进行如下设置:第一,rc3/sck 设置为输入;第二 sdo 设置为 输出,方便对主控方发送数据;和主控方接受模式相类似,如果从动方只需要进行发 送操作不需要进行接受操作的时候,同样可以将 sdo 设置为输出,以防止干扰。图 3.5 给出从动接受模式硬件连接示意图。 单片机课程设计 13 图 3.5 从动接受模式的硬件连接示意图 图 3.5 将会给出两片 pic16f877

45、通过 spi 方式互联的示意图。 图 3.6 互联示意图 图 3.6 是 spi 接口电路结构图。spi 的核心部分就是数据缓冲器 sspbuf 和由 sspubf 实现装载与与卸载的数据移位寄存器 sspsr。 单片机课程设计 14 图 3.7 接口结构示意图 3.1.4 显示模块 本设计中的现实模块,将会使用 4 位一体数码管进行结果的现实。pic 单片机驱 动数码管可以通过很多方法实现。大体上可以分为静态输出驱动、动态输出静态驱动 和动态扫描等几种方式8。图 3.8 是七段 led 数码管的示意图。 图 3.8 七段 led 数码管示意图 pic16f877 单片机静态输出驱动七段 le

46、d 数码管,理论依据就是给每一段数码管 施加驱动,以完成特定字符的显示。可以通过单片机直接进行驱动也可以通过 8421 码 输出七段译码驱动。单片机可以通过 i/o 端口直接对数码管的每段进行亮或者暗的控 制,通过不同的亮暗配合现实数码。 一位数码管的现实需要 pic16f877 上的 8 个 i/o 端口进行配合,除了可以实现数 字的显示之外同时还可以实现 a、h、f、e,p 等几个特殊的字母。本设计中只要求现 实数码即可。 所谓的静态数码管现实就是显示输出电路能够进行锁存操作,单片机需要完成的 唯一的工作就是将要显示的数据输出,如果并没有发生发送下一组数据的请求,那么 单片机的状态将不进行

47、任何改变,占用很少的 cpu 时间资源。与之相对应的是数码管 的动态扫描显示,动态扫描要求不断的对数据进行更新工作,数码管上显示出的数据 并不会特别稳定,数码管动态扫描相对于静态扫描来说会占用更多的 cpu 时间资源。 数码管的译码有两种形式即,硬件译码和软件译码。所谓的译码就是驱动数码管 显示特定的数码。硬件译码,就是有硬件独立完成译码的过程,整个过程中 cpu 只需 要发送出标准的 bcd 码就可以,但是外围电路相比软件译码要复杂一些。软件译码, 就是通过软件代替硬件完成译码的工作,相比于硬件译码方式更加的灵活方便,同时 软件译码的方式也比硬件译码的方式更加的流行。本设计中将会采用的是动态

48、扫描、 软件译码的方式进行数码的显示。 3.2 单片机仿真以及电路 如 3.9 所示即单片机仿真电路图,3.10 实物工作图。 单片机课程设计 15 图 3.9 单片机仿真示意图 图 3.10 实物工作图 单片机课程设计 16 4软件设计 4.1 总体方案 本设计的软件部分将会完成一下几项功能,实现模拟信号采集的程序设计、模拟 量转化为数字量的程序设计、spi 双机通信的程序设计,数码管显示的程序设计。 4.2 程序流程图 主程序,分为系统初始化、按键处理以及各个子程序(包括 ad 采集子程序、a/d 转 换子程序、spi 双机通信子程序、led 显示子程序)的调度管理等部分。如图 4.1 所

49、示 描述了各个模块的关系 图 4.1 系统程序流程 4.3 软件编程语言的选择 可供选择的语言有 c 语言和汇编语言,汇编语言与 c 语言各自有各自的优点,同 时汇编语言与 c 语言都可以独立完成单片机软件编程的任务,值得一提的是,还有一 种编程方式是汇编语言与 c 语言相互配合完成单片机软件编程的任务。 在实际的系统中,往往可以通过很多种程序完成同一项工作,所以即使都可以完 成工作,那么程序与程序之间同样存在着优劣。一个好的程序往往应该是完成同一项 系统初始化 按键检测 ad 采集 a/d 转换 双机通信 led显示 单片机课程设计 17 工作的 时候拥有更快的运行速度、占用更少的存储单元这

50、是评价程序的时间和空间标 准。另外,程序设计的逻辑性较强、层次清楚、数据结构合理,便于阅读也是评价一 个程序好坏的重要标准9。 4.3.1 汇编语言 汇编语言是面向机器的程序设计语言,简单来说就是用规定的字符来代替机器指 令的 2 进制数码。对于单片机学习者来说,汇编语言对我们认识单片机的内部结构或 者是工作方式、工作原理等都非常的有帮助。一个单片机的项目组成无非就是硬件与 软件的合理的进行配合工作,软件就是通过不同的指令组成的一个程序,汇编语言相 对于 c 语言来说,占用的存储空间较小,同时也拥有更高的运行速度。因为汇编语言 是面向机器的编程语言,所以代码的执行率也会更高一些。汇编语言比较适

51、合,内存 储资源比较紧张的系统中,汇编语言有自己的独特优势。 单片机只能够对二进制的机器码令进行识别,是一种最低级的编程语言。汇编语 言就是将,机器码令用汇编指令的形式表示出来,能够增加程序的可读性和简化程序。 但是单片机并不能够对汇编语言指令直接进行识别操作,所以在实际工作中还需要编 译器对汇编程序进行编译以方便单片机执行指令代码。除了借助编译器对汇编进行编 译还可以人工直接进行代码的编译,但是一般是不会采用这种方式的,编译器的效率 要远远大于人工编译的效率。对于 pic16f877 而言,如果想要借助于编译器编译汇编 代码的话,那么一定要遵守会变其的一些规定才可以进行编译工作。常用的一款编

52、译 器 mpasm 是微芯公司出品的,以这款软汇编器为例,汇编语句的格式应该是如下格 式: 标号 操作码 操作数 注释 一般来说,以上 4 个字段组成一个语句,但是也不是必须由 4 个字段组成一个语 句。汇编语言的源程序,在编写程序的时候可以根据个人喜好选择是大写或者小写或 者说大写与小写混合使用。 4.3.2 c 语言 当前看来,c 语言是应用范围最为广发的语言之一,它具有特别好的可移植性, 使用也十分的灵活,多样的数据类型,重要的是 c 语言基本上可以完成所有汇编语言 可以完成的工作。机器语言与汇编语言的面向对象都是机器,也正因为这个一般都会 称机器语言与汇编语言为低级语言。低级语言的移植

53、性太差,过于的依赖机器,不具 备太好的通用性10。 以单片机为例子,用 c 语言编程的单片机程序一般都可以移植给其它类型款式的 单片机,通用性能优越。但是,用汇编语言进行编程的单片机程序就很难进行移植, 因为不同款式单片机汇编的指令也会有较大的区别,对于不同款式的单片机,汇编语 言的程序可参考性很小。 单片机课程设计 18 在保证程序正确的前提下,程序设计的主要目标是程序的可读性、易维护性和可 移植性。程序是否可读,很大程度上取决于编程者的书写代码的风格,而且要求编程 语言要尽可能的接近于自然语言。所谓的程序的易维护性,就是说当程序需要修改调 试的时候,需要改动的地方要少。一个可移植性好的程序

54、,应该在各种计算机和操作 环境中都能够运行,并且运行的结果一定要一致。很明显,机器语言和汇编语言这两 种低级语言是很难完成程序移植的目标的。一个 c 源程序编写完成后,就可以进入输 入、编译与运行的过程11。c 语言也是本设计将选用的编程语言。 4.3.3 汇编语言与 c 语言混合编程 汇编语言的机器代码生成效率高、执行速度快,但是可读性并不强;而 c 语言的 可读性和可移植性却远远超过了汇编语言,用 c 语言开发大中型软件的周期要比用汇 编语言开发短很多,但 c 语言很难解决高时效性等代码编写的问题,此时便可以利用 汇编语言来实现12。这时候汇编语言与 c 语言的混合编程变可以派上用场了。

55、目前来说可以通过两种办法实现汇编语言与 c 语言的混合编程。最流行的方法是 分别编写 c 语言程序与汇编语言程序,分别进行编译形成独立的模块。还有一种方法 是,在 c 语言的程序中直接嵌入汇编语言的程序,目前来说采用这种方法实现汇编语 言与 c 语言混合编程的比较少。 c 程序可以调用汇编语言的子程序和在汇编语言中定义的变量,汇编语言也可以 调用 c 语言编写的函数和定义的变量。进行混合编程的时候,一个任务往往被分为若 干功能模块,每个模块以函数的形式存在,根据每一模块的特点选用适合的语言独立 编程,然后使用相应的语言编译系统对其进行编译形成目标文件,最后将多个目标文 件连接在一起形成一个完整

56、的可执行的文件13。 4.4 主要模块的程序设计主要模块的程序设计 4.4.1 a/d 转换模块 c 程序设计 a/d 转换模块 c 程序的工作内容是识别出酒精传感器输出的模拟电信号并转化为 数字量。采用中断方式把模拟通道 ano 的 10 位 a/d 转换结果送到 d 口,c 口显示。 下面将会给出主要测 c 程序代码。 #include _config(xt/icd2 调试配置字 interrupt isr(void) if(adif/a/d 标志位清零 portc=adresl; portc=adresh; 单片机课程设计 19 adgo=1;/启动下一次 a/d 转换 else whi

57、le(1);/调试用,如果有其它中断才会用到此处 void main() char i =0; trisa0=1; trisd=0; trisc=0; adcon1=0b00000000;/设置 adcon1 寄存器 adcon0=0b11000001;/设置 adcon0 寄存器 adie=1; /准许 a/d 转换产生中断 adif=0; gie=1; for(i=0;i25;i+) /为保持采样的延时 adgo=1;/启动一次 a/d 转换 while(1) 以上就是 a/d 转化的 c 程序代码,由于 a/d 转换是本设计的核心模块之一,所以 将 a/d 转换的代码列出。 4.4.2

58、spi 双机通信模块 c 程序设计 本设计中最核心的两个模块就是 a/d 转换模块和 spi 双机通信模块,由于双机通信 中设计的代码较多而且篇幅有限,我将会只列出比较关键的程序代码。双机通信过程 中,主机和从机都相应的有自己所对应的程序代码。 主控接收主机的程序代码: 单片机课程设计 20 unsigned char mspi_getchar(void) unsigned char readtest=6;/spi 双机通信期间读取测试用变量 sspbuf=0 x0; /随意发送一个数据,为了使 sck 输出时钟 while(sspif=0) /sspif 为 0 说明接收未完成 /退出循环说

59、明接受完毕 sspif=0 , /清空标志位,为下一次接受做准备 return(sspbuf); /bf 自动清空 从机发送数据程序: void spi_putchar(unsigned char data) sspbuf=date; /把要发送的数据放在数据缓冲器 sspbuf 中 while(sspif=0) /sspif 为 0 说明发送未完成 /循环退出说明发送完成 sspif=0; /必须手动清零 单片机课程设计 21 5软件工具的介绍及应用 maplab ide 是微芯公司为 pic 单片机配备的功能强大的软件集成开发环境,是一 款集成了多种单片机应用开发工具和软件于一体的、功能完

60、善的软件包。mplab 有一 下几项核心的功能。第一,maplab 集成开发环境;第二,工程项目管理器;第三, 源程序编辑器;第四,汇编器;第五,链接器;第六,硬件调试器;第七,软件模拟 器。如图 5.1 是 maplab 的工作界面。 图 5.1 工作界面 从图 5.1 能够明确,从上到下有 5 个组成部分依次是:标题栏、菜单栏、工具栏、 工作窗口和状态栏。 标题栏:显示项目文件或者源文件的名称及其所在的目录。最左边是一个系统按钮, 右边是 3 个窗体的控制按钮。菜单栏:共有九个菜单选项。从左到右依次为文件、项 目、编辑、调试、选项、工具、窗口和帮助。每个菜单选项控制着一个下拉菜单,有 的下

温馨提示

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

评论

0/150

提交评论