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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

為什么12864不能正常顯示自己寫的信息,下面是程序和電路圖

[復制鏈接]
跳轉到指定樓層
樓主
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define LCD_DB_PORT P0    //液晶數據端口DB0-DB7
#define LCD_START_ROW 0xC0  //啟始行命令
#define LCD_PAGE 0xb8    //頁命令
#define LCD_COL 0x04     //列命令
bit Reverse_Display=0;    //是否反相顯示(白底黑字/黑底白字)
char Adjust_Index=-1;   //當前調節的時間對象:秒,分,時,日,月,年
uchar MonthsDays[]={31,0,31,30,31,30,31,31,30,31,30,31};   //一年當中的每個月的天數,二月份由年份決定
uchar DateTime[7];    //所取的日期時間
void Write_Byte_T0_DS1302(uchar X);  //向1302寫入一個字方節
uchar Read_Byte_FROM_DS1302();       //從1302中讀取一個字節
uchar Read_Data_FROM_DS1302(uchar addr);  //從1302指定位置讀取數據
void Write_Data_T0_DS1302(uchar addr,uchar dat);   //向1302指定位置寫入數據
void SET_DS1302();     //設置時間
void GetTime();         //讀取當前時間
void DateTime_Adjust(char X);   //年,月,日和時,分++/--
uchar Is_Leapyear(uint year);   //判斷是否為閏年
extern void LCD_12864_Initialization();
extern void Display_char(uchar P1,uchar L1,uchar *M) reentrant;
extern void Dispaly_Word(uchar P2,uchar L2,uchar *M) reentrant;
extern void DateTime_Adjust(char X);
extern void SET_DS1302();    //設置時間
extern void GetTime();                     //(extern GetTime)
void Initialization();       //初始化函數
extern bit Reverse_Display;            //是否反相顯示(白底黑字/黑的白字)
extern uchar code Digits[];           
extern uchar code WEEK_WORDS[];
extern uchar code Digits[];         
extern uchar code DATE_TIME_WORDS[];   
extern char Adjust_Index;  //當前調節的時間對象:秒,分,時,日,月,年(0,1,2,3,4,5,6)
extern uchar Monthsdays[]; //一年中每個月的天數,二月天數有年份來決定的
extern uchar DateTime[7]; //所讀取的時間日期
uchar tcount=0;   //定義
uchar H_Offset=10;
uchar V_page_Offset=0;

sbit RS=P2^0;      //12864引腳定義
sbit RW=P2^1;      //12864引腳定義
sbit E=P2^2;       //12864引腳定義
sbit CS1=P2^3;     //12864引腳定義
sbit CS2=P2^4;     //12864引腳定義
sbit RST=P2^5;     //12864引腳定義
sbit SDA=P1^0;     //1302數據線
sbit CLK=P1^1;     //1302時鐘線
sbit RSTT=P1^2;    //1302復位線
sbit k1=P3^4;      //選擇案件
sbit k2=P3^5;      //加
sbit k3=P3^6;      //減
sbit k4=P3^7;      //確定

