久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: AD,看了論壇里的教程,仿真下,但沒(méi)反應(yīng) [打印本頁(yè)]

作者: 滄浪    時(shí)間: 2016-5-3 17:40
標(biāo)題: AD,看了論壇里的教程,仿真下,但沒(méi)反應(yīng)
lcd正常的(注釋實(shí)在弄不出來(lái),我一直對(duì)keil里的字符編碼不知怎么弄),代碼如下:
#include<reg52.h>
#include<math.h>
#include<intrins.h>

#define uint unsigned int
#define uchr unsigned char


void PrintError1();
void LcdDisstr(uchr *p);

sbit EN=P1^2;
sbit RS=P1^0;
sbit RW=P1^1;
sbit SDA=P1^3;
sbit SCL=P1^4;

uchr code error1a[]="Sorry! Device w-";
uchr code error1b[]="ith no response!";
uchr code str1[16];

uint Intime=0;

uchr T0RH;
uchr T0RL;

bit flag=0;
void delay1ms(uint x)
{
        uchr i;
        uint j;
        for(j=0;j<x;j++)
                for(i=0;i<110;i++);
}


void delaynus()
{
        _nop_();
        _nop_();
        _nop_();
}
void Wcom16(uchr com)                    //1602D′Ö¸áî
{
        RS=0;
        RW=0;
        P2=com;
        EN=1;
        delay1ms(5);
        EN=0;
}
void Wdat16(uchr dat)
{
        RS=1;
        RW=0;
        P2=dat;
        EN=1;
        delay1ms(5);
        EN=0;
}

void Init16()
{
        EN=1;
        Wcom16(0x38);
        Wcom16(0x0c);
        Wcom16(0x06);
        Wcom16(0x01);
}

void lcdtest()
{
        Wcom16(0x80);
        Wdat16('t');
        Wdat16('e');
        Wdat16('s');
        Wdat16('t');
        Wdat16('!');
}
/************************************
I2C2¿·Ö
*************************************/
void I2cStart()
{
        SDA=1;
        SCL=1;//     è·±£SDAoíSCLÎa1
        delaynus();
        SDA=0;
        delaynus();
        SCL=0;
}

void I2cStop()
{
        SCL=0;            //ê×Ïèè·±£SDAoíSCL¶¼êÇμíμçÆ½
        SDA=0;
        delaynus();
        SCL=1;             //Ïèà-¸ßSCL£¬Ôùà-¸ßSDA£»
        delaynus();
        SDA=1;
        delaynus();
}

bit I2cWrite(uchr dat)     //¸ßλÔúǰ£¬μíλÔúoó
{
        bit ask;
        uchr i;
        for(i=0x80;i!=0;i>>=1)
        {
                if((dat&i)==0)
                        SDA=0;
                else
                        SDA=1;
                delaynus();
                SCL=1;
                delaynus();
                SCL=0;       
        }
        SDA=1;
        delaynus();
        SCL=1;
        delaynus();
        ask=SDA;
        delaynus();
        SCL=0;
        return (~ask);
}
uchr I2cReadN()        //I2c×üÏß¶á2ù×÷£¬2¢·¢Ëí·Çó|′eDÅoÅ
{
        uchr mask;
        uchr dat;
       
        SDA=1;
        for(mask=0x80;mask!=0;mask>>=1)
        {
                delaynus();
                SCL=1;
                if(SDA==0)
                        dat&=~mask;
                else
                        dat|=mask;     //Îa1ê±£¬datÖD¶Ôó|λÖÃ1
                delaynus();
                SCL=0;
        }
        SDA=1;       //8λêy¾Y·¢Ëííêoó£¬à-¸ßSDA£¬·¢Ëí·Çó|′eDÅoÅ
        delaynus();
        SCL=1;
        delaynus();
        SCL=0;
       
        return dat;
}


uchr I2cReadA()        //I2c×üÏß¶á2ù×÷£¬2¢·¢Ëíó|′eDÅoÅ
{
        uchr mask;
        uchr dat;
       
        SDA=1;
        for(mask=0x80;mask!=0;mask>>=1)
        {
                delaynus();
                SCL=1;
                if(SDA==0)
                        dat&=~mask;
                else
                        dat|=mask;     //Îa1ê±£¬datÖD¶Ôó|λÖÃ1
                delaynus();
                SCL=0;
        }
        SDA=0;       //8λêy¾Y·¢Ëííêoó£¬à-¸ßSDA£¬·¢Ëíó|′eDÅoÅ
        delaynus();
        SCL=1;
        delaynus();
        SCL=0;
       
        return dat;
}

