压力传感器实验-单片机课设_第1页
压力传感器实验-单片机课设_第2页
压力传感器实验-单片机课设_第3页
压力传感器实验-单片机课设_第4页
压力传感器实验-单片机课设_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录第1章 摘要2 第2章 引言2第3章 总体设计3 3.1 理论分析3 3.2 过程分析3第4章 硬件电路设计4 4.1 传感器电路模块 4 4.2 传感器电路分解 5 4.3 A/D变换电路模块6 4.4 AT89C51芯片介绍104.5 LCD1602液晶显示11第5章 机器人脚底力传感器实验数据采集、显示及程序16 5.1 数据采集16 5.2 程序设计17参考文献 25小组心得体会 25第1章 摘要 1.传感器的相关背景及应用简介:近年来,随着微型计算机的发展,传感器在人们的工作和日常生活中应用越来越普遍。压力是工业生产过程中的重要参数之一。压力的检测或控制是保证生产和设备安全运行

2、必不可少的条件。实现智能化压力检测系统对工业过程的控制具有非常重要的意义。压力传感器是工业实践、仪器仪表控制中最为常用的一种传感器,并广泛应用于各种工业自控环境,涉及水利水电、铁路交通、生产自控、航空航天、军工、石化、油井、电力、船舶、机床、管道等众多行业。压力测量对实时监测和安全生产具有重要的意义。在工业生产中,为了高效、安全生产,必须有效控制生产过程中的诸如压力、流量、温度等主要参数。由于压力控制在生产过程中起着决定性的安全作用,因此有必要准确测量压力。本文介绍一种以AT89C51单片机为核心,用ADC0808实现压力模拟信号的AD转换,完成压力传感器实验。简要介绍了压力传感器电路的工作原

3、理和弱信号传感器电路以及A/D变换电路的工作原理,并详细介绍了该传感器的参数设计和制作过程,论证了其可行性,完成了整个实验对于压力的采样和显示。与其它类型传感器相比,电阻应变式传感器有以下特点:测量范围广,精度高,输出特性的线性好,工作性能稳定、可靠,能在恶劣的化境条件下工作。由于应变式传感器具有以上优点,所以它在测试技术中获得十分广泛的应用。第2章 引言 电阻应变式传感器按其用途不同,可分为应变测力传感器、应变压力传感器、应变式加速度传感器等。我们主要研究压力传感器, 这种传感器主要用于对气体、液体的动态和静态的压力的测量。如对内燃机管道和动力设备管道进出、出气孔流液的压力、发动机喷口的压力

4、等的测量。这种传感器主要采用膜片、薄板、筒式等组成的弹性元件。传感器所用的应变片电阻值国内标准有:60、120、350、和600等各种阻值,其中以120为最常用。利用全桥测量原理,通过对电路输出电压和标准压强的线性关系,建立具体的数学模型,将电压量的变化改为压力的变化,即可以测出一定范围内的压力值。其中测量电路中最主要的元器件就是电阻应变式传感器。本设计采用全桥测量电路,使系统产生的误差更小,输出的数据更精确。而运算放大电路的作用就是把传感器输出的微弱的模拟信号进行一定倍数的放大,以满足A/D转换器对输入信号电平的进行各种转换处理的要求。ADC0808的A/D转换作用是把模拟信号转变成数字信号

5、,进行模数转换,然后把数字信号输送到显示电路中去,用LCD1602液晶显示出测量结果。第3章 总体设计3.1理论分析 该压力传感器实验,采用筒式压力传感器,输出信号通过AD转换器实现模拟到数字的转换,再经过8051芯片,在LED数码管显示所要的结果。总的电路构建框图如下。AD0808差动放大电路放大滤波电路AT89C51LCD1602显示模块压力传感 图3.1 基于AT89C51单片机为核心压力传感器实验构建框图3.2 过程分析 该压力传感器实验,首先采用筒式压力传感器,满足由电阻变化引起的电压变化与压强变化成线性关系,当材料选定后,材料的面积成为定值,则与压力成线性关系。输出信号经过差动放大

