51单片机驱动ADC0832模数转换程序lcd1602显示 下载本文

51单片机驱动ADC0832模数转换程序

-lcd1602显示

/*这个芯应用不多*/ #include ;

#define uchar unsigned char #define uint unsigned int uchar Chan0Value,Chan1Value; sbit RS=P1^0; //1602各控制脚 sbit RW=P1^1; sbit EN=P1^2; sbit Cs0832= P2^0; //0832各控制脚 sbit Clk0832= P3^6; sbit Di0832= P3^7; sbit Do0832= P3^7;

void delay1ms(unsigned int ms)//延时1毫秒(不够精确的) {

int i,j; for(i=0;i;>;i; }

for(i=0;i<8;i++) //从低到高取一次数 {

if(Do0832) Dat2|=0x01<

Clk0832=1; //数据读取完成,释放所有数据线 if(Dat1==Dat2)

return Dat1; //校验两次数相等,输出 }

/*本程序与其他一般程序最大的不同就是要读两次 一次从最高位到最低位,一次从最低位到最高位, 两次所读值相等即为正常,可以输出*/

/******************************LCD1602**************************************/

/*************************lcd1602程序**************************/

void wr_com(unsigned char com)//写指令// { delay1ms(1);

RS=0; RW=0; EN=0; P0=com; delay1ms(1); EN=1; delay1ms(1); EN=0; }

void wr_dat(unsigned char dat)//写数据// { delay1ms(1); RS=1; RW=0; EN=0; P0=dat; delay1ms(1); EN=1; delay1ms(1); EN=0; }

void lcd_init()//初始化设置// {