bit LCD_IS_BUSY()//檢查LCD是否忙
{
     LCD_DB_PORT=0xFF;
         RW=1;
         _nop_();
         RS=0;
         E=1;
          _nop_();
         E=0;
         return (bit)(P0&0x80);
}
void Write_Byte_To_LCD(uchar comand)//向LCD寫入一個字節(一般用于發送命令)
{
    while(LCD_IS_BUSY());
          LCD_DB_PORT=0xFF;
          RW=0;
           _nop_();
          RS=0;
          LCD_DB_PORT=comand;
          E=1;
           _nop_();
          E=0;
}       
void Write_Data_To_LCD(uchar dat)//向LCD寫入數據
{
    while(LCD_IS_BUSY());
          LCD_DB_PORT=0xFF;
          RW=0;
           _nop_();
          RS=1;
          if(!Reverse_Display)//根據Reverse_Display決定是否反向顯示
                   LCD_DB_PORT=dat;
                else
                   LCD_DB_PORT=~dat;
        E=1;
                 _nop_();
                E=0;
}
void LCD12864_Initialization()//初始化LCD
{
      CS1=1;
          CS2=1;
          Write_Byte_To_LCD(0x38);
          Write_Byte_To_LCD(0x0F);
          Write_Byte_To_LCD(0x01);
          Write_Byte_To_LCD(0x06);
          Write_Byte_To_LCD(LCD_START_ROW);
}
void LCD_Show(uchar P,uchar L,uchar W,uchar *r) reentrant
//通用顯示函數  從第P頁第L列顯示W個字節數據,具體顯示的數據在r所指的數組中
{
    uchar i;
          if(L<64)
                {
                    CS1=1;   //左半屏選中
                        CS2=0;
                        Write_Byte_To_LCD(LCD_PAGE+P);  //頁
                        Write_Byte_To_LCD(LCD_COL+L);   //列
                        if(L+W<64)
                        {
                           for(i=0;i<W;i++)
                                    Write_Data_To_LCD(r[i]);
                        }
                        else
                        {
                           for(i=0;i<64-L;i++)
                                    Write_Data_To_LCD(r[i]);
                                CS1=0;                  //選中右半屏
                                CS2=1;
                                Write_Byte_To_LCD(LCD_PAGE+P);
                            Write_Byte_To_LCD(LCD_COL);
                                for(i=64-L;i<W;i++)
                                    Write_Data_To_LCD(r[i]);
                        }
                }       
                else
                        {
                                CS1=0;
                                CS2=1;
                                Write_Byte_To_LCD(LCD_PAGE+P);
                            Write_Byte_To_LCD(LCD_COL+L-64);
                                for(i=0;i<W;i++)
                                    Write_Data_To_LCD(r[i]);
                }   
}
void Display_char(uchar P1,uchar L1,uchar *M) reentrant//顯示一個8*16點陣字符   
{
      LCD_Show(P1,L1,8,M);
          LCD_Show(P1+1,L1,8,M+8);
}
void Dispaly_Word(uchar P2,uchar L2,uchar *M) reentrant//顯示一個16*16點陣字符(漢字上半部分與下半部分分別處在相鄰兩頁中)
{
      LCD_Show(P2,L2,16,M);
          LCD_Show(P2+1,L2,16,M+16);
}

