新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 12864控制forMSP430

        12864控制forMSP430

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


      168. 上一頁 1 2 下一頁

        關鍵詞: 12864MSP43

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 易门县| 芦山县| 黔西县| 万山特区| 同江市| 潞城市| 息烽县| 南靖县| 太康县| 古蔺县| 盐山县| 左权县| 西丰县| 仁化县| 乐昌市| 德兴市| 新河县| 巩留县| 育儿| 三穗县| 太康县| 景宁| 合山市| 溧阳市| 旅游| 建始县| 绥棱县| 双流县| 冀州市| 胶南市| 炉霍县| 杭锦旗| 桓台县| 广元市| 和田县| 宜兰县| 丹东市| 宜阳县| 宁明县| 青川县| 双流县|