欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3733|回復: 0
打印 上一主題 下一主題
收起左側

STC12單片機驅動IIC液晶屏(裸屏)源程序

[復制鏈接]
跳轉到指定樓層
樓主
一個IIC的1.4寸小裸屏,目前沒有字庫和顯示函數,只完成了一個線的顯示,有懂的提個思路。清屏也是不完美的。
制作出來的實物圖如下:


單片機源程序如下:
  1. #include "STC12C5A60S2.H"
  2. #define uchar unsigned char
  3. #define uint unsigned int


  4. uchar code LCD_DATA[1717] = {    //全屏圖片
  5. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  6. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0C,0XFC,0X00,0X00,
  7. 0X00,0X00,0XC0,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0X0F,0XFC,0X00,
  8. 0X00,0X00,0X00,0XC0,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFC,
  9. 0XF0,0X03,0X00,0X00,0XC0,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,
  10. 0XFC,0XF0,0X03,0X00,0X00,0XC0,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  11. 0X3F,0XFC,0XF0,0X03,0X00,0X00,0XC0,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  12. 0XFC,0XFF,0XFC,0XF0,0X03,0X00,0X00,0XC0,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  13. 0X00,0XFF,0XFF,0XFC,0XF0,0X03,0X00,0X00,0XC0,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,
  14. 0X00,0XC0,0XFF,0XFF,0XFF,0XFF,0X3F,0X00,0X00,0XC0,0XFF,0XFF,0XFF,0XFF,0X3F,0X00,
  15. 0X00,0X00,0XC0,0XCF,0XFF,0XFF,0XFF,0X3F,0X00,0X00,0XC0,0XFF,0XFF,0XFF,0XFF,0X3F,
  16. 0X00,0X00,0X00,0XC0,0XCF,0XCF,0XFF,0XFF,0X3F,0X00,0X00,0XC0,0XFF,0XFF,0XFF,0XFF,
  17. 0X3F,0X00,0X00,0X00,0XC0,0XCF,0X0F,0XFF,0XF0,0X03,0X00,0X00,0XC0,0XFF,0XFF,0XFF,
  18. 0XFF,0X3F,0X00,0X00,0X00,0XC0,0X0F,0X3F,0XFF,0XF0,0X03,0X00,0X00,0XC0,0X0F,0X00,
  19. 0XF0,0X03,0X00,0X00,0X00,0X00,0XC0,0X0F,0X3F,0XFC,0XF3,0X03,0X00,0X00,0XC0,0X0F,
  20. 0X00,0XF0,0X03,0X00,0X00,0X00,0X00,0XC0,0X0F,0X3F,0XFC,0XFF,0X03,0X00,0X00,0XC0,
  21. 0X0F,0X00,0XF0,0X03,0X00,0X00,0X00,0X00,0XC0,0X0F,0X3F,0XFC,0X0F,0X00,0X00,0X00,
  22. 0XC0,0X0F,0X00,0XF0,0X03,0X00,0X00,0X00,0X00,0XC0,0X0F,0XFF,0XFC,0X3F,0X00,0X00,
  23. 0X00,0XC0,0X0F,0X00,0XF0,0X03,0X00,0X00,0X00,0X00,0XC0,0XFF,0XFC,0XFC,0XFC,0X00,
  24. 0X00,0X00,0XC0,0X0F,0X00,0XF0,0X03,0X00,0X00,0X00,0X00,0XC0,0XFF,0X3C,0XFC,0XF0,
  25. 0X03,0X00,0X00,0XC0,0X0F,0X00,0XF0,0X03,0X00,0X00,0X00,0X00,0X00,0X3F,0X0C,0XFC,
  26. 0XF0,0X00,0X00,0X00,0XC0,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  27. 0XFC,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  28. 0X00,0XFC,0X00,0X00,0X00,0X00,0X00,0X0C,0X00,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,
  29. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XF0,0XF0,0XC0,0X03,0X00,0X00,0X00,
  30. 0XC0,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XF3,0XF0,0XCF,0X03,0X00,0X00,
  31. 0X00,0XC0,0X0F,0XC0,0X0F,0XC0,0X0F,0X00,0X00,0XF0,0XC3,0XF3,0XF0,0XFF,0X03,0X00,
  32. 0X00,0X00,0XC0,0X0F,0XC0,0X0F,0XC0,0X0F,0X00,0X00,0XF0,0X03,0XF0,0XF0,0XCF,0X3F,
  33. 0X00,0X00,0X00,0XC0,0X0F,0XC0,0X0F,0XC0,0X0F,0X00,0X00,0XF0,0XFF,0XFF,0XFF,0XC0,
  34. 0X3F,0X00,0X00,0X00,0XC0,0X0F,0XC0,0X0F,0XC0,0X0F,0X00,0X00,0XC0,0XFF,0XFF,0XFF,
  35. 0XC0,0X3F,0X00,0X00,0X00,0XC0,0X0F,0XC0,0X0F,0XC0,0X0F,0X00,0X00,0X00,0XC0,0XF0,
  36. 0XF0,0XFF,0X03,0X00,0X00,0X00,0XC0,0X0F,0XC0,0X0F,0XC0,0X0F,0X00,0X00,0X00,0XF0,
  37. 0XF3,0XF0,0XFF,0X03,0X00,0X00,0X00,0XC0,0X0F,0XC0,0X0F,0XC0,0X0F,0X00,0X00,0X00,
  38. 0XFC,0XF3,0XF0,0XCC,0X03,0X00,0X00,0X00,0XC0,0XFF,0XFF,0XFF,0XFF,0X0F,0X00,0X00,
  39. 0XC0,0X33,0XF0,0XF0,0XC0,0X03,0X00,0X00,0X00,0XC0,0XFF,0XFF,0XFF,0XFF,0X0F,0X00,
  40. 0X00,0XF0,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0XFF,0XFF,0XFF,0XFF,0X0F,
  41. 0X00,0X00,0XC0,0XFF,0XFF,0XFF,0XFF,0X03,0X00,0X00,0X00,0XC0,0X0F,0XC0,0X0F,0XC0,
  42. 0X0F,0X00,0X00,0X00,0XFC,0XFF,0XFF,0XFF,0X03,0X00,0X00,0X00,0XC0,0X0F,0XC0,0X0F,
  43. 0XC0,0X0F,0X00,0X00,0X00,0X00,0XFC,0XFF,0XFF,0X03,0X00,0X00,0X00,0XC0,0X0F,0XC0,
  44. 0X0F,0XC0,0X0F,0X00,0X00,0X00,0X00,0X00,0XFC,0XC0,0X0F,0X00,0X00,0X00,0XC0,0X0F,
  45. 0XC0,0X0F,0XC0,0X0F,0X00,0X00,0XF0,0XFF,0XFF,0XFF,0XC0,0X0F,0X00,0X00,0X00,0XC0,
  46. 0X0F,0XC0,0X0F,0XC0,0X0F,0X00,0X00,0XF0,0XFF,0XFF,0XFF,0XC0,0X0F,0X00,0X00,0X00,
  47. 0XC0,0X0F,0XC0,0X0F,0XC0,0X0F,0X00,0X00,0XF0,0XFF,0XFF,0XFF,0X00,0X3F,0X00,0X00,
  48. 0X00,0XC0,0X0F,0XC0,0X0F,0XC0,0X0F,0X00,0X00,0X00,0X00,0X00,0XFC,0X00,0X3F,0X00,
  49. 0X00,0X00,0XC0,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFC,0X00,0X00,
  50. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  51. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFC,0X00,0X00,0X00,0X00,0XF0,0XFF,0XFF,0X00,
  52. 0X00,0X00,0X00,0X00,0X00,0XC0,0XFF,0X0F,0XFC,0XF0,0X03,0X00,0X00,0XF0,0XFF,0XFF,
  53. 0X00,0X00,0X00,0X00,0X00,0X00,0XF0,0XFF,0XFF,0XFC,0XF0,0X03,0X00,0X00,0XF0,0XFF,
  54. 0XFF,0XF0,0XFF,0X0F,0X00,0X00,0X00,0X00,0XFC,0XFF,0XFC,0XF0,0X03,0X00,0X00,0XC0,
  55. 0X0F,0XFC,0XF0,0XFF,0X0F,0X00,0X00,0X00,0X00,0X3F,0X00,0XFC,0XFF,0X3F,0X00,0X00,
  56. 0XC0,0X0F,0XFC,0XF0,0XFF,0X0F,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0X3F,0X00,
  57. 0X00,0XC0,0X0F,0XFC,0XF0,0XC3,0X0F,0X00,0X00,0X00,0XC0,0XFF,0XFF,0XFF,0XFF,0X3F,
  58. 0X00,0X00,0XF0,0XFF,0XFF,0XF0,0XC3,0X0F,0X00,0X00,0X00,0XC0,0XFF,0XFF,0XFF,0XF0,
  59. 0X03,0X00,0X00,0XF0,0XFF,0XFF,0XF0,0XC3,0X0F,0X00,0X00,0X00,0XC0,0X0F,0X3F,0XFC,
  60. 0XF0,0X03,0X00,0X00,0XF0,0XFF,0XFF,0XF0,0XC3,0X0F,0X00,0X00,0X00,0XC0,0X0F,0X3F,
  61. 0XFC,0XF0,0X03,0X00,0X00,0X00,0X00,0X00,0XF0,0XC3,0X0F,0X00,0X00,0X00,0XC0,0X0F,
  62. 0X00,0X3F,0X00,0X00,0X00,0X00,0XF0,0XFF,0XFF,0XF0,0XC3,0X0F,0X00,0X00,0X00,0XC0,
  63. 0X0F,0X00,0X3F,0XC0,0X0F,0X00,0X00,0XF0,0XFF,0XFF,0XF0,0XC3,0X0F,0X00,0X00,0X00,
  64. 0XC0,0X0F,0X00,0X3F,0XC0,0X0F,0X00,0X00,0XF0,0XFF,0XFF,0XF0,0XC3,0X0F,0X00,0X00,
  65. 0X00,0XC0,0X0F,0X00,0X3F,0XC0,0X0F,0X00,0X00,0XC0,0X0F,0XFC,0XF0,0XC3,0X0F,0X00,
  66. 0X00,0X00,0XC0,0XCF,0XFF,0XFF,0XFF,0X0F,0X00,0X00,0XC0,0X0F,0XFC,0XF0,0XFF,0X0F,
  67. 0X00,0X00,0X00,0XC0,0XCF,0XFF,0XFF,0XFF,0X0F,0X00,0X00,0XC0,0X0F,0XFC,0XF0,0XFF,
  68. 0X0F,0X00,0X00,0X00,0XC0,0XCF,0XFF,0XFF,0XFF,0X0F,0X00,0X00,0XF0,0XFF,0XFF,0XF0,
  69. 0XFF,0X0F,0X00,0X00,0X00,0XC0,0X0F,0X00,0X3F,0XC0,0X0F,0X00,0X00,0XF0,0XFF,0XFF,
  70. 0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0X0F,0X00,0X3F,0XC0,0X0F,0X00,0X00,0XF0,0XFF,
  71. 0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0X0F,0X00,0X3F,0XC0,0X0F,0X00,0X00,0X00,
  72. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0C,0X00,0X00,0X00,0X00,0X00,0X00,
  73. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  74. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0X00,0X00,0XF0,0XFF,0X0F,
  75. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XF0,0XC3,0X03,0XF0,0XFF,
  76. 0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0XCF,0XF3,0XF0,
  77. 0XFF,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0XCF,0XFF,
  78. 0X03,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,
  79. 0XFF,0XF3,0XFF,0X3F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  80. 0XFF,0XFF,0XF3,0XFF,0X3F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  81. 0XF0,0XC3,0XFF,0XFF,0XFF,0X3F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  82. 0X00,0XF0,0XC3,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  83. 0X00,0X00,0XF0,0XFF,0XFC,0XFC,0X03,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  84. 0X00,0X00,0X00,0XF0,0XFF,0XFC,0XFC,0XF3,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  85. 0X00,0X00,0X00,0X00,0XC0,0XFF,0XFC,0XF0,0XFF,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,
  86. 0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0XF0,0XC0,0X3F,0X0F,0X00,0X00,0X00,0X00,0X00,
  87. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XC3,0XF0,0XC3,0X0F,0X0F,0X00,0X00,0X00,0X00,
  88. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XCF,0XFC,0XC3,0X0F,0X0F,0X00,0X00,0X00,
  89. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0XCF,0XFF,0XC0,0X3F,0X0F,0X00,0X00,
  90. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0XC3,0X0F,0XC0,0XFF,0X0F,0X00,
  91. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0XC3,0X03,0XF0,0XF3,0X0F,
  92. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XF0,0XF3,0X03,0XF0,0XC0,
  93. 0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0XC0,0X00,0XF0,
  94. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  95. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  96. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  97. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  98. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  99. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  100. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  101. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  102. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  103. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  104. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  105. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  106. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  107. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  108. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  109. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  110. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  111. 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  112. 0X00,0X00,0X00,0X00,0X00,
  113. };
  114. uchar code LCD_INT[74] =          //LCD的初始化指令,具體含義寫在后面
  115.         {
  116.                 0X78,0X80,        //選擇地址,0X3C,加上W/R為0X78
  117.                 0X01,0X80,        //進0頁
  118.                 0X09,0X80,        //選1頁PS:選頁指令在0頁。
  119.                 0X06,0X80,        //選擇正常顯示模式
  120.                 0X12,0X80,        //選擇偏置模式
  121.                 0X40,0X80,        //選擇前8行的顯示模式??
  122.                 0X01,0X80,        //回0頁
  123.                 0X16,0X80,        //選擇垂直模式,掉電模式
  124.                 0x20,0x80,        //選擇Y地址,默認為0,可不設置。
  125.                 0X40,0X80,        //選擇X地址,默認為0,可不設置.
  126.                 0X0C,0X80,        //翻到4頁
  127.                 0X05,0X80,        //打開顯示和直接驅動模式(電壓倍增器)
  128.                 0X01,0X80,        //回0頁
  129.                 0X0A,0X80,        //選2頁
  130.                 0X08,0X80,        //設定2倍VLCD電壓
  131.                 0X12,0X80,        //設定溫度系數2
  132.                 0X04,0X80,        //設定VLCD為低,并關閉高壓發生器
  133.     0XC8,0X80,        //設定VLCD電壓 ~=7.74V  //4.5+72*0.045
  134.                 0X01,0X80,        //回0頁
  135.                 0X0B,0X80,        //翻到3頁
  136.                 0X40,0X80,        //選擇灰度0(寄存器)
  137.                 0X80,0X80,        //灰度0設為0
  138.           0X41,0X80,        //選額灰度1
  139.                 0X94,0X80,        //灰度1設為20
  140.                 0X42,0X80,        //選擇灰度2
  141.                 0XA8,0X80,        //灰度2設為40
  142.                 0X43,0X80,        //選擇灰度3
  143.                 0XBF,0X80,        //灰度3設為63
  144.                 0X01,0X80,        //回0頁
  145.                 0X0A,0X80,        //選擇2頁
  146.                 0X05,0X80,        //設定VLCD為低,并打開高壓發生器
  147.                 0X01,0X80,        //回0頁
  148.                 0X12,0X80,        //打開操作模式,設定垂直模式 ,交換MSB和LSB 0X12:不交換MSB和LSB
  149.                 0X0A,0X80,        //翻到2頁
  150.                 0X09,0X80,        //設定VLCD為3X
  151.                 0X0A,0X80,        //設定VLCD為4X
  152.                 0X0B,0X40,        //設定VLCD為5x,X040:后面開始寫DDRAM顯示數據
  153.         };
  154.       
  155. //delay ----------------------------------------------------------------------
  156. void delayus()
  157. {
  158.         uchar i=6;
  159.         while(i--);
  160. }


  161. void delayms(int a)
  162. {
  163.         uchar i, j;
  164.         i = 32;
  165.         j = 40;
  166.         while (j--)
  167.         {        while (i--);
  168.         }
  169.         }




  170. //I2C init ----------------------------------------------------------------------
  171. sbit I2CRST = P1^0; //定義I2C引腳
  172. sbit SDA = P1^1;
  173. sbit SCL =P1^2;
  174. void I2C_SOFT_START() //軟件模擬I2C 開始信號
  175. {
  176.         SDA = 1;
  177.         delayus();
  178.         SCL = 1;
  179.         delayus();
  180.         SDA = 0;
  181.         delayus();
  182.         SCL        =        0;
  183.         SDA        = 1;
  184. }


  185. void I2C_SOFT_STOP() //軟件模擬I2C 停止信號
  186. {
  187.         SDA = 0;
  188.         delayus();
  189.         SCL = 1;
  190.         delayus();
  191.         SDA = 1;
  192.         delayus();
  193.         SCL        =        0;
  194.         SDA        = 1;
  195. }




  196. void I2C_SOFT_SEND(uchar S_SND)   //軟件模擬I2C,寫1字節數據
  197. {
  198.         uchar i,SOFT_ACK,SND;
  199.         SOFT_ACK = 1;
  200. while (SOFT_ACK)      
  201. {
  202.         SND = S_SND;
  203. for (i=8;i!=0;i--)
  204.         {
  205.                 if(SND & 0X80)
  206.                         SDA = 1;
  207.                 else SDA = 0;
  208.                 SND <<=1;
  209.                 delayus();
  210. //                delayus();
  211.                 SCL = 1;
  212.                 delayus();
  213. //                delayus();
  214.                 SCL=0;
  215.                 delayus();
  216.         }
  217.                 SDA =1;
  218.                 delayus();
  219.                 SCL = 1;
  220.                 if(~SDA)
  221.                 {
  222.                         delayus();  //貌似少了這個延時,有時候不能順利初始化
  223.                         SOFT_ACK = 0; //判斷是否重發
  224.                 }SCL=0;
  225. }
  226. }


  227. //LCD INT ------------------------------------------------------
  228. void LCD_INIT()
  229. {
  230.         uint num;
  231.         I2CRST = 0;                                                //RST腿拉低
  232.         delayms();
  233.         I2CRST = 1;
  234.   delayms();
  235.         delayms();
  236.         delayms();
  237.         delayms();
  238.         I2C_SOFT_START();                        //發送開始信號
  239.                 for(num=0;num<=74;num++)
  240.                 {
  241.                         I2C_SOFT_SEND(LCD_INT[num]);


  242.                 }                                                                              
  243.         }


  244. void LCD_SET_XY(uchar x,y) //設定在X,Y位置寫數據
  245. {
  246.         uchar i;


  247. I2C_SOFT_STOP();                                //芯片沒有返回指令列表的指令,SO,結束I2C,再打開。
  248.         delayus();
  249. I2C_SOFT_START();      


  250. I2C_SOFT_SEND(0X78);        //選地址
  251. I2C_SOFT_SEND(0X80);        //這個蛋疼的芯片,每次寫一條指令都要說明下一條是指令還是數據,所以這么多0X80。
  252. I2C_SOFT_SEND(0X01);        //選頁指令
  253. I2C_SOFT_SEND(0X80);      
  254. I2C_SOFT_SEND(0X040|y);        //設置Y地址,(0-16)
  255. I2C_SOFT_SEND(0X80);               
  256. I2C_SOFT_SEND(0X80|x);        //設置X地址,        (0-100)
  257. I2C_SOFT_SEND(0X40);                //0x40表示后面開始寫數據
  258. }
  259. void map() //顯示一幅面
  260. {
  261.         uint num;
  262.                         for(num=0;num<=1717;num++)
  263.                 {
  264.                         I2C_SOFT_SEND(LCD_DATA[num]);


  265.                 }      
  266.         }
  267. void LSC(uchar X,uchar Y) //清屏
  268. {
  269.    int n;
  270.         LCD_SET_XY(X,Y);        //列、行      
  271.         for(n=1717;n>0;n--)        //1634個點
  272.         {
  273.                 I2C_SOFT_SEND(0X00);
  274.         }
  275.         }      
  276. void NLSC() //反清屏
  277. {
  278.    int n;
  279.         for(n=1717;n>0;n--)        //1634個點
  280.         {
  281.                 I2C_SOFT_SEND(0XFF);
  282.         }
  283.         }      
  284. void HX(uchar X,uchar Y) //劃一條線
  285. {
  286.    uchar n;
  287.         LCD_SET_XY(X,Y);        //列、行      
  288.         for(n=16;n>0;n--)        //16個點
  289.         {
  290.                 I2C_SOFT_SEND(0XFF);
  291.         }
  292.         }
  293. void HK(int n,y) //劃一條粗線
  294. {

  295.         for(n;n>0;n--)        //16個點
  296.         {
  297.         HX(y+n,0);//列、行 劃一條線
  298.         }
  299. }
  300. void main()
  301. {


  302.   LCD_INIT();                //LCD初始化      
  303.   LSC();//清屏      
  304.         //NLSC();//反清屏
  305.         //map();//顯示一幅面
  306.         while(1)
  307. {
  308.         HK(30,65);//列寬、列位置 劃一條粗線


  309.         HX(2,0);//列寬、列位置 劃一條線
  310.       
  311.       
  312. }
  313. }
復制代碼

所有資料51hei提供下載:
1.4顯IIC測試STC12OK2.zip (76.11 KB, 下載次數: 19)




評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表