找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9695|回复: 11
打印 上一主题 下一主题
收起左侧

51单片机Proteus仿真320x240TFT彩屏 带源程序

  [复制链接]
跳转到指定楼层
楼主


Proteus仿真320x240TFT彩屏的原理图如下:



下面是Proteus仿真320x240TFT彩屏的汇编源代码:


  1. ;Proteus7.5SP3, LCD driver: ---, LCD: 320x240 65K color, 8bit接口
  2. ;R-G-B(565)顺序(本仿真TFT先发送低位后高位).
  3. ;Modified by HeFanghua, 2012-4-20
  4. ;实现功能: 读取AT25F4096中的BIN数据文件并在TFT上显示, 刷屏
  5. ;仿真测试用单片机: AT89C55@12MHz or above.
  6. ;液晶坐标轴方向(以排线朝下为基本方向放置屏幕):

  7. ;O          319
  8. ;┼────→ horizontal
  9. ;│
  10. ;│
  11. ;│239
  12. ;↓vertical
  13. ;-----


  14. ;大图片文件数据的转换:
  15. ;asm格式数据表由文件分割精灵拆开成4个,每个分别用WAVE汇编成BIN,用批处理COPY命令合并,UltraEdit以HEX方式打开并删掉末尾多余的1字节。



  16. ;---引脚定义---
  17. TFT_RS equ P3.5  ;数据/命令切换
  18. TFT_RST equ P1.2 ;复位
  19. TFT_WR equ P3.6  ;写控制
  20. TFT_CS equ P3.7  ;片选
  21. TFT_Data EQU P2         ;8位模式数据口

  22. AT25F_SCK  bit p1.7 ;AT25F4096(512KB SPI ROM)
  23. AT25F_SI   bit p1.6 ;MOSI
  24. AT25F_SO   bit p1.5 ;MISO
  25. AT25F_CS   bit p1.4
  26. ;AT25F_WP   bit p1.2
  27. ;AT25F_HOLD bit p1.3
  28. ;---

  29. ;---寄存器定义---
  30. I equ 3fh
  31. J equ 40h
  32. K equ 41h
  33. VH equ 42h  
  34. VL equ 43h  
  35. colorH equ 44h
  36. colorL equ 45h
  37. ;-----

  38. ;---宏定义---

  39. ;---

  40. ORG 0
  41. LJMP MAIN

  42. ORG 60H
  43. ;-----
  44. main:
  45. mov sp,#7fh
  46. setb TFT_CS
  47. call Address_set ;TFT初始化
  48. call AT25F_SPIinit
  49. ;call AT25F_SPI_Write
  50. call AT25F_SPI_Read
  51. call delay1s

  52. again:
  53. mov colorH,#0f8h
  54. mov colorL,#0
  55. call Paint ;红色
  56.          
  57. mov colorH,#7h
  58. mov colorL,#0e0h
  59. call Paint ;绿色

  60. mov colorH,#0
  61. mov colorL,#1fh
  62. call Paint ;蓝色

  63. mov colorH,#0ffh
  64. mov colorL,#0e0h
  65. call Paint ;黄色

  66. mov colorH,#0f8h
  67. mov colorL,#1fh
  68. call Paint ;紫色

  69. mov colorH,#07h
  70. mov colorL,#0ffh
  71. call Paint ;靛色         

  72. mov colorH,#0ffh
  73. mov colorL,#0ffh
  74. call Paint ;白色

  75. mov colorH,#0
  76. mov colorL,#0
  77. call paint ;TFT清屏(黑色)
  78. jmp again
  79. ;================


  80. AT25F_SPIinit: ;初始化25T. SPI模式0(CPOL极性=0, CPHA相位=0)
  81. setb  AT25F_CS
  82. clr AT25F_SCK  ;必须要
  83. ; setb AT25F_WP
  84. ; setb AT25F_HOLD
  85. setb AT25F_SO
  86. setb AT25F_SI
  87. ret


  88. AT25F_SPI_Write: ;测试用, 写1字节
  89. ; clr AT25F_CS
  90. ; mov a,#00000010b
  91. ; call SPI_W1B
  92. ; mov a,#0         ;写地址, 3字节
  93. ; call SPI_W1B
  94. ; mov a,#0
  95. ; call SPI_W1B
  96. ; mov a,#0
  97. ; call SPI_W1B
  98. ; mov r3,#256
  99. ; AT25F_SPI_Write_1:
  100. ; mov a,r3;#5ah
  101. ; call SPI_W1B
  102. ; djnz r3,AT25F_SPI_Write_1
  103. ; mov a,#5ah
  104. ; call SPI_W1B
  105. ; setb AT25F_CS
  106. ret


  107. AT25F_SPI_Read: ;连续读25T存储器
  108. clr AT25F_CS
  109. mov a,#00000011b ;Read Data from Memory Array
  110. call SPI_W1B
  111. mov a,#0         ;读地址, 3字节
  112. call SPI_W1B
  113. mov a,#0
  114. call SPI_W1B
  115. mov a,#0
  116. call SPI_W1B

  117. ;320x240次=2x160x240
  118. mov R7,#2
  119. mov R6,#160
  120. mov R5,#240
  121. clr TFT_CS ;打开片选使能
  122. SETB TFT_RS ;发送数据

  123. AT25F_SPI_Read_1:
  124. call SPI_R1B
  125. mov VH,a      ;暂存高8位
  126. call SPI_R1B
  127. mov TFT_Data,a
  128. clr tft_wr
  129. setb tft_cs
  130. clr tft_cs
  131. setb tft_wr

  132. mov TFT_Data,VH
  133. clr tft_wr
  134. setb tft_cs
  135. clr tft_cs
  136. setb tft_wr

  137. djnz R5,AT25F_SPI_Read_1
  138.   mov R5,#240
  139.   djnz R6,AT25F_SPI_Read_1
  140.    mov R6,#160
  141.    djnz R7,AT25F_SPI_Read_1
  142.     setb AT25F_CS
  143. ret


  144. SPI_W1B: ;写1字节
  145. mov r4,#8
  146. clr AT25F_SCK
  147. SPI_W1B_1:
  148. rlc a
  149. mov AT25F_SI,c
  150. clr AT25F_SCK  ;上升沿
  151. setb AT25F_SCK
  152. djnz r4,SPI_W1B_1
  153. ret

  154. SPI_R1B: ;读1字节
  155. setb AT25F_SI
  156. setb AT25F_SO
  157. mov r4,#8
  158. SPI_R1B_1:
  159. setb AT25F_SCK        ;下降沿
  160. clr AT25F_SCK
  161. mov c,AT25F_SO
  162. rlc a
  163. djnz r4,SPI_R1B_1
  164.   clr AT25F_SCK
  165. ret



  166. TFT_Write_Bus: ;发送数据给TFT, 输入VH, VL. 先发低位后高位
  167. mov TFT_Data,VL
  168. clr tft_wr
  169. setb tft_cs
  170. clr tft_cs
  171. setb tft_wr

  172. mov TFT_Data,VH
  173. clr tft_wr
  174. setb tft_cs
  175. clr tft_cs
  176. setb tft_wr
  177. RET


  178. Address_set:
  179. mov vh,#0 ;x起始地址
  180. mov vl,#0
  181. CLR TFT_RS
  182. clr TFT_CS
  183. call TFT_Write_Bus
  184. mov vh,#0 ;y起始地址
  185. mov vl,#0
  186. call TFT_Write_Bus
  187. ret


  188. Paint: ;全屏填充颜色,输入colorH,colorL
  189. clr TFT_CS ;打开片选使能
  190. call Address_set        ;proteus手动回左上角
  191. SETB TFT_RS   ;发送数据
  192. MOV VH,colorH
  193. MOV VL,colorL
  194. mov R7,#160
  195. mov R6,#240
  196.   
  197. Paint_1:
  198. call TFT_Write_Bus ;发送2字节
  199. call TFT_Write_Bus ;发送2字节
  200. djnz R6,Paint_1
  201.   mov R6,#240
  202.   djnz R7,Paint_1
  203.    setb TFT_CS ;关闭片选使能
  204. ret


  205. delay1s:
  206.      MOV     I,#0ABH
  207. delay1s_2:
  208.      MOV     J,#02DH
  209. delay1s_1:
  210.      MOV     K,#0B0H
  211.      DJNZ    K,$
  212.      DJNZ    J,delay1s_1
  213.      DJNZ    I,delay1s_2
  214.      RET




  215.         end
