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

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

QQ登錄

只需一步,快速開始

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

Prteus秒表設(shè)計(jì)LCD實(shí)現(xiàn)

[復(fù)制鏈接]
ID:788818 發(fā)表于 2020-6-24 16:04 | 顯示全部樓層 |閱讀模式
(JZLXOW$K@$JI4[7TXF)C@H.png
/*txt1.c*/
  1. #include <reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define DelayNOP(){_nop_();_nop_();_nop_();_nop_();}
  6. uchar Time_Buffer[]={0,0,0,0};
  7. uchar LCD_Display_Buffer[] = {"00:00:00:00"};
  8. void LCD_Initialize();
  9. void LCD_Set_POS(uchar);
  10. void LCD_Write_Data(uchar);
  11. void Display_String(uchar *,uchar);
  12. void Beep();
  13. sbit K1=P1^0;
  14. sbit K2=P1^1;
  15. sbit BEEP=P3^0;
  16. sbit LCD_RS=P2^0;
  17. sbit LCD_RW=P2^1;
  18. sbit LCD_EN=P2^2;
  19. char KeyCount=0;
  20. uchar code msg1[]= {"Second Watch 0 "};
  21. uchar code msg2[]= {"####       "};
  22. uchar code Prompts[][16]=
  23. {{"##1--> "},{"##1-->##2    "},{"##3-->    "},{"##3-->4   "}};

  24. void Beep()
  25. {
  26. uchar i,j=70;
  27. for(i=0;i<180;i++)
  28. {while(--j);BEEP=~BEEP;}
  29. BEEP=0;}
  30. void DelayX(uint MS)
  31. {
  32. uchar i;
  33. while(MS--) for(i=0;i<120;i++);}
  34. void Show_Second()
  35. {
  36. uchar i;
  37. LCD_Set_POS(0X45); //設(shè)置 LCD顯示起點(diǎn)
  38. for (i=3;i!=0xff;i--)
  39. {
  40. //將兩位整數(shù)的1、100s, 秒,分,時(shí)轉(zhuǎn)換為8位數(shù)字字符
  41. LCD_Display_Buffer[2*i+1]=Time_Buffer[i]/10+'0';
  42. LCD_Display_Buffer[2*i]=Time_Buffer[i]%10+'0';
  43. //在i=3,2,1,0時(shí)分別顯示時(shí),分,秒,1/100s
  44. LCD_Write_Data(LCD_Display_Buffer[2*i+1]);
  45. LCD_Write_Data(LCD_Display_Buffer[2*i]);
  46. LCD_Write_Data(':');
  47. }}
  48. //Time0中斷
  49. void Time0() interrupt 1 using 0
  50. {
  51. TH0=-10000/256;
  52. TL0=-10000%256;
  53. Time_Buffer[0]++;
  54. if(Time_Buffer[0]==100)
  55. {
  56. Time_Buffer[0]=0; Time_Buffer[1]++;
  57. }
  58. if(Time_Buffer[1]==60)//秒
  59. {
  60. Time_Buffer[1]=0; Time_Buffer[2]++;
  61. }
  62. if(Time_Buffer[2]==60)  //分
  63. {
  64. Time_Buffer[2]=0; Time_Buffer[3]++;
  65. }
  66. if(Time_Buffer[3]==24)  //時(shí)
  67. Time_Buffer[3]=0;
  68. }
  69. void main()
  70. {
  71. uchar i;
  72. IE=0x82;
  73. TMOD=0x01;
  74. TH0=-10000/256;
  75. TL0=-10000%256;
  76. LCD_Initialize();
  77. Display_String(msg1,0x00);
  78. Display_String(msg2,0x40);
  79. while(1)
  80. {
  81. if(K1==0)
  82. {
  83. DelayX(100);
  84. i=++KeyCount;        
  85. switch(i)
  86. {
  87. case 1:        
  88. case 3: TR0=1;
  89. Display_String(Prompts[i-1],0);
  90. break;
  91. case 2:        
  92. case 4: TR0=0;
  93. Display_String(Prompts[i-1],0);
  94. break;
  95. default:TR0=0;
  96. break;
  97. }
  98. while (K1==0);
  99. Beep();
  100. }
  101. else
  102. if(K2==0)
  103. {
  104. TR0=0;
  105. KeyCount=0;
  106. for(i=0;i<4;i++)
  107. Time_Buffer[i]=0;
  108. Display_String(msg1,0);
  109. Beep();
  110. DelayX(100);
  111. while(K2==0);
  112. }
  113. Show_Second();
  114. }
  115. }

  116. /*txt2.c*/
  117. #include <reg52.h>
  118. #include<intrins.h>
  119. #define uchar unsigned char
  120. #define uint unsigned int
  121. #define DelayNOP(){_nop_();_nop_();_nop_();_nop_();}
  122. sbit LCD_RS=P2^0;
  123. sbit LCD_RW=P2^1;
  124. sbit LCD_EN=P2^2;
  125. bit LCD_Busy_Check();
  126. void LCD_Initialize();
  127. void LCD_Write_Data(uchar);
  128. void LCD_Write_Command(uchar);

  129. void DelayMS(unit);
  130. void DelayMS(uint MS)
  131. {
  132. uchar t;
  133. while(MS--) for(t=0;t<120;t++);
  134. }
  135. bit LCD_Busy_Check()
  136. {
  137. bit Result;
  138. LCD_RS=0;LCD_RW=1;LCD_EN=1;
  139. DelayNOP();
  140. Result=(bit)(P0&0x80);
  141. LCD_EN=0;
  142. return Result;
  143. }
  144. void LCD_Write_Command(uchar cmd)
  145. {
  146. while(LCD_Busy_Check());
  147. LCD_RS=0;LCD_RW=0;LCD_EN=0;
  148. _nop_();_nop_();
  149. P0=cmd;DelayNOP();
  150. LCD_EN=1;DelayNOP();
  151. LCD_EN=0;
  152. }
  153. void LCD_Write_Data(uchar str)
  154. {
  155. while(LCD_Busy_Check());
  156. LCD_RS=1;LCD_RW=0;LCD_EN=0;
  157. P0=str;DelayNOP();
  158. LCD_EN=1;DelayNOP();
  159. LCD_EN=0;
  160. }
  161. void LCD_Initialize()
  162. {
  163. DelayMS(5);LCD_Write_Command(0x38);
  164. DelayMS(5);LCD_Write_Command(0x0c);
  165. DelayMS(5);LCD_Write_Command(0x06);
  166. DelayMS(5);LCD_Write_Command(0x01);
  167. DelayMS(5);
  168. }
  169. void LCD_Set_POS(uchar Position)
  170. {
  171. LCD_Write_Command(Position|0x80);
  172. }
  173. void Display_String(uchar*str,uchar LineNo)
  174. {
  175. uchar k;
  176. LCD_Set_POS(LineNo);
  177. for(k=0;k<16;k++)
  178. LCD_Write_Data(str[k]);
  179. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品在线观看入口 | 欧美成人aaa级毛片在线视频 | 天天操 夜夜操 | 美国黄色毛片 | 喷水毛片| 亚洲欧洲视频 | 国产精品视频一区二区三区四区国 | 久久久久99 | 久久av网 | 91视频国产精品 | 亚洲国产精品精华素 | 福利视频网站 | 国内精品久久久久久 | 国产成人在线一区 | av男人的天堂av | 亚洲欧美日韩精品久久亚洲区 | 中文字幕一区二区三区乱码在线 | 91精品国产乱码麻豆白嫩 | jlzzjlzz欧美大全 | 91精品国产色综合久久不卡98 | 日日爱夜夜操 | 91免费高清 | 国产欧美一区二区精品久导航 | 一级黄色毛片a | 国产精品日韩在线观看一区二区 | 天堂av中文 | 亚卅毛片| 一区二区三区av | 日本黄色大片免费看 | 国产精品视频久久久久久 | 久久躁日日躁aaaaxxxx | www,黄色,com| 91免费在线视频 | 中文字幕亚洲精品 | 免费人成在线观看网站 | 亚洲欧美视频一区 | 国产区高清 | 龙珠z在线观看 | 日本一区二区不卡 | 亚洲精品视频一区 | 国产精品久久影院 |