压力检测系统设计_第1页
压力检测系统设计_第2页
压力检测系统设计_第3页
压力检测系统设计_第4页
压力检测系统设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、 单片机系统课程设计单 片 机 系 统 课 程 设 计成绩评定表设计课题 : 压力检测系统设计学院名称 : 电气工程学院专业班级 : 自动 1304学生姓名 : 赵博学号 : 201323020417指导教师 : 王黎周刚李攀峰设计地点 : 31-505设计时间 : 2015-12-282016-01-08单片机系统课程设计课程设计名称: 压力检测系统设计专 业 班 级 : 自动 1304学 生 姓 名 : 赵博学号 : 201323020417指 导 教 师 : 王黎周刚李攀峰课程设计地点: 31-505课程设计时间: 2015-12-282016-01-0821 单片机系统课程设计任务书学

2、生姓名赵博专业班级自动 1304学号201323020417题目压力检测系统设计课题性质工程设计课题来源自拟指导教师王黎周刚李攀峰主要内容(参数)利用 89C51 单片机设计一个压力检测系统设计,实现功能如下:通过压力传感器将压力转换成电信号,再经过运算放大器进行信号放大,送至 8 位 AD 转换器,然后将模拟信号转换成单片机可以识别的数字信号, 再经单片机转换成 LED 显示器可以识别的信息,最后显示输出。而在显示的过程中通过键盘,向计算机系统输入各种数据和命令,让单片机系统处于预 定的功能状态,显示需要的值。任务要求(进度)第 1-2 天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案

3、。第 3-4 天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。第 5-6 天:软件设计,编写程序。第 7-8 天:实验室调试。第 9-10 天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。主要参考资料1张迎新单片微型计算机原理、应用及接口技术(第 2 版)M北京:国防工业出版社,20042伟福 LAB6000 系列单片机仿真实验系统使用说明书3 阎石数字电路技术基础(第五版)北京:高等教育出版社,2006审查意见系(教研室)主任签字:年月日目录1 绪论41.1 压力检测系统概述42 总

4、体方案设计原理42.1 基于单片机的智能压力检测的原理42.2 压力传感器52.2.1 压力传感器的选择52.2.2 金属电阻应变片的工作原理52.3 A/D 转换器62.3.1 A/D 转换模块器件选择62.3.2 A/D 转换器的简介62.4 单片机72.4.1 AT89C51 单片机简介72.4.2 主要特性82.4.3 管脚说明92.5 单片机于键盘的接口技术92.5.1 键盘功能及结构概述92.5.2 单片机与键盘的连接102.6 LED 显示接口122.6.1 LED 显示器122.6.2 七段数码显示器132.6.3 LED 数码管静态显示接口143 软件设计153.1 A/D

5、转换器的软件设计153.1.1 ADC0832 芯片接口程序的编写153.2 单片机与键盘的接口程序设计173.3 LED 数码管显示程序设计18总结21参考文献21附录 A22附录 B231 绪论1.1 压力检测系统概述压力是工业生产过程中的重要参数之一。压力的检测或控制是保证生产和设备安全运行必不可少的条件。实现智能化压力检测系统对工业过程的控制具有非常重要的意义。本设计主要通过单片机及专用芯片对传感器所测得的模拟信号进行处理,使其完成智能化功能。介绍了智能压力传感器外围电路的硬件设计,并根据硬件进行了软件编程。本次设计是基于 AT89C51 单片机的测量与显示。是通过压力传感器将压力转换

6、成电信号,再经过运算放大器进行信号放大,送至 8 位 AD 转换器,然后将模拟信号转换成单片机可以识别的数字信号,再经单片机转换成 LED 显示器可以识别的信息,最后显示输出。而在显示的过程中通过键盘,向计算机系统输入各种数据和命令,让单片机系统处于预定的功能状态,显示需要的值。本设计的最终结果是,将软件下载到硬件上调试出来了需要显示的数据,当输入的模拟信号发生变化的时候,通过 A/D 转换后,LED 将显示不同的数值。2 总体方案设计原理2.1 基于单片机的智能压力检测的原理本次设计是以单片机组成的压力测量,系统中必须有前向通道作为电信号的输入通道,用来采集输入信息。压力的测量,需要传感器,

