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()//初始化设置// {