void PrintError1()
{
        uchr i;
        Wcom16(0x80);
        for(i=0;i<16;i++)
        {
                Wdat16(error1a);
                delay1ms(5);
        }
        Wcom16(0xc0);
        for(i=0;i<16;i++)
        {
                Wdat16(error1b);
                delay1ms(5);
        }
}

uchr GetadcNum(uchr chn)
{
        uchr num=3;
        I2cStart();
        if(!I2cWrite(0x90))
        {
                PrintError1();
                I2cStop();
                return 0;
        }
        I2cWrite(0x40|chn);
        I2cStart();
        I2cWrite(0x91);
        I2cReadA();
        num=I2cReadN();
        I2cStop();

        return num;
}

void NumtoStr(uchr *p,uchr num)
{
        num=(num*50)/255;   //òto¬ò»Î»ê®½øÖÆD¡êy
        p[0]=(num/10)+'0';  //Õûêy2¿·Ö
        p[1]='.';           //D¡êyμã
        p[2]=(num%10)+'0';
        p[3]='v';
        p[4]='\0';
        LcdDisstr(p);
        while(1);       
}

void SetT0(uint ms,uchr x,uchr mode)
{
    unsigned long tmp;

    tmp = x*1000000 / 12;      //¶¨ê±Æ÷¼ÆêyÆμÂê
    tmp = (tmp * ms) / 1000;  //¼ÆËãËùDè¼ÆêyÖμ=ÿÃëÖóÆμÂê*Ãëêy£¨òaÇóμÄmsêy/1000£©
    tmp = 65536 - tmp;        //×°ÔØÖμ
    tmp = tmp + 12;           //DTÕyÖD¶ÏÏìó|Ñóê±   ÖD¶Ïò»°ãÑóê±3-8¸öÖüÆú

    T0RH = (unsigned char)(tmp >> 8);  //×°ÔØ¼ÆêyÆ÷¸ßλ
    T0RL = (unsigned char)tmp;
          TMOD&=0xf0;
    TMOD |=mode;   //Ä£ê½ò»
    TH0 = T0RH;     //×°ÔØ3õê¼Öμ
    TL0 = T0RL;
    ET0 = 1;        //¿at0ÖD¶Ï
    TR0 = 1;        //¿aê¼¼Æê±
}

void LcdDisstr(uchr *p)
{
        uchr i;
        Wcom16(0x80);
        for(i=0;i<6;i++)
        {
                Wdat16(p);
                delay1ms(5);
        }
}

void main()
{
        uchr val;
        EA=1;
        SetT0(10,12,0x01);
        Init16();
        while(1)
        {
                        if (flag==1)
                        {
                         flag = 0;
                         val  = GetadcNum(0);                                 //¶áè¡í¨μà0μÄÖμ
                         NumtoStr(str1, val);  //½«Öμ×aÎa×Ö·û′®
                         LcdDisstr(str1);
        }
        }
}


void timer1 () interrupt 1
{
        TH0=T0RH;
        TL0=T0RL;
        Intime++;
        if(Intime>=30)
        {
                Intime=0;
                flag=1;
        }
}


哪位大神看看下,謝謝了!!!


這是仿真的硬件連接





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 中文字幕日韩欧美一区二区三区 | 激情自拍偷拍 | 黑人一级片视频 | 亚洲精品免费视频 | 91新视频 | 色综合久久伊人 | 成人影院一区二区三区 | 国产成人jvid在线播放 | 天天色图 | 在线欧美一区二区 | 二区在线观看 | 国产精品久久久久久久久久99 | 久久久999免费视频 999久久久久久久久6666 | 免费黄色av | 国产91黄色| 欧美福利视频一区 | 欧美亚洲综合久久 | 欧美性精品 | 亚洲欧洲小视频 | 美女一级黄 | 日韩精品免费在线 | 国产福利二区 | 成人av电影免费在线观看 | 日韩av第一页 | 久精品久久 | 欧美精品v国产精品v日韩精品 | 精品中文字幕在线 | 久久久免费在线观看 | 日韩中文在线视频 | 亚洲一区| 日韩视频1 | 91精品国产自产精品男人的天堂 | 欧美又大粗又爽又黄大片视频 | 欧美色999| 欧美日韩三级 | 亚洲精品久久久一区二区三区 | 美女在线一区二区 | 狠狠操天天干 | 在线播放中文字幕 | 黄色网址在线免费播放 | 国产一级毛片精品完整视频版 |