微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 12864控制forMSP430

12864控制forMSP430

时间:11-27 来源:互联网 点击:

  1. for(i=n;i>

  2. ************************************
  3. //名称:WriteStr
  4. //参数:显示的地址addr,待显示数据的指针,显示长度
  5. //返回值:无
  6. //功能:在12864指定位置上显示字符串,包括汉字
  7. 可以显示ASCII码表上字符,但长度应该减半
  8. *************************************************************************/
  9. voidWriteStr(ucharaddr,constuchar*pt,ucharnum)
  10. {
  11. uchari;
  12. Send(0,addr);
  13. for(i=0;i<(num*2);i++)
  14. Send(1,*(pt++));
  15. }
  16. /*************************************************************************
  17. //名称:DrawPic
  18. //参数:待显示图片的指针
  19. //返回值:无
  20. //功能:在整个屏幕上画一个图片
  21. *************************************************************************/
  22. voidDrawPic(constuchar*ptr)
  23. {
  24. uchari,j,k;
  25. Send(0,0x34);//打开扩展指令集
  26. i=0x80;
  27. for(j=0;j<32;j++)
  28. {
  29. Send(0,i++);
  30. Send(0,0x80);
  31. for(k=0;k<16;k++)
  32. {
  33. Send(1,*ptr++);
  34. }
  35. }
  36. i=0x80;
  37. for(j=0;j<32;j++)
  38. {
  39. Send(0,i++);
  40. Send(0,0x88);
  41. for(k=0;k<16;k++)
  42. {
  43. Send(1,*ptr++);
  44. }
  45. }
  46. Send(0,0x36);//打开绘图显示
  47. Send(0,0x30);//回到基本指令集
  48. }
  49. /*************************************************************************
  50. //名称:Draw1Pic
  51. //参数:Yaddr--Y地址,Xaddr--X地址
  52. //返回值:无
  53. //功能:在液晶上描绘一个16*16的图形
  54. *************************************************************************/
  55. voidDraw1Pic(ucharYaddr,ucharXaddr,constuchar*dp)
  56. {
  57. ucharj;
  58. uchark=0;
  59. Send(0,0x34);//使用扩展指令集,关闭绘图显示
  60. for(j=0;j<16;j++)
  61. {
  62. Send(0,Yaddr++);//Y地址
  63. Send(0,Xaddr);//X地址
  64. Send(1,dp[k++]);//送两个字节的显示数据
  65. Send(1,dp[k++]);
  66. }
  67. Send(0,0x36);//打开绘图显示
  68. Send(0,0x30);//回到基本指令集模式
  69. }
  70. /*************************************************************************
  71. //名称:LocateXY
  72. //参数:待写入地址,横坐标X,纵坐标Y(从0开始)
  73. //返回值:无
  74. //功能:12864指针指向指定位置
  75. *************************************************************************/
  76. voidLocateXY(ucharX,ucharY)
  77. {
  78. Send(0,Address[Y][X]);
  79. }
  80. /*************************************************************************
  81. //名称:WriteNum
  82. //参数:待写入数字Num,横坐标X,纵坐标Y(从0开始)
  83. //返回值:无
  84. //功能:在指定位置显示一个数字(不超过5位且小于65536)
  85. *************************************************************************/
  86. voidWriteNum(uintn,ucharx,uchary)
  87. {
  88. ucharfive,four,three,two,one;
  89. LocateXY(x,y);
  90. if((n>=10000)&&(n<=65535))
  91. {
  92. five=n/10000;
  93. four=(n%10000)/1000;
  94. three=((n-five*10000)%1000)/100;
  95. two=((n-five*10000)%1000-three*100)/10;
  96. one=((n-five*10000)%1000-three*100)%10;
  97. Send(1,NUM[five]);
  98. Send(1,NUM[four]);
  99. Send(1,NUM[three]);
  100. Send(1,NUM[two]);
  101. Send(1,NUM[one]);
  102. }
  103. if((n>=1000)&&(n<=9999))
  104. {
  105. four=n/1000;
  106. three=(n%1000)/100;
  107. two=(n%1000-three*100)/10;
  108. one=(n%1000-three*100)%10;
  109. Send(1,NUM[four]);
  110. Send(1,NUM[three]);
  111. Send(1,NUM[two]);
  112. Send(1,NUM[one]);
  113. }
  114. if((n>=100)&&(n<=999))
  115. {
  116. three=n/100;
  117. two=(n-three*100)/10;
  118. one=(n-three*100)%10;
  119. Send(1,NUM[three]);
  120. Send(1,NUM[two]);
  121. Send(1,NUM[one]);
  122. }
  123. if((n>=10)&&(n<=99))
  124. {
  125. two=n/10;
  126. one=n%10;
  127. Send(1,NUM[two]);
  128. Send(1,NUM[one]);
  129. }
  130. if((n>=0)&&(n<=9))Send(1,NUM[n]);
  131. }
  132. /*************************************************************************
  133. //名称:WriteFloat
  134. //参数:待写入浮点数,unsignedcharx,unsignedchary
  135. //返回值:无
  136. //功能:在给定位置显示一个浮点数(整数部分和小数部分都不超过两位)
  137. *************************************************************************/
  138. voidWriteFloat(floatn,ucharx,uchary)
  139. {
  140. uintInteger,Decimal;//Integer用于存放整数部分,Decimal用于存放小数部分
  141. Integer=(uint)(n/1);
  142. Decimal=(uint)(n*100-Integer*100);
  143. if(Integer<10)
  144. {
  145. LocateXY(x,y);
  146. Send(1,);
  147. WriteNum(Integer,x+1,y);
  148. }
  149. if(Integer>=10)WriteNum(Integer,x,y);
  150. Send(1,NUM[10]);
  151. WriteNum(Decimal,x+2,y);
  152. }
  153. /*************************************************************************
  154. //名称:WriteArrary
  155. //参数:待写入数组,数组长度,unsignedcharx,unsignedchary
  156. //返回值:无
  157. //功能:在给定位置显示一个数组
  158. *************************************************************************/
  159. voidWriteArrary(uint*a,uintn,ucharx,uchary)
  160. {
  161. uchari;
  162. LocateXY(x,y);
  163. for(i=0;i
  164. {
  165. a[i]=a[i]+0;
  166. Send(1,a[i]);
  167. }
  168. }


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top