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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2207|回復: 5
收起左側

這個單片機程序 為什么lcd不顯示呀,求大佬解密

[復制鏈接]
ID:950415 發表于 2021-7-7 16:17 | 顯示全部樓層 |閱讀模式
捕獲.PNG
#include<reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit rs=P2^6;
sbit rw=P2^5;
sbit e=P2^7;
sbit beep=P3^7;
sbit dq=P3^6;
sbit led=P3^1;
sbit k1=P3^2;  
sbit k2=P3^4;  
sbit k3=P3^5;  
sbit k4=P3^3;  
uint8 num[]="0123456789.C";
uint8 d1[8]="Temper: ";
uint8 d2[2]="H:";
uint8 d3[2]="L:";
uint8 tm[5],tm1[5],tm2[5];
uint8 a,c,temp;
float dio;
uint16 k;
uint8 mode,sheding=0;
char wenduh=40,wendul=20;

void delay(uint16 i)
{
    while(i--);
}
void int0init()
{
    EA=1;
    EX0=1;
    IT0=1;
}
void int1init()
{
    EA=1;
    EX1=1;
    IT1=1;
}
void wrc(uint8 c)
{
    delay(1000);
    rs=0;
    rw=0;
    e=0;
    P0=c;
    e=1;
    delay(10);
    e=0;
}
void wrd(uint8 dat)
{
    delay(1000);
    rs=1;
    rw=0;
    e=0;
    P0=dat;
    e=1;
    delay(10);
    e=0;
    rs=0;
}
void init()
{
    delay(1000);
    wrc(0x38);
    wrc(0x38);
    wrc(0x38);
    wrc(0x06);
    wrc(0x0c);
    wrc(0x01);
}
//DS18B20?ì2a??
void ds18b20init()
{
    dq=1;
    delay(1);
    dq=0;
    delay(80);
    dq=1;
    delay(5);
    dq=0;
    delay(20);
    dq=1;
    delay(35);
}
void ds18b20wr(uint8 dat)  
{
    uint8 i;
    for(i=0;i<8;i++)
  {
        dq=0;
        dq=dat&0x01;
        dat>>=1;
        delay(8);
        dq=1;
        delay(1);
  }
}
uint8 ds18b20rd()
{
    uint8 value,i;
    for(i=0;i<8;i++)
    {
        dq=0;
        value>>=1;
        dq=1;
        if(dq==1)value|=0x80;
        delay(8);
    }
    return value;
}
uint8 readtemp()
{
        uint8 b;
        ds18b20init();  
        ds18b20wr(0xcc);
        ds18b20wr(0x44);
        delay(100);
        ds18b20init();  
        ds18b20wr(0xcc);
        ds18b20wr(0xbe);
        a=ds18b20rd();
        b=ds18b20rd();
        b<<=4;
        c=b&0x80;
        b+=(a&0xf0)>>4;
        a=a&0x0f;
        return b;
}
void time0init()
{
    TMOD=0x01;
    TH0=0xfc;
    TL0=0x18;
    TR0=1;
    EA=1;
    ET0=1;
}
void sound()
{
    uint8 i=100;
    while(i--)
    {
        beep=~beep;
        delay(100);  
    }
}     
void datapros()
{
    dio=a*0.0625;
    k=dio*10000;
    wrc(0x08+0x80);
    if(c==0x80)
    {
        wrd('-');
        temp=temp-1;
        temp=(~temp);
    }
  else
    {
        wrd('+');
        temp=(temp);
    }
    tm[0]=num[temp/100];
    tm[1]=num[temp%100/10];
    tm[2]=num[temp%100%10];
    tm[3]=num[10];
    tm[4]=num[k/1000];
    tm[5]=num[11];
        
    tm1[0]=num[wenduh/100];
    tm1[1]=num[wenduh%100/10];
    tm1[2]=num[wenduh%100%10];
        
    tm2[0]=num[wendul/100];
    tm2[1]=num[wendul%100/10];
    tm2[2]=num[wendul%100%10];
}
void display()
{
    uint8 i;
    wrc(0x80);
    for(i=0;i<8;i++)
    {
        wrd(d1[ i]);
    }
    wrc(0x09+0x80);  
    for(i=0;i<6;i++)
    {
        wrd(tm[ i]);
    }
    wrc(0x80+0x40);  
    for(i=0;i<2;i++)
    {
        wrd(d2[ i]);
    }
    for(i=0;i<3;i++)
    {
        wrd(tm1[ i]);
    }
    wrc(0x80+0x49);  
    for(i=0;i<2;i++)
    {
        wrd(d3[ i]);  
    }
    for(i=0;i<3;i++)
    {
        wrd(tm2[ i]);
    }
}
void keypros()
{
    if(mode==1)
    {
        if(k2==0)  
        {
            delay(1000);
            if(k2==0)
            {
                wenduh++;
                if(wenduh>=120)wenduh=120;
            }
        }
        if(k3==0)  
        {
            delay(1000);
            if(k3==0)
            {
                wenduh--;
                if(wenduh<=0)wenduh=0;
            }
        }
    }
    if(mode==2)
    {
        if(k2==0)  
        {
            delay(1000);
            if(k2==0)
            {
                wendul++;
                if(wendul>=120)wendul=120;
            }
        }
   
        if(k3==0)  
        {
            delay(1000);
            if(k3==0)
            {
                wendul--;
                if(wendul<=0)wendul=0;
            }
        }
    }
}