6、电路,放大滤波电路,将微弱的噪声信号经过一定倍数的放大和滤波,满足ADC0809 A/D转换器的要求,然后将模拟信号转化成所需的数字信号由单片机采集数字信号存储到单片机地址单元40H(ADResult),采集数据经8051单片机工程量代换处理,将结果存储到50H(整数部分)和51H(小数部分),调用LCD液晶显示程序显示采样测量值,然后再通过对结果的观察验证实验的正确性。第4章 硬件电路设计4.1传感器电路模块压力传感器的工作原理,本质上是惠斯通电桥,这里采用的是最常见的电阻应变片式的压力传感器。它得到广泛应用的原因是温度特性好,减小温度变化带来的误差。膜片上的压力使得电桥不平衡,从而产生一个

7、差动的输出信号,这种结构的基本特性之一是它的差动输出电压U与偏置电压U成正比关系,这种关系隐含压力测量精度直接决定偏置电源的容限值,当四个桥臂电阻达到相应的关系时,电桥输出为零,或则就有电压输出同时,它也能提供一种温度补偿最通用的方法。本实验研究压力传感器电路如图一所示,为压力传感器的电路,其由三部分组成:(1)电桥电路部分(含电源);(2)差动放大电路;(3)放大电路部分(含滤波)。 图一 Proteus设计的压力传感器电路4.2传感器电路分解: 图二 应变片全桥电路 如图二示,R4、R5、R6、R7为应变片,组成应变片全桥,R2、R3分别与R4、R5并联构成温度补偿电路,RV1为电桥的的调

8、节变阻器,保持初始状态的零输出。 图三 差动放大电路发达倍数:图四 放大滤波电路LM324-2(1):LM324-2(2):LM324-2(3):为延时电路其中C1、C2、C3作用是滤波最终放大倍数:130倍左右 4.3 A/D变换电路模块 ADC芯片型号很多,在精度、速度和价格方面千差万别、,较为常见的ADC主要有逐次逼近型、双积分型和电压频率变换型三种。 这里我们选用逐次逼近型,即ADC0808。它由单一+5V电源供电,片内带有锁存功能的8路模拟多路开关,可对0V5V的输入模拟电压信号分分时进行转换,完成一次转换约需100。片内具有多路开关的地址译码器和锁存电路、高阻抗斩波器、稳定的比较器

9、,256R电阻T型网络和树状电子开关以及逐次逼近寄存器。输出具有TTL三态锁存缓冲器,可直接接到单片机数据总线上。通过适当的外接电路,ADC0808可对05V的双极性模拟信号进行转换。ADC0808是28脚双列直插式封装,引脚图如图4.2.1 所示。各引脚功能说明如下:8位数字量输出引脚,由最低引脚到最高引脚。IN0IN7:8路模拟量输入引脚。:+5V工作电压。GND:地。REF(+):参考电压正端。REF():参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。以上两个信号用于启动A/D转换。EOC:转换结束信号输出引脚。开始转换时为低电平,转换结束时为高电平

10、。OE:输出允许控制端。用以打开三态数据输出锁存器。CLK:时钟信号输入端。ADDA、ADDB、ADDC:地址输入线。经译码后可选通IN0IN7 8通道的一个通道进行转换。图4.2.1 ADC0808引脚图 实验电路及接线如下图示 :连线连接孔1连接孔21IN0压力传感器输出2AD_CSCS2 图4.2.2 接线框图 图4.2.3 实验电路连线图 A/D转换器的结构及连线图如上图所示,AD0808的工作过程如下:首先用指令选择0808的一个模拟输入通道,当执行MOVX DPTR,A时,产生一个启动信号给START引脚送入脉冲,开始对选中通道转换。当转换结束后发出结束信号,置EOC引脚信号为高电

