完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` #include #include #include typedef unsignedchar uchar; typedef unsignedint uint; ***it CE = P1^1; ***it STS=P1^0; ***it RC=P1^4; ***it A0=P1^3; ***it CS=P1^2; ***it RS = P1^5 ; ***it RW = P1^6 ; ***it EN = P1^7 ; void delay_ms(uintz) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } uintAD1674_Read(void) { uint temp; uchar temp1,temp2; CS=1; //片选信号 CE=0; //初始化,关闭数据采集 CS=0; A0=0; RC=0; CE=1;//CE=1,CS=0,RC=0,A0=0启动12位温度转换 _nop_(); while(STS==1); //等待数据采集结束 CE=0; //芯片使能关闭 RC=1; A0=0; CE=1;//CE=1,CS=0,RC=1,12/8=1,A0=0 允许高八位数据并行输出 _nop_(); temp1=P0; //读取转换结果的高八位 CE=0; //芯片使能关闭 RC=1; A0=1; CE=1;//CE=1,CS=0,RC=1,12/8=0,A0=1 允许低四位数据 并行输出 _nop_(); temp2=P0; //读取转换结果的第四位 temp=((temp1<<4)|(temp2&0X0F)); //高位和低位合成实际温度,temp2为PO口的高四位 return (temp); //还回转换结果,右移四位是因为temp2为P0口的高四位 } /** * 写数据 */ voidw_dat(unsigned char dat) { RS = 1; //EN = 0; P2 = dat; delay_ms(5); RW = 0; EN = 1; EN = 0; } /** * 写命令 */ voidw_cmd(unsigned char cmd) { RS = 0; // EN = 0; P2 = cmd; delay_ms(5); RW = 0; EN = 1; EN = 0; } /** * 发送字符串到LCD */ voidw_string(unsigned char addr_start, unsigned char *p) { unsigned char *pp; pp = p; w_cmd(addr_start); while (*pp != ' |