压力传感器程序精要

上传人:我** 文档编号:114810277 上传时间:2019-11-12 格式:DOC 页数:7 大小:36.50KB
返回 下载 相关 举报
压力传感器程序精要_第1页
第1页 / 共7页
压力传感器程序精要_第2页
第2页 / 共7页
压力传感器程序精要_第3页
第3页 / 共7页
压力传感器程序精要_第4页
第4页 / 共7页
压力传感器程序精要_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《压力传感器程序精要》由会员分享,可在线阅读,更多相关《压力传感器程序精要(7页珍藏版)》请在金锄头文库上搜索。

1、#include #include #include #include #define uchar unsigned char #define uint unsigned int #define BUSY 0x80 /常量定义 #define DATAPORT P0 /ADC0832的引脚 sbit ADCS =P35; /ADC0832 chip seclect sbit ADDI =P37; /ADC0832 k in sbit ADDO =P37; /ADC0832 k out sbit ADCLK =P36; /ADC0832 clock signal sbit LCM_RS=P20;

2、 sbit LCM_RW=P21; sbit LCM_EN=P22; uchar ad_data; /采样值存储 sbit Alarm_led_red =P15; /超过压力表量程最大值红色led报警定义 sbit Alarm_led_green=P16; /低于压力表量程最小值绿色led报警定义 /adc采样值存储单元 char press_data; /标度变换存储单元 unsigned char ad_alarm; /报警值存储单元 unsigned char press_bai=0; /显示值百位 unsigned char press_shi=0; /显示值十位 unsigned c

3、har press_ge=0; /显示值个位 unsigned char press_dot=0; /显示值十分位 uchar code str0=Press: . kpa ; uchar code str1= Check BY Jack ; void delay(uint); void lcd_wait(void); void delay_LCM(uint); /LCD延时子程序 void initLCM( void); /LCD初始化子程序 void lcd_wait(void); /LCD检测忙子程序 void WriteCommandLCM(uchar WCLCM,uchar Busy

4、C); /写指令到ICM子函数 void WriteDataLCM(uchar WDLCM); /写数据到LCM子函数 void DisplayOneChar(uchar X,uchar Y,uchar DData); /显示指定坐标的一个字符子函数 void DisplayListChar(uchar X,uchar Y,uchar code *DData); /显示指定坐标的一串字符子函数 void display(void); /系统显示子函数 uchar Adc0832(unsigned char channel); void alarm(void); void data_pro(vo

5、id); void main(void) delay(500); /系统延时500ms启动 initLCM( ); WriteCommandLCM(0x01,1); /清显示屏 DisplayListChar(0,0,str0); DisplayListChar(0,1,str1); while(1) ad_data =Adc0832(0); /采样值存储单元初始化为0 alarm(); data_pro(); display(); void delay(uint k) uint i,j; for(i=0;i for(j=0;j60;j+) ; void WriteCommandLCM(uch

6、ar WCLCM,uchar BusyC) if(BusyC)lcd_wait(); DATAPORT=WCLCM; LCM_RS=0; / 选中指令寄存器 LCM_RW=0; / 写模式 LCM_EN=1; _nop_(); _nop_(); _nop_(); LCM_EN=0; void WriteDataLCM(uchar WDLCM) lcd_wait( ); /检测忙信号 DATAPORT=WDLCM; LCM_RS=1; / 选中数据寄存器 LCM_RW=0; / 写模式 LCM_EN=1; _nop_(); _nop_(); _nop_(); LCM_EN=0; void lcd

7、_wait(void) DATAPORT=0xff; /读LCD前若单片机输出低电平,而读出LCD为高电平,则冲突,Proteus仿真会有显示逻辑黄色 LCM_EN=1; LCM_RS=0; LCM_RW=1; _nop_(); _nop_(); _nop_(); while(DATAPORT&BUSY) LCM_EN=0; _nop_(); _nop_(); LCM_EN=1; _nop_(); _nop_(); LCM_EN=0; void initLCM( ) DATAPORT=0; delay(15); WriteCommandLCM(0x38,0); /三次显示模式设置,不检测忙信号

8、 delay(5); WriteCommandLCM(0x38,0); delay(5); WriteCommandLCM(0x38,0); delay(5); WriteCommandLCM(0x38,1); /8bit数据传送,2行显示,5*7字型,检测忙信号 WriteCommandLCM(0x08,1); /关闭显示,检测忙信号 WriteCommandLCM(0x01,1); /清屏,检测忙信号 WriteCommandLCM(0x06,1); /显示光标右移设置,检测忙信号 WriteCommandLCM(0x0c,1); /显示屏打开,光标不显示,不闪烁,检测忙信号 void D

9、isplayOneChar(uchar X,uchar Y,uchar DData) Y&=1; X&=15; if(Y)X|=0x40; /若y为1(显示第二行),地址码+0X40 X|=0x80; /指令码为地址码+0X80 WriteCommandLCM(X,0); WriteDataLCM(DData); void DisplayListChar(uchar X,uchar Y,uchar code *DData) uchar ListLength=0; Y&=0x01; X&=0x0f; while(X16) DisplayOneChar(X,Y,DDataListLength); ListLength+; X+; void display(void) WriteCommandLCM(0x0c,1); /显示

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号