7、利用传感器将压力转换成电信号后,再经放大并经 A/D 转换为数字量后才能由计算机进行有效处理。然后用 LED 进行显示,而键盘的作用是改变输入量的系数的。它的原理图如图 1.1 所示。压力传感器放大器显示单片机A/D 转换键盘图 1.1 压力测量仪表原理方框图我们这次主要做的是 A/D 转换,单片机键盘和显示,我们选用的 A/D 转换器是ADC0832,单片机为 AT89C51,键盘为 4 乘 4 的键盘,显示为 4 位数码管显示。根据硬件电路编程,调试出来并显示结果。2.2 压力传感器2.2.1 压力传感器的选择压力传感器是压力检测系统中的重要组成部分,由各种压力敏感元件将被测压力 信号转换

8、成容易测量的电信号作输出,给显示仪表显示压力值,或供控制和报警使用。力学传感器的种类繁多,如电阻应变片压力传感器、半导体应变片压力传感器、压阻 式压力传感器、电感式压力传感器、电容式压力传感器谐振式压力传感器及电容式加速度传感器等。 而电阻应变式传感器具有悠久的历史。由于它具有结构简单、体积小、使用方便、性能稳定、可靠、灵敏度高动态响应快、适合静态及动态测量、测量精度高等诸多优点,因此是目前应用最广泛的传感器之一。电阻应变式传感器由弹性元件和电阻应变片构成,当弹性元件感受到物理量时,其表面产生应变,粘贴在弹性元件表面的电阻应变片的电阻值将随着弹性元件的应变而相应变化。通过测量电阻应变片的电阻值

9、变化,可以用来测量位移加速度、力、力矩、压力等各种参数。2.2.2 金属电阻应变片的工作原理应变式压力传感器是把压力的变化转换成电阻值的变化来进行测量的,应变片是由金属导体或半导体制成的电阻体,是一种将被测件上的应变变化转换成为一种电信号的敏感器件。它是压阻式应变传感器的主要组成部分之一。当金属丝受外力作用时,其长度和截面积都会发生变化,从上式中可很容易看出, 其电阻值即会发生改变,假如金属丝受外力作用而伸长时,其长度增加,而截面积减 少,电阻值便会增大。当金属丝受外力作用而压缩时,长度减小而截面增加,电阻值则会减小。只要测出加在电阻的变化(通常是测量电阻两端的电压),即可获得应变金属丝的应变

10、情。2.3 A/D 转换器模拟量输入通道的任务是将模拟量转换成数字量。能够完成这一任务的器件称之为模数转换器,简称 A/D 转换器。本次设计的中 A/D 转换器的任务是将放大器输出的模拟信号转换位数字量进行输出。2.3.1 A/D 转换模块器件选择目前单片机在电子产品中已得到广泛应用,许多类型的单片机内部已带有 A/D 转换电路,但此类单片机会比无 A/D 转换功能的单片机在价格上高几元甚至很多,我们采用一个普通的单片机加上一个 A/D 转换器,实现 A/D 转换的功能,这里 A/D 转换器可选 ADC0832、ADC0809 等;串行和并行接口模式是 A/D 转换器诸多分类中的一种,但却是应

11、用中器件选择的一个重要指标。在同样的转换分辨率及转换速度的前提下,不同的接口方式会对电路结构及采用周期产生影响。对 A/D 转换器的选择我们通过比较ADC0809 和 ADC0832 来决定。这两个转换器都是常见的 A/D 转换器,其中 ADC0809 的并行接口 A/D 转换器,ADC0832 是串行接口 A/D 转换器。我们所做的设计选择ADC0832,A/D 转换在单片机接口中应用广泛 ,串行 A/D 转换器具有功耗低、性价比较高、芯片引脚少等特点。2.3.2 A/D 转换器的简介在这次设计中我们 A/D 转换器选用两通道输入的八位 ADC0832,ADC08323是美国国家半导体公司生

12、产的一种 8 位分辨率、双通道 A/D 转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。ADC0832 为 8 位分辨率 A/D 转换芯片,其最高分辨可达 256 级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在 05V 之间。芯片转换时间仅为 32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变得更加方便。通过 DI 数据输入端,可以轻易的实现通道功能的选择。有关引脚说明如下: CS 片选使能,低电平芯片使能。 CH0 模拟输入通