void Write_Byte_T0_DS1302(uchar X)//向DS1302寫入一個字符
{
    uchar i;
          for(i=0;i<8;i++)
          {
                      SDA=X&1;
                          CLK=1;
                          CLK=0;
                          X>>=1;
                }
}//讀字節函數,從DS1302讀取一個字節
uchar Read_Byte_FROM_DS1302()
{
    uchar i,byte,t;
          for(i=0;i<8;i++)
            {
                    byte>>=1;
                                 t=SDA;
                                byte|=t<<7;
                                CLK=1;
                                CLK=0;
                  }
                  //BCD碼轉換
                        return byte/16*10+byte%16;
}
uchar Read_Data_FROM_DS1302(uchar addr)//從DS1302指定位置讀取數據,讀數據
{
      uchar dat;
      RST=0;
      CLK=0;
      RST=1;       
          Write_Byte_T0_DS1302(addr);//向S1302寫入一個地址
          dat=Read_Byte_FROM_DS1302();//在上面寫入的地址中讀取數據
          CLK=1;
          RST=0;
          return dat;
}
void Write_Data_T0_DS1302(uchar addr,uchar dat)//向DS1302指定位置寫入數據,寫數據
{
      CLK=0;
          RST=1;
          Write_Byte_T0_DS1302(addr);
          Write_Byte_T0_DS1302(dat);
          CLK=1;
          RST=0;
}
void SET_DS1302()//設置時間
{
      uchar i;
          Write_Data_T0_DS1302(0x8E,0x00);//寫控制字,取消寫保護
          //分,時,日,月,年依次寫入
          for(i=1;i<7;i++)
          {
          //分的起始地址是10000010(0x82),后面依次是時,日,年,月,周,年,寫入的地址每次遞增2
                        Write_Data_T0_DS1302(0x80+2*i,(DateTime[i]/10<<4)|(DateTime[i]%10));
                }
                   Write_Data_T0_DS1302(0x8E,0x80);//寫控制字,加寫保護
}
void GetTime()//讀取當前時間
{
    uchar i;
    for(i=0;i<7;i++)
          {
                  DateTime[i]=Read_Data_FROM_DS1302(0x81+2*i);
                }   
}
uchar Is_Leapyear(uint year)//判斷是否為閏年
{
    return (year%4==0&&year%100!=0)||(year%400==0);
}
void Refresh_Week_Day()//求自2000.1.1開始的任何一天是星期幾?
{
    uint i,d,w=5;//已知1999年12.31是星期五
          for(i=2000;i<2000+DateTime[6];i++)//判斷是否為閏年
              {
                                  d=Is_Leapyear(i)?366:365;
                                        w=(w+d)%7;
                                }
                                d=0;
                                for(i=1;i<DateTime[4];i++)
                                    {
                                                  d+=MonthsDays[i];
                                                }
                                d+=DateTime[3];
                                //保存星期,0-6表示星期日,星期一至星期六,為了與DS1302的星期格式匹配,返回值需要加1
        DateTime[5]=(w+d)%7+1;                                               
}
void DateTime_Adjust(char X)//年,月,日和時,分++/--
{
    switch(Adjust_Index)
                {
                        case 6://年調整,00-99
                                    if(X==1&&DateTime[6]<99)
                                                {
                                                  DateTime[6]++;
                                                }
                                                if(X==-1&&DateTime[6]>0)
                                                {
                                                  DateTime[6]--;
                                                }
                                                MonthsDays[2]=Is_Leapyear(2000+DateTime[6]?29:28);//獲取2月天數
                                                if(DateTime[3]>MonthsDays[DateTime[4]])//如果年份變化后當前月份的天數大于上限則設為上限
                                                {
                                                   DateTime[3]=MonthsDays[DateTime[4]];
                                                }
                                                Refresh_Week_Day();//刷新星期
                                                break;
                        case 4://月調整01-12
                                    if(X==1&&DateTime[4]<12)
                                                {
                                                  DateTime[4]++;
                                                }
                                                if(X==-1&&DateTime[4]>1)
                                                {
                                                  DateTime[4]--;
                                                }
                                                MonthsDays[2]=Is_Leapyear(2000+DateTime[6]?29:28);//獲取2月天數
                                                if(DateTime[3]>MonthsDays[DateTime[4]])//如果年份變化后當前月份的天數大于上限則設為上限
                                                {
                                                   DateTime[3]=MonthsDays[DateTime[4]];
                                                }
                                                Refresh_Week_Day();//刷新星期
                                                break;
                        case 3://日調整00-28或00-29或00-30或00-31
                                    MonthsDays[2]=Is_Leapyear(2000+DateTime[6]?29:28);//調節之前首先根據當前年份得出該年中2月的天數
                                    if(X==1&&DateTime[3]<MonthsDays[DateTime[4]])//根據當前月份決定調節日期的上限
                                                {
                                                  DateTime[3]++;
                                                }
                                                if(X==-1&&DateTime[3]>0)
                                                {
                                                  DateTime[3]--;
                                                }
                                                Refresh_Week_Day();//刷新星期
                                                break;               
            case 2://時調整
                                    if(X==1&&DateTime[2]<23)
                                                {
                                                  DateTime[2]++;
                                                }
                                                if(X==-1&&DateTime[4]>0)
                                                {
                                                  DateTime[2]--;
                                                }
                                                break;       
     case 1://分調整
                                    if(X==1&&DateTime[1]<59)
                                                {
                                                  DateTime[1]++;
                                                }
                                                if(X==-1&&DateTime[4]>0)
                                                {
                                                  DateTime[1]--;
                                                }
                                                break;       
            case 0://秒調整
                                    if(X==1&&DateTime[1]<59)
                                                {
                                                  DateTime[0]++;
                                                }
                                                if(X==-1&&DateTime[4]>0)
                                                {
                                                  DateTime[0]--;
                                                }
                                                break;                                       
                }
}
//年,月,日,星期,時,分,秒等漢字點陣(16*16)
uchar code DATE_TIME_WORDS[]={
//年
0x00,0x04,0x18,0xE3,0x22,0x22,0x22,0x22,0x3F,0x22,0x22,0x22,0x22,0x20,0x00,0x00,
0x20,0x20,0x20,0xE0,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
//月
0x00,0x00,0x00,0x7F,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x7F,0x00,0x00,0x00,
0x01,0x02,0x0C,0xF0,0x40,0x40,0x40,0x40,0x40,0x40,0x42,0x41,0xFE,0x00,0x00,0x00,
//日
0x00,0x00,0x00,0x7F,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xFF,0x00,0x00,0x00,0x00,
//星
0x00,0x00,0x00,0x7D,0x54,0x54,0x54,0x57,0x54,0x54,0x54,0x7C,0x00,0x00,0x00,0x00,
0x00,0x22,0x42,0x92,0x92,0x92,0x92,0xFE,0x92,0x92,0x92,0x92,0x82,0x02,0x00,0x00,
//期
0x00,0x20,0xFF,0x24,0x24,0x24,0xFF,0x20,0x00,0x7F,0x44,0x44,0x44,0x7F,0x00,0x00,
0x11,0x12,0xF4,0x90,0x90,0x98,0xF5,0x12,0x0C,0xF0,0x40,0x42,0x41,0xFE,0x00,0x00,
//時
0x00,0x3F,0x21,0x21,0x21,0x3F,0x00,0x08,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x00,
0x00,0xFC,0x08,0x08,0x08,0xFC,0x00,0x00,0x80,0x60,0x02,0x01,0xFE,0x00,0x00,0x00,
//分
0x01,0x02,0x04,0x09,0x11,0x61,0x01,0x01,0x01,0xC1,0x31,0x08,0x04,0x02,0x01,0x00,
0x00,0x01,0x02,0x04,0x18,0xE0,0x00,0x02,0x01,0x02,0xFC,0x00,0x00,0x00,0x00,0x00,
//秒
0x24,0x24,0x25,0x7F,0xC4,0x44,0x00,0x03,0x1C,0x00,0xFF,0x00,0x10,0x08,0x06,0x00,
0x10,0x60,0x80,0xFF,0x80,0x60,0x81,0x01,0x02,0x02,0xE4,0x08,0x30,0xC0,0x00,0x00,  
};
//一,二,三,四,五,六和天等漢字點陣16*16)
uchar code WEEK_WORDS[]={
/*--  文字:  天  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
0x02,0x02,0x42,0x42,0x42,0x42,0x42,0x7F,0x42,0x42,0x42,0x42,0x42,0x02,0x02,0x00,
0x01,0x01,0x02,0x04,0x08,0x30,0xC0,0x00,0xC0,0x30,0x08,0x04,0x02,0x01,0x01,0x00,

/*--  文字:  一  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  二  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,
0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,

/*--  文字:  三  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
0x00,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x20,0x00,0x00,
0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,

/*--  文字:  四  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
0x00,0x3F,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x3F,0x00,0x00,
0x00,0xFE,0x14,0x24,0xC4,0x04,0x04,0x04,0x04,0x84,0x44,0x44,0x44,0xFE,0x00,0x00,

/*--  文字:  五  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
0x00,0x40,0x42,0x42,0x42,0x43,0x7E,0x42,0x42,0x42,0x42,0x43,0x40,0x40,0x00,0x00,
0x02,0x02,0x02,0x02,0x1E,0xE2,0x02,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0x00,

/*--  文字:  六  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
0x04,0x04,0x04,0x04,0x04,0x04,0x84,0x44,0x34,0x04,0x04,0x04,0x04,0x04,0x04,0x00,
0x00,0x02,0x04,0x08,0x30,0xC0,0x00,0x00,0x00,0x80,0x40,0x20,0x18,0x06,0x00,0x00,
};
uchar code Digits[]={
/*--  文字:  0  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=8x16   --*/
0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,0x00,0xF0,0x08,0x04,0x04,0x08,0xF0,0x00,

/*--  文字:  1  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=8x16   --*/
0x00,0x00,0x08,0x08,0x1F,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,

/*--  文字:  2  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=8x16   --*/
0x00,0x0E,0x10,0x10,0x10,0x10,0x0F,0x00,0x00,0x0C,0x14,0x24,0x44,0x84,0x0C,0x00,

/*--  文字:  3  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=8x16   --*/
0x00,0x0C,0x10,0x10,0x10,0x11,0x0E,0x00,0x00,0x18,0x04,0x84,0x84,0x44,0x38,0x00,

/*--  文字:  4  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=8x16   --*/
0x00,0x00,0x01,0x02,0x0C,0x1F,0x00,0x00,0x00,0x60,0xA0,0x24,0x24,0xFC,0x24,0x24,

/*--  文字:  5  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=8x16   --*/
0x00,0x1F,0x11,0x11,0x11,0x10,0x10,0x00,0x00,0x98,0x04,0x04,0x04,0x88,0x70,0x00,

/*--  文字:  6  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=8x16   --*/
0x00,0x07,0x08,0x11,0x11,0x09,0x00,0x00,0x00,0xF0,0x88,0x04,0x04,0x04,0xF8,0x00,

/*--  文字:  7  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=8x16   --*/
0x00,0x18,0x10,0x10,0x11,0x16,0x18,0x00,0x00,0x00,0x00,0x7C,0x80,0x00,0x00,0x00,

/*--  文字:  8  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=8x16   --*/
0x00,0x0E,0x11,0x10,0x10,0x11,0x0E,0x00,0x00,0x38,0x44,0x84,0x84,0x44,0x38,0x00,

/*--  文字:  9  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=8x16   --*/
0x00,0x0F,0x10,0x10,0x10,0x08,0x07,0x00,0x00,0x80,0x48,0x44,0x44,0x88,0xF0,0x00,
};
void main()//主程序
{
        Initialization();
        while(1)
        {
            if(Adjust_Index==-1) GetTime();
        }
}
void Initialization()//初始化函數
{
    IE=0x83;
        IP=0x01;
        IT0=0x01;
        TH0=-50000/256;//寫入初值
        TL0=-50000%256;//寫入初值
        TR0=1;         //送顯
        LCD12864_Initialization();//液晶初始化函數
        //顯示年的前面固定的兩位
        Display_char(V_page_Offset,0+H_Offset,Digits+0*16);
    Display_char(V_page_Offset,8+H_Offset,Digits);   
    //在12864屏幕上固定顯示漢字:年月日,星期,時分秒
        Dispaly_Word(V_page_Offset,32+H_Offset,DATE_TIME_WORDS+0*32);      //年
        Dispaly_Word(V_page_Offset,64+H_Offset,DATE_TIME_WORDS+1*32);      //月
        Dispaly_Word(V_page_Offset,96+H_Offset,DATE_TIME_WORDS+2*32);      //日
        Dispaly_Word(V_page_Offset+3,56+H_Offset,DATE_TIME_WORDS+3*32);    //星
        Dispaly_Word(V_page_Offset+3,22+H_Offset,DATE_TIME_WORDS+4*32);    //期
        Dispaly_Word(V_page_Offset+6,38+H_Offset,DATE_TIME_WORDS+5*32);    //時
        Dispaly_Word(V_page_Offset+6,70+H_Offset,DATE_TIME_WORDS+6*32);    //分
        Dispaly_Word(V_page_Offset+6,102+H_Offset,DATE_TIME_WORDS+7*32);   //秒
}

