立即注册 登录
返回首页

uid:262的个人空间

日志

压力传感器测试程序

已有 3224 次阅读2016-8-12 17:04 | 压力传感器, 程序

#include <REGX51.H>
#include"intrins.h"
sbit rs=P3^7;
sbit en=P2^4;
sbit Hout=P1^7;
sbit Lout=P1^6;
unsigned int temp;
unsigned char dd[]=" Welcome";
unsigned char dd1[]="Our company";
void w1602c(unsigned char dat)
{
  char i;
P3 &=~0x46;
P3 |=((dat>>4) & 0x06)|((dat>>1)&0x40);
P1 &=~0x3E;
P1 |=((dat<<1) & 0x3E);
rs=0;
en=0;
i=6;
while(i--);
en=1;
i=8;
while(i--);
en=0;
}
void w1602d(unsigned char dat)
{
  char i;
P3 &=~0x46;
P3 |=((dat>>4) & 0x06)|((dat>>1)&0x40);
P1 &=~0x3E;
P1 |=((dat<<1) & 0x3E);
rs=1;
en=0;
i=6;
while(i--);
en=1;
i=8;
while(i--);
en=0;
}
void init()
{
  w1602c(0x38);
w1602c(0x06);
w1602c(0x0c);
w1602c(0x01);
}
void InitADC()
{
  P1ASF =0xff;  //P10
  ADC_CONTR =0x80;//ON_POWER
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();                     
void main()
{
  unsigned char i,t,nn;
unsigned int k;
  init();
CLK_DIV |=0x20; 
  while(1)
  {
InitADC();   //on exchange power
   ADC_CONTR =0x88; //start exchange
   nn=5;
   while(nn--);
   //while(!(ADC_CONTR & 0x10));//wait for AD exchenge end
ADC_CONTR =0x00;
   temp =ADC_RES;  //read high 8bit to temp
   temp =temp<<2;
   temp |=ADC_LOW2;//read low 2bit to temp
if(t>=60)      
t=0;
else 
t++;
if(t>50)       //write high
{
Hout=1;
Lout=0;
}
if(t<10)      ////write low
{
          Hout=0;
   Lout=1;
        }
if((t<=50)&&(t>=10))  //write normal
  {
          Hout=0;
   Lout=0;
       }
   w1602c(0x80);
   w1602d(0x30+temp/1000);
   w1602d(0x30+(temp%1000)/100);
   w1602d(0x30+((temp%1000)%100)/10);
   w1602d(0x30+temp%10);
k=10000;
while(k--);
    w1602c(0xc0);
for(i=0;i<12;i++)
{  
  w1602d(dd1[i]);
    }
    k=10000;
while(k--);
}
}

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

返回顶部