13、道 0,或作为 IN+/-使用。 CH1 模拟输入通道 1,或作为 IN+/-使用。 GND 芯片参考 0 电位(地)。 DI 数据信号输入,选择通道控制。 DO 数据信号输出,转换数据输出。 CLK 芯片时钟输入。 Vcc/REF 电源输入及参考电压输入(复用)。正常情况下 ADC0832 与单片机的接口应为 4 条数据线,分别是CS、CLK、DO、DI。它的结构示意图如图 2.6 所示。图 2.3 ADC0832 结构示意图2.4 单片机随着电子技术的发展,单片机的功能将更加完善,因而单片机的应用将更加普及。它们将在智能化仪器、家电产品、工业过程控制等方面得到更广泛的应用。单片机将 是智能

14、化仪器和中、小型控制系统中应用最多的有种微型计算机。2.4.1 AT89C51 单片机简介AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储的低电压,高性能 CMOS8 位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C2051 是它的一种精简版本,如图 2.9 所示。AT89C51 单机为很多嵌入式控制系统提供灵活性高且廉价的方案。

15、图 2.4 AT89C51 单片机的结构示意图2.4.2 主要特性 与 MCS-51 兼容4K 字节可编程闪烁存储器寿命:1000 写/擦循环数据保留时间:10 年 全静态工作:0Hz-24Hz 三级程序存储器锁定128*8 位内部 RAM32 可编程 I/O 线 两个 16 位定时器/计数器5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路2.4.3 管 脚 说 明 VCC:供电电压。GND:接地。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储

16、器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部

17、上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(I

18、LL)这是由于上拉的缘故。P3 口也可作为AT89C51 的一些特殊功能口。2.5 单片机于键盘的接口技术2.5.1 键盘功能及结构概述键盘是单片机系统实现人机对话的常用输入设备。操作员通过键盘,向计算机系统输入各种数据和命令,亦可通过使用键盘,让单片机系统处于预定的功能状态。键盘按照其内部不同电路结构,可分为编码键盘和非编码键盘二种。编码键盘本身除了带有普通按键之外,还包括产生键码的硬件电路。使用时,只要按下编码键盘的某一个键,硬件逻辑会自动提供被按下的键的键码,使用十分方便,但价格较贵。由非编码键盘组成的简单硬件电路,仅提供各个键被按下的信息,其他工作由软件来实现。由于价格便宜,而且使用灵

19、活,因此广泛应用在单片机应用系统中。非编码键盘按照其键盘排列的结构,又可分为独立式按键和行列式按键两种类型。2.5.2 单片机与键盘的连接键盘与单片机的连接在单片机系统中键盘中按钮数量较多时,为了减少 I/O 口的占用,常常将按钮排列成矩阵形式,如 2.13 图所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按钮加以连接。这样,一个端口(如 P1 口) 就能组成 4*4=16 个按钮,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就能组成 20 键的键盘,而直接用端口线则只能多出一键(9 键)。由此可见,在需要的键数比较多时,采用矩阵法来

20、做键盘是合理的。在实际应用中,44 键盘主要由数字 09 和功能键组成。这里给出一个比较常用的键盘排列方式,如表 2.5 所示。表 2.5 按键表123命令456功能789确认0上移下移退出按照键盘与单片机的连接方式可分为独立式键盘与矩阵式键盘。独立式键盘相互独立,每个按键占用一根 I/O 口线,每根 I/O 口线上的按键工作状态不会影响其他按键的工作状态。如图 2.12 所示这种按键软件程序简单,但占用 I/O 口线较多(一根口线只能接一个键),适用于键盘应用数量较少的系统中。图 2.5.1 独立式按键接口电路于独立是按键接口电路要比较矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些

21、如图 2.13 所示。图 2.5.2 单片机矩阵式键盘接口电路上图中列线通过电阻接正电源,并将行线所接的单片机的 I/O 口作为输出端,而列线所接的 I/O 口则作为输入。这样,当按钮没有按下时,所有的输出端都是高电平, 代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。具体的识别及编程办法如下所述。矩阵式键盘的按钮识别办法确定矩阵式键盘上何键被按下介绍一种“行扫描法”。行扫描法 行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按钮识别办法,如上图所示键盘,介绍过程如下。判断键盘中有无键按下 将全部行线 Y0-Y3 置低电平

22、,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与 4 根行线相交叉的 4 个按钮之中。若所有列线均为高电平,则键盘中无键按下。判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其办法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按钮就是闭合的按钮。2.6 LED 显示接口本次设计是利用 89C51 单片机串行口和 74LS164 移位寄存器实现多个 LED 显示的一种方法,利用该方法设计的多路 LED 显

