找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6512|回復(fù): 0
收起左側(cè)

51單片機(jī):1602液晶,顯示歡迎界面+日期 時間走(公開)

[復(fù)制鏈接]
ID:103513 發(fā)表于 2016-1-17 00:55 | 顯示全部樓層 |閱讀模式
此程序的電路圖下載:http://www.torrancerestoration.com/f/ks51.pdf   

  1. //顯示歡迎界面后,清屏,顯示日期+時間走
  2. //為什么我寫出的時間走,必須有更新到的才能顯示出來,時鐘就顯示不出來
  3. //最后的發(fā)現(xiàn)是位置放置不對,得先顯示,而后再去啟動定時器進(jìn)行更新,否則就只顯示有更新的地方。其它地方顯示不了
  4. #include<reg52.h>
  5. #define uchar unsigned char       //宏定義
  6. #define uint unsigned int
  7. uchar code table[]="  hello!jasper  ";     
  8. uchar code table1[]="   xm.dabiao    ";      
  9. uchar code aa[]=" 2011-12-15 MON ";   
  10. uchar code bb[]="    13:04:00    ";      
  11. sbit lcden=P3^4;
  12. sbit lcdrs=P3^5;
  13. sbit dula=P2^6;      //數(shù)碼管關(guān)斷
  14. sbit wela=P2^7;
  15. sbit FM=P2^3;
  16. uchar count;
  17. char miao,fen=4,shi=13;
  18. //------------------------------
  19. void delay(uint z)      
  20. {
  21. uint x,y;
  22. for(x=z;x>0;x--)
  23.   for(y=110;y>0;y--);
  24. }
  25. //------------------------------液晶有2個函數(shù),一個是寫指令,一個是寫數(shù)據(jù)
  26. void write_com(uchar com)      
  27. {
  28. lcdrs=0;      
  29. lcden=0;  
  30. P0=com;      
  31. delay(5);      
  32. lcden=1;
  33. delay(5);
  34. lcden=0;
  35. }
  36. void write_date(uchar date)
  37. {
  38. lcdrs=1;
  39. lcden=0;
  40. P0=date;
  41. delay(5);
  42. lcden=1;
  43. delay(5);
  44. lcden=0;
  45. }
  46. //222222222222222222222222222222222222222222
  47. void init()            
  48. {
  49. uchar num;
  50. dula=0;             //關(guān)閉數(shù)碼管
  51. wela=0;
  52. lcden=0;         
  53. write_com(0x38);   
  54. write_com(0x0c);   
  55. write_com(0x06);     
  56. write_com(0x01);   
  57. write_com(0x80+0x10);   
  58. for(num=0;num<16;num++)      
  59.   {
  60.    write_date(table[num]);
  61.    delay(10);
  62.   }
  63. write_com(0x80+0x51);      
  64. for(num=0;num<16;num++)      
  65.   {
  66.    write_date(table1[num]);
  67.    delay(10);
  68.   }     
  69. //---------------------------讓整屏左移
  70. for(num=0;num<16;num++)
  71. {
  72.   write_com(0x18);   
  73.   delay(160);  
  74. }
  75. delay(1800);

  76. }
  77. void pingxian(void)
  78. {
  79. uchar num_x;
  80. delay(500);
  81. write_com(0x01);
  82. write_com(0x80);
  83. for(num_x=0;num_x<16;num_x++)     
  84.   {
  85.    write_date(aa[num_x]);
  86.    delay(20);
  87.   }
  88. write_com(0x80+0x40);      
  89. delay(5);
  90. for(num_x=0;num_x<16;num_x++)   
  91.   {
  92.    write_date(bb[num_x]);
  93.    delay(20);
  94.   }
  95. delay(300);
  96. }
  97. void inittime(void)
  98. {
  99. TMOD=0x01;  
  100. TH0=(65536-50000)/256;
  101. TL0=(65536-50000)%256;
  102. EA=1;     
  103. ET0=1;   
  104. TR0=1;
  105. // shi=0;
  106. // fen=2;
  107. // miao=59;
  108. }
  109. void didi(di_num)
  110. {
  111.   uchar d;
  112.   for(d=di_num;d>0;d--)
  113. {
  114.    FM=0;
  115.    delay(70);
  116.    FM=1;
  117.    delay(30);
  118. }
  119. }
  120. void write_sfm(uchar add,uchar date)  
  121. {                           
  122. uchar shi,ge;         
  123. shi=date/10;
  124. ge=date%10;
  125. write_com(0x80+0x40+add);
  126. write_date(0x30+shi);   
  127. write_date(0x30+ge);      
  128. }
  129. void main(void)
  130. {
  131. init();
  132. pingxian();
  133. inittime();
  134. while(1)
  135. {
  136. }
  137. }
  138. void timer0() interrupt 1       //定時中斷程序
  139. {
  140. TH0=(65536-50000)/256;
  141. TL0=(65536-50000)%256;
  142. count++;        
  143.      if(count==19)
  144.   {
  145.    count=0;
  146.    miao++;
  147.    if(miao==60)
  148.    {
  149.     miao=0;
  150.     fen++;
  151.     if(fen==60)
  152.     {
  153.      fen=0;
  154.      shi++;
  155.      if(shi==24)       //24小時
  156.      {
  157.       shi=0;
  158.      }
  159.      write_sfm(4,shi);       //不相等,則讓他走,時針走
  160.     }
  161.     write_sfm(7,fen);        //不相等,則讓他走,分針走
  162.    }
  163.    write_sfm(10,miao);        //不相等,則讓他走;秒針走
  164.    
  165.   }
  166. }
復(fù)制代碼



相關(guān)帖子

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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