[mw_shl_code=c,true]#include<reg52.h>
#include<intrins.h>
#include<string.h>
#define uchar unsigned char
#define uint unsigned int
#define LCD_data P2
sbit lcd_en=P1^5;
sbit lcd_rw=P1^6;
sbit lcd_rs=P1^7;
sbit lcd_psb=P3^3;
sbit adrd=P3^7;
sbit adwr=P3^6;
sbit adcs=P3^4;
sbit adinit=P3^2;
uchar wendu[4];
uchar code dis[]={1234567890} ;
void delay(uint m)
{
uint i,j;
for(i=0;i<m;i++)
for(j=0;j<10;j++);
}
/**************ad0804*********************
*****************************************/
void ad_init()
{
adcs=0;
_nop_();
}
void adsatart()
{
adinit=1;
adwr=0;
_nop_();
_nop_();
adwr=1;
adinit=0;
}
char read_ad()
{
uchar temp;
adinit=0;
adrd=0;
_nop_();
adinit=1;
temp=P0;
return temp;
}
/**********************"液晶模块"**********
*******************************************/
bit lcd_busy()
{
bit result;
lcd_rs = 0;
lcd_rw = 1;
lcd_en = 1;
_nop_();
_nop_();
result = (bit)(P2 & 0x80);
lcd_en = 0;
return(result);
}
void lcd_wcmd(uchar cmd)
{
while(lcd_busy());
lcd_rs = 0;
lcd_rw = 0;
lcd_en = 0;
_nop_();
_nop_();
P2 = cmd;
delay(1);
lcd_en = 1;
delay(1);
lcd_en = 0;
}
void lcd_wdat(uchar dat)
{
while(lcd_busy());
lcd_rs = 1;
lcd_rw = 0;
lcd_en = 0;
P2 = dat;
_nop_();
_nop_();
lcd_en = 1;
delay(1);
lcd_en = 0;
}
void lcd_init()
{
P2=0Xff;
delay(5);
lcd_psb=1;
delay(5);
lcd_wcmd(0x30);
delay(5);
lcd_wcmd(0x0c);
delay(5);
lcd_wcmd(0x01);
delay(5);
lcd_wcmd(0x06);
delay(100);
}
void display(uchar addr,uchar *str)
{
uchar i;
lcd_wcmd(addr);
for(i=0;i<strlen(str);i++)
{
lcd_wdat(str);
}
}
void main()
{
uchar temp=0;
P0=0Xff;
lcd_init();
ad_init();
adcs=0;
while(1)
{
adsatart();
delay(1);
temp=read_ad();
delay(10);
wendu[0]=temp/100+'0';
wendu[1]=temp/100%10+'0';
wendu[2]=temp%10+'0';
display(0x80,"AF");
display(0x90,"RE");
display(0x88,"temp=");
display(0x8b ,wendu);
display(0x8d,"C");
display(0x98,"WELCOME");
}
}
[/mw_shl_code]
|