23、示系统具有硬件结构简单、软件编程容易和价格低廉等特点.2.6.1 LED 显示器LED 显示器中的发光二极管共有两种连接方法: 共阳极接法把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接5V。阴极端输入低电平的段发光二极管导通点亮,输入高电平的则不点亮。 共阴极接法把发光二极管的阴极连在一起构成公共阴极。使用时会共阴极接地,阳极端输入高电平的段发光二极管导通点亮,输入低电平的则不点亮。图 2.6.1 LED 显示用 LED 显示器显示十六进制数的字型代码如下表所示:表 2.6 十六进制数字形代码2.6.2 七段数码显示器七段 LED 显示器需要由驱动电路驱动。在七段 LED 显示器中,

24、共阳极显示器, 用低电平驱动;共阴极显示器,用高电平驱动。点亮显示器有静态和动态两种方式。2.6.3 动态显示所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。在同一时刻只有一位显示器在工作(点亮),利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示如图 2.17 所示。图 2.6.1四位动态显示的电路显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。动态显示器的优点是节省硬件资源,成本较低。但在控制系统运行过程中,要保证显示器正常显示,CPU

25、必需每隔一段时间执行一次显示子程序,占用 CPU 大量时间, 降低了 CPU 的工作效率,同时显示亮度较静态显示器低。若显示器的位数不大于 8 位,则控制显示器公共极电位只需一个 8 位 I/O 口(称为扫描口或字位口),控制各位 LED 显示器所显示的字形也需要一个 8 位口(称为数据)。2.6.4 LED 数码管静态显示接口0在单片机应用系统中,数码管显示器显示常用两种办法:静态显示和动态扫描显 示。基于 LED 的优点在本次设计中采用了数码管的静态显示。所谓静态显示,就是每一个数码管显示器都要占用单独的具有锁存功能的 I/O 接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到

26、接口电路,就不用管它了,直到要显示新的 数据时,再发送新的字形码,因此,使用这种办法单片机中 CPU 的开销小。能供给单独锁存的 I/O 接口电路很多,常用的串并转换电路 74LS164,他的电路如图 2.18 所示。000GNDVCC图 2.6.2 静态 LED 显示电路MCS-51 单片机串行口方式为移们寄存器方式,外接 4 片 74LS164 作为 4 位 LED 数码管显示器的静态显示接口,把 AT89C51 的 RXD 作为数据输出线,TXD 作为移位时钟脉冲。74LS164 为 TTL 单向 8 位移位寄存器,可实现串行输入,并行输出。其中A、B(第 1、2 脚)为串行数据输入端,

27、2 个管脚按逻辑与运算规律输入信号,共公一个输入信号时可并接。CLK(第 8 脚)为时钟输入端,可连接到串行口的 TXD 端。每一个时钟信号的上升沿加到 CLK 端时,移位寄存器移一位,8 个时钟脉冲过后,8 位二进制数全部移入 74LS164 中。R(第 9 脚)为复位端,当 R=0 时,移位寄存器各位复 0, 只有当 R=1 时,时钟脉冲才起作用。Q1Q8(第 3-6 和 10-13 管脚)并行输出端分别接 LED 数码管显示器的 hg-a 各段对应的管脚上。在 74LS164 获得时钟脉冲的瞬间(是在脉冲的下降沿),如果数据输入端(第 1,2 管脚)是高电平,则就会有一个 1 进入到 7

28、4LS164 的内部,如果数据输入端是低电平,则就会有一个 0 进入其内部。在给出了 8 个脉冲后,最先进入 74LS164 的第一个数据到达了最高位,再来一个脉冲, 第一个脉冲就会从最高位移出。 6 片 7LS164 首尾相串,而时钟端则接在一起,这样, 当输入 8 个脉冲时,从单片机 RXD 端输出的数据就进入到了第一片 74LS164 中了,而当第二个 8 个脉冲到来后,这个数据就进入了第二片 74LS164,而新的数据则进入了第一片 74LS164,这样,当第六个 8 个脉冲完成后,首次送出的数据被送到了最左面的74LS164 中,其他数据依次出现在第一、二、三、四、五片 74LS16

