压力传感器仿真程序_第1页
压力传感器仿真程序_第2页
压力传感器仿真程序_第3页
压力传感器仿真程序_第4页
压力传感器仿真程序_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、# i ncl ude#in elude #in clude #defi ne uchar un sig ned char#defi ne uint un sig ned int#defi ne BUS Y 0x80/常量定义#defi ne DATAPORT P0/ADC0832的引脚 sbit ADCS =P3A5; /ADC0832 chip seclectsbit ADDI =P3A7; /ADC0832 k in sbit ADDO =P3A7; /ADC0832 k out sbit ADCLK 二卩3八6; /ADC0832 clock sig nalsbit LCM_RS=P2

2、A0;sbit LCM_RW=P2A1;sbit LCM_EN=P2A2;uchar ad_data;sbit Alarmed_red 二PM5;红色led报警定义sbit Alar med_gree n=PM绿色led报警定义/采样值存储超过压力表量程最大值低于压力表量程最小值/adc采样值存储单元报警值存储单元显示值百位显示值十位显示值个位 显示值十分位BusyC);un sig ned char ad_alarm;/un sig ned char press_bai=O;/un sig ned char press_shi=O;/un sig ned char press_ge=O;/u

3、n sig ned char press_dot=0;/ uchar code strO=Press: . kpa ;uchar code str1= Check BY Jack ; void delay( uin t);void lcd_wait(void);void delay_LCM(ui nt);/LCD延时子程序void ini tLCM( void);/LCD初始化子程序void lcd_wait(void);/LCD检测忙子程序voidWriteComma ndLCM(ucharWCLCM,uchar/写指令到ICM子函数voidWriteDataLCM(ucharWDLCM);

4、/写数据到LCM子函数X,ucharY,ucharDData);voidDisplay On eChar(uchar/显示指定坐标的一个字符子函数void DisplayListChar(ucharX,ucharY, ucharcode *DData);/显示指定坐标的一串字符子函数display(void);void/系统显示子函数 uchar Adc0832( un sig ned char cha nn el);void alarm(void);void data_pro(void);/*mai fjn cati on */void main (void)delay(500);/系统延时

5、500ms启动/ ad_data=0;/采样值存储单元初始化为 0ini tLCM();WriteComma ndLCM(0x01,1);/清显示屏DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);while(1)ad_data =Adc0832(0);/采样值存储单元初始化为 0alarm();data_pro();display();*延日寸 K*1ms,12.000mhz*/void delay( uint k)uint i,j;for(i=0;ik;i+)for(j=0;j60;j+);/*写指令至y icm子函数*/void Wr

6、iteComma ndLCM(uchar WCLCM,uchar BusyC)if(BusyC)lcd_wait();DATAPORT二WCLCM;LCM_RS=0;/选中指令寄存器LCM_RW=0;/写模式LCM_EN=1;_nop_();_nop_();_nop_();LCM_EN=0;*写数据到LCM子函数*/void WriteDataLCM(uchar WDLCM)lcd_wait();/检测忙信号DATAPORT二WDLCM;LCM_RS=1;/选中数据寄存器LCM_RW=0;/与模式LCM_EN=1;_nop_();_nop_();_nop_();LCM_EN=0;/*lcQ内部

7、等待函数*/void lcd_wait(void)DATAPORT=Oxff; /读LCD前若单片机输出低电平,而读出LCD为高电平,则冲突,Proteus仿真会有显示逻辑黄色LCM_EN=1;LCM_RS=0;LCM_RW=1;_nop_();_nop_();_nop_();while(DATAPORT&BUS Y) LCM_EN=O;_nop_();_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;/* *LCM初始化子函数*/void ini tLCM()DATAPORT=0;delay(15);WriteComma ndLCM(0x38,0); /三次

8、显示模式设置,不检测忙信号delay(5);WriteComma ndLCM(0x38,0);delay(5);WriteComma ndLCM(0x38,0);delay(5);忙信号WriteComma ndLCM(0x08,1);/WriteComma ndLCM(0x01,1);/WriteComma ndLCM(0x06,1);/WriteComma ndLCM(0x0c,1); /信号/*显示指定坐标的一个字符子函数关闭显示,检测忙信号清屏,检测忙信号显示光标右移设置,检测忙信号显示屏打幵,光标不显示,不闪烁,检测忙* /void Display On eChar(uchar X,

9、uchar Y, uchar DData)Y& =1;X& =15;if(Y)X|=0x40;/若y为1 (显示第二行),地址码+0X40X|=0x80;/指令码为地址码+0X80WriteComma ndLCM(X,0);WriteDataLCM(DData);/*显示指定坐标的一串字符子函数*/void DisplayListChar(uchar X,uchar Y, uchar code *DData)uchar ListLe ngth=0;Y&=0x01;X&=OxOf;while(X1)&0x1;_nop_();_nop_();ADCLK=0; 拉低CLK端,形成下降沿3ADDI=1

10、;控制命令结束_nop_();_nop_();dat=0;for(i=0;i8;i+)dat|=ADDO;收数据ADCLK=1;_nop_();_nop_();ADCLK=0; 形成一次时钟脉冲_nop_();_nop_();dat=1;if(i=7)dat|=ADD0;for(i=0;i8;i+)j=0;j=j|ADDO;/ 收数据ADCLK=1;_nop_();_nop_();ADCLK=0;形成一次时钟脉冲_nop_();_nop_();j=jv7;n dat 二n dat|j;if(i=1;ADCS=1; 拉低 CS端ADCLK=0; 拉低 CLK端ADDO=1; 拉高数据端,回到初始状态dat=8;dat|=ndat

温馨提示

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

评论

0/150

提交评论