void T0_INT()interrupt 1//定時器0刷新LCD顯示函數
{
    TH0=-50000/256;//寫入初值
        TL0=-50000%256;//寫入初值
        if(++tcount!=2) return;
             tcount=0;              

//年(后兩位)
Reverse_Display=Adjust_Index==6;
Display_char(V_page_Offset,16+H_Offset,Digits+DateTime[6]/10*16);
Display_char(V_page_Offset,24+H_Offset,Digits+DateTime[6]/10*16);
//星期
Reverse_Display=Adjust_Index==5;
Dispaly_Word(V_page_Offset+3,96+H_Offset,WEEK_WORDS+(DateTime[5]%10-1)*32);
//月
Reverse_Display=Adjust_Index==4;
Display_char(V_page_Offset,48+H_Offset,Digits+DateTime[4]/10*16);
Display_char(V_page_Offset,56+H_Offset,Digits+DateTime[4]%10*16);
//日
Reverse_Display=Adjust_Index==3;
Display_char(V_page_Offset,80+H_Offset,Digits+DateTime[3]/10*16);
Display_char(V_page_Offset,88+H_Offset,Digits+DateTime[3]%10*16);
//時
Reverse_Display=Adjust_Index==2;
Display_char(V_page_Offset+6,16+H_Offset,Digits+DateTime[2]/10*16);
Display_char(V_page_Offset+6,24+H_Offset,Digits+DateTime[2]%10*16);
//分
Reverse_Display=Adjust_Index==1;
Display_char(V_page_Offset+6,48+H_Offset,Digits+DateTime[1]/10*16);
Display_char(V_page_Offset+6,56+H_Offset,Digits+DateTime[1]%10*16);
//秒
Reverse_Display=Adjust_Index==0;
Display_char(V_page_Offset+6,80+H_Offset,Digits+DateTime[0]/10*16);
Display_char(V_page_Offset+6,88+H_Offset,Digits+DateTime[0]%10*16);   
}