29、4 中。3 软件设计3.1 A/D 转换器的软件设计单片机控制系统中通常要用到 AD 转换,根据输出格式,常用的 AD 转换方式可分为并行 AD 和串行 AD。并行方式一般在转换后可直接接收,但芯片的引脚比较多;串行方式所用芯片引脚少,封装小,但需要软件处理才能得到所需要的数据。可是单片机I/O 引脚本来就不多,使用串行器件可以节省 I/O 资源。ADC0832 是位逐次逼近模数转换器,可支持两个单端输入通道和一个差分输入通道。相同功能的器件还有 ADC0834,ADC0838,ADC0831。所不同的是它们的输入通道数量不同。它们的通道选择和配置都是通过软件设置。3.1.1 ADC0832

30、芯片接口程序的编写单片机串行工作方式时 ,串行口是作为同步移位寄存器使用。这时以 P3.3端作为数据移位的入口和出口,而由P3.6端提供移位时钟脉冲。单片机串行口方式0与ADC0832的接口,单片机P2.0接ADC0832的CS,P3.6接0832的CLK作为时钟信号输出端 ,P3.7 接 0832的 DO和DI作为启动位、配置位的发送端以及 A/D转换后输出数据的接收端。由于 ADC0832在 CS变低后的前 3个周期内,DO端为高阻态;转换开始后 ,DI线禁止 ,因此 ,DI端和 DO端可连接在一起。ADC0832的时钟频率最高为 400kHz,单片机晶振可选用 4MHz,在 TXD的输出

31、频率为 4MHz/12 =333. 3kHz,符合要求。ADC0832输出的串行数据共 15位 ,由两段 8位数据组成 ,前一段是最高位在先 ,后一段是最高在后 ,两段数据的最低位共用。只有在时钟的下降沿 ,ADC0832的串行数据才移出一位。由单片机控制时钟信号的发送 ,并由P3.6发出 ,以达到控制 ADC0832输出数据位的目的。为了得到一列完整的 8位数据 ,单片机分两次采集含有不同位的数据 ,再合成一列完整的 8 位数据。ADC0832通过内部多路器来控制选择通道,处理器的控制命令通过DI引脚输入。如下流程图所示,当模拟信号输入开始后,首先是CS使能信号也就是片选信号有效,这时是低电

32、平有效,如果片选是高电平时停止转换。当时钟信号有效时输入通道的控制字来确定所选择的通道,读取数据后就开始将模拟量转换位数字量,A/D转换结束后, 单片机读取数值,如果没转换完,又回到使能开始。图3.1 ADC0832数据读取程序流程3.2 单片机与键盘的接口程序设计AT89C51单片机的P1口用作键盘I/O口,键盘的列线接到P1口的低4位,键盘的行线 接到P1口的高4位。列线P1.0-P1.3分别接有4个上拉电阻到正电源+5V,并把列线P1.0- P1.3设置为输入线,行线P1.4-P.17设置为输出线。4根行线和4根列线形成16个相交点。检测当前是否有键被按下。检测的办法是P1.4-P1.7

33、输出全“0”,读取P1.0-P1.3的状 态,若P1.0-P1.3为全“1”,则无键闭合,不然有键闭合。 去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断。 若有键被按下,应识别出是哪一个键闭合。办法是对键盘的行线进行扫描。P1.4-P1.7按下述4种组合依次输出: P1.7 11 1 0P1.6 1 1 0 1P1.5 1 0 1 1P1.4 0 1 1 1 在每组行输出时读取P1.0-P1.3,若全为“1”,则表示为“0”这一行没有键闭合,不然有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值。为了保证键每闭合一次CPU仅作

34、一次处理,必须却除键释放时的抖动。从以上分析得到单片机键盘扫描程序的流程图如图3.2所示。程序如下图 3.2 单片机矩阵式键盘接口流程图3.3 LED 数码管显示程序设计利用单片机内部的串行接口,可以实现静态的显示处理。这样不仅可以节省单片机的并行接口资源,而且在大多数不使用串行接口的情况下,可以减少或是免去扩展接口。在这种设计中,串行口工作于方式 0,数据的输入输出都通过 RxD 实现,移位脉冲则由 TxD 发出。每次传送一个字节数据。每输出一个字节数据,单片机自动使串行中断请求标志 TI 置。通过测试该状态,即可确定该字节是否发送完毕。由硬件电路图可知,74LS164 是串行输入并行输出的

