基于单片机的压力测试仪设计内容摘要:
在初始化后只进行按 键扫描,利用定时器 T0 定时 5S 启动 AD 转化,即采样周期是 5S。 当 AD 转换完成后进入外部中断 INT0 服务程序,进行 数据的处理,刷新显示的压力值;当采用两位量程时,若检测到压力值大于等于 100,提示超过量程“ OVER。 ”,需要转换量程。 系统程序整体流程图 系统的整体程序流程图如下所示: 主程序在完成开机 LOGO 显示、压力值初始化显示、 TO 及 INT0 中断初始化 后进入死循环,在循环中进行按键扫描,切换量程。 等待 T0 中断启动 AD 转换; 转换完成后进入外部中断 INT0 进行数据的处 理、分析、显示。 按键子程序流程图 按键子程序进入后首先对显示模式进行修改,即在两位整数和三位整数显示 之间进行切换。 若是两位整数模式则先判断是否超过量程(压力值是三位数整 数),超过量程则显示“ OVER。 ”提示转换量程。 若是三位整数模式则直接刷新数 据后显示。 10 T0 中断服务程序流程图 T0 定时器定时 50MS,即每 50MS 进入 T0 中断,在中断中增加 TIME5S_COUNT 计时器,每次进入 T0 中断后 TIME5S_COUNT 加 1,当加到 100 后表示 5S 到,清 零同时启动 AD 转 换。 外部中断 INT0 流程图 外部中断 INT0 服务程序流程图如下所示: 当 ADC0808 完成 AD 转换后, EOC 变高,经反相器后接单片机 INT0 口,下降 沿启动 INT0 中断。 在中断中首先读取转换后的数字量,再进行标度换算成压力 值,完成数据的刷新。 11 系统总体框图 以 AT89C52 为核心,外围电路有信号采集 MPX4115, AD 转换电路 ADC080 按键和显示液晶模块。 总体框图如下 : 压力测量电路 压力测量使用摩托罗拉公司的 MPX4115 传感器,采集电路以此为核心, 为了 克服干扰,在 MPX4115 输出电路中增加了 RC 滤波电路。 如下图所示: 系统总体仿真电路 压力计检测系统在 PROTUES 仿真的硬件电路如下所示: 12 MPX4115 的输出的电压信号 送至 ADC0808 的 0 通道, AD 转化后的 8 位数字信号送给单片机 P1 口,经单片机分析处理数据后经 P0 口送液晶显示。 按键控制量程的转换, 和 两个量程,显然 整数是两位时的现实精度高。 红色 LED 亮表示此时的量程为 ,黄 色 LED 亮表示此时的量程为。 显示界面利用 16X1 的字符型液晶 LM020L 进行显示,相比 LED 显示能显示更 多的内容,人机界面更友好,而且节省单片机硬件资源。 软硬件仿真调试及性能分析 MPX4115 压力传感器检测的范围是 10KPA100KPA,输出电压信号。 ADC0808 的参考电压 VREF+=5V, VREF=0V。 则( 0V5V)对应( 0255),( )对应( 10246)。 13 即当压力值变换了 系统便能检测到。 程序代码 INCLUDE INCLUDE DEFINE UCHAR UNSIGNED CHAR DEFINE UINT UNSIGNED INT DEFINE DATAPORT P0 //数据端口 SBIT BUSY=P0^7。 SBIT ADC_CS=P2^0。 SBIT LCD_RS=P2^1。 SBIT LCD_RW=P2^2。 SBIT LCD_E=P2^3。 SBIT LED1=P2^4。 //两位数 ,默认两位数 SBIT LED2=P2^5。 //三位数 , SBIT KEY=P2^6。 //量程转换 SBIT ADC_OE=P2^7。 BIT KEY_COUNT。 //量程表示, 0 两位, 1 三位 UCHAR TIME5S_COUNT。 14 UCHAR PRESS_BAI。 UCHAR PRESS_SHI。 UCHAR PRESS_GE。 UCHAR PRESS_DOT1。 //十分位 UCHAR PRESS_DOT2。 //百分位 UCHAR K。 //量程转换的放大倍数,两位 10,三位 100 UINT TEMP。 FLOAT PRESS。 UCHAR CODE STR0_0[]=WELCOME! GOOD!。 //开机 LOGO(15) UCHAR CODE STR0_1[]=PRESS: KPA!。 //正常显示检测 (14) UCHAR CODE STR1[]=OVER!。 //超过了满量程 VOID DELAY(UCHAR X) UCHAR Y,Z。 FOR(Y=X。 Y0。 Y) FOR(Z=110。 Z0。 Z)。 } /*======注意:后 8 个字符的地址是从 80+40 开始的 ======*/ //检测 LCD 忙函数 VOID CHECK_BUSY() { DO { DATAPORT=0XFF。 LCD_RS=0。 LCD_RW=1。 LCD_E=0。 LCD_E=0。 //相当于 _NOP_() LCD_E=1。 }WHILE(BUSY==1)。 } //LCD 写命令 VOID WRITE_COM(UCHAR COM) { DATAPORT=COM。 LCD_RS=0。 //命令 LCD_RW=0。 //写 LCD_E=0。 CHECK_BUSY()。 //判断 LCD 是否忙碌 LCD_E=1。 DELAY(1)。 //LCD_E=0。 } //LCD 写数据 VOID WRITE_DATA(UCHAR DATE) 15 { DATAPORT=DATE。基于单片机的压力测试仪设计
相关推荐
单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于 CAN总线的汽车发动机智能电子控制器, GPS导航系统, abs防抱死系统,制动系统等等。 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。 11 第 2 章 系统的方案设计 控制系统的模型 被控过程数学模型的作用与要求 模型的作用 被控过程动态
12346578RST(VPD)9(RXD)10(TXD)11(INT0)12(INT1)13(T0)14(T1)15(WR)16(RD)17XTAL218XTAL119GND20VCC403938373635343332EA/VDD31ALE/PROG30PSEN292827262524232221U1STC89C52GND1VCC2VO3RS4R/W5E6DB07DB18DB29DB310DB
,当访问外部程序存储器, ALE 会跳过一个脉冲。 如果单片机是 EPROM,在编程其间, 将用于输入编程脉冲。 Pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号, PC 的 16位地址数据将出现在 P0 和 P2 口上,外部程序存储器则把指令数据放到 P0 口上,由 CPU读入并执行。 Pin31:EA/Vpp 程序存储器的 内外部选通线, 8051 和 8751 单片机,内置有
和车速两项数据。 当按下键6时则返回显示里程数,价格两项数据。 :开始接收里程数,价格显示数据Dispflag是否为真转为为字型码输出显示接收等待时间车速显示数据短延时返回 显示服务程序 键盘服务程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。 参见图9,六个按键分别对应六个简单的子程序。 如果按键S1被按下
P 1 .7 S E T B P L AY2 P 0 .2 , JB R E C 6 S T OP , J NB :P L AY2 P 0 .0 S E T B I S DX AC AL L OF OH A, MOV P 1 .7 C L R :P L AY1 P 0 .0 S E T B I S DX AC AL L 22H A, MOV I S DX AC AL L 21H A, MOV I
Sn:380CM 外壳材料:塑料 检测物体:透明或不透明体 AT89C52 部分 AT89C52 是 51 系列 单片机 的一个型号,它是 ATMEL 公司生产的。 AT89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器( RAM),器件采用 ATMEL 公司的高密度