void EX_INT0()interrupt 0//鍵盤中斷處理函數
{
if(k1==0)
{
if(Adjust_Index==-1||Adjust_Index==-1)
//  {Adjust_Index==7;}
Adjust_Index--;
if(Adjust_Index==5)
{Adjust_Index=4;}//跳過對星期的調節
}
else if(k2==0)//加
{
DateTime_Adjust(1);
}
else if(k3==0)//減
{
DateTime_Adjust(-1);
}
else if(k4==0)
{
SET_DS1302();
Adjust_Index=-1;//操作索引重設為-1,時間繼續正常顯示
}
}

QQ圖片20180704160416.png (13.87 KB, 下載次數: 79)

做的是個萬年歷,本該顯示時間,年月日,星期幾就是顯不出來,哪位大佬知道改怎么改嗎?

做的是個萬年歷,本該顯示時間,年月日,星期幾就是顯不出來,哪位大佬知道改怎么改嗎?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:361354 發表于 2018-7-4 16:46 | 只看該作者
仿真圖12864的vcc   gnd都沒接   調亮度的vo也沒接

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:360050 發表于 2018-7-5 12:12 | 只看該作者
莫名我喜歡你 發表于 2018-7-4 16:46
仿真圖12864的vcc   gnd都沒接   調亮度的vo也沒接