11、平,该信号可以作为中断申请信号,当读允许信号到,OE端有高电平,则可以读出转换的数字量,利用MOVX A,DPTR把该通道转换结果读到累加器A中。转换电压为05V,调节桥路中的电位器,使其输出电压为05V,可以在较小范围内波动,当满量程输出时对应八个1的输出,由于前边计算的电压变化和电阻变化成正比关系,而且电阻变化和应变成正比,进而得出的压力和电压是成正比的。传感器桥路输出的电压经过比例变换后转换成二进制码的形式送入P0口。其程序框图如下: 等待中断初始化程序初始化LCD进入开机界面Welcome To LiRen College开始清屏启动AD0808工程量代换转换为压力值将结果分位成十进制

12、调用LCD显示子程序(先显示最高位)产生中断 图五 主程序流程图图六 中断子程序4.4 8051芯片介绍本实验采用AT89C51单片机,其管脚图如下: 图4.4.1 AT89C51管脚图 其管脚功能如下: 1.电源 (1)VCC - 芯片电源,接+5V; (2)VSS - 接地端; 2.时钟 XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 3.控制线(4根) (1)ALE/PROG:地址锁存允许/片内EPROM编程脉冲。 ALE功能:用来锁存P0口送出的低8位地址。 PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 (2)PSEN:外ROM读选通信

13、号。 (3)RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。 VPD功能:在Vcc掉电情况下,接备用电源。 (4)EA/Vpp:内外ROM选择/片内EPROM编程电源。 EA功能:内外ROM选择端。 Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 4.I/O线 AT89C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还有 第二功能,用于特殊信号输入输出和控制信号(属控制总线)。4.5 LCD1602液晶显示字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,2

14、0*2和40*2行等的模块。1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表1所示:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表1:引脚接口说明表第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液

15、晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。1602LCD的指令说明及时序1602液晶模块内部的控制器共有11条控制指

16、令,如表2所示:序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1

17、:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行

18、显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。 指令11:读数据。与HD44780相兼容的芯片时序表如下:读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=L,D0D7=数据,E=高脉冲输出无表3:基本操作时序表读写操作时

19、序如图图七和图八所示:图六 读操作时序图七 写操作时序1602LCD的RAM地址映射及标准字库表液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图八是1602的内部显示地址。图八 1602LCD内部显示地址例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是B(40H)+B(80H)=B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在

20、液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”1602LCD的一般初始化(复位)过程延时15mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号

21、写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置4.6 AD0808接口电路及LCD接口电路: 第5章 压力传感器实验数据采集、显示仿真图及程序5.1数据采集及显示数据处理子程序是整个程序的核心。主要用来调整输入值系数,使输出满足量程要求。另外完成A/D的采样结果从十六进制数向十进制数形式转化。系数转换在IN0输入的数最大为5V,要求压力200pa对应的是5V,将系数进行一定倍数的变换,并用小数点位置的变化体现这一过程。数制之间的转换:在二进制数制中,每向左移一位表示数增加两倍。要求压力80N对应的是5V,而压力

22、与电压的变换是线性关系,对应AD转换器的输出为八个1,当有一定的压力值输入时,对应这个关系转化成相应的二进制代码送入P0口。然后再反过来应用这个变化关系,经最终得到的数值进行二进制到BCD码转化,然后逐位在LED数码管上显示。数据采集用A/D0808芯片来完成,主要分为启动、读取数据、延时等待转换结束、读出转换结果、存入指定内存单元、继续转换(退出)几个步骤。ADC0809初始化后,就具有了将某一通道输入的05模拟信号转换成对应的数字量00HFFH,然后再存入存储器的指定单元中。在控制方面有所区别。可以采用程序查询方式,延时等待方式和中断方式。显示子程序是字符显示,首先调用事先编好数码管显示子

