欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1825|回復: 0
收起左側

lcd1602顯示程序

[復制鏈接]
ID:354096 發表于 2018-6-20 22:12 | 顯示全部樓層 |閱讀模式
#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; //定義周期 該數字X基準定時時間 如果是10 則周期是10 x 0.1ms
unsigned char PWM_ON;//定義高電平時間
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;//定時器設置 0.1ms in 12M crystal
TH0=(65536-100)/256;
TL0=(65536-100)%256;//定時0.1mS
IE= 0x82;  //打開中斷
TR0=1;
}   

void tim(void) interrupt 1 using 1
{
static unsigned char count; //
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;//定時1mS
if (count==PWM_ON)
    {
     LED = 0; //燈滅
    }
  count++;
if(count == CYCLE)
    {
    count=0;
if(PWM_ON!=0) //如果左右時間是0 保持原來狀態
    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);
}

}


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表