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

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

QQ登錄

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

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

單片機(jī)秒表設(shè)計(jì),啟動(dòng)仿真開(kāi)始計(jì)時(shí)LCD1602顯示時(shí)分秒

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
功能介紹:實(shí)現(xiàn)手表功能,
LCD顯示時(shí)分秒,
附件包含完整程序及仿真設(shè)計(jì)。


單片機(jī)源程序如下:
  1. #include <REG51.h>
  2. #include <intrins.h>
  3. #define N 50000
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. #define LCD_DB  P1
  7. void display_time();       //聲明顯示時(shí)間函數(shù)
  8. void LCD_init();           //申明1602初始化函數(shù)
  9. void LCD_write_command(uchar dat);    //申明1602寫命令函數(shù)
  10. void LCD_write_data(uchar dat);      //申明1602寫數(shù)據(jù)函數(shù)
  11. void delay_n40us(uint n);   //申明延遲函數(shù)
  12. uchar shi,fen,miao;                         //全局變量時(shí)分秒
  13. uchar tt[]="Welcome 51Luntan";
  14. uint num=0;
  15. /*****************************************
  16. 電路連接?
  17. P1------DB0~DB7
  18. P2.0------RS
  19. P2.1------RW
  20. P2.2------E
  21. *****************************************/
  22. sbit LCD_RS=P2^0;
  23. sbit LCD_RW=P2^1;
  24. sbit LCD_E=P2^2;

  25. //********延時(shí)函數(shù)***************
  26. void delay_n40us(uint n)
  27. { uint i;
  28. uchar j;
  29. for(i=n;i>0;i--)
  30. for(j=0;j<2;j++);
  31. }
  32. void LCD_init(void)
  33. {
  34. LCD_write_command(0x38);//設(shè)置8位格式,2行,5x7
  35. LCD_write_command(0x0c);//整體顯示,關(guān)光標(biāo),不閃爍
  36. LCD_write_command(0x06);//設(shè)定輸入方式,增量不移位--------------
  37. LCD_write_command(0x01);//清除屏幕顯示----------------
  38. delay_n40us(100);     //實(shí)踐證明,我的LCD1602上,用for 循環(huán)200 次就能可靠完成清屏指令。
  39. }
  40. //********************************
  41. //********寫指令函數(shù)***********設(shè)置先向1602寫入的數(shù)據(jù)為地址*
  42. void LCD_write_command(uchar dat)
  43. {
  44. LCD_DB=dat;
  45. LCD_RS=0;//指令
  46. LCD_RW=0;//寫入
  47. LCD_E=1;//允許
  48. LCD_E=0;//產(chǎn)生下降沿
  49. delay_n40us(1);//實(shí)踐證明,我的LCD1602 上,用for 循環(huán)1 次就能完成普通寫指令。
  50. }
  51. //*******************************
  52. //********再寫數(shù)據(jù)函數(shù)*****向1602中寫入數(shù)據(jù)********
  53. void LCD_write_data(uchar dat)
  54. {
  55. LCD_DB=dat;
  56. LCD_RS=1;//數(shù)據(jù)
  57. LCD_RW=0;//寫入
  58. LCD_E=1;//允許
  59. LCD_E=0;//產(chǎn)生下降沿
  60. delay_n40us(1);
  61. }


  62. //************顯示時(shí)間**************
  63. void display_time()
  64. {
  65. LCD_init();
  66. LCD_write_command(0x80);   //從第一行顯示T
  67. LCD_write_data('T');
  68. delay_n40us(15000);
  69. LCD_write_data('i');
  70. delay_n40us(15000);
  71. LCD_write_data('m');
  72. delay_n40us(15000);
  73. LCD_write_data('e');
  74. delay_n40us(15000);
  75. LCD_write_data(':');
  76. delay_n40us(15000);
  77. LCD_write_command(0x80+5);          //***顯示時(shí)
  78. LCD_write_data(0x30+shi/10);  //****取十位顯示
  79. delay_n40us(15000);
  80. LCD_write_data(0x30+shi%10);        //***取個(gè)位顯示
  81. delay_n40us(15000);
  82. LCD_write_data(':');
  83. LCD_write_data(0x30+fen/10);  //顯示分
  84. delay_n40us(15000);
  85. LCD_write_data(0x30+fen%10);
  86. delay_n40us(15000);
  87. LCD_write_data(':');
  88. LCD_write_data(0x30+miao/10);  //顯示秒
  89. delay_n40us(15000);
  90. LCD_write_data(0x30+miao%10);
  91. delay_n40us(15000);
  92. }


  93. //*****T0中斷函數(shù)50ms中斷一次**************
  94. void t0_time() interrupt 1
  95. {
  96.   ++num;
  97.   TH0=(65536-N)/256;
  98.   TH0=(65536-N)%256;
  99.   if(num==20)        //計(jì)時(shí)滿一秒鐘
  100.   {
  101.   num=0;
  102.   ++miao;
  103.   LCD_write_command(0x80+11);
  104.   LCD_write_data(0x30+miao/10);
  105. delay_n40us(15000);
  106. LCD_write_data(0x30+miao%10);
  107. delay_n40us(15000);
  108. if(miao==60)        //計(jì)時(shí)滿一分鐘
  109. {
  110. miao=0;
  111. ++fen;
  112. LCD_write_command(0x80+8);
  113.   LCD_write_data(0x30+fen/10);
  114. delay_n40us(15000);
  115. LCD_write_data(0x30+fen%10);
  116. delay_n40us(15000);
  117. LCD_write_data(':');
  118. delay_n40us(15000);
  119. if(fen==60)        //計(jì)時(shí)滿一小時(shí)
  120. {
  121. fen=0;
  122. ++shi;
  123. LCD_write_command(0x80+5);
  124.   LCD_write_data(0x30+shi/10);
  125. delay_n40us(15000);
  126. LCD_write_data(0x30+shi%10);
  127. delay_n40us(15000);
  128. LCD_write_data(':');
  129. delay_n40us(15000);
  130. if(shi==24)             //計(jì)時(shí)滿一天
  131. {
  132. shi=0;
  133. }
  134. }
  135. }

  136.   }
  137. }



  138. //**************main函數(shù)***********
  139. main()
  140. {
  141. int h;
  142. shi=0;
  143. fen=0;
  144. miao=0;
  145. display_time();         //顯示初始時(shí)間0
  146. LCD_write_command(0x80+64);//從第二行開(kāi)始顯示
  147. for(h=0;h<16;++h)                   //顯示定義好的字符串
  148. {
  149. LCD_write_data(tt[h]);
  150. delay_n40us(15000);
  151. }
  152. TH0=(65536-N)/256;          //載入計(jì)數(shù)初值高八位
  153. TH0=(65536-N)%256;          //載入計(jì)數(shù)初值低八位
  154. EA=1;                                   //開(kāi)中斷權(quán)限
  155. ET0=1;                                   //開(kāi)T0中斷
  156. TR0=1;                                   //定時(shí)開(kāi)始
  157. TMOD=0x01;                           //選用模式1定時(shí)
  158. while(1);                                //等待中斷
  159. }
