欢迎来到天天文库
浏览记录
ID:49194773
大小:44.51 KB
页数:8页
时间:2020-03-01
《压力传感器仿真程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#include#include#include#defineucharunsignedchar#defineuintunsignedint#defineBUSY0x80//常量定义#defineDATAPORTP0//ADC0832的引脚sbitADCS=P3^5;//ADC0832chipseclectsbitADDI=P3^7;//ADC0832kinsbitADDO=P3^7;//ADC0832koutsbitA
2、DCLK=P3^6;//ADC0832clocksignalsbitLCM_RS=P2^0;sbitLCM_RW=P2^1;sbitLCM_EN=P2^2;ucharad_data;//采样值存储sbitAlarm_led_red=P1^5;//超过压力表量程最大值红色led报警定义sbitAlarm_led_green=P1^6;//低于压力表量程最小值绿色led报警定义//adc采样值存储单元charpress_data;//标度变换存储单元unsignedcharad_alarm;//报警值存储单元uns
3、ignedcharpress_bai=0;//显示值百位unsignedcharpress_shi=0;//显示值十位unsignedcharpress_ge=0;//显示值个位unsignedcharpress_dot=0;//显示值十分位ucharcodestr0[]={"Press:.kpa"};ucharcodestr1[]={"CheckBYJack"};voiddelay(uint);voidlcd_wait(void);voiddelay_LCM(uint);//LCD延时子程序voidinitL
4、CM(void);//LCD初始化子程序voidlcd_wait(void);//LCD检测忙子程序voidWriteCommandLCM(ucharWCLCM,ucharBusyC);//写指令到ICM子函数voidWriteDataLCM(ucharWDLCM);//写数据到LCM子函数voidDisplayOneChar(ucharX,ucharY,ucharDData);//显示指定坐标的一个字符子函数voidDisplayListChar(ucharX,ucharY,ucharcode*DData);
5、//显示指定坐标的一串字符子函数voiddisplay(void);//系统显示子函数ucharAdc0832(unsignedcharchannel);voidalarm(void);voiddata_pro(void);/**********mainfuncation************/voidmain(void){delay(500);//系统延时500ms启动//ad_data=0;//采样值存储单元初始化为0initLCM();WriteCommandLCM(0x01,1);//清显示屏Disp
6、layListChar(0,0,str0);DisplayListChar(0,1,str1);while(1){ad_data=Adc0832(0);//采样值存储单元初始化为0alarm();data_pro();display();}}/*********延时K*1ms,12.000mhz**********/voiddelay(uintk){uinti,j;for(i=0;i7、oidWriteCommandLCM(ucharWCLCM,ucharBusyC){if(BusyC)lcd_wait();DATAPORT=WCLCM;LCM_RS=0;//选中指令寄存器LCM_RW=0;//写模式LCM_EN=1;_nop_();_nop_();_nop_();LCM_EN=0;}/**********写数据到LCM子函数************/voidWriteDataLCM(ucharWDLCM){lcd_wait();//检测忙信号DATAPORT=WDLCM;LCM_RS=1;/8、/选中数据寄存器LCM_RW=0;//写模式LCM_EN=1;_nop_();_nop_();_nop_();LCM_EN=0;}/***********lcm内部等待函数*************/voidlcd_wait(void){DATAPORT=0xff;//读LCD前若单片机输出低电平,而读出LCD为高电平,则冲突,Proteus仿真会有显示逻辑黄色LCM_EN=1;LCM
7、oidWriteCommandLCM(ucharWCLCM,ucharBusyC){if(BusyC)lcd_wait();DATAPORT=WCLCM;LCM_RS=0;//选中指令寄存器LCM_RW=0;//写模式LCM_EN=1;_nop_();_nop_();_nop_();LCM_EN=0;}/**********写数据到LCM子函数************/voidWriteDataLCM(ucharWDLCM){lcd_wait();//检测忙信号DATAPORT=WDLCM;LCM_RS=1;/
8、/选中数据寄存器LCM_RW=0;//写模式LCM_EN=1;_nop_();_nop_();_nop_();LCM_EN=0;}/***********lcm内部等待函数*************/voidlcd_wait(void){DATAPORT=0xff;//读LCD前若单片机输出低电平,而读出LCD为高电平,则冲突,Proteus仿真会有显示逻辑黄色LCM_EN=1;LCM
此文档下载收益归作者所有