標題: 敬請大家將以下匯編程序用C語言完成,感謝! [打印本頁]
作者: zlkj 時間: 2015-9-23 15:09
標題: 敬請大家將以下匯編程序用C語言完成,感謝!
;Proteus7.5SP3, LCD driver: ---, LCD: 320x240 65K color, 8bit接口
;R-G-B(565)順序(本仿真TFT先發送低位后高位).
;Modified by HeFanghua, 2012-4-20
;實現功能: 讀取AT25F4096中的BIN數據文件并在TFT上顯示, 刷屏
;仿真測試用單片機: AT89C55@12MHz or above.
;液晶坐標軸方向(以排線朝下為基本方向放置屏幕):
;O 319
;┼────→ horizontal
;│
;│
;│239
;↓vertical
;-----
;大圖片文件數據的轉換:
;asm格式數據表由文件分割精靈拆開成4個,每個分別用WAVE匯編成BIN,用批處理COPY命令合并,UltraEdit以HEX方式打開并刪掉末尾多余的1字節。
;---引腳定義---
TFT_RS equ P3.5 ;數據/命令切換
TFT_RST equ P1.2 ;復位
TFT_WR equ P3.6 ;寫控制
TFT_CS equ P3.7 ;片選
TFT_Data EQU P2 ;8位模式數據口
AT25F_SCK bit p1.7 ;AT25F4096(512KB SPI ROM)
AT25F_SI bit p1.6 ;MOSI
AT25F_SO bit p1.5 ;MISO
AT25F_CS bit p1.4
;AT25F_WP bit p1.2
;AT25F_HOLD bit p1.3
;---
;---寄存器定義---
I equ 3fh
J equ 40h
K equ 41h
VH equ 42h
VL equ 43h
colorH equ 44h
colorL equ 45h
;-----
;---宏定義---
;---
ORG 0
LJMP MAIN
ORG 60H
;-----
main:
mov sp,#7fh
setb TFT_CS
call Address_set ;TFT初始化
call AT25F_SPIinit
;call AT25F_SPI_Write
call AT25F_SPI_Read
call delay1s
again:
mov colorH,#0f8h
mov colorL,#0
call Paint ;紅色
mov colorH,#7h
mov colorL,#0e0h
call Paint ;綠色
mov colorH,#0
mov colorL,#1fh
call Paint ;藍色
mov colorH,#0ffh
mov colorL,#0e0h
call Paint ;黃色
mov colorH,#0f8h
mov colorL,#1fh
call Paint ;紫色
mov colorH,#07h
mov colorL,#0ffh
call Paint ;靛色
mov colorH,#0ffh
mov colorL,#0ffh
call Paint ;白色
mov colorH,#0
mov colorL,#0
call paint ;TFT清屏(黑色)
jmp again
;================
AT25F_SPIinit: ;初始化25T. SPI模式0(CPOL極性=0, CPHA相位=0)
setb AT25F_CS
clr AT25F_SCK ;必須要
; setb AT25F_WP
; setb AT25F_HOLD
setb AT25F_SO
setb AT25F_SI
ret
AT25F_SPI_Write: ;測試用, 寫1字節
; clr AT25F_CS
; mov a,#00000010b
; call SPI_W1B
; mov a,#0 ;寫地址, 3字節
; call SPI_W1B
; mov a,#0
; call SPI_W1B
; mov a,#0
; call SPI_W1B
; mov r3,#256
; AT25F_SPI_Write_1:
; mov a,r3;#5ah
; call SPI_W1B
; djnz r3,AT25F_SPI_Write_1
; mov a,#5ah
; call SPI_W1B
; setb AT25F_CS
ret
AT25F_SPI_Read: ;連續讀25T存儲器
clr AT25F_CS
mov a,#00000011b ;Read Data from Memory Array
call SPI_W1B
mov a,#0 ;讀地址, 3字節
call SPI_W1B
mov a,#0
call SPI_W1B
mov a,#0
call SPI_W1B
;320x240次=2x160x240
mov R7,#2
mov R6,#160
mov R5,#240
clr TFT_CS ;打開片選使能
SETB TFT_RS ;發送數據
AT25F_SPI_Read_1:
call SPI_R1B
mov VH,a ;暫存高8位
call SPI_R1B
mov TFT_Data,a
clr tft_wr
setb tft_cs
clr tft_cs
setb tft_wr
mov TFT_Data,VH
clr tft_wr
setb tft_cs
clr tft_cs
setb tft_wr
djnz R5,AT25F_SPI_Read_1
mov R5,#240
djnz R6,AT25F_SPI_Read_1
mov R6,#160
djnz R7,AT25F_SPI_Read_1
setb AT25F_CS
ret
SPI_W1B: ;寫1字節
mov r4,#8
clr AT25F_SCK
SPI_W1B_1:
rlc a
mov AT25F_SI,c
clr AT25F_SCK ;上升沿
setb AT25F_SCK
djnz r4,SPI_W1B_1
ret
SPI_R1B: ;讀1字節
setb AT25F_SI
setb AT25F_SO
mov r4,#8
SPI_R1B_1:
setb AT25F_SCK ;下降沿
clr AT25F_SCK
mov c,AT25F_SO
rlc a
djnz r4,SPI_R1B_1
clr AT25F_SCK
ret
TFT_Write_Bus: ;發送數據給TFT, 輸入VH, VL. 先發低位后高位
mov TFT_Data,VL
clr tft_wr
setb tft_cs
clr tft_cs
setb tft_wr
mov TFT_Data,VH
clr tft_wr
setb tft_cs
clr tft_cs
setb tft_wr
RET
Address_set:
mov vh,#0 ;x起始地址
mov vl,#0
CLR TFT_RS
clr TFT_CS
call TFT_Write_Bus
mov vh,#0 ;y起始地址
mov vl,#0
call TFT_Write_Bus
ret
Paint: ;全屏填充顏色,輸入colorH,colorL
clr TFT_CS ;打開片選使能
call Address_set ;proteus手動回左上角
SETB TFT_RS ;發送數據
MOV VH,colorH
MOV VL,colorL
mov R7,#160
mov R6,#240
Paint_1:
call TFT_Write_Bus ;發送2字節
call TFT_Write_Bus ;發送2字節
djnz R6,Paint_1
mov R6,#240
djnz R7,Paint_1
setb TFT_CS ;關閉片選使能
ret
delay1s:
MOV I,#0ABH
delay1s_2:
MOV J,#02DH
delay1s_1:
MOV K,#0B0H
DJNZ K,$
DJNZ J,delay1s_1
DJNZ I,delay1s_2
RET
end
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
欧美成人一级片
|
99热视|
白浆在线
|
av免费看片
|
国产日韩欧美综合
|
91看片淫黄大片
|
久久久婷婷
|
成人片在线看
|
日本一级淫片
|
一区二区三区四区视频在线观看
|
亚洲精品一区二区三区蜜桃久
|
伊人久久精品
|
亚洲黄色成人
|
波多野结衣一区二区三区在线观看
|
日韩欧美在线看
|
免费特级毛片
|
香蕉视频一区二区
|
久草黄色
|
五十路av|
蜜臀久久99精品久久久久宅男
|
国产精品一区二区三区不卡
|
a级片在线|
91福利视频导航
|
日本三级大片
|
黄色理论片
|
中文字幕理伦片免费看
|
精品国产aⅴ麻豆
|
国产中文一区
|
亚洲经典av
|
久久亚洲天堂
|
久久久久久一区
|
亚洲高清毛片一区二区
|
99精品网站
|
欧美日韩色
|
亚洲国产福利
|
久久久在线
|
日韩色在线
|
九九热精品在线观看
|
www.婷婷
|
日韩在线小视频
|
国产午夜一区二区
|