35、移位寄存器。它具有两个串行输入端和 8 位并行输出端(QAQH)。当显示数据从 RxD 端输出到移位寄存器 74LS164 的输入端 AB 时,74LS164 将串行数据转换成 8 位输出码 QAQH,然后加到共阳极 LED 显示器上。究竟在哪一位上显示,还要 P1 口的状态而定。当某一位为低电平时,该位 LED 显示,其他位不显示。由于接口电路中显示模型输出地址和位选信号可一次选中,故只要一次输出即可显示 一位。4.系统调试图 3.3 LED 的显示流程图按照实验原理图连线,连接好线路后,打开电源,一个砝码一个砝码放,观察万能表示数与数码示数是否一致,并观察电压示数变化是否为定值。通过实验发

36、现两者示数基本一致,误差为 0.01,在误差允许范围内,非常准确。(实验模板)(所焊板子及电压显示)总结在设计中遇到不少困难,这对自己是一个考验,刚开始拿到题目的时候头绪并不是很多,通过查阅资料对整个系统有了一定的认识。在设计前我重新学习了一遍单片机的知识,包括芯片接口和 51 系列单片机的指令等。串行 A/D 转换器 ADC0832 是新接触的一种芯片,除学习芯片功能外,主要了解了对芯片串行输出的控制,这里的软件设计是一个难点,我们这次用的是用 PROTEI99 绘图软件,我们以前学过但是学的不深这对我来说是个难点,但是通过看书和同学老师的帮忙,使得我画好了原理图和PCB 版的出图。还有就是

37、焊版,焊不好就无法显示要的数据,调试是最关键的时候, 刚开始的时候没有显示,在修改程序的时候花了不少时间最后,终于显示可以想要的结果。当程序下载到焊版的时候,首先是显示 0000,如果改变滑动变阻器时,通过ADC0832 就可以显示不同的数据,我做的首先是采集模拟量,然后显示需要的数据。我认为我们专业学习硬件知识相对比软件多,所以在软件设计方面我还有很大不足。程序的设计经过“学习模仿编写修改再修改定型”等阶段,在软件的学习上我也花了比较多的时间和精力,让我欣慰的是收获也很大。参考文献1 张迎新单片微型计算机原理、应用及接口技术(第 2 版)M北京: 国防工业出版社,20042 keil 软件单

38、片机仿真实验系统使用说明书3 严天峰.单片机应用系统设计与仿真调试.北京:北京航空航天大学出版社,20054 阎石数字电路技术基础(第五版)北京:高等教育出版社,20065 夏路易,石宗义.电路原理图与电路板设计教程 Protel 99se.北京:北京希望电子出版社,2002附录 A硬件原理图单片机系统课程设计附录 B#include#include220000 D012345678 D1 D2 D3 D4 D5 D6D7 单片机系统课程设计#include#include #define uint unsigned int#define uchar unsigned char#define

39、ADC0832CH0 channel;/*定义变量区*sbit clk_adc0832=P36;/定义各个控制引脚sbit cs_adc0832=P20;sbit di_adc0832=P37; sbit do_adc0832=P37; sbit LED0_CS=P10; sbit LED1_CS=P11; sbit LED2_CS=P12; sbit LED3_CS=P13; sbitadarm=P22;ucharcodetable11=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff;/0,1,2,3,4,5,6,7,8,9,o

40、ff/共阳极笔端码uchar ch;/采样返回数据/*函数声明区* void tkey(void);/键盘函数unsigned runADC0832(bit);/A/D 转 换void Delayms(uint x);/延时显示函数void Update_LED();/LED 显示函数void LED_analyze();/*主函数开始* void main() P0=0XFF; P1=0XFF; P2=0XFF; P3=0XFF;Uart_Init(); TH0=0x3C; TL0=0xAF;ET0=1;/开外部中断 0 EA=1;/全局中断打开TR0=1;nCounter=0; Chang

41、e_Flag=0; while(1)void tkey(void); runADC0832();27if(Change_Flag=1) Update_LED(); if(ch9999) ch=0;printf(counter refreshed %d n,ch);delay();/*矩键查寻键值 4*4 程序*/按键为 P1.0-P1.7 void Tkey(void)uchar readkey;/rereadkey; uchar x_temp,y_temp; P1=0x0f;x_temp=P1&0x0f; if(x_temp=0x0f) goto keyout; P1=0xf0;y_temp=P1&0xf0; readkey=x_temp|y_temp; readkey=readkey; switch(readkey)case 0x11:key=0; break; case 0x21:key=1; break; case 0x41:key=2; break; case 0x81:key=3; break; case 0x12:key=4; break; case 0x22:key=5; break; case 0x42:key=6; break; case 0x82:key=7; break; case 0x

温馨提示

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

评论

0/150

提交评论