void data_change()  
{
    if(temp>=wenduh&&sheding==1)
    {
        led=1;
        sound();
    }
    if(temp<wendul&&sheding==1)
    {
        led=0;
    }
}
void main()  
{
    init();
    int0init();
    int1init();
    time0init();
    led=0;
    while(1)
    {
        temp=readtemp();
        keypros();
        datapros();
        display();  
        data_change();
    }
}
void int0() interrupt 0
{
        delay(1000);
        mode++;
        sheding=0;
        if(mode==3)
        {
            mode=1;
        }
}
void int1() interrupt 2
{
    delay(1000);
    mode=0;
    sheding=1;
}

回復

使用道具 舉報

ID:584814 發表于 2021-7-8 08:29 | 顯示全部樓層
可能情況:
1、軟件方面:程序寫法有錯;
2、硬件方面:設計或連接有錯;
3、自己問題:使用盜版軟件去仿真又不會按實際調整....
建議:本壇內找個能用的就好。
回復

使用道具 舉報

ID:748788 發表于 2021-7-8 11:08 | 顯示全部樓層
一步步來,先調試好1602,使其能正常顯示。
回復

使用道具 舉報

ID:539024 發表于 2021-7-8 11:43 | 顯示全部樓層
接線跟實物不一樣,
sbit rs=P2^6;
sbit rw=P2^5;
sbit e=P2^7;
在protues里面按照這樣接線,或者你也可以把程序改了。
總之仿真要跟實物對應
回復

使用道具 舉報

ID:914633 發表于 2021-7-8 20:41 | 顯示全部樓層
電源和地都沒連
回復

使用道具 舉報

ID:885725 發表于 2021-7-9 08:28 | 顯示全部樓層

和你的想法一樣。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级特黄aaa大片在线观看 | 99一区二区 | 国产成人精品一区二区 | 7777奇米影视 | 国产精品视频偷伦精品视频 | 久久精品黄色 | 中文字幕人成乱码在线观看 | 亚洲一一在线 | 国产精品伦一区二区三级视频 | 欧美日韩午夜精品 | 在线男人天堂 | 狼色网 | 欧美黄色片在线观看 | 日韩精品免费视频 | 国产美女自拍视频 | 中文字幕一区在线 | 天堂三级| 亚洲高清在线 | 成人二区| 羞羞免费网站 | 九色国产 | 一区二区三区四区av | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 免费黄色a视频 | 中文字幕乱码一区二区三区 | 天天搞天天搞 | 中文字幕视频在线 | 91色站 | 免费黄色录像视频 | 国产精品永久免费 | 成人在线观看免费视频 | 五月天激情电影 | 色片在线观看 | 九九亚洲 | 欧美aⅴ在线观看 | 国产精品一区久久久 | 亚洲高清在线 | 五月天激情电影 | 欧美一区二区在线看 | 日韩在线中文 | 国产精品成人av |