欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3258|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

仿真的引腳都對(duì)應(yīng)高低電平閃爍了,屏幕也亮了,但是就是不顯示東西,大佬求救!

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:657149 發(fā)表于 2019-12-16 15:27 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

  1. #include<reg51.h>
  2. #include"LCD1602.h"
  3. #include"DS1302.h"
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. bit key_flag1=0,key_flag2=0;
  7. SYSTEMTIME adjusted;

  8. uchar sec_add=0,min_add=0,hou_add=0,day_add=0,mon_add=0,yea_add=0;
  9. uchar data_alarm[7]={0};

  10. int key_scan()
  11. {
  12.   int i=0;
  13.   uint temp;
  14.   P1=0xf0;
  15.   temp=P1;
  16.   if(temp!=0xf0)
  17.   {
  18.           i=1;
  19.   }
  20.   else
  21.   {
  22.            i=0;
  23.   }
  24.   return i;
  25. }

  26. uchar key_value()
  27. {
  28.    uint m=0,n=0,temp;
  29.    uchar value;
  30.    uchar v[4][3]={'2','1','0','5','4','3','8','7','6','b','a','9'};
  31.    P1=0xfe;temp=P1;if(temp!=0xfe)m=0;
  32.    P1=0xfd;temp=P1;if(temp!=0xfd)m=1;
  33.    P1=0xfb;temp=P1;if(temp!=0xfb)m=2;
  34.    P1=0xf7;temp=P1;if(temp!=0xf7)m=3;
  35.    P1=0xef;temp=P1;if(temp!=0xef)m=0;
  36.    P1=0xdf;temp=P1;if(temp!=0xdf)m=1;
  37.    P1=0xbf;temp=P1;if(temp!=0xbf)m=2;
  38.    value=v[m][n];
  39.    return value;
  40. }
  41. void adjust(void)
  42. {
  43.    if(key_scan()&&key_flag1)
  44.    switch(key_value())
  45.    {
  46.              case'0':sec_add++;break;
  47.           case'1':min_add++;break;
  48.           case'2':hou_add++;break;
  49.           case'3':day_add++;break;
  50.           case'4':mon_add++;break;
  51.           case'5':yea_add++;break;
  52.           default:break;
  53.    }
  54.    adjusted.Second+=sec_add;
  55.    adjusted.Minute+=min_add;
  56.    adjusted.Hour+=hou_add;
  57.    adjusted.Day+=day_add;
  58.    adjusted.Month+=mon_add;
  59.    adjusted.Year+=yea_add;
  60.    if(adjusted.Second>59)
  61.    {
  62.              adjusted.Second=adjusted.Second%60;
  63.           adjusted.Minute++;
  64.    }
  65.    if(adjusted.Minute>59)
  66.    {
  67.               adjusted.Minute=adjusted.Minute%60;
  68.            adjusted.Hour++;
  69.    }
  70.    if(adjusted.Hour>23)
  71.    {
  72.              adjusted.Hour=adjusted.Hour%24;
  73.           adjusted.Day++;
  74.    }
  75.    if(adjusted.Day>31)adjusted.Day=adjusted.Day%31;
  76.    if(adjusted.Month>12)adjusted.Month=adjusted.Month%12;
  77.    if(adjusted.Year>100)adjusted.Year=adjusted.Year%100;   
  78. }

  79. void changing(void)interrupt 0 using 0
  80. {
  81.    if(key_flag1)
  82.    key_flag1=0;
  83.    if(key_flag1)
  84.    key_flag1=1;
  85. }

  86. main()
  87. {
  88.    uint i;
  89.    uchar p1[]="D;",p2[]="T:";
  90.    SYSTEMTIME T;

  91.    EA=1;
  92.    EX0=1;
  93.    IT0=1;
  94.    EA=1;
  95.    EX1=1;
  96.    IT1=1;
  97.    init1602();
  98.    Initial_DS1302();

  99.    while(1)
  100.    {
  101.              write_com(0x80);
  102.           write_string(p1,2);
  103.           write_com(0xc0);
  104.           write_string(p2,2);
  105.           DS1302_GetTime(&T);
  106.           adjusted.Second=T.Second;
  107.           adjusted.Minute=T.Minute;
  108.           adjusted.Hour=T.Hour;
  109.           adjusted.Week=T.Week;
  110.           adjusted.Day=T.Day;
  111.           adjusted.Month=T.Month;
  112.           adjusted.Year=T.Year;
  113.           for(i=0;i<9;i++)
  114.           {
  115.                    adjusted.DateString[i]=T.DateString[i];
  116.                  adjusted.TimeString[i]=T.TimeString[i];
  117.           }
  118.           adjust();
  119.           DateToStr(&adjusted);
  120.           TimeToStr(&adjusted);
  121.           write_com(0x82);
  122.           write_string(adjusted.DateString,8);
  123.           write_com(0xc2);
  124.           write_string(adjusted.TimeString,8);
  125.           delay(10);

  126.    }
  127. }
復(fù)制代碼


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

使用道具 舉報(bào)

沙發(fā)
ID:235200 發(fā)表于 2019-12-16 17:42 | 只看該作者
不顯示的關(guān)鍵在write_string這個(gè)函數(shù)是否符合1602的時(shí)序,因程序未貼出,難以判斷問(wèn)題所在處
回復(fù)