23、程序。初始化命令,然后输出显示命令。在显示过程中一定要调用延时子程序。当输入通道采集了一个新的过程参数,当有压力信号输入时,调用显示子程序在数码管上显示。5.2波形仿真截图LCD1602电信号显示图5.3程序设计课设题目:机器人脚底力采集课程设计 ADResult EQU 40H RS BIT P2.0;定义LCM的接脚RS、R/W、Enable为P2.0、P2.1、P2.2 R_W BIT P2.1 ENABLE BIT P2.2 DB0_DB7 DATA P1 ;DB0-DB7的接脚为P1来控制,以方便程式的撰写与维护 ORG 0000H ;通知编译器下面的程式由程式记忆体;地址1000H

24、开始存放 AJMP START ;跳到标记start处执行程式 ORG 000BH ;跳到中断服务程式 AJMP INSERS ORG 0013H AJMP INT ORG 30H ;通知编译器下面的程式由程式记忆体地址0030H开始存入。START: NOP MOV TMOD,#0 ;初始化TO MOV TL0,#0 MOV TH0,#0 SETB EA SETB ET0 SETB TR0 SETB EX1 SETB IT1 MOV R5,#50 ;设定延时次数。 MOV SP,#60H ;设定MCS-51从内容资料记忆体地址61H开始存放堆栈资料。 CALL Initial ;调用启动LC

25、M的子程式 CALL CLS ;调用清除显示器的子程式 MOV A,#B ;将二进制的值放入累加器内,代表设定DDRAM的地址为00H, ;即将光标移到第一行第一个列的位置上。 CALL Write_instruction ;调用写指令码子程式 MOV DPTR,#LINE3 ;将第一行字串在程式记忆体中的起始地址存入DPTR CALL STRING ;调用STRING子程式,将字串显示到LCM MOV A,#B ;将二进制的值放入累加器内,代表设定DDRAM的地址为40H, ;即将光标移到第二行第三个列的位置上 CALL Write_instruction ;调用写指令码子程式 MOV DP

26、TR,#LINE4 ;将第二行字串在程式记忆体中的起始:地址存DPTR。 CALL STRING CALL DELAY0 CALL CLS ;调用清除显示器的子程式 MOV A,#B ;将二进制的值放入累加器内,代表设定DDRAM的地址为00H, ;即将光标移到第一行第一个列的位置上。 CALL Write_instruction ;调用写指令码子程式。 MOV DPTR,#LINE1 ;将第一行字串在程式记忆体中的起始地址存入DPTR CALL STRING ;调用STRING子程式,将字串显示到LCM MOV A,#B ;将二进制的值放入累加器内,代表设定DDRAM的地址为40H, ;即将

27、光标移到第二行第三个列的位置上 CALL Write_instruction ;调用写指令码子程式。CALLAD0809Read;启动AD0809;LOOP: SJMP LOOP SJMP LOOP;JNB IE1, LOOP ;查询等待 ;CLR IE1 ;SJMP INT LINE1: DB Pressure: ,00H ;在LCM第一行显示字串LCD Testing_LINE2: DB .,00H ;在LCM第二行显示压力数据,保留三位小数LINE3: DB Welcome To ,00HLINE4: DB LiRen College!,00H;ADC0809启动程序AD0809Read

28、:MOV DPTR, #8000H MOV A, #00 MOVX DPTR,A ; 起动 A/D MOV A, #40h DJNZ ACC, $ ; 延时 100us;;工程量代换:B存高八位,A存低八位;程序中除以256相当于右移八位,即高八位变为整数位,低八位变为小数位;最后结果为: B存整数部分,A存小数部分;DAIHUAN:MOV B,#200MOV A,ADResultMUL AB MOV 51H,A;小数部分MOV 50H,B;整数部分RET;INT1查询服务子程式INT: MOV DPTR,#8000HMOVX A, DPTR ; 读入结果CALL CLSMOV A,#B ;将

