1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標(biāo)題: lcd1602顯示程序 [打印本頁(yè)]

作者: wt82995    時(shí)間: 2018-6-20 22:12
標(biāo)題: lcd1602顯示程序
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dis0[]={"Volter(V)"};
uchar code dis1[]={"dianliuA"};
sbit jia=P3^4;
sbit jian=P3^5;
sbit lcden=P3^2;
sbit lcdrs=P3^0;
sbit adwr=P3^6;
sbit adrd=P3^7;
sbit  wr1=P3^1;
uchar num;
uint ad_data,ad_data1,ad_data2,ad_data3,adval,ad_data4,da,rw1;
unsigned char CYCLE; //定義周期 該數(shù)字X基準(zhǔn)定時(shí)時(shí)間 如果是10 則周期是10 x 0.1ms
unsigned char PWM_ON;//定義高電平時(shí)間
sbit LED = P3^3;
void delay(uint z)
{
// uint y;
// for(y=110;y>0;y--);
  while(z--);
}
key(uchar num)
{if(jia==0)
{delay(10);if(jia==0)
{num++;
     if(num==7)num=6;
  while(jia==0);}
   }
  if(jian==0)
  {delay(10);
  if (jian==0)
   {   if(num!=0)num--;else num=0;while(jian==0);}
  }
  return num;
}
dispose(unsigned char PWM_ON)
{
   switch(num)
   {case 0:PWM_ON=20;break;
   case 1:PWM_ON=40;break;
   case 3:PWM_ON=80;break;
   case 2:PWM_ON=60;break;
   case 4:PWM_ON=100;break;
   case 5:PWM_ON=120;break;
   case 6:PWM_ON=140;break;
   }
   return PWM_ON;
  }
void dac0832()
{ int i;
//lcden=1;delay(5);
lcden=0;delay(50);
wr1=1;delay(5);
wr1=0;delay(50);
  P2=ad_data;
da=ad_data;
for(i=0;i<5;i++)
{
if(PWM_ON>da) P2=--da;
if(PWM_ON<da) P2=++da;
if(PWM_ON==da)P2=da;
}
lcden=0;wr1=1;
}
/*void init0()    //初始化
{ TMOD =0x01;//定時(shí)器設(shè)置 0.1ms in 12M crystal
TH0=(65536-100)/256;
TL0=(65536-100)%256;//定時(shí)0.1mS
IE= 0x82;  //打開(kāi)中斷
TR0=1;
}   

void tim(void) interrupt 1 using 1
{
static unsigned char count; //
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;//定時(shí)1mS
if (count==PWM_ON)
    {
     LED = 0; //燈滅
    }
  count++;
if(count == CYCLE)
    {
    count=0;
if(PWM_ON!=0) //如果左右時(shí)間是0 保持原來(lái)狀態(tài)
    LED =1;//燈亮
    }
}     */


void write_com(uchar com)
{
  lcdrs=0;P0=com;
  delay(5);
  lcden=1;
  delay(5);
  lcden=0;
}
void write_data(uchar dota)
{
  lcdrs=1;
  P0=dota;
  delay(5);
  lcden=1;
  delay(5);
  lcden=0;
}
void init()
{
  lcden=0;
  write_com(0x38);
  write_com(0x0c);
  write_com(0x06);
  write_com(0x01);
}
void display0()
{ write_com(0x80);
  for(num=0;num<10;num++)
{
  write_data(dis0[num]);
  delay(5);
}
  delay(5);
  write_data(ad_data1+0x30);delay(1);
  write_data(ad_data2+0x30);delay(1);
  write_data('.');delay(1);
  write_data(ad_data3+0x30);delay(1);
// write_data(ad_data4+0x30);delay(2);
  write_com(0x80+0x40);
  for(num=0;num<8;num++)
{
  write_data(dis1[num]);
  delay(5);}

}
AD0804(uint ad_data)
{ adwr=1;_nop_();
  adwr=0;_nop_();delay(5);
  adwr=1;_nop_();
  P1=0xff;
  adrd=1;_nop_();
  adrd=0;_nop_();
  ad_data=P1;
  adval=ad_data;
  adval=adval*100/51;
  ad_data1=adval/100;
  ad_data2=adval%100/10;
  ad_data3=adval%100%10;
// ad_data4=adval%1000%100%10;
return ad_data;

}

void main()
{   init();
    ad_data=1;
    ad_data1=2;
LED=0;
num=0;
CYCLE=200;
PWM_ON=100;
while(1)
    {LED=0;
display0();
AD0804(ad_data);
    key(num);
    dispose(PWM_ON);
dac0832();
    LED=1;delay(CYCLE);
}

}







歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1