复制代码





单片机做的Proteus仿真320x240TFT彩屏的仿真工程文件及所有资料其他资料下载:
51单片机Proteus仿真320x240 TFT彩屏.rar (144.03 KB, 下载次数: 148)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

来自 4#
ID:218023 发表于 2017-7-18 10:23 | 只看该作者
?作者,请教一下为什么报错

1.png (5.69 KB, 下载次数: 50)

错误

错误
回复

使用道具 举报

沙发
ID:138443 发表于 2016-9-4 22:19 | 只看该作者
来个C的源码吧
回复

使用道具 举报

板凳
ID:44037 发表于 2017-7-17 10:15 | 只看该作者
谢谢分享  安装好  运行  能看到数据点变化  但是没有图像
回复

使用道具 举报

5#
ID:304335 发表于 2018-4-9 12:05 | 只看该作者
谢谢分享 多向作者学习
回复

使用道具 举报

6#
ID:348319 发表于 2019-1-28 15:36 | 只看该作者
多谢分享
回复

使用道具 举报

7#
ID:324611 发表于 2019-8-5 16:23 | 只看该作者
好东西,学习了。
回复

使用道具 举报

8#
ID:69408 发表于 2019-10-21 21:26 | 只看该作者
可能是我先前下载的有TFT320240.LIB和TFT320240A.dll文件吧,可以运行显示的,这个89C55单片机显示速度要比C51的快一点,要是是C程序的就好了!
回复

使用道具 举报

9#
ID:198286 发表于 2019-10-22 16:07 | 只看该作者
不是源码啊,更看不懂了
回复

使用道具 举报

10#
ID:720658 发表于 2020-8-2 03:19 | 只看该作者
With_commands 发表于 2017-7-18 10:23
?作者,你好好看看

我也是这样
回复

使用道具 举报

11#
ID:328014 发表于 2020-8-2 03:36 | 只看该作者
With_commands 发表于 2017-7-18 10:23
?作者,请教一下为什么报错

先要安装仿真模型的dll文件:http://www.51hei.com/bbs/dpj-56010-1.html
回复

使用道具 举报

12#
ID:328014 发表于 2020-8-2 03:36 | 只看该作者

先要安装仿真模型的dll文件:http://www.51hei.com/bbs/dpj-56010-1.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表