29、二进制的值放入累加器内,代表设定DDRAM的地址为00H, ;即将光标移到第一行第一个列的位置上。 CALL Write_instruction ;调用写指令码子程式。 MOV DPTR,#LINE1 ;将第一行字串在程式记忆体中的起始地址存入DPTR CALL STRING ;调用STRING子程式,将字串显示到LCMMOV A,#B ;将二进制的值放入累加器内,代表设定DDRAM的地址为40H, ;即将光标移到第二行第三个列的位置上 CALL Write_instruction ;调用写指令码子程式。 MOV A,#50H MOV ADResult, A CALL DAIHUAN MOV

30、DPTR,#LINE2 ;将第二行字串在程式记忆体中的起始地址存DPTR。 CALL DATE ;调用DATE子程式,将数据显示到LCM RETI;TO中断服务子程式INSERS: MOV TH0,#0 MOV TL0,#0 DJNZ R5,NO MOV R5,#50 NO: RETI ;Initial子程序设定LCM使用8BITS汇流排,显示两行,;使用5*7字型,显示器要显示光标要显示但不闪烁Initial: MOV A,#B ; CALL Write_instruction ;第一次设置显示模式 MOV A,#B ; CALL Write_instruction ;第二次设置显示模式 M

31、OV A,#B ; CALL Write_instruction ;第三次设置显示模式 MOV A,#B ; CALL Write_instruction ;第四次设置显示模式 MOV A,#B ; CALL Write_instruction ;设置光标 MOV A,#B ; CALL Write_instruction ;设置LCD数据指针自动加一 RET;CheckBusy子程序;等待LCM有空可以执行下一行命令CheckBusy: PUSH ACC ;将累加器ACC的内容放到堆栈内, ;以免破坏原来的ACC的资料CheckBusyLoop: CLR ENABLE ;设定E=0,禁能读模

32、式 SETB R_W ;设定R/W=1,选择读模式 CLR RS ;设定RS=0,选择指令寄存器IR SETB ENABLE ;将P3.3脚设定为1,使能LCM MOV A,DB0_DB7 ;将存在ACC内的资料经由P1存入ACC中 ;以便查封第7位元及BF是否为0什么 CLR ENABLE ;将P3.3脚设定为0 MOV A,#00H JB ACC.7,CheckBusyLoop ; 判断由LCM读入资料的第7位及BF ;是否为1,若等于1表示LCM忙碌中,CPU ;跳到标记CheckBusyLoop继续执行程序 POP ACC ;将累加器ACC内容从堆栈区取出 CALL DELAY ;调用

33、延迟子程序,延时约数个mS RET ;返回主程序;Write_instruction子程序;将ACC内的资料输入到LCM的IR寄存器Write_instruction: CALL CheckBusy ;调用CheckBusy子程序确定LCM可以执行指令 CLR ENABLE ;设定E=0,禁能LCM CLR R_W ;设定R/W=0,选择写模式 CLR RS ;设定RS=0,选择指令寄存器IR SETB ENABLE ;将P3.3脚设定为1,使能LCM MOV DB0_DB7,A ;将存在ACC内的指令码经由P1输出到LCM CLR ENABLE ;将P3.3设定为0,MCS-51向LCM存取

34、资料后, ;必须将LCM的E脚输出0,让LCM禁能(Disable) ;不做介面的资料传送或设定 RET ;返回主程序;WriteLCDData子程序;将ACC内的资料输入到LCM的DR寄存器WriteLCDData: CALL CheckBusy ;调用CheckBusy子程序,确定LCM可以执行指令 CLR ENABLE ;设定E=0,禁能LCM CLR R_W ;设定R/W=0,选择写模式 SETB RS ;设定RS=1,选择U寄资料存器DR SETB ENABLE ;将P3.3脚设定为1,使能LCM MOV DB0_DB7,A ;将存在ACC内的指令码经由P0输出到LCM CLR EN