使用道具 舉報(bào)

板凳
ID:657149 發(fā)表于 2019-12-16 20:27 | 只看該作者
csmyldl 發(fā)表于 2019-12-16 17:42
不顯示的關(guān)鍵在write_string這個(gè)函數(shù)是否符合1602的時(shí)序,因程序未貼出,難以判斷問(wèn)題所在處
  1. #ifndef LCD_CHAR_1602_2005_4_9
  2. #define LCD_CHAR_1602_2005_4_9
  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. sbit lcdrs=P2^0;
  6. sbit lcdrw=P2^1;
  7. sbit lcden=P2^2;

  8. void delay(uint z)
  9. {
  10.    uint x,y;
  11.    for(x=z;x>0;x--)
  12.    for(y=110;y>0;y--);
  13. }

  14. void write_com(uchar com)
  15. {
  16.    lcdrw=0;
  17.    lcden=0;
  18.    P0=com;
  19.    delay(5);
  20.    lcden=1;
  21.    delay(5);
  22.    lcden=0;
  23. }

  24. void write_data(uchar date)
  25. {
  26.    lcdrw=0;
  27.    lcdrs=1;
  28.    P0=date;
  29.    delay(5);
  30.    lcden=1;
  31.    delay(5);
  32.    lcden=0;
  33. }
  34. void init1602()
  35. {
  36.   lcdrw=0;
  37.   lcden=0;
  38.   write_com(0x3c);
  39.   write_com(0x0c);
  40.   write_com(0x06);
  41.   write_com(0x01);
  42.   write_com(0x80);
  43. }

  44. void write_string(uchar *pp,uint n)
  45. {
  46.    int i;
  47.    for(i=0;i<n;i++)
  48.    write_data(pp[i]);
  49. }

  50. #endif
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

地板
ID:657149 發(fā)表于 2019-12-16 20:28 | 只看該作者
csmyldl 發(fā)表于 2019-12-16 17:42
不顯示的關(guān)鍵在write_string這個(gè)函數(shù)是否符合1602的時(shí)序,因程序未貼出,難以判斷問(wèn)題所在處

這個(gè)是1602的頭文件函數(shù)可以幫我看看嗎
回復(fù)

使用道具 舉報(bào)

5#
ID:657149 發(fā)表于 2019-12-16 20:28 | 只看該作者
我馬上把1602的頭文件貼出來(lái),大佬可以幫我看看嗎
回復(fù)

使用道具 舉報(bào)

6#
ID:657149 發(fā)表于 2019-12-16 20:29 | 只看該作者
  1. #ifndef LCD_CHAR_1602_2005_4_9
  2. #define LCD_CHAR_1602_2005_4_9
  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. sbit lcdrs=P2^0;
  6. sbit lcdrw=P2^1;
  7. sbit lcden=P2^2;

  8. void delay(uint z)
  9. {
  10.    uint x,y;
  11.    for(x=z;x>0;x--)
  12.    for(y=110;y>0;y--);
  13. }

  14. void write_com(uchar com)
  15. {
  16.    lcdrw=0;
  17.    lcden=0;
  18.    P0=com;
  19.    delay(5);
  20.    lcden=1;
  21.    delay(5);
  22.    lcden=0;
  23. }

  24. void write_data(uchar date)
  25. {
  26.    lcdrw=0;
  27.    lcdrs=1;
  28.    P0=date;
  29.    delay(5);
  30.    lcden=1;
  31.    delay(5);
  32.    lcden=0;
  33. }
  34. void init1602()
  35. {
  36.   lcdrw=0;
  37.   lcden=0;
  38.   write_com(0x3c);
  39.   write_com(0x0c);
  40.   write_com(0x06);
  41.   write_com(0x01);
  42.   write_com(0x80);
  43. }

  44. void write_string(uchar *pp,uint n)
  45. {
  46.    int i;
  47.    for(i=0;i<n;i++)
  48.    write_data(pp[i]);
  49. }

  50. #endif
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

7#
ID:235200 發(fā)表于 2019-12-17 01:12 | 只看該作者
adjusted.DateString[i]=T.DateString[i];
adjusted.TimeString[i]=T.TimeString[i];
這兩行把從DS1302讀出的時(shí)分秒年月日轉(zhuǎn)存,但沒(méi)有把它變?yōu)锳SCII碼,如顯示0,要把0變?yōu)?x30,顯示1要變?yōu)?x31,也即所有數(shù)字顯示均需要加0x30,如果顯示字母,也要對(duì)應(yīng)轉(zhuǎn)換為相應(yīng)ASCII碼值
回復(fù)

使用道具 舉報(bào)

8#
ID:213173 發(fā)表于 2019-12-17 10:35 | 只看該作者
樓主這個(gè)程序好像是東拼西湊來(lái)的。模塊化程序通常是一個(gè)模塊對(duì)應(yīng)一個(gè).C和一個(gè).H文件。樓主這不按正常套路把兩者混在一起。還用了另類數(shù)據(jù)結(jié)構(gòu)SYSTEMTIME adjusted; Keil編譯器無(wú)法識(shí)別。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表