版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、乐山师范学院学生科研乐山师范学院学生科研作品设计报告书作品名称:作品名称: 单片机在自动充气机中的应用单片机在自动充气机中的应用 申报者姓名:申报者姓名: 刘勇刘勇 魏星魏星 石鲤林石鲤林 所在单位:所在单位: 物理与电子信息科学系物理与电子信息科学系 设计题目设计题目: : 单片机在自动充气机中的应用单片机在自动充气机中的应用专专 业业: : 电子信息工程电子信息工程论文作者论文作者: : 刘勇刘勇 魏星魏星 石鲤林石鲤林 指导教师指导教师: : 郭凤德郭凤德摘摘 要要本文详细介绍了单片机在自动充气机中的应用,由于单片机具有集成度高、体积小、运行可靠、应用灵活、价格低、面向控制等特点,因此在
2、工业控制、数据采集、智能仪器仪表、智能化设备和各种家用电器等领域得到了广泛应用,而且发展非常迅猛。现在,单片机的应用领域已经遍及几乎所有的领域。为研究单片机在自动控制领域中的应用,我们以自动充气机系统为依托,进一步揭示单片机在自动控制系统中的应用价值。 关键词关键词 AT89S52 单片机 A/D 转换器 1602LCD 液晶显示器1引言1.1 研究背景介绍随着人们生活水平的不断提高,单片机控制在各领域的发展与应用无疑成为人们追求的目标之一。目前,汽车工业的发展速度很快,传统的轮胎充气设备不能适应现代化生产规模的要求。研制与轮胎流水作业生产线配套的,机械化、自动化、节能高效的充气设备是现代化汽
3、车生产企业亟待解决的实际问题。基于上述两个原因,我们有了研究基于单片机便携式自动控制充气机这一课题的想法,便携式自动控制充气机具有自动充气和放气功能,气压检测和气压预设功能,夜间照明、警示功能,体积非常小巧,性能高、无污染气体排放,适合您的车辆出差、远行,是各车主携带的应急必备工具。 1.2 研究价值和意义本文介绍了单片机在设计制作自动充气机中的工作成果和经验总结。市面的充放气机大都不是自动的也不是气压可调的。随着人们生活水平的提高,小汽车将成为家家户户必备的交通工具。再加上生活节奏的加快,时间已是最宝贵的东西。显然市面上普通手动控制的充气机,将满足不了人们的需求,因此,我们就想到了做一件能够
4、自动充放气的充气机。它能够给人们在使用过程中节省时间,同时又能够很方便的使用。因为它是全自动的,所以只要把电源一安上,再设定你所需要气压值,它就会自动地完成任务。并且在充/放气完成之后将自动停止。因此,研究一个能基于单片机自动控制的自动充/放气机是很有必要的。下面将对自动充气机的设计原理及设计方案思路(主要是涉及单片机控制的部分)做详细地介绍。2、系统分析与设计2.1 设计思路总体设计思路1:首先由压力传感器将检测到的车轮胎内部的当前气压参数, 传输到模/数转换器 ADC0832 的一路模拟信号通道,转换出八路数字信号传给单片机 AT89S52,接着单片机把计算气压值送给 LCD1602 并让
5、它显示当前气压值。然后键盘输入我们需要的气压值,经单片机 AT89S52 键盘扫描程序读出键值,并在 LCD1602 上显示出来,接着通过控制核心(单片机)比较当前气压值与输入的气压值:如果输入值大于当前气压值时,通过单片机发出一个控制命令驱动电机工作,开始充气,在充气的同时继续对气压进行采样,当两个值相等时,中断驱动电路,停止充气;而如果当前气压值大于输入值时,单片机发送控制命令到电磁阀驱动器,开通电磁阀,放气开始,与此同时仍然进行气压采样,当两值相等时,电磁阀断开,停止放气。在夜间,特别是在有车辆行驶的路边加气时,我们有照明灯和警示灯,通过特殊功能键可使照明灯发光工作或警示灯发出警示信号,
6、给使用者的操作带来方便,避免发生交通事故。2.2 设计要求1.基本要求: 检测汽车轮胎内部气压强度。 LCD1602液晶显示器显示其检测的参数值和键盘输入设定的气压值。 通过单片机控制系统自动控制电动机和电磁阀的工作。2.功能部分:监测轮胎内部的气体压强。 通过LCD显示检测到的参数值和设定值。 电动机和电磁阀分别控制轮胎的充气、放气。单片机一个指令使得照明灯和警示灯处于工作状态。2.3 总体设计流程本设计以AT89S52单片机为核心,对所有的数据进行处理。将扫描到的键盘输入值在LCD1602上显示,并运用ADC0832对气压传感器采集到的模拟数据进行模数转换,并将转换后的数据传送给单片机进行
7、处理。同时用LCD1602来显示外部采集到的气压值。如果检测到的气压值小于设定的气压值,则单片机控制充气工作,若检测到的气压值大于设定的气压值,则TLV5616对单片机处理好的数据进行数模转换再将转换好的模拟信号传送给电磁阀,电磁阀随着放气的进行,电磁阀的阀门慢慢变小,放气的速度也随着减慢,这样可以减小误差。系统的总流程图如图2-1所示比较相等初始化电流采样(压力传感器)AD 转换单片机LCD 显示键盘扫描驱动电机充气电磁阀放气停止电机相等大于小于是是否否图 2-1 总体流程图3、单片机控制模块的设计方案一:采用AT89S52 8位单片机AT89S523是美国 ATMEL 公司生产的低电压,高
8、性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的只读程序存储器(PEROM)和 256bytes 的随机存取数据存储器(RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,与标准 MCS51 指令系统及 8052 产品引脚兼容,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强大 AT89S52 单片机适合于许多较为复杂控制应用场合。AT89S52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,AT89S52 可以按照常规方
9、法进行编程,也可以在线编程。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。AT89S52主要功能特性:1、兼容MCS51指令系统 2、8k可反复擦写(1000次)Flash ROM3、32个双向I/O口等。此单片机是小型电子产品普遍采用的微控芯片,性价比高。在控制领域应用也比较普遍。方案二:采用高档高位机凌阳的61单片机凌阳的16位单片机就是为适应这种发展而设计的。它的CPU内核采用凌阳最新推出的nSP(Microcontroller and Signal Processor)16位微处理器芯片(以下简称nSP)。围绕nSP所形
10、成的16位nSP系列单片机(以下简称nSP家族)采用的是模块式集成结构,它以nSP内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件。具有以下等性能 : 16位nSP微处理器; 工作电压(CPU) VDD为2.43.6V (I/O) VDDH为2.45.5V CPU时钟:0.32MHz49.152MHz ; 内置2K字SRAM;内置32K FLASH; 使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据; 32位通用可编程输入/输出端口; 7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器; 此类单片机功能更强,但是价格比较昂贵。综合
11、本设计所要实现的各部分功能!仅需一片AT89S52单片机就可以满足设计的需要,因此采用AT89S52作为主控芯片。为了使电路更加紧凑,外部引线更加少,需合理设计整个系统的原理图2,以便硬件规划与设计。硬件总电路图如图3-1所示C330pC430pfY012MHZR410KP1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.010P3.111P3.212P3.313P3.414P3.515P3.616P3.717XTAL218XTAL119GND20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN2
12、9ALE30EA31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40U3AT89S52+5V+5VCH02CH13CS1CLK7DI5VREF8DO6GND4U2ADC0832+5vR210+5v+5vDIN1SCLK2CS3FS4AGND5REFIN6OUT7VDD8TLV5616*+5V1122C11041122C222u1122S0SW-PBR110K12345678910111213141516J41602123456789J1CON9C5CAPACITOR123J2传传传传传R310KR6RES2112233445566778
13、8K1RELAY-DPDT1122334455667788K2RELAY-DPDTQ19013Q29013+5v100 *RES212J5传10kRES2A1K2D1DIODER95012J6传传1234J7CON4Vin1GND2Vout3U1LM2940C6220uC7104123J9CON31J10CON11A2KD2LEDR101k12345678J0CON81234567898*10kCON9K3XIAOJIDIANQIVin1GND2Vout3U17805C6220uC71045KRES29013NPN30 *RES25V12J0传传传1a11b22a32b43a53b6GND74
14、a84b95a105b116a126b13VCC14Q?74ls041J?CON1D?LEDD?LEDR?RES2R?RES2图3-1 硬件总体布局整个系统的控制核心是AT89S52,因此对单片机的资源要合理分配与利用。单片机的IO口资源分配。表3-1 IO口分配键盘控制模块P0.0-P0.7设置比较的气压值气压采集模块P2.4-P2.7通过ADC0832采集气压电机模块(充气)P3.3控制电机的转动电磁阀(放气)P2.1-P2.3通过TLV5616控制电磁阀LCD模块P1.0-P1.7LCD数据P3.0-P3.2LCD控制信号照明灯控制P3.4控制灯的亮灭 在自动充气机中的各个部分,并不是每
15、一个部分都用到了单片机的控制。由于本文研究的是单片机在自动充气机中应用,因此,对于没有用到单片机的部分就不做过多的阐述,主要针对有用到单片机的重要部分做详细地阐述。在自动充气机中的气压检测及模数转换模块、显示模块、键盘输入模块和照明报警模块都是由单片机来控制,下面将对这四个模块的设计做详细介绍。4、气压检测及 A/D、D/A模块的设计4.1 气压检测通过压力传感器检测轮胎当前的气压参数并经由 ADC0832 传给单片机,由单片机给 LCD1602 送数据,让其显示当前的轮胎气压值。4.2 方案选择方案一:采用ADC08098路8位AD转换器,即分辨率8位,采样频率,数据并行传输,可对8路信号进
16、行分时采样。多用于对多路信号进行采样的设计中。软件编程比较简单,ADC0809芯片有28条引脚,采用双列直插式封装,因此对它的硬件接线比较麻烦,同时也会加大硬件设计难度。方案二:采用ADC0832 ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。8位2路AD转换器即8位分辨率、采样频率、数据串行传输。此转换器一般用于对少数信号进行采样的电路中。外部只有8个引脚,连线简单方便,但是相对而言软件编程稍微复杂一点。方案三:采用TLV5616 12位转换器。TLV5616是一个12位电压
17、输出数模转换器(DAC) ,带有灵活的4线串行接口,可以无缝连接TMS320、SPI、QSPI和Microwire串行口。数字电源和模拟电源分别供电,电压范围2.75.5V。输出缓冲是2倍增益rail-to-rail输出放大器,输出放大器是AB类以提高稳定性和减少建立时间。rail-to-rail输出和关电方式非常适宜单电源、电池供电应用。通过控制字可以优化建立时间和功耗比。精度高,数据是串行传输的。只有8个引脚便于接线,软件编程简单。方案四:采用DAC0832 8位转换器。DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通
18、三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。数据是进行并行传输,是以电流的形式输出。有14个引脚,硬件连线较烦。软件编程简单。但是使用它并需外加外部转换电路将电流转换成电压。从软件和硬件制作的角度考虑,采用8引脚的ADC0832对采集到的气压值进行AD转化。采用TLV5616对数据进行DA转化。4.3电路设计与分析ADC0832 是美国国家半导体公司生产的一种 8 位分辨率、双通道 A/D 转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,目前已经有很高的普及率。学习并使用 ADC083 可以使我们了解 A/D 转换器的原理,有助于我们对
19、单片机技术水平的提高。 1、ADC0832 具有以下 5 个特点: 8 位分辨率; 双通道 A/D 转换; 输入输出电平与 TTL/CMOS 相兼容; 5V 电源供电时输入电压在 05V 之间; 工作频率为 250KHZ,转换时间为 32S; 其引脚电路图如图 4-1 所示图 4-1 ADC0832 引脚图芯片转换时间仅为32S,具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI数据输入端,可以轻易地实现通道功能的选择。 正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI(如
20、图4-1)。但由于DO端与DI端在通信时并未同时有效且与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。 当ADC0832未工作时其CS输入端应为高电平,此时芯片处于禁用状态,CLK和DO/DI的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1个时钟脉冲的下降沿之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下降沿之前DI端应输入2位数据用于选择通道功能。当此2位数据为“1”、“0”时,只对
21、CH0进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。到第3个脉冲的下降沿之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲的下降沿开始由DO端输出转换数据最高位DATA7,随后每一个脉冲的下降沿DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第1
22、1个字节的下降沿输出DATD0。随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。在本设计中,我们只用到了一个CH0转换口。故本设计的DO/DI两端口的数据应为“1”、“0”。分别用P2.1和P2.2口控制。CPU向TLV5616发送的串行数据每帧为16位,其中高4位为控制位,低12位为转换的数据,高位在前,低位在后。VREF为参考电压输入端(系统中接运放1的输出) ,VOUT是电压输出端。片内有一个2倍的输出放大器,其转换关系为: VOUT2VREFDi4096VREF参考电压的范围为0V-3.5V。
23、所以我在设计时参考电压的选择是外接一个上拉电阻可选电压为0V-5V。这样可以方便选择参考电压。为硬件调试打下好的基础。其与单片机的接口如图4-2所示。图 4-2 TLV5616引脚接线4.4 软件设计4.4.1 A/D模块软件设计A/D模块的软件设计流程图如图4-3所示图 4-3 AD 转换流程其程序5如下:uchar adc0832(uchar channel) /读 ADC0832 函数,采集并返回uint dat2=0;uchar ndat=0,i=0,j;if(channel=0)channel=2; if(channel=1)channel=3; /通道选择.AD_CS=0;_nop
24、_(); /拉低 CS 端,AD 片选DI=1;_nop_(); /在第一个脉冲下降之前 DI 必须是高电平,表示启始信号SCK=1;_nop_(); SCK=0;_nop_();SCK=1; DI=channel&0 x1;_nop_();/在第二和第三个脉冲下降之前 DI 输入两位表示通道SCK=0;_nop_(); SCK=1; DI=(channel1)&0 x1;_nop_(); SCK=0; /写命令完成,DI 失去输入作用DI=1;_nop_(); dat2=0;for(i=0;i8;i+) /读出 8 字节数据dat2|=DO;SCK=1;_nop_();SCK
25、=0;_nop_();dat2=1;if(i=7)dat2|=DO;for(i=0;i8;i+)j=0;j=j|DO;SCK=1;_nop_();SCK=0;_nop_(); j=j7;ndat=ndat|j;if(i=1;AD_CS=1;SCK=0;DO=1;dat2=8;dat2|=ndat;return(dat2); /返回数据 A/D 转换的数据处理过程是用采样两次数据对比的方法。第一次数据采集是使用正向存储的方式,就是高位在前低位在后。而第二次则是反向存储的方法。低位在前,高位在后,所以在做数据对比时,必须把第二次数据反过来。当测得的两次数值是一样的时候,则返回数值,若不一样则再次进
26、行测试。这样就保证了测得的值的准确性。4.4.2 D/A模块软件设计D/A 转换模块是采用是 TLV5616。对数值进行 D/A 转换。其主要程序如下:void spiwrite(int temp)/写数据uint i;setcs(0);for(i=0;i16;i+)pindin=(bit)(temp&0 x8000);setsclk(1);temp=1;nnop(1);setsclk(0);nnop(1);setcs(1);TLV5616 的控制仅靠数据的第 14,15 位。所以一般情况下写控制和数据是同时进行的。这样的程序就简洁了。TLV5616 的数据传送是串行发送的,因此对时序
27、的要求很严,要严格按照时序来发送。5、LCD1602显示模块的设计5.1 方案选择方案一:采用LCD液晶显示屏,其实物图如图5-1所示 图 5-1 LCD1602 随着大量电子仪器、设备的智能化,并且普遍地采用人机交互方式,需要能够显示更为丰富的信息和通用性较强的显示器,而点阵式LCD显示器能够满足这些要求,同时用大规模专用集成电路作为点阵LCD控制驱动,使用者仅仅直接送入数据和指令可实现所需的显示。这种由LCD 板、PCB 板、控制驱动电路组成的单元叫做点阵液晶显示模块( DOT MATRIC LCD MODULE )。液晶显示器可视面积大,其特性如下:错误!未找到引用源。错误!未找到引用源
28、。显示内容:16 字符x 2 行,因而显示的位数可任意设定,同时可视效果也比较好;错误!未找到引用源。错误!未找到引用源。字符点阵:5 x 8 点;错误!未找到引用源。错误!未找到引用源。驱动方式:1/16D;错误!未找到引用源。错误!未找到引用源。对比度可调节。方案二:采用LED数码管显示:使用多个数码管动态显示,其总功耗就等效为一个数码管,但工作电流较大,并且只有数字显示,显示的范围也比较小。在软件上对其编程,相对于LCD比较麻烦。同时由于数码管还涉及到驱动的问题,因而硬件制作上相对LCD也增加了难度。综上所述,根据显示内容的多少和软硬件的制作,本设计选择采用LCD液晶实时显示输出检测到的
29、参数值和键盘输入值。5.2 电路设计与分析电路设计与分析1602字符型LCD模块的应用非常广泛,而各种液晶厂家均有提供几乎都是同样规格的1602模块或兼容模块,尽管各厂家的对其各自的产品命名不尽相同;1602字符型LCD模块最初采用的LCD控制器采用的是HD44780,在各厂家生产的1602模块当中,基本上也都采用了与之兼容的控制IC,所以从特性上基本上是一样的;当然,很多厂商提供了不同的字符颜色、背光色之类的显示模块。 LCD1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,如表 5-1 所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、
30、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是 01000001B(41H) ,显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“A” 。 表 5-1 CGROM 和 CGRAM 中字符代码与字符图形对应关系引脚功能7说明 第 1 脚:VSS 为地电源。第 2 脚:VDD 接 5V 正电源。第 3 脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5 脚:R/W
31、 为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS 和 R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据。第 6 脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。第 714 脚:D0D7 为 8 位双向数据线。第 15 脚:背光源正极。第 16 脚:背光源负极。 LCD1602 的硬件连接图如图 5-2 所示图 5-2 LCD1602 引脚图根据电路图 5-2 可知,对 LCD 的控制只需在软件上对 8 根数据线和 3 根控制线进行编程控制即可实现 LCD
32、的显示,同时可利用滑动变阻器调节显示屏的对比度。5.3 软件设计LCD 模块就是使用 P1 口做数据线,用 P3.1,P3.2,P3.0 口做控制线进行数据传送和控制的。其读写程序如下:wzhilin(uchar zhi)/读指令 while(check(); RS=0;RW=0;EN=0; _nop_();_nop_(); P1=zhi; _nop_();_nop_();_nop_();_nop_(); EN=1;_nop_();_nop_();_nop_();_nop_(); EN=0; wshuju(uchar shu) /写数据 while(check(); RS=1;RW=0;EN=
33、0;_nop_();_nop_(); P1=shu;_nop_();_nop_();_nop_();_nop_();EN=1;_nop_();_nop_();_nop_();_nop_();EN=0;程序中的_nop_()是进行延时的操作,保证了数据传送的正常。如果没有这些空操作指令,LCD 传送数据的时候有可能会发生错乱。6、键盘模块的设计6.1 方案选择方案一:采用4行4列的键盘8。键盘上有16个按键,选择其中的10个按键作为09这十个数字键作为预置数的输入,剩下的其他的四个按键可分别作为确定、取消、选择照明灯、警示灯亮灭等功能,还可以用于后期进行扩展功能设计的使用。虽然设计16个按键,在
34、硬件上的制作比较麻烦,但是控制起来比较简单。方案二:采用复合式按键,即一键多用。根据设计的要求,使用5个按键即可完成全部的功能。由于需要预置气压的比较值,将其中两个按键用于数字输入即一个用作数字加,一个用作数字减;一个为功能键(确定、取消) ,一个用作夜间照明的灯控开关,最后一个作为的复位键。在软件设计上和使用都比较麻烦,但相对而言节省硬件资源。要做一件产口虽然要考虑到成本和使用的方便,同时也为了节省时间和对硬件资源的维护。因此,我们采用第一种方案,这样控制起来比较简单和方便。6.2 电路设计和分析电路设计和分析本设计采用 44 的矩阵键盘,它是每个按键按行列式的形式排列,每一行 4 个键共用
35、一根 I/O 口线,每一列 4 个键也共用一根 I/O 口线,其电路图如图 6-1 所示。图 6-1 4*4 按键电路图这样就达到了减少 I/O 口线的效果,但编程时需要来回扫描。矩阵键盘的编程方法采用线反转法,其基本思想如下:1、判断是否有键按下:如果都没键按下,则列线上输出都是高电平;如果有键按下,则列线上肯定会输出低电平。单片机只要检测到列线上不全为高电平,则说明有键按下。2、去抖动:由于在按下某个键时,被按键的弹簧片总会有轻微的抖动,且这种抖动常常会持续 10ms 左右,为了避免单片机误判,就在程序中加入延时程序即消抖后,再进行下一步的行扫描读取坐标。3、按键坐标读取:轮流地对每一条行
36、线输入低电平,其余的为高电平,然后单片机再读取列线上的输出值,如果输出值都为高,表示按键不在这一行上,再进行下一行的扫描。遇到输出值不全为高时,计下此刻的行值和列值输出值。再继续扫描完全部行线,因为有可能发现窜键的情况,通常确定最后被放开的按键为真正的按键。4、求键值;读出了按键的行值和列值后,就用(行号4+列号)这一公式计算该键的键值。6.3 键盘模块的软件设计软件设计按键的控制是使用单片机的定时器 T0 对按键进行 50ms 的定时扫描控制。如果有按键按下就进入相应的模块程序。其主体程序6如下:P0=0 xf0;if(P0&0 xf0)!=0 xf0)P0=0 xfe;switch
37、(P0&0 xf0)case 0 xe0:while(P0&0 xf0)!=0 xf0);return(1);case 0 xd0:while(P0&0 xf0)!=0 xf0);return(4);case 0 xb0:while(P0&0 xf0)!=0 xf0);return(7);case 0 x70:while(P0&0 xf0)!=0 xf0);return(#);default: break;我们用的是单片机的 P0 口,再外接 4 个 4.7K 的上拉电阻,因为 P0 口硬件里没有接上拉电阻,为了保证单片机系统的稳定性,即使用别的 IO
38、口也要用要上接上拉电阻,因为单片机的 IO 口如果直接外接会有电流流过单片机会使单片机上的电流过大,影响单片机的寿命。7、报警模块的设计为了使设计更加全面,我们设计了照明报警模块。在该系统运行中,当我们第一次按下控制灯的按钮后,灯不工作,灯为熄灭状态;当第二次按下此键时,灯开始正常工作,这时灯可以作为照明灯使用;当第三次按下时,灯开始闪烁,发出警示信号。其软件设计已融合在按键控制程序中,在此不给出单独的程序。8、总结 在刚调试硬件之初,我们犯了两个不该(但也是最重要的)出现的错误,一个是忘了把单片机的EA端口上拉到高电平,这样使得单片机无法正常的工作。另一个就是在做复位电路PROTEL板子的时候,把电源线和地线接反了,从而导致单片机的复位脚一直处于高电平的复位状态。虽然是最基本的知识,但是做的时候却把它遗漏了。由此看来心细是做任何事情必须具备的素质,当然这也说明了理论与实践必须结合在一起,仅仅学习理论知识是远远不够的。在最小系统搭起来之后,我们就外接按键和LCD1602
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急性肺栓塞诊疗指南
- 《GB-T 38834.1-2020机器人 服务机器人性能规范及其试验方法 第1部分:轮式机器人运动》专题研究报告
- 2026年湖南电子科技职业学院单招职业适应性考试题库含答案详解
- 《正常人体功能》课件-蛋白质的生物合成
- 《python语言程序设计》课件-项目实战 塔吊智能螺母预警系统开发
- 运维人员培训服务合同
- 钟表行业智能手表软件工程师岗位招聘考试试卷及答案
- 2025年9月21日陕西渭南社工面试题及答案解析
- 工业园区管理委员会2025年度应急管理工作情况报告
- 2025年电力金具合作协议书
- 文冠果整形修剪课件
- 2025年下半年上海当代艺术博物馆公开招聘工作人员(第二批)参考笔试试题及答案解析
- 2026国家粮食和物资储备局垂直管理局事业单位招聘应届毕业生27人考试历年真题汇编附答案解析
- 癌性疼痛的中医治疗
- 大学生就业面试培训
- 2026年旅行社经营管理(旅行社管理)考题及答案
- 2026年北京第一次普通高中学业水平合格性考试化学仿真模拟卷01(考试版)
- 东北三省精准教学联盟2025年12月高三联考语文
- 物业服务协议转让合同
- 2024年江苏省普通高中学业水平测试小高考生物、地理、历史、政治试卷及答案(综合版)
- 8 泵站设备安装工程单元工程质量验收评定表及填表说明
评论
0/150
提交评论