35、ABLE RET ;返回主程序;CLS子程序清除LCM的显示字幕CLS: MOV A,#01H CALL Write_instruction RET;DATE子程序;压力数据的扫描显示DATE:PUSH ACC;入栈累加器APUSH PSW;入栈PSW中的CYHIG:MOV R1,#50HMOV A,R1CJNE A,#64H,CJ1;判断是否等于100,等于100则直接显示100MOV A,#01HMOVC A,A+DPTRLCALL WriteLCDDataDEC ALCALL WriteLCDDataLCALL WriteLCDDataSJMP XSDCJ1:JC SHI;判断是否大于1

36、00 大于100则继续执行分位操作MOV B,#64H;否则跳转到十位分位程序DIV AB;除法做分位处理MOVC A,A+DPTRLCALL WriteLCDDataMOV A,BSHI:CLR CCJNE A,#0AH,CJ2;判断是否等于10等于10则直接显示10MOV A,#01HMOVC A,A+DPTRLCALL WriteLCDDataDEC ALCALL WriteLCDDataSJMP XSDCJ2:JC GEE;判断是否大于10MOV A,B;否则跳转到个位显示程序GEE:MOV B,#0AHDIV ABMOVC A,A+DPTRLCALL WriteLCDDataMOV

37、A,BMOVC A,A+DPTRLCALL WriteLCDDataXSD:MOV A,#0AH;小数点显示程序MOVC A,A+DPTRLCALL WriteLCDDataLOWER:INC R1;小数位显示程序 分位原理同上MOV A,R1MOV B,#64HDIV ABMOVC A,A+DPTRLCALL WriteLCDDataMOV A,BMOV B,#0AHDIV ABMOVC A,A+DPTRLCALL WriteLCDDataMOV A,BMOVC A,A+DPTRLCALL WriteLCDDataPOPPSWPOPACCRET;STRING子程序;将一个字幕显示在LCM,字

38、串的起地址要存入DPTR,字串必须以00H结束STRING: PUSH ACC LOOP1: CLR A MOVC A,A+DPTR JZ END_PR CALL WriteLCDData INC DPTR JMP LOOP1 END_PR: POP ACC RET ;DELAY子程所延迟的时间约为2.5mS;延时时间约为R6*(500uS)DELAY: MOV R6,#5 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET DELAY0: MOV R3,#20 D2: MOV R4,#248D3: MOV R2,#200 DJNZ R2,$ DJNZ R4,D3

39、 DJNZ R3,D2 RET END 参考文献1王剑力力矩传感器在仿人机器人运动控制中的应用研究匹)长沙:国防科技大学,20032 李祖枢,薛方正,王晓龙,等一种能感知地面反力的仿人机器人的脚板结构P中国,申请号:293 张博小型双足人形机器人机构设计与步态规划D哈尔滨:哈尔滨工业大学,20064 楼钢,李伟,邓学博小信号放大电路设计 浙江理工大学学报,2o07, 6):661_6645 成英,童诗白模拟电子技术基础I 北京:高等教育出版社,2oo3 6来清明传感器与单片机接口及实例M北京航空航天大学出版社2008附件:原件清单型号AT89C51LCD1602MPX4250LM324数字示波

40、器直流电压表74LS245ADC0808电容1000P电容33PF电容10UF电阻1K电阻10K电阻9.1K电阻100K开关按钮7407晶体振荡器导线数量1个1个4个5个4个4个1个1个3个2个1个3个6个2个4个1个4个1个若干组长易正梁心得体会:二周的压力传感器课程设计结束了,我的收获很多,我做的是基于AT89C51单片机的压力检测系统的设计,用到的主要芯片是AT89C51和ADC0808,实现的功能是将传感器采集到的模拟信号转换成单片机可以识别的数字信号,再经单片机转换成LED显示器可以识别的信息,最后显示输出。在显示的过程中通过键盘,向计算机操作可以控制显示需要的值。对于学习过单片机,因此对AT89C51比较熟悉,对ADC0808则比较陌生,从网上搜索的

温馨提示

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

评论

0/150

提交评论