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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3022|回復: 4
打印 上一主題 下一主題
收起左側

為什么在仿真上面程序能夠跑起來,但是實物焊接出來,顯示屏一是只亮背光

[復制鏈接]
跳轉到指定樓層
樓主
ID:447891 發表于 2019-1-7 00:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "reg51.h"
#define uchar  unsigned char
#define Port P2 //定義數據端口
sbit begin=P3^2;
sbit RS=P3^5; //定義和LCD的連接端口,寫數據指令端口
sbit RW=P3^6; //讀寫端口
sbit E=P3^7;  //使能端口
sbit Busy=P2^7;  //讀忙端口
uchar min=40,sec=0,count=0;
uchar a=0,b=0;
uchar str[]="0123456789";
uchar str1[16]="Team A: **";
uchar str2[16]="Team B: **";
//延時函數
void  delay()
{
    uchar i,j; //延時變量
    for(i=0;i<50;i++)  //t表示循環次數
       for(j=0;j<100;j++) ;
}


//  讀忙信號判斷
void  Read_Busy(void)
{
     uchar k=255;
     Port=0xff;
     RS = 0;
     RW = 1;
     E = 1;
     while((k--)&&(Busy));
     E = 0;
}


//  寫指令函數

void  Write_Comm(uchar lcdcomm)
{
      Read_Busy( ); //先讀忙
      RS = 0; //端口定義為寫指令
      RW = 0;//端口寫入使能
      E = 1; //端口輸入總使能
      Port=lcdcomm;  //數據端送指令
      E = 0; //端口輸入總禁止
}


//寫數據函數
void  Write_Chr(uchar lcddata)
{
      Read_Busy( ); //先讀忙
      RS = 1;//端口寫數據使能
      RW = 0;//端口寫入使能
      E = 1;//端口總輸入使能
      Port = lcddata;   //數據端口送數據
      E = 0;  //端口總輸入禁止
}


//初始化LCD
void  Init_LCD(void)
{
      delay();  //稍微延時,等待LCD進入工作狀態
      Write_Comm(0x38); //8位2行5*8
      Write_Comm(0x0c); //顯示開/關,光標開閃爍開
      Write_Comm(0x01);//清顯示
      Write_Comm(0x02);  //光標歸位
}

void t0() interrupt 1
{
        count++;
        if(count==20)
        {
                sec--;
                count=0;
        }
        if(sec==0)
        {
                 min--;
                sec=59;
        }
        if(min==0)
        {
                TR0=0;
                min=0;
                sec=0;
        }
}

void ex0() interrupt 0
{
        TR0=~TR0;
        while(begin==0);
}

void scankey()//負責改變比分
{
        switch(P1)
        {
                case 0xfe:
                        a=a+1;
                        if(a>99)a=99;
                        break;
                case 0xfd:
                        a=a+2;
                        if(a>99)a=99;
                        break;
                case 0xfb:
                        a=a+3;
                        if(a>99)a=99;
                        break;
                case 0xf7:
                        if(a>0)a=a-1;
                        break;
                case 0xef:
                        b=b+1;
                        if(b>99)b=99;
                        break;
                case 0xdf:
                        b=b+2;
                        if(b>99)b=99;
                        break;
                case 0xbf:
                        b=b+3;
                        if(b>99)b=99;
                        break;
                case 0x7f:
                        if(b>0)b=b-1;
                        break;
        }
        while(P1!=0xff);
}

void display()//負責送顯
{
        uchar m;
        str1[8]=str[a/10];
        str1[9]=str[a%10];
        str1[14]=str[min/10];
        str1[15]=str[min%10];
        Write_Comm(0x80);
        for(m=0;m<16;m++)
          Write_Chr(str1[m]);
        str2[8]=str[b/10];
        str2[9]=str[b%10];
        str2[14]=str[sec/10];
        str2[15]=str[sec%10];
        Write_Comm(0xc0);
        for(m=0;m<16;m++)
          Write_Chr(str2[m]);
}

void main()
{
        EA=1;
        EX0=1;
        ET0=1;
        TMOD=0x01;
        TH0=-50000/256;
        TL0=-50000%256;
        TR0=0;
        Init_LCD();
        while(1)
        {
           scankey();
           display();
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:447891 發表于 2019-1-7 00:13 | 只看該作者
哪里出錯了嗎?為什么在仿真上面程序能夠跑起來,但是實物焊接出來,顯示屏一是只亮背光,二是只有一個一字出現,是延時出錯了,還是對比度的可調電阻出錯?
回復

使用道具 舉報

板凳
ID:123289 發表于 2019-1-7 07:51 | 只看該作者
這就是“仿”的真諦。
與你的硬件相關。硬件未必與“仿”的完全一樣。
需要你仔細研讀硬件的手冊,找出區別之所在。
回復

使用道具 舉報

地板
ID:97554 發表于 2019-1-7 08:38 | 只看該作者
這是1602顯示,看描述應該重點檢查接線,或者換LCD,不像是對比度電阻的問題。不過首先調整一下對比度電阻,我沒用可調,一般120Ω電阻接VSS既可,試了多塊LCD這個電阻值基本都能達到最佳狀態。對比度沒有問題那就是接線不良。另外也見程序不通用的1602,極少,不知道你遇得上了不是。建議先用最簡例程點屏正常了再試程序。
回復

使用道具 舉報

5#
ID:383498 發表于 2019-1-7 15:08 | 只看該作者
我之前也遇到過,我將P0口接了上拉電阻,隨便將可調電阻重新接了一下就好了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精产国品一二三区 | 精品99在线| 午夜视频在线观看网址 | 91丨九色丨国产在线 | 欧美一级黄色片在线观看 | 在线免费观看黄a | 久久国产综合 | 激情欧美日韩一区二区 | 91国内精品久久 | 福利久久 | 91精品国产综合久久久密闭 | 久久久精品一区 | 伊人精品国产 | 久久精品视频一区二区三区 | 日韩欧美精品在线 | 91在线观看视频 | 黄色大片免费网站 | 国产免费一级片 | 一级爱爱片| 日韩一区二区三区av | 欧美xxxx色视频在线观看免费 | 狠狠干天天干 | www国产精品 | 亚洲色欲色欲www | 99精品在线 | 欧美aⅴ| 午夜av免费 | 午夜无码国产理论在线 | 日韩精品亚洲专区在线观看 | 日韩成人在线观看 | 国产高清久久久 | 国产精品久久久久久亚洲调教 | 日本精品视频 | 免费观看一区二区三区毛片 | 国产高清精品在线 | 精品福利在线 | 亚洲一区二区三区在线视频 | 成年人在线视频 | 精品国产不卡一区二区三区 | 精品九九 | 欧美三区在线观看 |