復(fù)制代碼

所有資料51hei提供下載:
利用定時(shí)中斷設(shè)計(jì)手表LCD1602顯示時(shí)分秒.zip (64.88 KB, 下載次數(shù): 43)




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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久激情五月丁香伊人 | 黑人成人网 | 国产精品一区二区在线播放 | 精品欧美一区二区三区久久久 | 国产乱码精品1区2区3区 | 国产高清一二三区 | 日韩精彩视频 | 国产在线二区 | 国产精品69久久久久水密桃 | 免费成人高清在线视频 | 精品国产一区久久 | www.888www看片| 国产欧美精品在线观看 | 亚洲成人av | 亚洲精品aⅴ | 欧美2区 | 欧美日韩在线电影 | 毛片高清| 久久久久亚洲精品 | 成人伊人网 | 刘亦菲国产毛片bd | 久久久久国产一区二区三区 | 亚洲成人在线免费 | 亚洲最大福利网 | 天堂色综合 | 69av网 | 亚洲国产网址 | 欧洲亚洲一区 | 日本精品一区二区 | 欧美精品一区在线 | 欧美一级视频免费看 | 久久久国产一区 | 一区在线观看 | 久久久国产一区二区三区四区小说 | 久久亚洲精品国产精品紫薇 | 国产成人精品999在线观看 | 亚洲黄色片免费观看 | 男女羞羞的网站 | 在线一区视频 | gav成人免费播放视频 | 欧美性受 |