還是不對,連上之后還是一樣,問老師,解釋電路圖沒有問題,就是程序有問題
回復

使用道具 舉報

地板
ID:15207 發表于 2018-7-5 15:14 | 只看該作者
這個是沒有做庫吧,12864要有庫才能顯示漢字呀
回復

使用道具 舉報

5#
ID:360050 發表于 2018-7-5 16:28 | 只看該作者
gesang 發表于 2018-7-5 15:14
這個是沒有做庫吧,12864要有庫才能顯示漢字呀

前面做的能顯示
回復

使用道具 舉報

6#
ID:227956 發表于 2018-7-6 11:57 | 只看該作者
不太明白
回復

使用道具 舉報

7#
ID:331760 發表于 2018-7-6 14:21 | 只看該作者
莫名我喜歡你 發表于 2018-7-4 16:46
仿真圖12864的vcc   gnd都沒接   調亮度的vo也沒接

瞎說  仿真測試可以不接
回復

使用道具 舉報

8#
ID:366304 發表于 2018-7-6 14:58 | 只看該作者
顯示模塊出問題了吧
回復

使用道具 舉報

9#
ID:137692 發表于 2018-7-6 15:16 | 只看該作者
一般顯示問題都是初始化和接口問題比較大!
回復

使用道具 舉報

10#
ID:212089 發表于 2018-7-6 17:39 | 只看該作者
12864是那個牌子的?看資料,有的沒有中文字庫。看看說明書有沒有帶字庫,出現問題之后要先想到看說明書。這樣可以事半功倍。
回復

使用道具 舉報

11#
ID:111634 發表于 2018-7-7 15:37 | 只看該作者
本帖最后由 zl2168 于 2018-7-7 15:38 編輯

LCD12864顯示屏顯示漢字
⒈ AMPIRE 12864LCD顯示屏簡介
⑴ 引腳功能    …
⑵ 顯示屏數據結構    …
⒉ 漢字編碼
⑴ 漢字編碼概述    …
⑵ 漢字點陣顯示代碼    …
⑶ 漢字點陣取模軟件    …
⒊ 電路和應用程序    …
⒋ Keil調試    …
⒌ Proteus仿真    …
Proteus仿真一下,確認有效。
實驗25 LCD12864顯示屏顯示.rar (60.48 KB, 下載次數: 6)

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行,可演示,可觀測,程序語句條條有注解。
回復

使用道具 舉報

12#
ID:360050 發表于 2018-7-7 19:28 | 只看該作者
zl2168 發表于 2018-7-7 15:37
LCD12864顯示屏顯示漢字
⒈ AMPIRE 12864型LCD顯示屏簡介⑴ 引腳功能    …
⑵ 顯示屏數據結構    …

沒用   我有100例案
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲交性 | 国内精品久久久久久久影视简单 | 黄色在线免费看 | 国产天天操 | 久久久久91 | 呦呦在线视频 | 久久机热 | 久久综合久久自在自线精品自 | 国产精品国产成人国产三级 | 亚洲视频免费在线观看 | 欧美在线视频一区 | 国产剧情一区二区三区 | 午夜视频在线观看一区二区 | 久久成人国产 | 国产欧美日韩精品一区 | 久久另类视频 | 久久久久久女 | 欧美色专区 | 欧美黄色绿像 | 日韩欧美一区二区三区四区 | 中文字幕在线精品 | 精品视频免费在线 | 黄色片亚洲 | 秋霞a级毛片在线看 | 久久久久久免费毛片精品 | 国产情侣啪啪 | 91亚洲国产成人久久精品网站 | 亚洲精品一二区 | 福利视频一区二区 | 欧美不卡一区二区三区 | 韩日一区二区三区 | 伊人热久久| 精品1区2区 | 超碰在线人人 | 欧美成人不卡 | 天堂在线一区 | 精品免费看 | 国产 日韩 欧美 在线 | 亚洲精品欧美 | 91亚洲精品国偷拍自产在线观看 | 国产视频二区 |